10 #if !defined(KRATOS_LARGE_DISPLACEMENT_BEAM_ELEMENT_H_INCLUDED)
11 #define KRATOS_LARGE_DISPLACEMENT_BEAM_ELEMENT_H_INCLUDED
108 void Initialize(
const ProcessInfo& rCurrentProcessInfo)
override;
118 void InitializeNonLinearIteration(
const ProcessInfo& rCurrentProcessInfo)
override;
123 void FinalizeNonLinearIteration(
const ProcessInfo& rCurrentProcessInfo)
override;
129 void FinalizeSolutionStep(
const ProcessInfo& rCurrentProcessInfo)
override;
149 std::vector<double>& rOutput,
170 int Check(
const ProcessInfo& rCurrentProcessInfo)
const override;
183 std::string
Info()
const override
185 std::stringstream buffer;
186 buffer <<
"Large Displacement Beam Element #" << Id();
193 rOStream <<
"Large Displacement Beam Element #" << Id();
199 GetGeometry().PrintData(rOStream);
280 void CalculateDynamicSystem( LocalSystemComponents& rLocalSystem,
286 virtual void MapToSpatialFrame(
const ElementDataType& rVariables,
Matrix& rVariable);
298 void CalculateKinematics(ElementDataType& rVariables,
299 const unsigned int& rPointNumber)
override;
304 virtual void CalculateFrameMapping(ElementDataType& rVariables,
305 const unsigned int& rPointNumber);
311 virtual void UpdateStrainVariables(ElementDataType& rVariables,
312 const unsigned int& rPointNumber);
318 void CalculateConstitutiveMatrix(ElementDataType& rVariables)
override;
324 void CalculateStressResultants(ElementDataType& rVariables,
const unsigned int& rPointNumber)
override;
330 void CalculateAndAddKuum(
MatrixType& rLeftHandSideMatrix,
331 ElementDataType& rVariables,
332 double& rIntegrationWeight)
override;
339 void CalculateAndAddKuug(
MatrixType& rLeftHandSideMatrix,
340 ElementDataType& rVariables,
341 double& rIntegrationWeight)
override;
343 virtual void CalculateAndAddKuug2(
MatrixType& rLeftHandSideMatrix,
344 ElementDataType& rVariables,
345 double& rIntegrationWeight);
350 virtual void CalculateAndAddKuuf(
MatrixType& rLeftHandSideMatrix,
351 ElementDataType& rVariables,
352 double& rIntegrationWeight);
359 virtual void CalculateAndAddFollowerForces(
VectorType& rRightHandSideVector,
360 ElementDataType& rVariables,
361 double& rIntegrationWeight);
367 void CalculateAndAddExternalForces(
VectorType& rRightHandSideVector,
368 ElementDataType& rVariables,
370 double& rIntegrationWeight)
override;
377 void CalculateAndAddInertiaLHS(
MatrixType& rLeftHandSideMatrix,
378 ElementDataType& rVariables,
380 double& rIntegrationWeight)
override;
385 void CalculateAndAddInertiaRHS(
VectorType& rRightHandSideVector,
386 ElementDataType& rVariables,
388 double& rIntegrationWeight)
override;
393 void CalculateAndAddInternalForces(
VectorType& rRightHandSideVector,
394 ElementDataType & rVariables,
395 double& rIntegrationWeight)
override;
408 void CalculateDiscreteOperator(
MatrixType& rDiscreteOperator,
409 ElementDataType& rVariables,
415 virtual void CalculateDifferentialOperator(
MatrixType& rDifferentialOperator,
416 ElementDataType& rVariables,
425 ElementDataType& rVariables);
430 double& CalculateTotalMass( SectionProperties& Section,
double& rTotalMass );
435 void CalculateInertiaDyadic(SectionProperties& rSection,
Matrix& rInertiaDyadic);
440 virtual void CalculateRotationLinearPartTensor(
Vector& rRotationVector,
Matrix& rRotationTensor);
446 void GetCurrentNodalMovements(
Vector& rValues,
const int& rNode,
unsigned int PointNumber = 0);
451 void GetCurrentNodalVelocities(
Vector& rValues,
const int& rNode,
unsigned int PointNumber = 0);
456 void GetKineticMatrix(
Matrix& rKineticMatrix,
const double& rMass,
const Matrix& rInertia);
462 virtual void CalculateExternalForcesEnergy(
double& rEnergy, ElementDataType& rVariables,
Vector& rVolumeForce,
double& rIntegrationWeight);
467 virtual void CalculateInternalForcesEnergy(
double& rEnergy, ElementDataType& rVariables,
double& rIntegrationWeight);
522 void save(
Serializer& rSerializer)
const override;
Beam Element for 2D and 3D space dimensions.
Definition: beam_element.hpp:44
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
IntegrationMethod
Definition: geometry_data.h:76
std::size_t SizeType
Definition: geometry_data.h:173
Beam Element for 3D space dimension Simo Displacement-Rotation Geometrically Exact Rod element.
Definition: large_displacement_beam_element.hpp:48
IntegrationMethod mReducedIntegrationMethod
Definition: large_displacement_beam_element.hpp:218
ConstitutiveLawType::StressMeasure StressMeasureType
StressMeasure from constitutive laws.
Definition: large_displacement_beam_element.hpp:58
std::vector< Vector > mCurrentCurvatureVectors
Definition: large_displacement_beam_element.hpp:238
GeometryData::IntegrationMethod IntegrationMethod
Type definition for integration methods.
Definition: large_displacement_beam_element.hpp:60
LargeDisplacementBeamElement()
Definition: large_displacement_beam_element.hpp:259
std::vector< QuaternionType > mFrameQuaternionsReduced
Definition: large_displacement_beam_element.hpp:248
double mInvJ0
Definition: large_displacement_beam_element.hpp:233
ConstitutiveLaw ConstitutiveLawType
Definition: large_displacement_beam_element.hpp:54
IntegrationMethod mFullIntegrationMethod
Definition: large_displacement_beam_element.hpp:223
std::string Info() const override
Turn back information as a string.
Definition: large_displacement_beam_element.hpp:183
Quaternion< double > QuaternionType
Type definition for quaternion.
Definition: large_displacement_beam_element.hpp:64
int mIterationCounter
Definition: large_displacement_beam_element.hpp:228
BeamMathUtils< double > BeamMathUtilsType
Type definition for beam utilities.
Definition: large_displacement_beam_element.hpp:62
std::vector< Vector > mPreviousCurvatureVectors
Definition: large_displacement_beam_element.hpp:243
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: large_displacement_beam_element.hpp:197
BeamElement::ElementDataType ElementDataType
Type for element variables.
Definition: large_displacement_beam_element.hpp:68
GeometryData::SizeType SizeType
Type for size.
Definition: large_displacement_beam_element.hpp:66
std::vector< QuaternionType > mFrameQuaternionsFull
Definition: large_displacement_beam_element.hpp:253
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(LargeDisplacementBeamElement)
Counted pointer of LargeDisplacementBeamElement.
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: large_displacement_beam_element.hpp:191
ConstitutiveLawType::Pointer ConstitutiveLawPointerType
Pointer type for constitutive laws.
Definition: large_displacement_beam_element.hpp:56
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
double CalculateKineticEnergy(Element &rElement)
Definition: mpm_energy_calculation_utility.cpp:60
double CalculateStrainEnergy(Element &rElement)
Definition: mpm_energy_calculation_utility.cpp:89
Modeler::Pointer Create(const std::string &ModelerName, Model &rModel, const Parameters ModelParameters)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:30
pybind11::list CalculateOnIntegrationPoints(TObject &dummy, const Variable< TDataType > &rVariable, const ProcessInfo &rProcessInfo)
Definition: add_mesh_to_python.cpp:142
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
Definition: beam_element.hpp:123