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.
drag_law.h
Go to the documentation of this file.
1 // Author: Guillermo Casas (gcasas@cimne.upc.edu)
2 // Date: February 2019
3 
4 #if !defined(SDEM_DRAG_LAW_H_INCLUDED)
5 #define SDEM_DRAG_LAW_H_INCLUDED
6 
7 #include <string>
8 #include <iostream>
9 #include "includes/define.h"
10 #include "includes/serializer.h"
11 #include "includes/model_part.h"
12 #include "containers/flags.h"
13 #include "../DEMApplication/custom_elements/spheric_particle.h"
14 
15 namespace Kratos {
16 
17  class KRATOS_API(SWIMMING_DEM_APPLICATION) DragLaw : public Flags {
18 
19  public:
20  typedef Node NodeType;
22 
23  DragLaw(){}
24 
25  DragLaw(Parameters r_parameters){}
26 
28 
29  virtual DragLaw::Pointer Clone() const;
30 
31  virtual void Initialize(const ProcessInfo& r_process_info);
32 
33  void SetDragLawInProperties(Properties::Pointer pProp) const;
34 
35  virtual std::string GetTypeOfLaw();
36 
37  virtual void ComputeForce(SphericParticle* p_particle,
38  const double reynolds_number,
39  double particle_radius,
40  double fluid_density,
41  double fluid_kinematic_viscosity,
42  array_1d<double, 3>& minus_slip_velocity,
43  array_1d<double, 3>& drag_force,
44  const ProcessInfo& r_current_process_info);
45 
46  private:
47 
48  friend class Serializer;
49 
50  virtual void save(Serializer& rSerializer) const override {
52  }
53 
54  virtual void load(Serializer& rSerializer) override {
56  }
57 
58  }; //class DragLaw
59 
60 KRATOS_DEFINE_APPLICATION_VARIABLE(SWIMMING_DEM_APPLICATION, DragLaw::Pointer, SDEM_DRAG_LAW_POINTER)
61 
62 } // Namespace Kratos
63 
64 #endif /* SDEM_DRAG_LAW_H_INCLUDED defined */
Definition: drag_law.h:17
~DragLaw()
Definition: drag_law.h:27
DragLaw()
Definition: drag_law.h:23
Node NodeType
Definition: drag_law.h:20
KRATOS_CLASS_POINTER_DEFINITION(DragLaw)
DragLaw(Parameters r_parameters)
Definition: drag_law.h:25
Definition: flags.h:58
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
#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