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_analytical_incompressible_potential_flow_element.h
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 //
11 // Main authors: Inigo Lopez and Marc Nunez, based on A. Geiser, M. Fusseder and R. Rossi work
12 //
13 
14 #if !defined(KRATOS_ADJOINT_ANALYTICAL_INCOMPRESSIBLE_POTENTIAL_FLOW_ELEMENT_H_INCLUDED )
15 #define KRATOS_ADJOINT_ANALYTICAL_INCOMPRESSIBLE_POTENTIAL_FLOW_ELEMENT_H_INCLUDED
16 
17 
18 // Project includes
19 #include "includes/element.h"
21 
22 namespace Kratos
23 {
24 
25 template <class TPrimalElement>
27 {
28 public:
29 
32 
34  using BaseType::NumNodes;
35  using BaseType::Dim;
39 
44 
48 
53  : AdjointBasePotentialFlowElement<TPrimalElement>(NewId){};
54 
56  typename GeometryType::Pointer pGeometry)
57  : AdjointBasePotentialFlowElement<TPrimalElement>(NewId, pGeometry){};
58 
60  typename GeometryType::Pointer pGeometry,
61  typename PropertiesType::Pointer pProperties)
62  : AdjointBasePotentialFlowElement<TPrimalElement>(NewId, pGeometry, pProperties){};
67 
72 
76 
79  {
80  BaseType::operator=(rOther);
81  Flags::operator =(rOther);
82  return *this;
83  }
84 
88 
89  Element::Pointer Create(IndexType NewId, NodesArrayType const& ThisNodes, typename PropertiesType::Pointer pProperties) const override;
90 
91  Element::Pointer Create(IndexType NewId, typename GeometryType::Pointer pGeom, typename PropertiesType::Pointer pProperties) const override;
92 
93  Element::Pointer Clone(IndexType NewId, NodesArrayType const& ThisNodes) const override;
94 
95  void CalculateSensitivityMatrix(const Variable<array_1d<double,3> >& rDesignVariable,
96  Matrix& rOutput,
97  const ProcessInfo& rCurrentProcessInfo) override;
98 
99  std::string Info() const override;
100 
101  void PrintInfo(std::ostream& rOStream) const override;
102 
103 
104 protected:
105 
106 private:
107 
108  friend class Serializer;
109 
110  void save(Serializer& rSerializer) const override;
111 
112  void load(Serializer& rSerializer) override;
113 
114 }; // Class AdjointAnalyticalIncompressiblePotentialFlowElement
115 
116 
117 } // namespace Kratos.
118 
119 #endif
Definition: adjoint_analytical_incompressible_potential_flow_element.h:27
AdjointAnalyticalIncompressiblePotentialFlowElement(AdjointAnalyticalIncompressiblePotentialFlowElement const &rOther)
Definition: adjoint_analytical_incompressible_potential_flow_element.h:66
void CalculateSensitivityMatrix(const Variable< array_1d< double, 3 > > &rDesignVariable, Matrix &rOutput, const ProcessInfo &rCurrentProcessInfo) override
Definition: adjoint_analytical_incompressible_potential_flow_element.cpp:45
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(AdjointAnalyticalIncompressiblePotentialFlowElement)
Element::Pointer Clone(IndexType NewId, NodesArrayType const &ThisNodes) const override
It creates a new element pointer and clones the previous element data.
Definition: adjoint_analytical_incompressible_potential_flow_element.cpp:37
BaseType::GeometryType GeometryType
Definition: adjoint_analytical_incompressible_potential_flow_element.h:36
AdjointAnalyticalIncompressiblePotentialFlowElement(IndexType NewId=0)
Definition: adjoint_analytical_incompressible_potential_flow_element.h:52
BaseType::NodesArrayType NodesArrayType
Definition: adjoint_analytical_incompressible_potential_flow_element.h:38
Element::Pointer Create(IndexType NewId, NodesArrayType const &ThisNodes, typename PropertiesType::Pointer pProperties) const override
It creates a new element pointer.
Definition: adjoint_analytical_incompressible_potential_flow_element.cpp:21
AdjointBasePotentialFlowElement< TPrimalElement > BaseType
Definition: adjoint_analytical_incompressible_potential_flow_element.h:33
~AdjointAnalyticalIncompressiblePotentialFlowElement() override
Definition: adjoint_analytical_incompressible_potential_flow_element.h:71
AdjointAnalyticalIncompressiblePotentialFlowElement(IndexType NewId, typename GeometryType::Pointer pGeometry)
Definition: adjoint_analytical_incompressible_potential_flow_element.h:55
AdjointAnalyticalIncompressiblePotentialFlowElement(IndexType NewId, typename GeometryType::Pointer pGeometry, typename PropertiesType::Pointer pProperties)
Definition: adjoint_analytical_incompressible_potential_flow_element.h:59
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: adjoint_analytical_incompressible_potential_flow_element.cpp:165
AdjointAnalyticalIncompressiblePotentialFlowElement & operator=(AdjointAnalyticalIncompressiblePotentialFlowElement const &rOther)
Assignment operator.
Definition: adjoint_analytical_incompressible_potential_flow_element.h:78
std::string Info() const override
Turn back information as a string.
Definition: adjoint_analytical_incompressible_potential_flow_element.cpp:157
BaseType::PropertiesType PropertiesType
Definition: adjoint_analytical_incompressible_potential_flow_element.h:37
Definition: adjoint_base_potential_flow_element.h:26
AdjointBasePotentialFlowElement & operator=(AdjointBasePotentialFlowElement const &rOther)
Assignment operator.
Definition: adjoint_base_potential_flow_element.h:82
static constexpr int NumNodes
Definition: adjoint_base_potential_flow_element.h:33
static constexpr int Dim
Definition: adjoint_base_potential_flow_element.h:34
Properties PropertiesType
Definition: element.h:80
Geometry< NodeType >::PointsArrayType NodesArrayType
definition of nodes container type, redefined from GeometryType
Definition: element.h:86
std::size_t IndexType
Definition: flags.h:74
Flags & operator=(Flags const &rOther)
Assignment operator.
Definition: flags.h:151
Geometry base class.
Definition: geometry.h:71
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
std::size_t IndexType
The definition of the index type.
Definition: key_hash.h:35
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