From 4bacf9fe5cdd62ea4e50346291f12710dfcc6fb2 Mon Sep 17 00:00:00 2001 From: Christian Wieners <wieners@pde13.cluster.math.kit.edu> Date: Wed, 26 Mar 2025 14:19:33 +0100 Subject: [PATCH] i.. Z --- src/elasticity/MainElasticity.cpp | 1 + src/elasticity/solvers/StaticSolver.cpp | 10 ++++++++++ test/elasticity/TestPrestress.cpp | 26 +++++++++++++------------ 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/elasticity/MainElasticity.cpp b/src/elasticity/MainElasticity.cpp index bad17c051..e8f9aad63 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 3602e6b8d..96dc52f62 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 14cf3dfc8..61e303849 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 +} -- GitLab