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.
process_template.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: @{KRATOS_APP_AUTHOR}
11 //
12 
13 #pragma once
14 
15 // System includes
16 @{KRATOS_SYSTEM_INCLUDES}
17 #include <string>
18 #include <iostream>
19 #include <algorithm>
20 
21 // External includes
22 @{KRATOS_EXTERNA_INCLUDES}
23 #include "includes/kratos_flags.h"
24 
25 // Project includes
26 @{KRATOS_PROJECT_INCLUDES}
27 #include "includes/define.h"
28 #include "processes/process.h"
29 #include "includes/kratos_flags.h"
30 #include "includes/element.h"
31 #include "includes/model_part.h"
33 
34 #include "spaces/ublas_space.h"
40 
41 namespace Kratos {
42 
45 
49 
53 
57 
61 
63 @{KRATOS_CLASS_TEMPLATE}
64 class @{KRATOS_NAME_CAMEL} : public @{KRATOS_CLASS_BASE} {
65 public:
66 
69 
73  KRATOS_CLASS_POINTER_DEFINITION(@{KRATOS_NAME_CAMEL});
74 
78 
79  @{KRATOS_NAME_CAMEL}() {
80  }
81 
83  virtual ~@{KRATOS_NAME_CAMEL}() {
84  }
85 
89 
90  void operator()() {
91  Execute();
92  }
93 
97 
98  virtual void Execute() {
99  }
100 
101  virtual void Clear() {
102  }
103 
107 
111 
115 
117  virtual std::string Info() const {
118  return "@{KRATOS_NAME_CAMEL}";
119  }
120 
122  virtual void PrintInfo(std::ostream& rOStream) const {
123  rOStream << "@{KRATOS_NAME_CAMEL}";
124  }
125 
127  virtual void PrintData(std::ostream& rOStream) const {
128  }
129 
133 
135 
136 protected:
137 
140 
144 
148 
152 
156 
160 
164 
166 
167 private:
168 
171 
175 
179 
183 
187 
191 
195 
197  @{KRATOS_NAME_CAMEL}& operator=(@{KRATOS_NAME_CAMEL} const& rOther);
198 
200 
201 
203 
204 }; // Class @{KRATOS_NAME_CAMEL}
205 
206 //avoiding using the macro since this has a template parameter. If there was no template plase use the KRATOS_CREATE_LOCAL_FLAG macro
207 template< unsigned int TDim,class TSparseSpace, class TDenseSpace, class TLinearSolver >
208 const Kratos::Flags @{KRATOS_NAME_CAMEL}<TDim,TSparseSpace,TDenseSpace,TLinearSolver>::PERFORM_STEP1(Kratos::Flags::Create(0));
209 
210 template< unsigned int TDim,class TSparseSpace, class TDenseSpace, class TLinearSolver >
211 const Kratos::Flags @{KRATOS_NAME_CAMEL}<TDim,TSparseSpace,TDenseSpace,TLinearSolver>::DO_EXPENSIVE_CHECKS(Kratos::Flags::Create(1));
212 
214 
217 
221 
223 template< unsigned int TDim, class TSparseSpace, class TDenseSpace, class TLinearSolver>
224 inline std::istream& operator >> (std::istream& rIStream,
225  @{KRATOS_NAME_CAMEL}<TDim,TSparseSpace,TDenseSpace,TLinearSolver>& rThis);
226 
228 template< unsigned int TDim, class TSparseSpace, class TDenseSpace, class TLinearSolver>
229 inline std::ostream& operator << (std::ostream& rOStream,
230  const @{KRATOS_NAME_CAMEL}<TDim,TSparseSpace,TDenseSpace,TLinearSolver>& rThis)
231 {
232  rThis.PrintInfo(rOStream);
233  rOStream << std::endl;
234  rThis.PrintData(rOStream);
235 
236  return rOStream;
237 }
239 
240 } // namespace Kratos.
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Definition: flags.h:58
static Flags Create(IndexType ThisPosition, bool Value=true)
Definition: flags.h:138
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
#define KRATOS_CLASS_POINTER_DEFINITION(a)
Definition: smart_pointers.h:69