14 #if !defined(KRATOS_GEO_TRUSS_ELEMENT_BASE_H_INCLUDED)
15 #define KRATOS_GEO_TRUSS_ELEMENT_BASE_H_INCLUDED
35 template <
unsigned int TDim,
unsigned int TNumNodes>
39 ConstitutiveLaw::Pointer mpConstitutiveLaw =
nullptr;
40 static constexpr
SizeType NDof = TDim * TNumNodes;
42 static constexpr
SizeType NUM_NODES = TNumNodes;
73 Element::Pointer
Create(
IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties)
const override;
84 PropertiesType::Pointer pProperties)
const override;
86 void EquationIdVector(EquationIdVectorType& rResult,
const ProcessInfo& rCurrentProcessInfo)
const override;
88 void GetDofList(DofsVectorType& rElementalDofList,
const ProcessInfo& rCurrentProcessInfo)
const override;
90 void Initialize(
const ProcessInfo& rCurrentProcessInfo)
override;
95 virtual void CreateElementStiffnessMatrix(
MatrixType& rLocalStiffnessMatrix,
103 std::vector<double>& rOutput,
111 std::vector<Vector>& rOutput,
118 virtual void UpdateInternalForces(FullDofVectorType& rInternalForces,
const ProcessInfo& rCurrentProcessInfo);
126 void CalculateLocalSystem(
MatrixType& rLeftHandSideMatrix,
130 void CalculateRightHandSide(
VectorType& rRightHandSideVector,
const ProcessInfo& rCurrentProcessInfo)
override;
132 void CalculateLeftHandSide(
MatrixType& rLeftHandSideMatrix,
const ProcessInfo& rCurrentProcessInfo)
override;
136 void CalculateConsistentMassMatrix(
MatrixType& rMassMatrix,
const ProcessInfo& rCurrentProcessInfo)
const;
138 void CalculateDampingMatrix(
MatrixType& rDampingMatrix,
const ProcessInfo& rCurrentProcessInfo)
override;
149 void AddExplicitContribution(
const VectorType& rRHSVector,
163 void AddExplicitContribution(
const VectorType& rRHSVector,
168 void GetValuesVector(
Vector& rValues,
int Step = 0)
const override;
170 void GetSecondDerivativesVector(
Vector& rValues,
int Step = 0)
const override;
172 void GetFirstDerivativesVector(
Vector& rValues,
int Step = 0)
const override;
174 int Check(
const ProcessInfo& rCurrentProcessInfo)
const override;
179 double CalculateGreenLagrangeStrain()
const;
207 double ReturnTangentModulus1D(
const ProcessInfo& rCurrentProcessInfo);
209 void FinalizeSolutionStep(
const ProcessInfo& rCurrentProcessInfo)
override;
216 void CalculateLumpedMassVector(
VectorType& rMassVector,
const ProcessInfo& rCurrentProcessInfo)
const override;
219 void save(
Serializer& rSerializer)
const override;
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
std::vector< std::size_t > EquationIdVectorType
Definition: element.h:98
std::size_t IndexType
Definition: flags.h:74
This is a 2D-2node truss element with 2 translational dofs per node.
Definition: geo_truss_element_base.hpp:37
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(GeoTrussElementBase)
void CalculateGeometricStiffnessMatrix(BoundedMatrix< double, TDim *TNumNodes, TDim *TNumNodes > &rGeometricStiffnessMatrix, const ProcessInfo &rCurrentProcessInfo)
This function assembles the geometric stiffness part of the total stiffness matrix.
void CalculateElasticStiffnessMatrix(MatrixType &rElasticStiffnessMatrix, const ProcessInfo &rCurrentProcessInfo)
This function assembles the elastic stiffness part of the total stiffness matrix.
void CreateTransformationMatrix(BoundedMatrix< double, TDim *TNumNodes, TDim *TNumNodes > &rRotationMatrix)
This function calculates the transformation matrix to globalize vectors and/or matrices.
virtual void WriteTransformationCoordinates(FullDofVectorType &rReferenceCoordinates)
This function calculates the current nodal postion for the transformation matrix.
GeoTrussElementBase()
Definition: geo_truss_element_base.hpp:60
This defines the geometrical object, base definition of the element and condition entities.
Definition: geometrical_object.h:58
Geometry base class.
Definition: geometry.h:71
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
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
std::size_t IndexType
The definition of the index type.
Definition: key_hash.h:35
#define DIM
Definition: logging_settings.hpp:38
std::size_t IndexType
Definition: binary_expression.cpp:25
Modeler::Pointer Create(const std::string &ModelerName, Model &rModel, const Parameters ModelParameters)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:30
std::size_t SizeType
Definition: nurbs_utilities.h:41
pybind11::list CalculateOnIntegrationPoints(TObject &dummy, const Variable< TDataType > &rVariable, const ProcessInfo &rProcessInfo)
Definition: add_mesh_to_python.cpp:142
TDataType Calculate(GeometryType &dummy, const Variable< TDataType > &rVariable)
Definition: add_geometries_to_python.cpp:103
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
Properties PropertiesType
Definition: regenerate_pfem_pressure_conditions_process.h:26
Geometry< Node > GeometryType
The definition of the geometry.
Definition: mortar_classes.h:37
ModelPart::NodesContainerType NodesArrayType
Definition: gid_gauss_point_container.h:42
def load(f)
Definition: ode_solve.py:307