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.
shear_flow_1D_with_exponential_viscosity_field.h
Go to the documentation of this file.
1 #if !defined(KRATOS_SHEAR_FLOW_1D_WITH_EXPONENTIAL_VISCOSITY_FIELD_H)
2 #define KRATOS_SHEAR_FLOW_1D_WITH_EXPONENTIAL_VISCOSITY_FIELD_H
3 
4 // /* External includes */
5 
6 // System includes
7 
8 // Project includes
9 #include "includes/variables.h"
10 
11 /* System includes */
12 #include <limits>
13 #include <iostream>
14 #include <iomanip>
15 
16 /* External includes */
17 #ifdef _OPENMP
18 #include <omp.h>
19 #endif
20 
21 /* Project includes */
22 #include "includes/define.h"
23 #include "utilities/openmp_utils.h"
24 #include "real_functions.h"
25 #include "velocity_field.h"
26 
27 
28 namespace Kratos
29 {
30 class KRATOS_API(SWIMMING_DEM_APPLICATION) ShearFlow1DWithExponentialViscosityField : public VelocityField
31 {
32 public:
33 
35 
37 
38 ShearFlow1DWithExponentialViscosityField():VelocityField(), mUFarField(0.0), mZmax(1.0), mMaxSuspensionRelativeViscosity(10)
39 {}
40 
41 ShearFlow1DWithExponentialViscosityField(const double u_far_field, const double z_max, const double max_relative_viscosity):
42  VelocityField(), mUFarField(u_far_field), mZmax(z_max), mMaxSuspensionRelativeViscosity(max_relative_viscosity)
43 {}
44 
45 
48 
49 
50 void Evaluate(const double time, const array_1d<double, 3>& coor, array_1d<double, 3>& vector, const int i_thread) override;
51 
52 
53 virtual std::string Info() const override
54 {
55  return "";
56 }
57 
59 virtual void PrintInfo(std::ostream& rOStream) const override {}
60 
62 virtual void PrintData(std::ostream& rOStream) const override {}
63 
64 void SetRimZoneThickness(const double z_max);
65 void SetViscosity(const double viscosity);
66 
67 protected:
68 
69 
70 private:
71 
72 double mUFarField;
73 double mZmax;
74 double mMaxSuspensionRelativeViscosity;
75 
78 
79 }; // Class ShearFlow1DWithExponentialViscosityField
80 
81 
82 } // namespace Kratos.
83 
84 #endif // KRATOS_SHEAR_FLOW_1D_WITH_EXPONENTIAL_VISCOSITY_FIELD_H defined
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Definition: shear_flow_1D_with_exponential_viscosity_field.h:31
virtual void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: shear_flow_1D_with_exponential_viscosity_field.h:62
virtual ~ShearFlow1DWithExponentialViscosityField()
Destructor.
Definition: shear_flow_1D_with_exponential_viscosity_field.h:47
ShearFlow1DWithExponentialViscosityField(const double u_far_field, const double z_max, const double max_relative_viscosity)
Definition: shear_flow_1D_with_exponential_viscosity_field.h:41
virtual std::string Info() const override
Turn back information as a stemplate<class T, std::size_t dim> tring.
Definition: shear_flow_1D_with_exponential_viscosity_field.h:53
ShearFlow1DWithExponentialViscosityField()
Default constructor.
Definition: shear_flow_1D_with_exponential_viscosity_field.h:38
virtual void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: shear_flow_1D_with_exponential_viscosity_field.h:59
KRATOS_CLASS_POINTER_DEFINITION(ShearFlow1DWithExponentialViscosityField)
Definition: velocity_field.h:32
double Evaluate(const PolynomialType &rPolynomial, double x)
Definition: polynomial_utilities.cpp:77
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
float viscosity
Definition: edgebased_var.py:8
time
Definition: face_heat.py:85