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.
cr_beam_element_linear_2D2N.hpp
Go to the documentation of this file.
1 // KRATOS ___| | | |
2 // \___ \ __| __| | | __| __| | | __| _` | |
3 // | | | | | ( | | | | ( | |
4 // _____/ \__|_| \__,_|\___|\__|\__,_|_| \__,_|_| MECHANICS
5 //
6 // License: BSD License
7 // license: StructuralMechanicsApplication/license.txt
8 //
9 // Main authors: Klaus B. Sautter
10 //
11 
12 #pragma once
13 
14 // System includes
15 
16 // External includes
17 
18 
19 // Project includes
21 #include "includes/define.h"
22 #include "includes/variables.h"
23 #include "includes/serializer.h"
24 
25 namespace Kratos
26 {
35 class KRATOS_API(STRUCTURAL_MECHANICS_APPLICATION) CrBeamElementLinear2D2N : public CrBeamElement2D2N
36 {
37 public:
39 
40 
41  CrBeamElementLinear2D2N(IndexType NewId, GeometryType::Pointer pGeometry);
42  CrBeamElementLinear2D2N(IndexType NewId, GeometryType::Pointer pGeometry,
43  PropertiesType::Pointer pProperties);
44 
52  Element::Pointer Create(
53  IndexType NewId,
54  GeometryType::Pointer pGeom,
55  PropertiesType::Pointer pProperties
56  ) const override;
57 
65  Element::Pointer Create(
66  IndexType NewId,
67  NodesArrayType const& ThisNodes,
68  PropertiesType::Pointer pProperties
69  ) const override;
70 
71 
72  ~CrBeamElementLinear2D2N() override;
73 
74  void CalculateLocalSystem(
75  MatrixType& rLeftHandSideMatrix,
76  VectorType& rRightHandSideVector,
77  const ProcessInfo& rCurrentProcessInfo) override;
78 
79  void CalculateRightHandSide(
80  VectorType& rRightHandSideVector,
81  const ProcessInfo& rCurrentProcessInfo) override;
82 
83  void CalculateLeftHandSide(
84  MatrixType& rLeftHandSideMatrix,
85  const ProcessInfo& rCurrentProcessInfo) override;
86 
87 
91 
95  BoundedMatrix<double,msElementSize,msElementSize> CreateRotationMatrix() override;
96 
100  double CalculateLength() const override;
101 
102 
104  const Variable<array_1d<double, 3 > >& rVariable,
105  std::vector< array_1d<double, 3 > >& rOutput,
106  const ProcessInfo& rCurrentProcessInfo) override;
107 
108 protected:
109 
111 
112  // stores the globalized master stiffness matrix for reaction forces
113  Matrix mK_Master = ZeroMatrix(msElementSize,msElementSize);
114 
115 private:
116 
117  friend class Serializer;
118  void save(Serializer& rSerializer) const override;
119  void load(Serializer& rSerializer) override;
120 };
121 
122 }
This is a 2D-2node beam element with 2 translational dofs and 1 rotational dof per node.
Definition: cr_beam_element_2D2N.hpp:35
This is a linear 2D-2node beam element with 2 translational dofs and 1 rotational dof per node inheri...
Definition: cr_beam_element_linear_2D2N.hpp:36
CrBeamElementLinear2D2N()
Definition: cr_beam_element_linear_2D2N.hpp:110
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(CrBeamElementLinear2D2N)
std::size_t IndexType
Definition: flags.h:74
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
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
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
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
KratosZeroMatrix< double > ZeroMatrix
Definition: amatrix_interface.h:559
def load(f)
Definition: ode_solve.py:307