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.
compressible_potential_flow_application.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: Riccardo Rossi, Inigo Lopez and Marc Nunez
12 //
13 
14 #if !defined(KRATOS_COMPRESSIBLE_POTENTIAL_FLOW_APPLICATION_H_INCLUDED )
15 #define KRATOS_COMPRESSIBLE_POTENTIAL_FLOW_APPLICATION_H_INCLUDED
16 
17 // System includes
18 
19 // External includes
20 
21 // Project includes
22 #include "includes/define.h"
24 #include "includes/variables.h"
37 namespace Kratos {
38 
41 
43 
45 class KRATOS_API(COMPRESSIBLE_POTENTIAL_FLOW_APPLICATION) KratosCompressiblePotentialFlowApplication : public KratosApplication {
46 public:
49 
52 
56 
59 
62 
66 
67  void Register() override;
68 
72 
74  std::string Info() const override
75  {
76  return "KratosCompressiblePotentialFlowApplication";
77  }
78 
80  void PrintInfo(std::ostream& rOStream) const override
81  {
82  rOStream << Info();
83  PrintData(rOStream);
84  }
85 
87  void PrintData(std::ostream& rOStream) const override
88  {
89  KRATOS_WATCH("in my application");
91 
92  rOStream << "Variables:" << std::endl;
94  rOStream << std::endl;
95  rOStream << "Elements:" << std::endl;
96  KratosComponents<Element>().PrintData(rOStream);
97  rOStream << std::endl;
98  rOStream << "Conditions:" << std::endl;
99  KratosComponents<Condition>().PrintData(rOStream);
100  }
101 
103 
104 private:
107 
108  const IncompressiblePotentialFlowElement<2, 3> mIncompressiblePotentialFlowElement2D3N;
109  const IncompressiblePotentialFlowElement<3, 4> mIncompressiblePotentialFlowElement3D4N;
110  const CompressiblePotentialFlowElement<2, 3> mCompressiblePotentialFlowElement2D3N;
111  const CompressiblePotentialFlowElement<3, 4> mCompressiblePotentialFlowElement3D4N;
112  const IncompressiblePerturbationPotentialFlowElement<2, 3> mIncompressiblePerturbationPotentialFlowElement2D3N;
113  const IncompressiblePerturbationPotentialFlowElement<3, 4> mIncompressiblePerturbationPotentialFlowElement3D4N;
114  const CompressiblePerturbationPotentialFlowElement<2, 3> mCompressiblePerturbationPotentialFlowElement2D3N;
115  const CompressiblePerturbationPotentialFlowElement<3, 4> mCompressiblePerturbationPotentialFlowElement3D4N;
116  const TransonicPerturbationPotentialFlowElement<2, 3> mTransonicPerturbationPotentialFlowElement2D3N;
117  const TransonicPerturbationPotentialFlowElement<3, 4> mTransonicPerturbationPotentialFlowElement3D4N;
118  const AdjointAnalyticalIncompressiblePotentialFlowElement<IncompressiblePotentialFlowElement<2, 3>> mAdjointAnalyticalIncompressiblePotentialFlowElement2D3N;
119  const AdjointFiniteDifferencePotentialFlowElement<IncompressiblePotentialFlowElement<2,3>> mAdjointIncompressiblePotentialFlowElement2D3N;
120  const AdjointFiniteDifferencePotentialFlowElement<IncompressiblePerturbationPotentialFlowElement<2,3>> mAdjointIncompressiblePerturbationPotentialFlowElement2D3N;
121  const AdjointFiniteDifferencePotentialFlowElement<IncompressiblePerturbationPotentialFlowElement<3,4>> mAdjointIncompressiblePerturbationPotentialFlowElement3D4N;
122  const AdjointFiniteDifferencePotentialFlowElement<CompressiblePotentialFlowElement<2,3>> mAdjointCompressiblePotentialFlowElement2D3N;
123  const EmbeddedIncompressiblePotentialFlowElement<2,3> mEmbeddedIncompressiblePotentialFlowElement2D3N;
124  const EmbeddedIncompressiblePotentialFlowElement<3,4> mEmbeddedIncompressiblePotentialFlowElement3D4N;
125  const EmbeddedCompressiblePotentialFlowElement<2,3> mEmbeddedCompressiblePotentialFlowElement2D3N;
126  const EmbeddedCompressiblePotentialFlowElement<3,4> mEmbeddedCompressiblePotentialFlowElement3D4N;
127  const EmbeddedTransonicPerturbationPotentialFlowElement<2,3> mEmbeddedTransonicPerturbationPotentialFlowElement2D3N;
128  const EmbeddedTransonicPerturbationPotentialFlowElement<3,4> mEmbeddedTransonicPerturbationPotentialFlowElement3D4N;
129  const AdjointFiniteDifferencePotentialFlowElement<EmbeddedIncompressiblePotentialFlowElement<2,3>> mAdjointEmbeddedIncompressiblePotentialFlowElement2D3N;
130  const AdjointFiniteDifferencePotentialFlowElement<EmbeddedCompressiblePotentialFlowElement<2,3>> mAdjointEmbeddedCompressiblePotentialFlowElement2D3N;
131 
132 
133  const PotentialWallCondition<2,2> mPotentialWallCondition2D2N;
134  const PotentialWallCondition<3,3> mPotentialWallCondition3D3N;
135  const AdjointPotentialWallCondition<PotentialWallCondition<2,2>> mAdjointPotentialWallCondition2D2N;
136  const AdjointPotentialWallCondition<PotentialWallCondition<3,3>> mAdjointPotentialWallCondition3D3N;
137 
141 
144 
147 
149 
150 }; // Class KratosCompressiblePotentialFlowApplication
151 
153 
154 } // namespace Kratos.
155 
156 #endif // KRATOS_COMPRESSIBLE_POTENTIAL_FLOW_APPLICATION_H_INCLUDED defined
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Definition: adjoint_analytical_incompressible_potential_flow_element.h:27
Definition: adjoint_finite_difference_potential_flow_element.h:26
Definition: adjoint_potential_wall_condition.h:23
This class defines the interface with kernel for all applications in Kratos.
Definition: kratos_application.h:91
Definition: kratos_components.h:253
virtual void PrintData(std::ostream &rOStream) const
Print object's data.
Definition: kratos_components.h:403
KratosComponents class encapsulates a lookup table for a family of classes in a generic way.
Definition: kratos_components.h:49
Short class definition.
Definition: compressible_potential_flow_application.h:45
std::string Info() const override
Turn back information as a string.
Definition: compressible_potential_flow_application.h:74
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: compressible_potential_flow_application.h:87
~KratosCompressiblePotentialFlowApplication() override
Destructor.
Definition: compressible_potential_flow_application.h:61
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: compressible_potential_flow_application.h:80
KRATOS_CLASS_POINTER_DEFINITION(KratosCompressiblePotentialFlowApplication)
Pointer definition of KratosCompressiblePotentialFlowApplication.
#define KRATOS_WATCH(variable)
Definition: define.h:806
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
KRATOS_API_EXTERN template class KratosComponents< Condition >
Definition: condition.h:1191
KRATOS_API_EXTERN template class KratosComponents< Element >
Definition: element.h:1240