diff --git a/src/elasticity/MainElasticity.cpp b/src/elasticity/MainElasticity.cpp index bad17c051dce7f649ebef055b39b3ee0fd7a640b..e8f9aad63b706510eae8c4d259471a167a882e66 100644 --- a/src/elasticity/MainElasticity.cpp +++ b/src/elasticity/MainElasticity.cpp @@ -99,6 +99,7 @@ Vector &MainElasticity::Run() { elasticityProblem->EvaluationResults(*displacement); // Generate IterativePressureSolver in src/elasticity/solvers/IterativePressureSolver.hpp IterativePressureSolver mSolver(*elasticityProblem, pressureSteps); + *displacement = 0; mSolver.Method(*mechA, *displacement); } else { // Generate ElastodynamicTimeIntegrator in src/elasticity/solvers/DynamicMechanicsSolver.hpp diff --git a/src/elasticity/solvers/StaticSolver.cpp b/src/elasticity/solvers/StaticSolver.cpp index 3602e6b8d6bc0765c170229598b9fad681d665e9..96dc52f62f338e1871cf9a5d01e61c77f079f3fa 100644 --- a/src/elasticity/solvers/StaticSolver.cpp +++ b/src/elasticity/solvers/StaticSolver.cpp @@ -9,9 +9,19 @@ void StaticSolver::Initialize(const IElasticity &assemble, Vector &u) { double StaticSolver::calculateResidualUpdate(const IElasticity &assemble, const Vector &u, Vector &defect) const { + defect = 0; + assemble.Residual(u, defect); + + mout << "Residual u " << endl << u << endl; + mout << "Residual d " << endl << defect << endl; + mout << "Residual d1 " << endl << defect.norm() << endl; + defect += *residualMatrix * u; + mout << "Residual d2 " << endl << defect.norm() << endl; + + defect.ClearDirichletValues(); defect.Collect(); diff --git a/test/elasticity/TestPrestress.cpp b/test/elasticity/TestPrestress.cpp index 14cf3dfc824f14383c4f79ea9b9f42b9a55d0392..61e303849bc79613814426b50addd3e2c3aafdef 100644 --- a/test/elasticity/TestPrestress.cpp +++ b/test/elasticity/TestPrestress.cpp @@ -29,7 +29,7 @@ protected: testConfig["PressureSteps"] = "1"; testConfig["DGSign"] = "-1"; testConfig["DGPenalty"] = "73"; - testConfig["PrestressSteps"] = "5"; + testConfig["PrestressSteps"] = "1"; testConfig["WithPrestress"] = "true"; testConfig["MechEpsilon"] = "1e-12"; @@ -83,11 +83,12 @@ TEST_P(PrestressTest, TestInitialValue) { INSTANTIATE_TEST_SUITE_P(ConformingBeam, PrestressTest, Values( //TestPrestressParameter({0, 0, {0.0, 0.0,-0.0005,0.0}, "BenchmarkBeam3DTet"}), - TestPrestressParameter({0, 1, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "Conforming"}), - TestPrestressParameter({1, 1, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "Conforming"}), - TestPrestressParameter({2, 1, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "Conforming"}), - TestPrestressParameter({0, 2, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "Conforming"}), - TestPrestressParameter({1, 2, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "Conforming"}) + TestPrestressParameter({0, 1, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "Conforming"}) + //, + //TestPrestressParameter({1, 1, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "Conforming"}), + //TestPrestressParameter({2, 1, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "Conforming"}), + //TestPrestressParameter({0, 2, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "Conforming"}), + //TestPrestressParameter({1, 2, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "Conforming"}) )); /* INSTANTIATE_TEST_SUITE_P(DGBeam, PrestressTest, Values( @@ -101,11 +102,12 @@ INSTANTIATE_TEST_SUITE_P(DGBeam, PrestressTest, Values( */ INSTANTIATE_TEST_SUITE_P(EGBeam, PrestressTest, Values( //TestPrestressParameter({0, 0, {0.0, 0.0,-0.0005,0.0}, "BenchmarkBeam3DTet"}), - TestPrestressParameter({0, 1, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "EG"}), - TestPrestressParameter({1, 1, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "EG"}), - TestPrestressParameter({2, 1, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "EG"}), - TestPrestressParameter({0, 2, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "EG"}), - TestPrestressParameter({1, 2, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "EG"}) + TestPrestressParameter({0, 1, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "EG"}) + //, + //TestPrestressParameter({1, 1, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "EG"}), + //TestPrestressParameter({2, 1, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "EG"}), + //TestPrestressParameter({0, 2, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "EG"}), + //TestPrestressParameter({1, 2, {10.0, 0.0, 1.0, 0.0}, "PrestressBeam", "EG"}) )); @@ -122,4 +124,4 @@ INSTANTIATE_TEST_SUITE_P(OnEllipsoid, PrestressTest, Values( int main(int argc, char **argv) { MppTest mppTest = MppTestBuilder(argc, argv).WithPPM().WithoutDefaultConfig().WithScreenLogging().WithFileLogging(); return mppTest.RUN_ALL_MPP_TESTS(); -} \ No newline at end of file +}