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.
define_embedded_wake_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 #ifndef KRATOS_DEFINE_EMBEDDED_WAKE_PROCESS_H
14 #define KRATOS_DEFINE_EMBEDDED_WAKE_PROCESS_H
15 
16 #include "includes/model_part.h"
17 #include "processes/process.h"
18 
19 namespace Kratos
20 {
21 
22  class KRATOS_API(COMPRESSIBLE_POTENTIAL_FLOW_APPLICATION) DefineEmbeddedWakeProcess : public Process
23 {
24 public:
27 
30 
31  // Constructor for DefineEmbeddedWakeProcess Process
32  DefineEmbeddedWakeProcess(ModelPart& rModelPart, ModelPart& rWakeModelPart);
33 
36 
39 
42 
44  void operator()()
45  {
46  Execute();
47  }
48 
49  void ExecuteInitialize() override;
50 
51  void Execute() override;
52 
54  std::string Info() const override
55  {
56  return "DefineEmbeddedWakeProcess";
57  }
58 
60  void PrintInfo(std::ostream& rOStream) const override
61  {
62  rOStream << "DefineEmbeddedWakeProcess";
63  }
64 
66  void PrintData(std::ostream& rOStream) const override
67  {
68  this->PrintInfo(rOStream);
69  }
70 
71 private:
74 
75 
79 
80  ModelPart& mrModelPart;
81  ModelPart& mrWakeModelPart;
82 
83  void ComputeDistanceToWake();
84 
85  void MarkWakeElements();
86 
87  void ComputeTrailingEdgeNode();
88 
89  ModelPart::NodeType::Pointer pGetTrailingEdgeNode();
90 
91 }; // Class Process
92 } // namespace Kratos
93 
94 
95 #endif // KRATOS_DEFINE_EMBEDDED_WAKE_PROCESS_H
void ExecuteInitialize() override
Definition: periodic_interface_process.hpp:37
Definition: define_embedded_wake_process.h:23
DefineEmbeddedWakeProcess & operator=(DefineEmbeddedWakeProcess const &rOther)=delete
Assignment operator.
~DefineEmbeddedWakeProcess()=default
Destructor.
KRATOS_CLASS_POINTER_DEFINITION(DefineEmbeddedWakeProcess)
Pointer definition of Process.
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: define_embedded_wake_process.h:66
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: define_embedded_wake_process.h:60
DefineEmbeddedWakeProcess(DefineEmbeddedWakeProcess const &rOther)=delete
Copy constructor.
void operator()()
This operator is provided to call the process as a function and simply calls the Execute method.
Definition: define_embedded_wake_process.h:44
std::string Info() const override
Turn back information as a string.
Definition: define_embedded_wake_process.h:54
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