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.
adjoint_small_displacement_element.h
Go to the documentation of this file.
1 // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ `
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics
6 //
7 // License: BSD License
8 // license: OptimizationApplication/license.txt
9 //
10 // Main authors: Reza Najian Asl
11 //
12 
13 #if !defined(KRATOS_ADJOINT_SMALL_DISPLACEMENT_ELEMENT_H_INCLUDED )
14 #define KRATOS_ADJOINT_SMALL_DISPLACEMENT_ELEMENT_H_INCLUDED
15 
16 // System includes
17 
18 // External includes
19 
20 // Project includes
21 #include "includes/define.h"
22 #include "includes/element.h"
24 #include "utilities/geometry_utilities.h"
26 #include "includes/variables.h"
28 
29 
30 namespace Kratos
31 {
32 
35 
39 
43 
47 
51 
53 
55 class KRATOS_API(OPTIMIZATION_APPLICATION) AdjointSmallDisplacementElement
56  : public Element
57 {
58 public:
61 
64 
68 
70  AdjointSmallDisplacementElement(IndexType NewId, GeometryType::Pointer pGeometry, Element::Pointer pPrimal);
71  // AdjointSmallDisplacementElement(IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties);
72 
75 
76 
80 
81 
85 
86  // Element::Pointer Create(IndexType NewId, NodesArrayType const& ThisNodes, PropertiesType::Pointer pProperties) const override;
87 
88  // Element::Pointer Create(IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties) const override;
89 
90  void CalculateLocalSystem(MatrixType& rLeftHandSideMatrix, VectorType& rRightHandSideVector, const ProcessInfo& rCurrentProcessInfo) override;
91 
92  void CalculateLeftHandSide(MatrixType& rLeftHandSideMatrix, const ProcessInfo& rCurrentProcessInfo) override;
93 
94  void CalculateRightHandSide(VectorType& rRightHandSideVector, const ProcessInfo& rCurrentProcessInfo) override;
95 
96  void EquationIdVector(EquationIdVectorType& rResult, const ProcessInfo& rCurrentProcessInfo) const override;
97 
98  void GetDofList(DofsVectorType& ElementalDofList, const ProcessInfo& CurrentProcessInfo) const override;
99 
100  void GetValuesVector(VectorType &rValues, int Step = 0) const override;
101 
102  int Check(const ProcessInfo& rCurrentProcessInfo) const override;
103 
104 
108 
109 
113 
117 
121 
122 
124 
125 protected:
128 
129 
133 
134 
138 
139 
143 
144 
148 
149 
153 
154 
158 
162  Element::Pointer mpPrimalElement;
163 
167 
168  // Protected default constructor necessary for serialization
170  {
171  }
172 
174 
175 private:
178 
179 
183 
184 
188  friend class Serializer;
189 
190  void save(Serializer& rSerializer) const override
191  {
193  }
194 
195  void load(Serializer& rSerializer) override
196  {
198  }
199 
203 
204 
208 
212 
213 
217 
218 
222 
224  //AdjointSmallDisplacementElement& operator=(const AdjointSmallDisplacementElement& rOther);
225 
227  //AdjointSmallDisplacementElement(const AdjointSmallDisplacementElement& rOther);
228 
229 
231 
232 }; // Class AdjointSmallDisplacementElement
233 
235 
238 
239 
243 
244 
246 /* inline std::istream& operator >> (std::istream& rIStream,
247  AdjointSmallDisplacementElement& rThis);
248 */
250 /* inline std::ostream& operator << (std::ostream& rOStream,
251  const AdjointSmallDisplacementElement& rThis)
252  {
253  rThis.PrintInfo(rOStream);
254  rOStream << std::endl;
255  rThis.PrintData(rOStream);
256 
257  return rOStream;
258  }*/
260 
261 } // namespace Kratos.
262 
263 #endif // KRATOS_ADJOINT_SMALL_DISPLACEMENT_ELEMENT_H_INCLUDED defined
264 
265 
Short class definition.
Definition: adjoint_small_displacement_element.h:57
AdjointSmallDisplacementElement()
Definition: adjoint_small_displacement_element.h:169
Element::Pointer mpPrimalElement
Definition: adjoint_small_displacement_element.h:162
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(AdjointSmallDisplacementElement)
Counted pointer of AdjointSmallDisplacementElement.
Base class for all Elements.
Definition: element.h:60
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
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
#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