10 #if !defined(KRATOS_RIGID_BODY_ELEMENT_H_INCLUDED )
11 #define KRATOS_RIGID_BODY_ELEMENT_H_INCLUDED
107 pProcessInfo=&rProcessInfo;
112 return *pProcessInfo;
120 pProcessInfo=&rProcessInfo;
177 RigidBodyElement(
IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties, NodesContainerType::Pointer pNodes);
217 void GetDofList(DofsVectorType& rElementalDofList,
const ProcessInfo& rCurrentProcessInfo)
const override;
222 void EquationIdVector(EquationIdVectorType& rResult,
const ProcessInfo& rCurrentProcessInfo)
const override;
227 void GetValuesVector(
Vector& rValues,
int Step = 0)
const override;
232 void GetFirstDerivativesVector(
Vector& rValues,
int Step = 0)
const override;
237 void GetSecondDerivativesVector(
Vector& rValues,
int Step = 0)
const override;
246 void Initialize(
const ProcessInfo& rCurrentProcessInfo)
override;
256 void InitializeNonLinearIteration(
const ProcessInfo& rCurrentProcessInfo)
override;
261 void FinalizeNonLinearIteration(
const ProcessInfo& rCurrentProcessInfo)
override;
267 void FinalizeSolutionStep(
const ProcessInfo& rCurrentProcessInfo)
override;
287 void CalculateRightHandSide(
VectorType& rRightHandSideVector,
const ProcessInfo& rCurrentProcessInfo)
override;
296 void CalculateLeftHandSide(
MatrixType& rLeftHandSideMatrix,
const ProcessInfo& rCurrentProcessInfo)
override;
306 void CalculateSecondDerivativesContributions(
MatrixType& rLeftHandSideMatrix,
316 void CalculateSecondDerivativesLHS(
MatrixType& rLeftHandSideMatrix,
326 void CalculateSecondDerivativesRHS(
VectorType& rRightHandSideVector,
360 int Check(
const ProcessInfo& rCurrentProcessInfo)
const override;
374 std::string
Info()
const override
376 std::stringstream buffer;
377 buffer <<
"Rigid Body Element #" << Id();
384 rOStream <<
"Rigid Body Element #" << Id();
390 GetGeometry().PrintData(rOStream);
431 virtual void InitializeSystemMatrices(
MatrixType& rLeftHandSideMatrix,
433 Flags& rCalculationFlags);
450 virtual void CalculateAndAddLHS(
MatrixType& rLeftHandSideMatrix,
456 virtual void CalculateAndAddRHS(
VectorType& rRightHandSideVector,
462 virtual void CalculateAndAddExternalForces(
VectorType& rRightHandSideVector,
468 virtual void CalculateAndAddInertiaLHS(
MatrixType& rLeftHandSideMatrix,
474 virtual void CalculateAndAddInertiaRHS(
VectorType& rRightHandSideVector,
481 virtual void GetTimeIntegrationParameters(
double& rP0,
double& rP1,
double& rP2,
493 virtual void CalculateRotationLinearPartTensor(
ArrayType& rRotationVector,
Matrix& rRotationTensor);
499 virtual void UpdateRigidBodyNodes(
const ProcessInfo& rCurrentProcessInfo);
504 virtual SizeType GetDofsSize()
const;
544 virtual void save(
Serializer& rSerializer)
const override;
Definition: beam_math_utilities.hpp:31
Base class for all Elements.
Definition: element.h:60
std::size_t SizeType
Definition: element.h:94
std::size_t SizeType
Definition: geometry_data.h:173
void resize(std::size_t NewSize1, std::size_t NewSize2, bool preserve=0)
Definition: amatrix_interface.h:224
This class defines the node.
Definition: node.h:65
A sorted associative container similar to an STL set, but uses a vector to store pointers to its data...
Definition: pointer_vector_set.h:72
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
Rigid Body Element for 3D space dimension.
Definition: rigid_body_element.hpp:48
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: rigid_body_element.hpp:382
KRATOS_DEFINE_LOCAL_FLAG(COMPUTE_LHS_MATRIX)
std::string Info() const override
Turn back information as a string.
Definition: rigid_body_element.hpp:374
Quaternion< double > QuaternionType
Type definition for quaternion.
Definition: rigid_body_element.hpp:56
GeometryData::SizeType SizeType
Type for size.
Definition: rigid_body_element.hpp:62
BeamMathUtils< double > BeamMathUtilsType
Definition: rigid_body_element.hpp:54
QuaternionType mInitialLocalQuaternion
Definition: rigid_body_element.hpp:408
array_1d< double, 3 > ArrayType
Type of vector.
Definition: rigid_body_element.hpp:64
KRATOS_DEFINE_LOCAL_FLAG(COMPUTE_RHS_VECTOR)
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: rigid_body_element.hpp:388
PointerVectorSet< NodeType, IndexedObject > NodesContainerType
Type for nodes container.
Definition: rigid_body_element.hpp:60
Node NodeType
Type for nodes.
Definition: rigid_body_element.hpp:58
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(RigidBodyElement)
Counted pointer of RigidBodyElement.
NodesContainerType::Pointer mpNodes
Definition: rigid_body_element.hpp:410
RigidBodyElement()
Serializer constructor.
Definition: rigid_body_element.hpp:170
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
Modeler::Pointer Create(const std::string &ModelerName, Model &rModel, const Parameters ModelParameters)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:30
void InitializeSolutionStep(ConstructionUtility &rThisUtil, std::string ThermalSubModelPartName, std::string MechanicalSubModelPartName, std::string HeatFluxSubModelPartName, std::string HydraulicPressureSubModelPartName, bool thermal_conditions, bool mechanical_conditions, int phase)
Definition: add_custom_utilities_to_python.cpp:45
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
KratosZeroVector< double > ZeroVector
Definition: amatrix_interface.h:561
KratosZeroMatrix< double > ZeroMatrix
Definition: amatrix_interface.h:559
ModelPart::NodesContainerType NodesArrayType
Definition: gid_gauss_point_container.h:42
T & noalias(T &TheMatrix)
Definition: amatrix_interface.h:484
int dimension
Definition: isotropic_damage_automatic_differentiation.py:123
def load(f)
Definition: ode_solve.py:307
Definition: rigid_body_element.hpp:92
const ProcessInfo & GetProcessInfo()
Definition: rigid_body_element.hpp:110
Matrix DeltaPosition
Definition: rigid_body_element.hpp:103
ArrayType VolumeForce
Definition: rigid_body_element.hpp:102
RigidBodyProperties RigidBody
Definition: rigid_body_element.hpp:101
void SetProcessInfo(const ProcessInfo &rProcessInfo)
Definition: rigid_body_element.hpp:105
void Initialize(const unsigned int &dimension, const ProcessInfo &rProcessInfo)
Definition: rigid_body_element.hpp:115
Definition: rigid_body_element.hpp:134
Flags CalculationFlags
Definition: rigid_body_element.hpp:144
void SetRightHandSideVector(VectorType &rRightHandSideVector)
Definition: rigid_body_element.hpp:151
void SetLeftHandSideMatrix(MatrixType &rLeftHandSideMatrix)
Definition: rigid_body_element.hpp:149
MatrixType & GetLeftHandSideMatrix()
Definition: rigid_body_element.hpp:157
VectorType & GetRightHandSideVector()
Definition: rigid_body_element.hpp:159
Definition: rigid_body_element.hpp:83
Matrix InertiaTensor
Definition: rigid_body_element.hpp:85
double Mass
Definition: rigid_body_element.hpp:84