KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
geo_cr_beam_element_2D2N.hpp
Go to the documentation of this file.
1 // KRATOS___
2 // // ) )
3 // // ___ ___
4 // // ____ //___) ) // ) )
5 // // / / // // / /
6 // ((____/ / ((____ ((___/ / MECHANICS
7 //
8 // License: geo_mechanics_application/license.txt
9 //
10 // Main authors: Vahid Galavi
11 //
12 
13 #if !defined(KRATOS_GEO_CR_BEAM_ELEMENT_2D2N_H_INCLUDED)
14 #define KRATOS_GEO_CR_BEAM_ELEMENT_2D2N_H_INCLUDED
15 
16 // System includes
17 
18 // External includes
19 
20 // Project includes
21 #include "../StructuralMechanicsApplication/custom_elements/cr_beam_element_2D2N.hpp"
22 #include "includes/define.h"
23 #include "includes/element.h"
24 #include "includes/serializer.h"
25 #include "includes/variables.h"
26 
27 namespace Kratos
28 {
38 class KRATOS_API(GEO_MECHANICS_APPLICATION) GeoCrBeamElement2D2N : public CrBeamElement2D2N
39 {
40 public:
42 
51  using EquationIdVectorType = BaseType::EquationIdVectorType;
52  using DofsVectorType = BaseType::DofsVectorType;
53 
55  GeoCrBeamElement2D2N(IndexType NewId, GeometryType::Pointer pGeometry);
56  GeoCrBeamElement2D2N(IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties);
57 
58  ~GeoCrBeamElement2D2N() override;
59 
67  Element::Pointer Create(IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties) const override;
68 
76  Element::Pointer Create(IndexType NewId,
77  NodesArrayType const& ThisNodes,
78  PropertiesType::Pointer pProperties) const override;
79 
80  void Initialize(const ProcessInfo& rCurrentProcessInfo) override;
81 
82  void InitializeSolutionStep(const ProcessInfo& rCurrentProcessInfo) override;
83 
84  void FinalizeSolutionStep(const ProcessInfo& rCurrentProcessInfo) override;
85 
86  void CalculateLocalSystem(MatrixType& rLeftHandSideMatrix,
87  VectorType& rRightHandSideVector,
88  const ProcessInfo& rCurrentProcessInfo) override;
89 
90  void CalculateRightHandSide(VectorType& rRightHandSideVector, const ProcessInfo& rCurrentProcessInfo) override;
91 
96  std::vector<array_1d<double, 3>>& rOutput,
97  const ProcessInfo& rCurrentProcessInfo) override;
98 
99  void ResetConstitutiveLaw() override;
100 
101 protected:
102  Vector mInternalGlobalForcesFinalized = ZeroVector(msElementSize);
103  Vector mInternalGlobalForcesFinalizedPrevious = ZeroVector(msElementSize);
104 
105 private:
106  // stores the globalized internal forces for calculation of the residual
107  bool mIsInitialization = false;
108 
109  friend class Serializer;
110  void save(Serializer& rSerializer) const override;
111  void load(Serializer& rSerializer) override;
112 };
113 
114 } // namespace Kratos
115 
116 #endif
This is a 2D-2node beam element with 2 translational dofs and 1 rotational dof per node.
Definition: cr_beam_element_2D2N.hpp:35
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 beam element with 2 translational dofs and 1 rotational dof per node based on the ...
Definition: geo_cr_beam_element_2D2N.hpp:39
GeoCrBeamElement2D2N()
Definition: geo_cr_beam_element_2D2N.hpp:54
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(GeoCrBeamElement2D2N)
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
std::size_t IndexType
Definition: binary_expression.cpp:25
Vector VectorType
Definition: geometrical_transformation_utilities.h:56
Matrix MatrixType
Definition: geometrical_transformation_utilities.h:55
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
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
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