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.
convection_diffusion_application.h
Go to the documentation of this file.
1 // KRATOS ___ ___ _ ___ __ ___ ___ ___ ___
2 // / __/ _ \| \| \ \ / /__| \_ _| __| __|
3 // | (_| (_) | .` |\ V /___| |) | || _|| _|
4 // \___\___/|_|\_| \_/ |___/___|_| |_| APPLICATION
5 //
6 // License: BSD License
7 // Kratos default license: kratos/license.txt
8 //
9 // Main authors: Riccardo Rossi
10 //
11 
12 #if !defined(KRATOS_KRATOS_CONVECTION_DIFFUSION_APPLICATION_H_INCLUDED )
13 #define KRATOS_KRATOS_CONVECTION_DIFFUSION_APPLICATION_H_INCLUDED
14 
15 
16 // System includes
17 #include <string>
18 #include <iostream>
19 
20 // External includes
21 
22 // Project includes
23 #include "includes/define.h"
26 
38 
43 
44 #include "includes/variables.h"
45 #include "includes/condition.h"
46 
47 
48 namespace Kratos
49 {
50 
53 
57 
61 
65 
69 
104 class KRATOS_API(CONVECTION_DIFFUSION_APPLICATION) KratosConvectionDiffusionApplication : public KratosApplication
105 {
106 public:
109 
110 
113 
117 
120 
123 
124 
128 
129 
133 
134  void Register() override;
135 
136 
137 
141 
142 
146 
147 
151 
153  std::string Info() const override
154  {
155  return "KratosConvectionDiffusionApplication";
156  }
157 
159  void PrintInfo(std::ostream& rOStream) const override
160  {
161  rOStream << Info();
162  PrintData(rOStream);
163  }
164 
166  void PrintData(std::ostream& rOStream) const override
167  {
168  KRATOS_WATCH("in KratosConvectionDiffusionApplication");
170  rOStream << "Variables:" << std::endl;
172  rOStream << std::endl;
173  rOStream << "Elements:" << std::endl;
174  KratosComponents<Element>().PrintData(rOStream);
175  rOStream << std::endl;
176  rOStream << "Conditions:" << std::endl;
177  KratosComponents<Condition>().PrintData(rOStream);
178  }
179 
180 
184 
185 
187 
188 protected:
191 
192 
196 
197 
201 
202 
206 
207 
211 
212 
216 
217 
221 
222 
224 
225 private:
228 
232 
233  const AxisymmetricEulerianConvectionDiffusionElement<2,3> mAxisymmetricEulerianConvectionDiffusion2D3N;
234  const AxisymmetricEulerianConvectionDiffusionElement<2,4> mAxisymmetricEulerianConvectionDiffusion2D4N;
235 
236  const EulerianConvectionDiffusionElement<2,3> mEulerianConvDiff2D3N;
237  const EulerianConvectionDiffusionElement<2,4> mEulerianConvDiff2D4N;
238  const EulerianConvectionDiffusionElement<3,4> mEulerianConvDiff3D4N;
239  const EulerianConvectionDiffusionElement<3,8> mEulerianConvDiff3D8N;
240  const EulerianDiffusionElement<2,3> mEulerianDiffusion2D3N;
241  const EulerianDiffusionElement<3,4> mEulerianDiffusion3D4N;
242 
243  const ConvDiff2D mConvDiff2D;
244  const ConvDiff3D mConvDiff3D;
245  const LaplacianElement mLaplacian2D3N;
246  const LaplacianElement mLaplacian3D4N;
247  const LaplacianElement mLaplacian3D8N;
248  const LaplacianElement mLaplacian3D27N;
249  const MixedLaplacianElement<2,3> mMixedLaplacianElement2D3N;
250  const MixedLaplacianElement<3,4> mMixedLaplacianElement3D4N;
251  const EmbeddedLaplacianElement<2> mEmbeddedLaplacian2D3N;
252  const EmbeddedLaplacianElement<3> mEmbeddedLaplacian3D4N;
253 
254  const AdjointDiffusionElement<LaplacianElement> mAdjointDiffusionElement2D3N;
255  const AdjointDiffusionElement<LaplacianElement> mAdjointDiffusionElement3D4N;
256 
257  const AxisymmetricThermalFace mAxisymmetricThermalFace2D2N;
258  const ThermalFace mThermalFace2D2N;
259  const ThermalFace mThermalFace3D3N;
260  const ThermalFace mThermalFace3D4N;
261  const FluxCondition<2> mFluxCondition2D2N;
262  const FluxCondition<3> mFluxCondition3D3N;
263  const FluxCondition<4> mFluxCondition3D4N;
264 
265  const AdjointThermalFace mAdjointThermalFace2D2N;
266  const AdjointThermalFace mAdjointThermalFace3D3N;
267 
268  const QSConvectionDiffusionExplicit<2,3> mQSConvectionDiffusionExplicit2D3N;
269  const QSConvectionDiffusionExplicit<3,4> mQSConvectionDiffusionExplicit3D4N;
270  const DConvectionDiffusionExplicit<2,3> mDConvectionDiffusionExplicit2D3N;
271  const DConvectionDiffusionExplicit<3,4> mDConvectionDiffusionExplicit3D4N;
272 
276 
277 
281 
282 
286 
287 
291 
292 
296 
299 
302 
303 
305 
306 }; // Class KratosConvectionDiffusionApplication
307 
309 
310 
313 
314 
318 
320 
321 
322 } // namespace Kratos.
323 
324 #endif // KRATOS_KRATOS_CONVECTION_DIFFUSION_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
Basic element for the ajdoint diffusion problem.
Definition: adjoint_diffusion_element.h:53
Heat flux Neumann condition for the ajdoint thermal diffusion problem.
Definition: adjoint_thermal_face.h:49
Axisymmetric thermal face condition Extension of the base ThermalFace class to be used in axisymmetri...
Definition: axisymmetric_thermal_face.h:43
A stabilized element for solving the convection diffusion equations in 2D.
Definition: conv_diff_2d.h:60
Short class definition.
Definition: conv_diff_3d.h:55
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
The Convection Diffusion Application contains a series of elements and conditions and the correspondi...
Definition: convection_diffusion_application.h:105
std::string Info() const override
Turn back information as a string.
Definition: convection_diffusion_application.h:153
virtual ~KratosConvectionDiffusionApplication()
Destructor.
Definition: convection_diffusion_application.h:122
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: convection_diffusion_application.h:159
KRATOS_CLASS_POINTER_DEFINITION(KratosConvectionDiffusionApplication)
Pointer definition of KratosConvectionDiffusionApplication.
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: convection_diffusion_application.h:166
Short class definition.
Definition: laplacian_element.h:53
A basic Neumann condition for convection-diffusion problems.
Definition: thermal_face.h:44
#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