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.
📝 Description
For the setup of the tangent modulus, the TrussElementLinear3D2N uses ReturnTangentModulus1D from its base class TrussElement3D2N. TrussElementLinear3D2N intends to use a linear strain measure, TrussElement3D2N uses a Green-Lagrange strain measure. The TrussElement3D2N base class function ReturnTangentModulus1D uses Green-Lagrange strain, hence gives wrong results when used from TrussElementLinear3D2N in combination with a nonlinear constitutive law. This PR corrects that.
🆕 Changelog
Extracted common part of ReturnTangentModulus1D, which receives an additional argument representing the truss's strain value.
Made the original member function ReturnTangentModulus1Dvirtual, to allow for overriding it by class TrussElementLinear3D2N.
The base class (TrussElement3D2N) passes the Green-Lagrange strain to the newly extracted member function, whereas the derived class (TrussElementLinear3D2N) passes the linear strain.
Added two unit tests to demonstrate the effect of the above behavioral changes.
📝 Description For the setup of the tangent modulus, the
TrussElementLinear3D2N
usesReturnTangentModulus1D
from its base classTrussElement3D2N
.TrussElementLinear3D2N
intends to use a linear strain measure,TrussElement3D2N
uses a Green-Lagrange strain measure. TheTrussElement3D2N
base class functionReturnTangentModulus1D
uses Green-Lagrange strain, hence gives wrong results when used fromTrussElementLinear3D2N
in combination with a nonlinear constitutive law. This PR corrects that.🆕 Changelog
ReturnTangentModulus1D
, which receives an additional argument representing the truss's strain value.ReturnTangentModulus1D
virtual
, to allow for overriding it by classTrussElementLinear3D2N
.TrussElement3D2N
) passes the Green-Lagrange strain to the newly extracted member function, whereas the derived class (TrussElementLinear3D2N
) passes the linear strain.