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.
truss_element_linear_3D2N.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 // Project includes
20 #include "includes/define.h"
21 #include "includes/variables.h"
22 
23 namespace Kratos {
32 class KRATOS_API(STRUCTURAL_MECHANICS_APPLICATION) TrussElementLinear3D2N : public TrussElement3D2N
33 {
34 public:
36 
39  GeometryType::Pointer pGeometry);
41  GeometryType::Pointer pGeometry,
42  PropertiesType::Pointer pProperties);
43 
44 
45  ~TrussElementLinear3D2N() override;
46 
54  Element::Pointer Create(
55  IndexType NewId,
56  GeometryType::Pointer pGeom,
57  PropertiesType::Pointer pProperties
58  ) const override;
59 
67  Element::Pointer Create(
68  IndexType NewId,
69  NodesArrayType const& ThisNodes,
70  PropertiesType::Pointer pProperties
71  ) const override;
72 
73  void CalculateRightHandSide(
74  VectorType& rRightHandSideVector,
75  const ProcessInfo& rCurrentProcessInfo) override;
76 
77  void CalculateLeftHandSide(
78  MatrixType& rLeftHandSideMatrix,
79  const ProcessInfo& rCurrentProcessInfo) override;
80 
85  void AddPrestressLinear(VectorType& rRightHandSideVector);
86 
88  const Variable<array_1d<double, 3 > >& rVariable,
89  std::vector< array_1d<double, 3 > >& rOutput,
90  const ProcessInfo& rCurrentProcessInfo) override;
91 
93  const Variable<Vector>& rVariable, std::vector<Vector>& rOutput,
94  const ProcessInfo& rCurrentProcessInfo) override;
95 
100  CreateElementStiffnessMatrix(const ProcessInfo& rCurrentProcessInfo) override;
101 
106  void WriteTransformationCoordinates(
107  BoundedVector<double,msLocalSize>& rReferenceCoordinates) override;
108 
112  double CalculateLinearStrain();
113 
114 
120  void UpdateInternalForces(
121  BoundedVector<double,msLocalSize>& rInternalForces, const ProcessInfo& rCurrentProcessInfo) override;
122 
123  void FinalizeSolutionStep(const ProcessInfo& rCurrentProcessInfo) override;
124 
125 private:
126 
127  friend class Serializer;
128  void save(Serializer& rSerializer) const override;
129  void load(Serializer& rSerializer) override;
130 };
131 
132 
133 }
Definition: amatrix_interface.h:41
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
This is a 3D-2node truss element with 3 translational dofs per node.
Definition: truss_element_3D2N.hpp:34
This is a linear 3D-2node truss element with 3 translational dofs per node inheriting from TrussEleme...
Definition: truss_element_linear_3D2N.hpp:33
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(TrussElementLinear3D2N)
TrussElementLinear3D2N()
Definition: truss_element_linear_3D2N.hpp:37
void CalculateOnIntegrationPoints(const Variable< array_1d< double, 3 > > &rVariable, std::vector< array_1d< double, 3 > > &rOutput, const ProcessInfo &rCurrentProcessInfo) override
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
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
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
ModelPart::NodesContainerType NodesArrayType
Definition: gid_gauss_point_container.h:42
def load(f)
Definition: ode_solve.py:307