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.
mei_lift_law.h
Go to the documentation of this file.
1 // Author: Guillermo Casas (gcasas@cimne.upc.edu)
2 // Date: February 2019
3 // Mei (1992)
4 
5 #if !defined(SDEM_MEI_LIFT_LAW_H_INCLUDED)
6 #define SDEM_MEI_LIFT_LAW_H_INCLUDED
7 
8 #include "saffman_lift_law.h"
9 
10 namespace Kratos {
11 
12  class KRATOS_API(SWIMMING_DEM_APPLICATION) MeiLiftLaw : public SaffmanLiftLaw {
13 
14  public:
15  typedef Node NodeType;
17 
18  // TODO: make mDoApplyFaxenCorrections an option
20 
21  MeiLiftLaw(Parameters r_parameters);
22 
24 
25  VorticityInducedLiftLaw::Pointer Clone() const override;
26 
27  void Initialize(const ProcessInfo& r_process_info) override;
28 
29  std::string GetTypeOfLaw() override;
30 
31  void ComputeForce(Geometry<Node >& r_geometry,
32  const double reynolds_number,
33  double particle_radius,
34  double fluid_density,
35  double fluid_kinematic_viscosity,
36  array_1d<double, 3>& minus_slip_velocity,
37  array_1d<double, 3>& vorticity_induced_lift,
38  const ProcessInfo& r_current_process_info) override;
39 
40  private:
41 
42  friend class Serializer;
43 
44  double ComputeShearReynoldsNumber(const double particle_radius,
45  const double fluid_kinematic_viscosity,
46  const double norm_of_vorticity);
47 
48  double ComputeMeiCorrectionOnSaffmanCoefficient(const double reynolds_number,
49  const double fluid_kinematic_viscosity,
50  const double particle_radius,
51  const double norm_of_vorticity);
52 
53  virtual void save(Serializer& rSerializer) const override {
55  }
56 
57  virtual void load(Serializer& rSerializer) override {
59  }
60 
61  }; //class MeiLiftLaw
62 
63 } // Namespace Kratos
64 
65 #endif /* SDEM_MEI_LIFT_LAW_H_INCLUDED defined */
Geometry base class.
Definition: geometry.h:71
Definition: mei_lift_law.h:12
KRATOS_CLASS_POINTER_DEFINITION(MeiLiftLaw)
MeiLiftLaw()
Definition: mei_lift_law.h:19
~MeiLiftLaw()
Definition: mei_lift_law.h:23
Node NodeType
Definition: mei_lift_law.h:15
This class defines the node.
Definition: node.h:65
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
Definition: saffman_lift_law.h:12
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
Definition: vorticity_induced_lift_law.h:16
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307