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.
DEM_D_void_CL.h
Go to the documentation of this file.
1 // Author: Chengshun Shang (CIMNE)
3 // Email: cshang@cimne.upc.edu, chengshun.shang1996@gmail.com
4 // Date: June 2023
6 
7 #if !defined(DEM_D_VOID_CL_H_INCLUDED)
8 #define DEM_D_VOID_CL_H_INCLUDED
9 
10 #include <string>
11 #include <iostream>
13 
14 namespace Kratos {
15 
16  class SphericParticle;
17 
18  class KRATOS_API(DEM_APPLICATION) DEM_D_void : public DEMDiscontinuumConstitutiveLaw {
19 
20  public:
21 
23 
25 
27 
28  std::string GetTypeOfLaw() override;
29 
30  void Check(Properties::Pointer pProp) const override;
31 
32  DEMDiscontinuumConstitutiveLaw::Pointer Clone() const override;
33 
34  std::unique_ptr<DEMDiscontinuumConstitutiveLaw> CloneUnique() override;
35 
36  void CalculateForces(const ProcessInfo& r_process_info,
37  const double OldLocalElasticContactForce[3],
38  double LocalElasticContactForce[3],
39  double LocalDeltDisp[3],
40  double LocalRelVel[3],
41  double indentation,
42  double previous_indentation,
43  double ViscoDampingLocalContactForce[3],
44  double& cohesive_force,
45  SphericParticle* element1,
46  SphericParticle* element2,
47  bool& sliding, double LocalCoordSystem[3][3]) override;
48 
49  void CalculateForcesWithFEM(const ProcessInfo& r_process_info,
50  const double OldLocalElasticContactForce[3],
51  double LocalElasticContactForce[3],
52  double LocalDeltDisp[3],
53  double LocalRelVel[3],
54  double indentation,
55  double previous_indentation,
56  double ViscoDampingLocalContactForce[3],
57  double& cohesive_force,
58  SphericParticle* const element,
59  Condition* const wall,
60  bool& sliding) override;
61 
62  private:
63 
64  friend class Serializer;
65 
66  virtual void save(Serializer& rSerializer) const override {
68  //rSerializer.save("MyMemberName",myMember);
69  }
70 
71  virtual void load(Serializer& rSerializer) override {
73  //rSerializer.load("MyMemberName",myMember);
74  }
75 
76  }; //class DEM_D_void
77 
78 } /* namespace Kratos.*/
79 #endif /* DEM_D_VOID_CL_H_INCLUDED defined */
Base class for all Conditions.
Definition: condition.h:59
Definition: DEM_D_void_CL.h:18
DEM_D_void()
Definition: DEM_D_void_CL.h:24
~DEM_D_void()
Definition: DEM_D_void_CL.h:26
KRATOS_CLASS_POINTER_DEFINITION(DEM_D_void)
Definition: DEM_discontinuum_constitutive_law.h:22
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
def load(f)
Definition: ode_solve.py:307
Definition: mesh_converter.cpp:33