13 #if !defined(KRATOS_GEO_STRUCTURAL_BASE_ELEMENT_H_INCLUDED)
14 #define KRATOS_GEO_STRUCTURAL_BASE_ELEMENT_H_INCLUDED
26 template <
unsigned int TDim,
unsigned int TNumNodes>
54 :
Element(NewId, pGeometry, pProperties)
56 mThisIntegrationMethod = this->GetIntegrationMethod();
66 PropertiesType::Pointer pProperties)
const override;
68 Element::Pointer
Create(
IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties)
const override;
70 int Check(
const ProcessInfo& rCurrentProcessInfo)
const override;
72 void Initialize(
const ProcessInfo& rCurrentProcessInfo)
override;
74 void GetDofList(DofsVectorType& rElementalDofList,
const ProcessInfo& rCurrentProcessInfo)
const override;
80 void CalculateLocalSystem(
MatrixType& rLeftHandSideMatrix,
84 void CalculateLeftHandSide(
MatrixType& rLeftHandSideMatrix,
const ProcessInfo& rCurrentProcessInfo)
override;
86 void CalculateRightHandSide(
VectorType& rRightHandSideVector,
const ProcessInfo& rCurrentProcessInfo)
override;
88 void EquationIdVector(EquationIdVectorType& rResult,
const ProcessInfo& rCurrentProcessInfo)
const override;
92 void CalculateDampingMatrix(
MatrixType& rDampingMatrix,
const ProcessInfo& rCurrentProcessInfo)
override;
94 void GetValuesVector(
Vector& rValues,
int Step = 0)
const override;
96 void GetFirstDerivativesVector(
Vector& rValues,
int Step = 0)
const override;
98 void GetSecondDerivativesVector(
Vector& rValues,
int Step = 0)
const override;
103 const std::vector<double>& rValues,
109 static constexpr
SizeType N_DOF_NODE = (TDim == 2 ? 3 : 6);
110 static constexpr
SizeType N_DOF_ELEMENT = N_DOF_NODE * TNumNodes;
156 virtual SizeType GetTotalNumberIntegrationPoints()
const;
157 virtual SizeType GetCrossNumberIntegrationPoints()
const;
158 virtual SizeType GetAlongNumberIntegrationPoints()
const;
166 virtual void GetNodalDofValuesVector(
Vector& rNodalVariableVector,
172 virtual void CalculateStiffnessMatrix(
MatrixType& rStiffnessMatrix,
const ProcessInfo& rCurrentProcessInfo);
174 virtual void CalculateAll(
MatrixType& rLeftHandSideMatrix,
177 const bool CalculateStiffnessMatrixFlag,
178 const bool CalculateResidualVectorFlag);
182 virtual void CalculateNodalCrossDirection(
Matrix& NodalCrossDirection)
const;
197 void save(
Serializer& rSerializer)
const override
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Base class for all Elements.
Definition: element.h:60
std::size_t SizeType
Definition: element.h:94
std::size_t IndexType
Definition: flags.h:74
Definition: geo_structural_base_element.hpp:28
GeoStructuralBaseElement(IndexType NewId, const NodesArrayType &ThisNodes)
Constructor using an array of nodes.
Definition: geo_structural_base_element.hpp:41
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(GeoStructuralBaseElement)
virtual ~GeoStructuralBaseElement()
Destructor.
Definition: geo_structural_base_element.hpp:60
std::vector< Vector > mStressVector
Definition: geo_structural_base_element.hpp:154
GeoStructuralBaseElement(IndexType NewId, GeometryType::Pointer pGeometry)
Constructor using Geometry.
Definition: geo_structural_base_element.hpp:47
std::size_t SizeType
The definition of the sizetype.
Definition: geo_structural_base_element.hpp:31
GeoStructuralBaseElement(IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties)
Constructor using Properties.
Definition: geo_structural_base_element.hpp:53
std::vector< ConstitutiveLaw::Pointer > mConstitutiveLawVector
Definition: geo_structural_base_element.hpp:153
GeometryData::IntegrationMethod mThisIntegrationMethod
Definition: geo_structural_base_element.hpp:151
GeoStructuralBaseElement(IndexType NewId=0)
Default Constructor.
Definition: geo_structural_base_element.hpp:38
IntegrationMethod
Definition: geometry_data.h:76
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
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
std::size_t IndexType
The definition of the index type.
Definition: key_hash.h:35
Modeler::Pointer Create(const std::string &ModelerName, Model &rModel, const Parameters ModelParameters)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:30
void SetValuesOnIntegrationPoints(TObject &dummy, const Variable< TDataType > &rVariable, const std::vector< TDataType > &values, const ProcessInfo &rCurrentProcessInfo)
Definition: add_mesh_to_python.cpp:185
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
ModelPart::NodesContainerType NodesArrayType
Definition: gid_gauss_point_container.h:42
constexpr SizeType VOIGT_SIZE_3D
Definition: geo_mechanics_application_constants.h:41
constexpr SizeType VOIGT_SIZE_2D_PLANE_STRESS
Definition: geo_mechanics_application_constants.h:42
def load(f)
Definition: ode_solve.py:307
Definition: constitutive_law.h:189
Member Variables.
Definition: geo_structural_base_element.hpp:114
double detF
Definition: geo_structural_base_element.hpp:144
double IntegrationCoefficient
Definition: geo_structural_base_element.hpp:136
Matrix B
Variables computed at each GP.
Definition: geo_structural_base_element.hpp:131
array_1d< double, TNumNodes *TDim > DisplacementVector
Properties variables.
Definition: geo_structural_base_element.hpp:120
Vector StrainVector
Constitutive Law parameters.
Definition: geo_structural_base_element.hpp:138
Matrix F
Definition: geo_structural_base_element.hpp:143
Matrix UVoigtMatrix
Auxiliary Variables.
Definition: geo_structural_base_element.hpp:148
Matrix TransformationMatrix
Definition: geo_structural_base_element.hpp:134
double HalfThickness
Definition: geo_structural_base_element.hpp:145
Matrix GradNe
Definition: geo_structural_base_element.hpp:142
Vector StressVector
Definition: geo_structural_base_element.hpp:139
Matrix NodalCrossDirection
General elemental variables.
Definition: geo_structural_base_element.hpp:128
BoundedMatrix< double, TDim, TNumNodes *TDim > NuTot
Definition: geo_structural_base_element.hpp:132
Matrix ConstitutiveMatrix
Definition: geo_structural_base_element.hpp:140
Vector DofValuesVector
Definition: geo_structural_base_element.hpp:125
array_1d< double, TNumNodes *TDim > UVector
Definition: geo_structural_base_element.hpp:123
array_1d< double, TNumNodes *TDim > VelocityVector
Definition: geo_structural_base_element.hpp:121
array_1d< double, TDim > GaussVolumeAcceleration
Definition: geo_structural_base_element.hpp:135
array_1d< double, TNumNodes *TDim > NodalVolumeAcceleration
Definition: geo_structural_base_element.hpp:122
Vector Nu
Definition: geo_structural_base_element.hpp:141