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.
fluid_field_utility.h
Go to the documentation of this file.
1 #ifndef KRATOS_FLUID_FIELD_UTILITY_H
2 #define KRATOS_FLUID_FIELD_UTILITY_H
3 // /* External includes */
4 
5 // System includes
6 
7 /* Project includes */
8 #include "field_utility.h"
9 #include "velocity_field.h"
10 namespace Kratos
11 {
12 class KRATOS_API(SWIMMING_DEM_APPLICATION) FluidFieldUtility : public FieldUtility
13 {
14 public:
15 
17 
19 
21 
22 FluidFieldUtility(SpaceTimeSet::Pointer p_sts, VelocityField::Pointer p_vector_field, const double fluid_density = 1000.0, const double fluid_kinematic_viscosity = 1e-6):
23  FieldUtility(p_sts, p_vector_field), mFluidDensity(fluid_density), mFluidViscosity(fluid_kinematic_viscosity){}
24 
26 
27 virtual ~FluidFieldUtility(){}
28 
29 void ImposeFieldOnNodes(ModelPart& r_model_part, const VariablesList& variables_to_be_imposed) override;
30 
31 void ImposeFieldOnNodes(ModelPart& r_model_part, const Variable<array_1d<double, 3> >& variable_to_be_imposed) override;
32 
33 virtual void ImposeVelocityOnNodes(ModelPart& r_model_part, const Variable<array_1d<double, 3> >& container_variable)
34 {
35  Kratos::shared_ptr<VelocityField> p_vel_field = std::static_pointer_cast<VelocityField>(mpVectorField);
36  p_vel_field->ImposeVelocityOnNodes(r_model_part, container_variable);
37 }
38 
39 
40 virtual std::string Info() const override
41 {
42  return "";
43 }
44 
46 
47 virtual void PrintInfo(std::ostream& rOStream) const override
48 {
49 }
50 
52 
53 virtual void PrintData(std::ostream& rOStream) const override
54 {
55 }
56 
57 
61 
63 
64 protected:
67 
68 
72 
76 
77 
81 
82 
86 
90 
91 
95 
96 
98 
99 private:
100 
103 
104 
108 double mFluidDensity;
109 double mFluidViscosity;
113 
117 
118 
122 
123 
127 
128 
132 
135 
137 
138 }; // Class FluidFieldUtility
139 
141 
144 
145 
149 
150 } // namespace Kratos.
151 #endif // KRATOS_FLUID_FIELD_UTILITY_H
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Definition: field_utility.h:30
Definition: fluid_field_utility.h:13
virtual std::string Info() const override
Turn back information as a stemplate<class T, std::size_t dim> tring.
Definition: fluid_field_utility.h:40
KRATOS_CLASS_POINTER_DEFINITION(FluidFieldUtility)
virtual void ImposeVelocityOnNodes(ModelPart &r_model_part, const Variable< array_1d< double, 3 > > &container_variable)
Definition: fluid_field_utility.h:33
virtual void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: fluid_field_utility.h:47
FluidFieldUtility()
Default constructor.
Definition: fluid_field_utility.h:20
FluidFieldUtility(SpaceTimeSet::Pointer p_sts, VelocityField::Pointer p_vector_field, const double fluid_density=1000.0, const double fluid_kinematic_viscosity=1e-6)
Definition: fluid_field_utility.h:22
virtual void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: fluid_field_utility.h:53
virtual ~FluidFieldUtility()
Destructor.
Definition: fluid_field_utility.h:27
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
Holds a list of variables and their position in VariablesListDataValueContainer.
Definition: variables_list.h:50
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::shared_ptr< T > shared_ptr
Definition: smart_pointers.h:27
e
Definition: run_cpp_mpi_tests.py:31