10 #if !defined(KRATOS_GEOMETRICALLY_EXACT_ROD_ELEMENT_H_INCLUDED)
11 #define KRATOS_GEOMETRICALLY_EXACT_ROD_ELEMENT_H_INCLUDED
110 void Initialize(
const ProcessInfo& rCurrentProcessInfo)
override;
127 int Check(
const ProcessInfo& rCurrentProcessInfo)
const override;
140 std::string
Info()
const override
142 std::stringstream buffer;
143 buffer <<
"Large Displacement Beam Element #" << Id();
150 rOStream <<
"Large Displacement Beam Element #" << Id();
156 GetGeometry().PrintData(rOStream);
217 void CalculateElementalSystem( LocalSystemComponents& rLocalSystem,
224 void CalculateDynamicSystem( LocalSystemComponents& rLocalSystem,
232 void InitializeElementData(ElementDataType & rVariables,
const ProcessInfo& rCurrentProcessInfo)
override;
239 void CalculateKinematics(ElementDataType& rVariables,
240 const unsigned int& rPointNumber)
override;
245 void CalculateConstitutiveMatrix(ElementDataType& rVariables)
override;
250 void CalculateFrameMapping(ElementDataType& rVariables,
251 const unsigned int& rPointNumber)
override;
257 void UpdateRotationVariables(ElementDataType& rVariables,
258 const unsigned int& rPointNumber);
263 virtual void CalculateDirectorsMappingTensor(
Matrix& rMappingTensor,
264 ElementDataType& rVariables,
272 void CalculateCurrentStrainResultantsVector(ElementDataType& rVariables,
273 Vector& rCurrentStrainResultantsVector,
274 double Alpha)
override;
279 void CalculateCurrentCurvatureVector(ElementDataType& rVariables,
280 Vector& rCurrentCurvatureVector,
281 double Alpha)
override;
287 void CalculateStressResultants(ElementDataType& rVariables,
const unsigned int& rPointNumber)
override;
294 void CalculateAndAddKuum(
MatrixType& rLeftHandSideMatrix,
295 ElementDataType& rVariables,
296 double& rIntegrationWeight)
override;
303 void CalculateAndAddKuug(
MatrixType& rLeftHandSideMatrix,
304 ElementDataType& rVariables,
305 double& rIntegrationWeight)
override;
311 void CalculateAndAddKuuf(
MatrixType& rLeftHandSideMatrix,
312 ElementDataType& rVariables,
313 double& rIntegrationWeight)
override;
320 void CalculateAndAddFollowerForces(
VectorType& rRightHandSideVector,
321 ElementDataType& rVariables,
322 double& rIntegrationWeight)
override;
328 void CalculateAndAddExternalForces(
VectorType& rRightHandSideVector,
329 ElementDataType& rVariables,
331 double& rIntegrationWeight)
override;
336 void CalculateAndAddInertiaLHS(
MatrixType& rLeftHandSideMatrix,
337 ElementDataType& rVariables,
339 double& rIntegrationWeight)
override;
345 void CalculateAndAddInertiaRHS(
VectorType& rRightHandSideVector,
346 ElementDataType& rVariables,
348 double& rIntegrationWeight)
override;
354 void CalculateAndAddInternalForces(
VectorType& rRightHandSideVector,
355 ElementDataType & rVariables,
356 double& rIntegrationWeight)
override;
362 void CalculateDiscreteOperatorN(
MatrixType& rDiscreteOperator,
363 ElementDataType& rVariables,
366 const int& rComponent);
368 void CalculateDiscreteOperatorM(
MatrixType& rDiscreteOperator,
369 ElementDataType& rVariables,
372 const int& rComponent);
377 void CalculateDifferentialOperator(
MatrixType& rDifferentialOperator,
378 ElementDataType& rVariables,
380 double alpha)
override;
387 void CalculateAlphaDirectors(
Matrix& rDirectors, ElementDataType& rVariables,
const int& rNode,
double alpha);
390 void CalculateAlphaDirectorVector(
Vector& rDirectorVector, ElementDataType& rVariables,
const int& rNode,
const int& rDirection,
double alpha);
392 void CalculateAlphaDirectorSkewSymTensor(
Matrix& rDirectorSkewSymTensor, ElementDataType& rVariables,
const int& rNode,
const int& rDirection,
double alpha);
398 void CalculateAlphaDirectorVector(
Vector& rDirectorVector, ElementDataType& rVariables,
const int& rDirection,
double alpha);
400 void CalculateAlphaDirectorSkewSymTensor(
Matrix& rDirectorSkewSymTensor, ElementDataType& rVariables,
const int& rDirection,
double alpha);
405 void CalculateDirectorDerivativesVector(
Vector& rDirectorDerivativesVector, ElementDataType& rVariables,
const int& rDirection,
double alpha);
407 void CalculateDirectorDerivativesSkewSymTensor(
Matrix& rDirectorDerivativesSkewSymTensor, ElementDataType& rVariables,
const int& rDirection,
double alpha);
413 void CalculateAlgorithmicInertia(
Matrix & rAlgorithmicInertia,
414 const Matrix& rInertiaDyadic,
415 ElementDataType & rVariables,
457 void save(
Serializer& rSerializer)
const override;
Definition: beam_math_utilities.hpp:31
Definition: constitutive_law.h:47
StressMeasure
Definition: constitutive_law.h:69
std::size_t IndexType
Definition: flags.h:74
Beam Element for 3D space dimension Romero Displacement-Rotation Geometrically Exact Rod element (bas...
Definition: geometrically_exact_rod_element.hpp:48
std::vector< Matrix > mPreviousLocalDirectors
Definition: geometrically_exact_rod_element.hpp:184
std::vector< Matrix > mInitialLocalDirectors
Definition: geometrically_exact_rod_element.hpp:174
std::string Info() const override
Turn back information as a string.
Definition: geometrically_exact_rod_element.hpp:140
GeometryData::SizeType SizeType
Type for size.
Definition: geometrically_exact_rod_element.hpp:66
std::vector< Matrix > mCurrentLocalDirectorsVelocities
Definition: geometrically_exact_rod_element.hpp:194
std::vector< Matrix > mPreviousLocalDirectorsVelocities
Definition: geometrically_exact_rod_element.hpp:199
ConstitutiveLaw ConstitutiveLawType
Definition: geometrically_exact_rod_element.hpp:54
GeometryData::IntegrationMethod IntegrationMethod
Type definition for integration methods.
Definition: geometrically_exact_rod_element.hpp:60
BeamMathUtils< double > BeamMathUtilsType
Type definition for beam utilities.
Definition: geometrically_exact_rod_element.hpp:62
ConstitutiveLawType::StressMeasure StressMeasureType
StressMeasure from constitutive laws.
Definition: geometrically_exact_rod_element.hpp:58
ConstitutiveLawType::Pointer ConstitutiveLawPointerType
Pointer type for constitutive laws.
Definition: geometrically_exact_rod_element.hpp:56
LargeDisplacementBeamEMCElement::ElementDataType ElementDataType
Type for element variables.
Definition: geometrically_exact_rod_element.hpp:68
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: geometrically_exact_rod_element.hpp:154
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(GeometricallyExactRodElement)
Counted pointer of GeometricallyExactRodElement.
std::vector< Matrix > mCurrentLocalDirectors
Definition: geometrically_exact_rod_element.hpp:179
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: geometrically_exact_rod_element.hpp:148
std::vector< Matrix > mInitialLocalDirectorsVelocities
Definition: geometrically_exact_rod_element.hpp:189
GeometricallyExactRodElement()
Definition: geometrically_exact_rod_element.hpp:205
Quaternion< double > QuaternionType
Type definition for quaternion.
Definition: geometrically_exact_rod_element.hpp:64
IntegrationMethod
Definition: geometry_data.h:76
std::size_t SizeType
Definition: geometry_data.h:173
Beam Element for 3D space dimension.
Definition: large_displacement_beam_emc_element.hpp:49
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
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
alpha
Definition: generate_convection_diffusion_explicit_element.py:113
def load(f)
Definition: ode_solve.py:307
def Alpha(n, j)
Definition: quadrature.py:93
Definition: beam_element.hpp:123