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.
compute_wing_section_variable_process.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: Marc Nunez
11 //
12 //
13 
14 #if !defined(KRATOS_COMPUTE_WING_SECTION_VARIABLE_PROCESS_INCLUDED)
15 #define KRATOS_COMPUTE_WING_SECTION_VARIABLE_PROCESS_INCLUDED
16 
17 // Project includes
18 #include "includes/define.h"
19 #include "processes/process.h"
20 #include "includes/model_part.h"
21 
22 namespace Kratos
23 {
24 
26 {
27  constexpr static bool EmbeddedRun = false;
28  constexpr static bool BodyFittedRun = true;
29 };
30 
33 
34 template<bool TRunType>
35 class KRATOS_API(COMPRESSIBLE_POTENTIAL_FLOW_APPLICATION) ComputeWingSectionVariableProcess
36  : public Process
37 {
38 public:
41 
44 
48 
51  ModelPart& rModelPart,
52  ModelPart& rSectionModelPart,
53  const array_1d<double,3>& rVersor,
54  const array_1d<double,3>& rOrigin,
55  const std::vector<std::string>& rVariableStringArray);
56 
58  ModelPart& rModelPart,
59  ModelPart& rSectionModelPart,
60  const array_1d<double,3>& rVersor,
61  const array_1d<double,3>& rOrigin);
62 
65  {
66  }
67 
68 
72 
74  void operator()()
75  {
76  Execute();
77  }
78 
79 
83 
84  void Execute() override;
85 
86  void ExecuteInitialize() override;
87 
91 
93  std::string Info() const override
94  {
95  return "ComputeWingSectionVariableProcess";
96  }
97 
99  void PrintInfo(std::ostream& rOStream) const override
100  {
101  rOStream << "ComputeWingSectionVariableProcess";
102  }
103 
105  void PrintData(std::ostream& rOStream) const override
106  {
107  }
109 
110 private:
113 
114  ModelPart& mrModelPart; // The main model part
115  ModelPart& mrSectionModelPart; // The newly crated section model part
116  array_1d<double,3> mrVersor; // The plane normal
117  array_1d<double,3> mrOrigin; // A point of the plane
118  std::vector<const Variable<array_1d<double, 3>>*> mArrayVariablesList;
119  std::vector<const Variable<double>*> mDoubleVariablesList;
120 
122 
125 
132  void StoreVariableList(const std::vector<std::string>& rVariableStringArray);
133 
141  void AssignNodalVariablesFromContainer(ModelPart::NodeType::Pointer pNode,
142  GeometricalObject rContainer);
143 
146 
148  //ComputeWingSectionVariableProcess(ComputeWingSectionVariableProcess const& rOther);
149 
150 
152 
153 }; // Class ComputeWingSectionVariableProcess
154 
156 } // namespace Kratos.
157 
158 #endif // KRATOS_COMPUTE_NODAL_VALUE_PROCESS_INCLUDED defined
159 
160 
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
void ExecuteInitialize() override
Definition: periodic_interface_process.hpp:37
Definition: compute_wing_section_variable_process.h:37
void operator()()
This operator is provided to call the process as a function and simply calls the Execute method.
Definition: compute_wing_section_variable_process.h:74
~ComputeWingSectionVariableProcess() override
Destructor.
Definition: compute_wing_section_variable_process.h:64
void Execute() override
Execute method is used to execute the Process algorithms.
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: compute_wing_section_variable_process.h:105
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: compute_wing_section_variable_process.h:99
KRATOS_CLASS_POINTER_DEFINITION(ComputeWingSectionVariableProcess)
Pointer definition of ComputeWingSectionVariableProcess.
std::string Info() const override
Turn back information as a string.
Definition: compute_wing_section_variable_process.h:93
This defines the geometrical object, base definition of the element and condition entities.
Definition: geometrical_object.h:58
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
The base class for all processes in Kratos.
Definition: process.h:49
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
Definition: compute_wing_section_variable_process.h:26
constexpr static bool BodyFittedRun
Definition: compute_wing_section_variable_process.h:28
constexpr static bool EmbeddedRun
Definition: compute_wing_section_variable_process.h:27