KratosMultiphysics / Kratos

Kratos Multiphysics (A.K.A Kratos) is a framework for building parallel multi-disciplinary simulation software. Modularity, extensibility and HPC are the main objectives. Kratos has BSD license and is written in C++ with extensive Python interface.
https://kratosmultiphysics.github.io/Kratos/
Other
1.02k stars 245 forks source link

[GeoMechanicsApplication] Inefficiency in U_Pw_small_strain_element.cpp #11802

Open aronnoordam opened 10 months ago

aronnoordam commented 10 months ago

In all:

mStressVector and all it required calculation steps are recalculated.

While the same results should be calculated when only recalculating the StressVector at FinalizeNonLinearIteration and at Initialize. As the StressVector should not change between FinalizeNonLinearIteration ->IntitializeSolutionStep ->InitializeNonLinearIteration

probably also when using adapting time steps and displacement is reset, the StressVector has to be recalculated

WPK4FEM commented 10 months ago

Reading a bit in U_Pw_small_strain_element.cpp confirms Aron's statement. I think this should be taken up when we are going to redo the class inheritance of the geo elements, as most elements derive from this one, ( The small_strain_U_Pw_diff_order_element does inherit directly from element, but seems to show similar implementation ) Redoing the element classes is scheduled after completing the work for thermal analysis.

aronnoordam commented 10 months ago

allright