14 #if !defined(KRATOS_UPDATED_LAGRANGIAN_H_INCLUDED )
15 #define KRATOS_UPDATED_LAGRANGIAN_H_INCLUDED
158 rSerializer.
save(
"xg",
xg);
178 rSerializer.
load(
"xg",
xg);
270 Element::Pointer
Create(
IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties)
const override;
409 std::string
Info()
const override
411 std::stringstream buffer;
412 buffer <<
"MPM Element #" <<
Id();
419 rOStream <<
"MPM Element #" <<
Id();
433 std::vector<bool>& rValues,
437 std::vector<int>& rValues,
441 std::vector<double>& rValues,
449 std::vector<Vector>& rValues,
457 const std::vector<int>& rValues,
461 const std::vector<double>& rValues,
469 const std::vector<Vector>& rValues,
520 const bool CalculateStiffnessMatrixFlag,
521 const bool CalculateResidualVectorFlag);
534 GeneralVariables& rVariables,
535 const double& rIntegrationWeight,
544 GeneralVariables& rVariables,
546 const double& rIntegrationWeight,
555 GeneralVariables& rVariables,
556 const double& rIntegrationWeight);
562 GeneralVariables& rVariables,
563 const double& rIntegrationWeight,
564 const bool IsAxisymmetric =
false);
571 GeneralVariables& rVariables,
573 const double& rIntegrationWeight);
580 GeneralVariables & rVariables,
581 const double& rIntegrationWeight);
585 GeneralVariables& rVariables);
671 const bool IsAxisymmetric =
false);
687 const bool IsAxisymmetric =
false);
724 void save(
Serializer& rSerializer)
const override;
Definition: constitutive_law.h:47
StressMeasure
Definition: constitutive_law.h:69
Base class for all Elements.
Definition: element.h:60
std::size_t SizeType
Definition: element.h:94
std::vector< DofType::Pointer > DofsVectorType
Definition: element.h:100
Matrix MatrixType
Definition: element.h:90
std::vector< std::size_t > EquationIdVectorType
Definition: element.h:98
std::size_t IndexType
Definition: flags.h:74
GeometryType & GetGeometry()
Returns the reference of the geometry.
Definition: geometrical_object.h:158
IntegrationMethod
Definition: geometry_data.h:76
virtual void PrintData(std::ostream &rOStream) const
Print object's data.
Definition: geometry.h:3834
SizeType WorkingSpaceDimension() const
Definition: geometry.h:1287
IndexType Id() const
Definition: indexed_object.h:107
Large Displacement Lagrangian Element for 3D and 2D geometries. (base class)
Definition: mpm_updated_lagrangian.hpp:55
void GetValuesVector(Vector &rValues, int Step=0) const override
Definition: mpm_updated_lagrangian.cpp:1386
KRATOS_DEFINE_LOCAL_FLAG(COMPUTE_LHS_MATRIX)
ConstitutiveLaw::Pointer mConstitutiveLawVector
Definition: mpm_updated_lagrangian.hpp:495
virtual void CalculateGreenLagrangeStrain(const Matrix &rF, Vector &rStrainVector)
Definition: mpm_updated_lagrangian.cpp:1147
virtual void CalculateAndAddLHS(MatrixType &rLeftHandSideMatrix, GeneralVariables &rVariables, const double &rIntegrationWeight, const ProcessInfo &rCurrentProcessInfo)
Definition: mpm_updated_lagrangian.cpp:604
void CalculateDampingMatrix(MatrixType &rDampingMatrix, const ProcessInfo &rCurrentProcessInfo) override
Definition: mpm_updated_lagrangian.cpp:1252
virtual double & CalculateIntegrationWeight(double &rIntegrationWeight)
Definition: mpm_updated_lagrangian.cpp:1191
virtual void UpdateGaussPoint(GeneralVariables &rVariables, const ProcessInfo &rCurrentProcessInfo)
Definition: mpm_updated_lagrangian.cpp:957
void SetValuesOnIntegrationPoints(const Variable< int > &rVariable, const std::vector< int > &rValues, const ProcessInfo &rCurrentProcessInfo) override
Definition: mpm_updated_lagrangian.cpp:1626
virtual void CalculateAndAddKuum(MatrixType &rLeftHandSideMatrix, GeneralVariables &rVariables, const double &rIntegrationWeight)
Definition: mpm_updated_lagrangian.cpp:629
virtual void InitializeMaterial(const ProcessInfo &rCurrentProcessInfo)
Definition: mpm_updated_lagrangian.cpp:1024
~MPMUpdatedLagrangian() override
Destructor.
Definition: mpm_updated_lagrangian.cpp:135
virtual void FinalizeStepVariables(GeneralVariables &rVariables, const ProcessInfo &rCurrentProcessInfo)
Definition: mpm_updated_lagrangian.cpp:920
virtual void CalculateElementalSystem(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo, const bool CalculateStiffnessMatrixFlag, const bool CalculateResidualVectorFlag)
Definition: mpm_updated_lagrangian.cpp:266
virtual void CalculateAndAddInternalForces(VectorType &rRightHandSideVector, GeneralVariables &rVariables, const double &rIntegrationWeight)
Definition: mpm_updated_lagrangian.cpp:522
void GetFirstDerivativesVector(Vector &rValues, int Step=0) const override
Definition: mpm_updated_lagrangian.cpp:1409
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(MPMUpdatedLagrangian)
Counted pointer of LargeDisplacementElement.
MPMUpdatedLagrangian & operator=(MPMUpdatedLagrangian const &rOther)
Assignment operator.
Definition: mpm_updated_lagrangian.cpp:87
KRATOS_DEFINE_LOCAL_FLAG(COMPUTE_RHS_VECTOR_WITH_COMPONENTS)
void Initialize(const ProcessInfo &rCurrentProcessInfo) override
Definition: mpm_updated_lagrangian.cpp:143
virtual SizeType GetNumberOfDofs()
Definition: mpm_updated_lagrangian.hpp:507
int Check(const ProcessInfo &rCurrentProcessInfo) const override
Definition: mpm_updated_lagrangian.cpp:1713
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: mpm_updated_lagrangian.hpp:423
void AddExplicitContribution(const VectorType &rRHSVector, const Variable< VectorType > &rRHSVariable, const Variable< array_1d< double, 3 > > &rDestinationVariable, const ProcessInfo &rCurrentProcessInfo) override
This function is designed to make the element to assemble an rRHS vector identified by a variable rRH...
Definition: mpm_updated_lagrangian.cpp:1316
KRATOS_DEFINE_LOCAL_FLAG(COMPUTE_RHS_VECTOR)
virtual void CalculateAndAddRHS(VectorType &rRightHandSideVector, GeneralVariables &rVariables, Vector &rVolumeForce, const double &rIntegrationWeight, const ProcessInfo &rCurrentProcessInfo)
Definition: mpm_updated_lagrangian.cpp:465
virtual void CalculateAlmansiStrain(const Matrix &rF, Vector &rStrainVector)
Definition: mpm_updated_lagrangian.cpp:1103
KRATOS_DEFINE_LOCAL_FLAG(COMPUTE_LHS_MATRIX_WITH_COMPONENTS)
ConstitutiveLawType::StressMeasure StressMeasureType
StressMeasure from constitutive laws.
Definition: mpm_updated_lagrangian.hpp:65
std::string Info() const override
Turn back information as a string.
Definition: mpm_updated_lagrangian.hpp:409
virtual double & CalculateVolumeChange(double &rVolumeChange, GeneralVariables &rVariables)
Definition: mpm_updated_lagrangian.cpp:695
void CalculateLeftHandSide(MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo) override
Definition: mpm_updated_lagrangian.cpp:781
virtual void CalculateExplicitStresses(const ProcessInfo &rCurrentProcessInfo, GeneralVariables &rVariables)
Calculation of the Explicit Stresses from velocity gradient.
Definition: mpm_updated_lagrangian.cpp:536
ConstitutiveLaw ConstitutiveLawType
Definition: mpm_updated_lagrangian.hpp:61
double mDeterminantF0
Definition: mpm_updated_lagrangian.hpp:490
bool mFinalizedStep
Definition: mpm_updated_lagrangian.hpp:501
void CalculateRightHandSide(VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Definition: mpm_updated_lagrangian.cpp:761
ConstitutiveLawType::Pointer ConstitutiveLawPointerType
Pointer type for constitutive laws.
Definition: mpm_updated_lagrangian.hpp:63
void ResetConstitutiveLaw() override
Definition: mpm_updated_lagrangian.cpp:1052
virtual void CalculateKinematics(GeneralVariables &rVariables, const ProcessInfo &rCurrentProcessInfo)
Definition: mpm_updated_lagrangian.cpp:345
void CalculateDeformationGradient(const Matrix &rDN_DX, Matrix &rF, Matrix &rDeltaPosition, const bool IsAxisymmetric=false)
Calculation of the Deformation Gradient F.
Definition: mpm_updated_lagrangian.cpp:706
void FinalizeSolutionStep(const ProcessInfo &rCurrentProcessInfo) override
Definition: mpm_updated_lagrangian.cpp:874
virtual void InitializeSolutionStep(const ProcessInfo &rCurrentProcessInfo) override
Definition: mpm_updated_lagrangian.cpp:824
Matrix mDeformationGradientF0
Definition: mpm_updated_lagrangian.hpp:486
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: mpm_updated_lagrangian.hpp:417
GeometryType::CoordinatesArrayType CoordinatesArrayType
Definition: mpm_updated_lagrangian.hpp:69
void EquationIdVector(EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const override
Definition: mpm_updated_lagrangian.cpp:1205
Matrix & CalculateCurrentDisp(Matrix &rCurrentDisp, const ProcessInfo &rCurrentProcessInfo)
Definition: mpm_updated_lagrangian.cpp:1074
virtual void CalculateAndAddKuug(MatrixType &rLeftHandSideMatrix, GeneralVariables &rVariables, const double &rIntegrationWeight, const bool IsAxisymmetric=false)
Definition: mpm_updated_lagrangian.cpp:644
void GetSecondDerivativesVector(Vector &rValues, int Step=0) const override
Definition: mpm_updated_lagrangian.cpp:1432
GeometryData::IntegrationMethod IntegrationMethod
Type definition for integration methods.
Definition: mpm_updated_lagrangian.hpp:67
virtual void CalculateDeformationMatrix(Matrix &rB, const Matrix &rDN_DX, const Matrix &rN, const bool IsAxisymmetric=false)
Definition: mpm_updated_lagrangian.cpp:399
virtual void InitializeGeneralVariables(GeneralVariables &rVariables, const ProcessInfo &rCurrentProcessInfo)
Definition: mpm_updated_lagrangian.cpp:164
void CalculateOnIntegrationPoints(const Variable< bool > &rVariable, std::vector< bool > &rValues, const ProcessInfo &rCurrentProcessInfo) override
Definition: mpm_updated_lagrangian.cpp:1489
void DecimalCorrection(Vector &rVector)
Definition: mpm_updated_lagrangian.cpp:1469
Element::Pointer Clone(IndexType NewId, NodesArrayType const &ThisNodes) const override
Definition: mpm_updated_lagrangian.cpp:118
void CalculateMassMatrix(MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo) override
Definition: mpm_updated_lagrangian.cpp:1340
void CalculateLocalSystem(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Definition: mpm_updated_lagrangian.cpp:801
Element::Pointer Create(IndexType NewId, NodesArrayType const &ThisNodes, PropertiesType::Pointer pProperties) const override
Definition: mpm_updated_lagrangian.cpp:105
virtual void GetHistoricalVariables(GeneralVariables &rVariables)
Definition: mpm_updated_lagrangian.cpp:1454
virtual void CalculateAndAddExternalForces(VectorType &rRightHandSideVector, GeneralVariables &rVariables, Vector &rVolumeForce, const double &rIntegrationWeight)
Definition: mpm_updated_lagrangian.cpp:494
virtual void SetGeneralVariables(GeneralVariables &rVariables, ConstitutiveLaw::Parameters &rValues, const Vector &rN)
Definition: mpm_updated_lagrangian.cpp:204
MaterialPointVariables mMP
Definition: mpm_updated_lagrangian.hpp:481
MPMUpdatedLagrangian()
Empty constructor needed for serialization.
Definition: mpm_updated_lagrangian.cpp:45
void GetDofList(DofsVectorType &rElementalDofList, const ProcessInfo &rCurrentProcessInfo) const override
Definition: mpm_updated_lagrangian.cpp:1230
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
void load(std::string const &rTag, TDataType &rObject)
Definition: serializer.h:207
void save(std::string const &rTag, std::array< TDataType, TDataSize > const &rObject)
Definition: serializer.h:545
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
Short class definition.
Definition: array_1d.h:61
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307
Definition: constitutive_law.h:189
Definition: mpm_updated_lagrangian.hpp:203
double detFT
Definition: mpm_updated_lagrangian.hpp:215
double CurrentRadius
Definition: mpm_updated_lagrangian.hpp:209
Vector StressVector
Definition: mpm_updated_lagrangian.hpp:217
Matrix DN_DX
Definition: mpm_updated_lagrangian.hpp:222
Vector StrainVector
Definition: mpm_updated_lagrangian.hpp:216
double detF0
Definition: mpm_updated_lagrangian.hpp:214
StressMeasureType StressMeasure
Definition: mpm_updated_lagrangian.hpp:206
Matrix B
Definition: mpm_updated_lagrangian.hpp:218
double ReferenceRadius
Definition: mpm_updated_lagrangian.hpp:210
Matrix CurrentDisp
Definition: mpm_updated_lagrangian.hpp:226
Matrix F0
Definition: mpm_updated_lagrangian.hpp:221
Matrix F
Definition: mpm_updated_lagrangian.hpp:219
Matrix FT
Definition: mpm_updated_lagrangian.hpp:220
double detF
Definition: mpm_updated_lagrangian.hpp:213
Matrix ConstitutiveMatrix
Definition: mpm_updated_lagrangian.hpp:223
Definition: mpm_updated_lagrangian.hpp:87
double volume
Definition: mpm_updated_lagrangian.hpp:96
CoordinatesArrayType xg
Definition: mpm_updated_lagrangian.hpp:90
array_1d< double, 3 > acceleration
Definition: mpm_updated_lagrangian.hpp:103
double density
Definition: mpm_updated_lagrangian.hpp:94
array_1d< double, 3 > velocity
Definition: mpm_updated_lagrangian.hpp:101
double equivalent_plastic_strain
Definition: mpm_updated_lagrangian.hpp:120
double delta_plastic_strain
Definition: mpm_updated_lagrangian.hpp:114
double accumulated_plastic_volumetric_strain
Definition: mpm_updated_lagrangian.hpp:122
double mass
Definition: mpm_updated_lagrangian.hpp:92
array_1d< double, 3 > displacement
Definition: mpm_updated_lagrangian.hpp:99
array_1d< double, 3 > volume_acceleration
Definition: mpm_updated_lagrangian.hpp:106
Vector almansi_strain_vector
Definition: mpm_updated_lagrangian.hpp:111
double delta_plastic_deviatoric_strain
Definition: mpm_updated_lagrangian.hpp:118
double delta_plastic_volumetric_strain
Definition: mpm_updated_lagrangian.hpp:116
Vector cauchy_stress_vector
Definition: mpm_updated_lagrangian.hpp:109
MaterialPointVariables()
Definition: mpm_updated_lagrangian.hpp:126
double accumulated_plastic_deviatoric_strain
Definition: mpm_updated_lagrangian.hpp:124