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.
small_displacement_thermo_mechanic_element.hpp
Go to the documentation of this file.
1 // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ `
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics
6 //
7 // License: BSD License
8 // Kratos default license: kratos/license.txt
9 //
10 // Main authors: Lorenzo Gracia
11 //
12 
13 
14 #if !defined(KRATOS_SMALL_DISPLACEMENT_THERMO_MECHANIC_ELEMENT_H_INCLUDED )
15 #define KRATOS_SMALL_DISPLACEMENT_THERMO_MECHANIC_ELEMENT_H_INCLUDED
16 
17 /* Project includes */
18 #include "includes/serializer.h"
20 
22 
24 
25 namespace Kratos
26 {
27 
29 {
30 
31 
32 
33 public:
34 
37 
38 
39 
41 
42 //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
43 
44  // Default constructor
46 
47  // Constructor 1
48  SmallDisplacementThermoMechanicElement(IndexType NewId, GeometryType::Pointer pGeometry);
49 
50  // Constructor 2
51  SmallDisplacementThermoMechanicElement(IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties);
52 
53  // Destructor
55 
56 //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
57 
58  Element::Pointer Create(IndexType NewId, NodesArrayType const& ThisNodes, PropertiesType::Pointer pProperties) const override;
59 
60 //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
61 
62  void InitializeNonLinearIteration(const ProcessInfo& rCurrentProcessInfo) override;
63 
64  void FinalizeNonLinearIteration(const ProcessInfo& rCurrentProcessInfo) override;
65 
66  void FinalizeSolutionStep(const ProcessInfo& rCurrentProcessInfo) override;
67 
68  void SaveGPStress(Matrix& rStressContainer, const Vector& StressVector, const unsigned int& VoigtSize, const unsigned int& GPoint);
69 
70  void ExtrapolateGPStress(const Matrix& StressContainer, const unsigned int& Dim, const unsigned int& VoigtSize);
71 
72 //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
73 
77  void CalculateOnIntegrationPoints(const Variable<Vector>& rVariable,
78  std::vector<Vector>& rOutput,
79  const ProcessInfo& rCurrentProcessInfo) override;
80 
84  void CalculateOnIntegrationPoints(const Variable<Matrix >& rVariable,
85  std::vector< Matrix >& rOutput,
86  const ProcessInfo& rCurrentProcessInfo) override;
87 
88 //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
89 
90 protected:
91 
92  // Member Variables
93 
94 //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
95 
96 private:
97 
98  // Serialization
99 
100  friend class Serializer;
101 
102  void save(Serializer& rSerializer) const override
103  {
105  }
106 
107  void load(Serializer& rSerializer) override
108  {
110  }
111 
112 
113 }; // Class SmallDisplacementThermoMechanicElement
114 
115 } // namespace Kratos
116 
117 #endif // KRATOS_SMALL_DISPLACEMENT_THERMO_MECHANIC_ELEMENT_H_INCLUDED defined
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
Small Displacement Element for 3D and 2D geometries.
Definition: small_displacement_element.hpp:47
Definition: small_displacement_thermo_mechanic_element.hpp:29
SmallDisplacementElement::ElementDataType ElementDataType
Type for element variables.
Definition: small_displacement_thermo_mechanic_element.hpp:36
void ExtrapolateGPStress(const Matrix &StressContainer, const unsigned int &Dim, const unsigned int &VoigtSize)
Definition: small_displacement_thermo_mechanic_element.cpp:152
void FinalizeSolutionStep(const ProcessInfo &rCurrentProcessInfo) override
Definition: small_displacement_thermo_mechanic_element.cpp:89
virtual ~SmallDisplacementThermoMechanicElement()
Definition: small_displacement_thermo_mechanic_element.cpp:40
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(SmallDisplacementThermoMechanicElement)
void FinalizeNonLinearIteration(const ProcessInfo &rCurrentProcessInfo) override
Definition: small_displacement_thermo_mechanic_element.cpp:82
Element::Pointer Create(IndexType NewId, NodesArrayType const &ThisNodes, PropertiesType::Pointer pProperties) const override
Definition: small_displacement_thermo_mechanic_element.cpp:44
void SaveGPStress(Matrix &rStressContainer, const Vector &StressVector, const unsigned int &VoigtSize, const unsigned int &GPoint)
Definition: small_displacement_thermo_mechanic_element.cpp:132
SmallDisplacementThermoMechanicElement()
Definition: small_displacement_thermo_mechanic_element.cpp:22
void InitializeNonLinearIteration(const ProcessInfo &rCurrentProcessInfo) override
Definition: small_displacement_thermo_mechanic_element.cpp:51
void CalculateOnIntegrationPoints(const Variable< Vector > &rVariable, std::vector< Vector > &rOutput, const ProcessInfo &rCurrentProcessInfo) override
Definition: small_displacement_thermo_mechanic_element.cpp:256
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307
Definition: solid_element.hpp:83