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_extensions.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 // Main authors:
11 //
12 //
13 
14 #if !defined(KRATOS_ADJOINT_EXTENSIONS_INCLUDED)
15 #define KRATOS_ADJOINT_EXTENSIONS_INCLUDED
16 
17 // System includes
18 #include <iosfwd>
19 #include <vector>
20 
21 // Project includes
22 #include "includes/define.h"
24 
25 namespace Kratos
26 {
27 
30 
37 {
38 public:
40 
42  {
43  }
44 
45  virtual void GetFirstDerivativesVector(std::size_t NodeId,
46  std::vector<IndirectScalar<double>>& rVector,
47  std::size_t Step)
48  {
49  }
50 
51  virtual void GetSecondDerivativesVector(std::size_t NodeId,
52  std::vector<IndirectScalar<double>>& rVector,
53  std::size_t Step)
54  {
55  }
56 
57  virtual void GetAuxiliaryVector(std::size_t NodeId,
58  std::vector<IndirectScalar<double>>& rVector,
59  std::size_t Step)
60  {
61  }
62 
63  virtual void GetFirstDerivativesVariables(std::vector<VariableData const*>& rVariables) const
64  {
65  }
66 
67  virtual void GetSecondDerivativesVariables(std::vector<VariableData const*>& rVariables) const
68  {
69  }
70 
71  virtual void GetAuxiliaryVariables(std::vector<VariableData const*>& rVariables) const
72  {
73  }
74 
75  virtual std::ostream& Print(std::ostream& os) const
76  {
77  return os;
78  }
79 
80 private:
81  friend class Serializer;
82 
83  void save(Serializer& rSerializer) const
84  {
85  }
86 
87  void load(Serializer& rSerializer)
88  {
89  }
90 };
91 
93 
94 } // namespace Kratos.
95 
96 #endif // KRATOS_ADJOINT_EXTENSIONS_INCLUDED defined
Interface extensions for adjoint elements and conditions.
Definition: adjoint_extensions.h:37
virtual void GetSecondDerivativesVector(std::size_t NodeId, std::vector< IndirectScalar< double >> &rVector, std::size_t Step)
Definition: adjoint_extensions.h:51
virtual ~AdjointExtensions()
Definition: adjoint_extensions.h:41
virtual void GetSecondDerivativesVariables(std::vector< VariableData const * > &rVariables) const
Definition: adjoint_extensions.h:67
virtual void GetFirstDerivativesVector(std::size_t NodeId, std::vector< IndirectScalar< double >> &rVector, std::size_t Step)
Definition: adjoint_extensions.h:45
virtual void GetAuxiliaryVector(std::size_t NodeId, std::vector< IndirectScalar< double >> &rVector, std::size_t Step)
Definition: adjoint_extensions.h:57
virtual void GetFirstDerivativesVariables(std::vector< VariableData const * > &rVariables) const
Definition: adjoint_extensions.h:63
virtual void GetAuxiliaryVariables(std::vector< VariableData const * > &rVariables) const
Definition: adjoint_extensions.h:71
KRATOS_CLASS_POINTER_DEFINITION(AdjointExtensions)
virtual std::ostream & Print(std::ostream &os) const
Definition: adjoint_extensions.h:75
Wrapper for a function which behaves like an arithmetic type.
Definition: indirect_scalar.h:45
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307