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.
power_law_hydrodynamic_interaction_law.h
Go to the documentation of this file.
1 #ifndef KRATOS_SDEM_POWER_LAW_FLUID_HYDRODYNAMIC_INTERACTION_LAW_H
2 #define KRATOS_SDEM_POWER_LAW_FLUID_HYDRODYNAMIC_INTERACTION_LAW_H
3 
4 #include "includes/define.h"
5 #include "includes/serializer.h"
6 #include "includes/model_part.h"
7 #include "containers/flags.h"
8 
10 
11 namespace Kratos {
12 
13 class KRATOS_API(SWIMMING_DEM_APPLICATION) PowerLawFluidHydrodynamicInteractionLaw : public HydrodynamicInteractionLaw {
14 
15 public:
16  typedef Node NodeType;
17 
18  // Pointer types for PowerLawFluidHydrodynamicInteractionLaw
20 
23 
24  PowerLawFluidHydrodynamicInteractionLaw(Properties::Pointer pProp, Parameters& r_hydrodynamic_parameters)
25  : HydrodynamicInteractionLaw(pProp, r_hydrodynamic_parameters){}
26 
28  : HydrodynamicInteractionLaw(rPowerLawFluidHydrodynamicInteractionLaw){}
29 
30  void Initialize(const ProcessInfo& r_process_info) override;
31 
32  std::string GetTypeOfLaw() override;
33 
35 
37 
38  PowerLawFluidHydrodynamicInteractionLaw::Pointer Clone() const;
39 
40  double ComputeShahParticleReynoldsNumber(const double particle_radius,
41  const double fluid_density,
42  const double consistency_index,
43  const double flow_behavior_index,
44  const double modulus_of_minus_slip_velocity);
45 
46  void ComputeDragForce(SphericParticle* p_particle,
47  double particle_radius,
48  double fluid_density,
49  double fluid_kinematic_viscosity,
50  array_1d<double, 3>& minus_slip_velocity,
51  array_1d<double, 3>& drag_force,
52  const ProcessInfo& r_current_process_info);
53 
54 private:
55 
56  friend class Serializer;
57 
58  virtual void save(Serializer& rSerializer) const override {
60 
61  }
62 
63  virtual void load(Serializer& rSerializer) override {
65  }
66 
67 }; // Class PowerLawFluidHydrodynamicInteractionLaw : public MainCL
68 
69 KRATOS_DEFINE_APPLICATION_VARIABLE(SWIMMING_DEM_APPLICATION, PowerLawFluidHydrodynamicInteractionLaw::Pointer, SDEM_POWER_LAW_FLUID_HYDRODYNAMIC_INTERACTION_LAW_POINTER)
70 
71 
72 } // Namespace Kratos
73 
74 #endif // KRATOS_SDEM_POWER_LAW_FLUID_HYDRODYNAMIC_INTERACTION_LAW_H
Definition: flags.h:58
Definition: hydrodynamic_interaction_law.h:20
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
Definition: power_law_hydrodynamic_interaction_law.h:13
KRATOS_CLASS_POINTER_DEFINITION(PowerLawFluidHydrodynamicInteractionLaw)
Node NodeType
Definition: power_law_hydrodynamic_interaction_law.h:16
PowerLawFluidHydrodynamicInteractionLaw()
Definition: power_law_hydrodynamic_interaction_law.h:21
PowerLawFluidHydrodynamicInteractionLaw(const PowerLawFluidHydrodynamicInteractionLaw &rPowerLawFluidHydrodynamicInteractionLaw)
Definition: power_law_hydrodynamic_interaction_law.h:27
PowerLawFluidHydrodynamicInteractionLaw(Properties::Pointer pProp, Parameters &r_hydrodynamic_parameters)
Definition: power_law_hydrodynamic_interaction_law.h:24
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
Definition: spheric_particle.h:31
#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
KRATOS_DEFINE_APPLICATION_VARIABLE(CHIMERA_APPLICATION, double, CHIMERA_DISTANCE)
def load(f)
Definition: ode_solve.py:307