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.
dallavalle_drag_law.h
Go to the documentation of this file.
1 // Author: Joaquin Gonzalez-Usua (jgonzalez@cimne.upc.edu)
2 // Date: April 2021
3 
4 #if !defined(SDEM_DALLAVALLE_DRAG_LAW_H_INCLUDED)
5 #define SDEM_DALLAVALLE_DRAG_LAW_H_INCLUDED
6 #include <algorithm>
7 #include "stokes_drag_law.h"
8 
9 namespace Kratos {
10 
11  class KRATOS_API(SWIMMING_DEM_APPLICATION) DallavalleDragLaw : public StokesDragLaw {
12 
13  public:
14  typedef Node NodeType;
16 
18 
19  DallavalleDragLaw(Parameters& r_parameters): StokesDragLaw(r_parameters){}
20 
22 
23  DragLaw::Pointer Clone() const override;
24 
25  void Initialize(const ProcessInfo& r_process_info) override;
26 
27  std::string GetTypeOfLaw() override;
28 
29  void ComputeForce(SphericParticle* p_particle,
30  const double reynolds_number,
31  double particle_radius,
32  double fluid_density,
33  double fluid_kinematic_viscosity,
34  array_1d<double, 3>& minus_slip_velocity,
35  array_1d<double, 3>& drag_force,
36  const ProcessInfo& r_current_process_info) override;
37 
38  double CalculateEquivalentDiameter(SphericParticle* p_particle);
39 
40  double GetParticleMassFraction(SphericParticle* p_particle);
41 
42  double CalculateWeightingSum(SphericParticle* p_particle, const double& equivalent_diameter);
43 
44  private:
45 
46  friend class Serializer;
47 
48  virtual void save(Serializer& rSerializer) const override {
50  }
51 
52  virtual void load(Serializer& rSerializer) override {
54  }
55 
56  }; //class DallavalleDragLaw
57 
58 } // Namespace Kratos
59 
60 #endif /* SDEM_DALLAVALLE_DRAG_LAW_H_INCLUDED defined */
Definition: dallavalle_drag_law.h:11
DallavalleDragLaw()
Definition: dallavalle_drag_law.h:17
Node NodeType
Definition: dallavalle_drag_law.h:14
KRATOS_CLASS_POINTER_DEFINITION(DallavalleDragLaw)
~DallavalleDragLaw()
Definition: dallavalle_drag_law.h:21
DallavalleDragLaw(Parameters &r_parameters)
Definition: dallavalle_drag_law.h:19
Definition: drag_law.h:17
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
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
Definition: stokes_drag_law.h:12
#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