Skip to content
Snippets Groups Projects
Commit c8318422 authored by jonathan.froehlich's avatar jonathan.froehlich
Browse files

Fixed sign of pressure boundaries

parent 4bda0c66
No related branches found
No related tags found
3 merge requests!153Local add output info,!144Debug cardmech,!112Resolve "Public FirstPiolaKirchhoff dependant on F"
......@@ -41,11 +41,11 @@ ProblemGeometry = Tet
# Amount of pressure steps per iteration
PressureSteps = 10
# If Iteration with Pressuresteps fails, recursively restart PressureSolver with Steps*2 until iteration limit is reached
PressureIterations = 2
PressureIterations = 1
DebugPressure = 1
MechLevel = 2
MechLevel = 0
MechPolynomialDegree = 1
WithPrestress=false
......
......@@ -78,7 +78,7 @@ double LagrangeElasticity::PressureEnergy(const cell &c, int face, int bc, const
double w = E.QWeight(q);
VectorField FN = E.QNormal(q);
double localPressure = pProblem.Pressure(currentTime, E.QPoint(q), bc);
double localPressure = -pProblem.Pressure(currentTime, E.QPoint(q), bc);
W_Pressure += w * localPressure * (FN * E.VectorValue(q, U));
}
......@@ -173,7 +173,7 @@ void LagrangeElasticity::PressureBoundary(const cell &c, int face, int bc, const
double w = E.QWeight(q);
VectorField N = E.QNormal(q);
double localPressure = pProblem.Pressure(currentTime, E.QPoint(q), bc);
double localPressure = -pProblem.Pressure(currentTime, E.QPoint(q), bc);
Tensor F_0 = One + Q * E.VectorGradient(q, *u_pre) * QT;
......
......@@ -15,17 +15,17 @@ std::unique_ptr<PressureProblem> getPressureProblem(const ProblemType cProblem)
case DirichletBeam:
return std::make_unique<PressureProblem>();
case ElasticityBeamPush:
return std::make_unique<StaticPressureProblem>(-0.5, 0.0, 0.0, 0.0);
return std::make_unique<StaticPressureProblem>(0.5, 0.0, 0.0, 0.0);
case ElasticityBeamPull:
return std::make_unique<StaticPressureProblem>(0.5, 0.0, 0.0, 0.0);
case ElasticityBeamUp:
return std::make_unique<StaticPressureProblem>(0.0, 0.0, -0.0005, 0.0);
return std::make_unique<StaticPressureProblem>(0.0, 0.0, 0.0005, 0.0);
case ElasticityBeamDown:
return std::make_unique<StaticPressureProblem>(0.0, -0.0005, 0.0, 0.0);
return std::make_unique<StaticPressureProblem>(0.0, 0.0005, 0.0, 0.0);
case ElasticityBlock2D:
return std::make_unique<StaticPressureProblem>(0.0, -12.7, 0.0, 0.0);
return std::make_unique<StaticPressureProblem>(0.0, 12.7, 0.0, 0.0);
case ElasticityBlock3D:
return std::make_unique<StaticPressureProblem>(0.0, 0.0, -160, 0.0);
return std::make_unique<StaticPressureProblem>(0.0, 0.0, 160, 0.0);
case VolumeBlockX:
return std::make_unique<PressureProblem>();
......@@ -39,7 +39,7 @@ std::unique_ptr<PressureProblem> getPressureProblem(const ProblemType cProblem)
case SimplePrestress:
return std::make_unique<StaticPressureProblem>();
case NiedererBenchmarkBeam:
return std::make_unique<StaticPressureProblem>(0.002, 0.0, -0.0, 0.0);
return std::make_unique<StaticPressureProblem>(0.002, 0.0, 0.0, 0.0);
case NiedererBenchmarkPlainEllipsoid:
return std::make_unique<StaticPressureProblem>(1.0, 0.0, 0.0, 0.0);
case NiedererBenchmarkOrientedEllipsoid:
......@@ -55,7 +55,7 @@ std::unique_ptr<PressureProblem> getPressureProblem(const ProblemType cProblem)
case ConstantPressure:
return std::make_unique<StaticPressureProblem>();
case Klotz:
return std::make_unique<StaticPressureProblem>(-30.0 * 133.33 * 0.001, 0.0, 0.0, 0.0);
return std::make_unique<StaticPressureProblem>(30.0 * 133.33 * 0.001, 0.0, 0.0, 0.0);
case RobinEllipsoid:
return std::make_unique<SinoidPressureProblem>(5, 4, 0.8);
case DynDirichletTestPol:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment