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.
cable_element_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
24 {
32 class KRATOS_API(STRUCTURAL_MECHANICS_APPLICATION) CableElement3D2N : public TrussElement3D2N
33 {
34 
35 public:
37 
38 
39 
42  GeometryType::Pointer pGeometry);
44  GeometryType::Pointer pGeometry,
45  PropertiesType::Pointer pProperties);
46 
47 
48  ~CableElement3D2N() override;
49 
57  Element::Pointer Create(
58  IndexType NewId,
59  GeometryType::Pointer pGeom,
60  PropertiesType::Pointer pProperties
61  ) const override;
62 
70  Element::Pointer Create(
71  IndexType NewId,
72  NodesArrayType const& ThisNodes,
73  PropertiesType::Pointer pProperties
74  ) const override;
75 
77  CreateElementStiffnessMatrix(const ProcessInfo& rCurrentProcessInfo) override;
78 
79  void CalculateRightHandSide(
80  VectorType& rRightHandSideVector,
81  const ProcessInfo& rCurrentProcessInfo) override;
82 
87  void UpdateInternalForces(BoundedVector<double,msLocalSize>& rinternalForces, const ProcessInfo& rCurrentProcessInfo) override;
88 
89 
91  const Variable<array_1d<double, 3>>& rVariable,
92  std::vector<array_1d<double, 3>>& rOutput,
93  const ProcessInfo& rCurrentProcessInfo) override;
94 
96  const Variable<Vector>& rVariable, std::vector<Vector>& rOutput,
97  const ProcessInfo& rCurrentProcessInfo) override;
98 
99 private:
100  // boolean for the cable --> does not resist to compression
101  bool mIsCompressed;
102 
103  friend class Serializer;
104  void save(Serializer& rSerializer) const override;
105  void load(Serializer& rSerializer) override;
106 };
107 
108 }
This is a 3D-2node cable element with 3 translational dofs per node inheriting from the TrussElement3...
Definition: cable_element_3D2N.hpp:33
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(CableElement3D2N)
CableElement3D2N()
Definition: cable_element_3D2N.hpp:40
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
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
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