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_Dempack_dev_CL.h
Go to the documentation of this file.
1 
2 #if !defined(DEM_DEMPACK_DEV_CL_H_INCLUDED)
3 #define DEM_DEMPACK_DEV_CL_H_INCLUDED
4 
5 /* Project includes */
6 #include "DEM_Dempack_CL.h"
7 //#include "DEM_discontinuum_constitutive_law.h"
8 
9 namespace Kratos {
10 
11  class KRATOS_API(DEM_APPLICATION) DEM_Dempack_dev : public DEM_Dempack {
12 
13  typedef DEM_Dempack BaseClassType;
14 
15  public:
16 
18 
20 
22 
23  DEMContinuumConstitutiveLaw::Pointer Clone() const override;
24 
25  void GetContactArea(const double radius,
26  const double other_radius,
27  const Vector& vector_of_initial_areas,
28  const int neighbour_position,
29  double& calculation_area) override;
30 
31  void CalculateContactArea(double radius,
32  double other_radius,
33  double &calculation_area) override;
34 
35  double CalculateContactArea(double radius,
36  double other_radius,
37  Vector& v) override;
38 
39  void CalculateElasticConstants(double &kn_el,
40  double &kt_el,
41  double initial_dist,
42  double equiv_young,
43  double equiv_poisson,
44  double calculation_area,
45  SphericContinuumParticle* element1,
46  SphericContinuumParticle* element2, double indentation) override;
47 
48  void CalculateTangentialForces(double OldLocalElasticContactForce[3],
49  double LocalElasticContactForce[3],
50  double LocalElasticExtraContactForce[3],
51  double ViscoDampingLocalContactForce[3],
52  double LocalCoordSystem[3][3],
53  double LocalDeltDisp[3],
54  double LocalRelVel[3],
55  const double kt_el,
56  const double equiv_shear,
57  double& contact_sigma,
58  double& contact_tau,
59  double indentation,
60  double calculation_area,
61  double& failure_criterion_state,
62  SphericContinuumParticle* element1,
63  SphericContinuumParticle* element2,
64  int i_neighbour_count,
65  bool& sliding,
66  const ProcessInfo& r_process_info) override;
67 
68  void CalculateNormalForces(double LocalElasticContactForce[3],
69  const double kn_el,
70  double equiv_young,
71  double indentation,
72  double calculation_area,
73  double& acumulated_damage,
74  SphericContinuumParticle* element1,
75  SphericContinuumParticle* element2,
76  int i_neighbour_count,
77  int time_steps,
78  const ProcessInfo& r_process_info) override;
79 
80  void AddContributionOfShearStrainParallelToBond(double OldLocalElasticContactForce[3],
81  double LocalElasticExtraContactForce[3],
82  array_1d<double, 3>& OldElasticExtraContactForce,
83  double LocalCoordSystem[3][3],
84  const double kt_el,
85  const double calculation_area,
86  SphericContinuumParticle* element1,
87  SphericContinuumParticle* element2);
88 
89 
90 
91  void ComputeParticleRotationalMoments(SphericContinuumParticle* element,
92  SphericContinuumParticle* neighbor,
93  double equiv_young,
94  double distance,
95  double calculation_area,
96  double LocalCoordSystem[3][3],
97  double ElasticLocalRotationalMoment[3],
98  double ViscoLocalRotationalMoment[3],
99  double equiv_poisson,
100  double indentation,
101  double LocalElasticContactForce[3]) override;
102 
103 
104  void AddPoissonContribution(const double equiv_poisson,
105  double LocalCoordSystem[3][3],
106  double& normal_force,
107  double calculation_area, BoundedMatrix<double, 3, 3>* mSymmStressTensor, SphericContinuumParticle* element1,
108  SphericContinuumParticle* element2, const ProcessInfo& r_process_info, const int i_neighbor_count, const double indentation) override;
109 
110  private:
111 
112  friend class Serializer;
113 
114  virtual void save(Serializer& rSerializer) const override{
116  //rSerializer.save("MyMemberName",myMember);
117  }
118 
119  virtual void load(Serializer& rSerializer) override{
121  //rSerializer.load("MyMemberName",myMember);
122  }
123 
124  };
125 
126 } /* namespace Kratos.*/
127 #endif /* DEM_DEMPACK_DEV_H_INCLUDED defined */
Definition: DEM_Dempack_dev_CL.h:11
DEM_Dempack_dev()
Definition: DEM_Dempack_dev_CL.h:19
KRATOS_CLASS_POINTER_DEFINITION(DEM_Dempack_dev)
~DEM_Dempack_dev()
Definition: DEM_Dempack_dev_CL.h:21
Definition: DEM_Dempack_CL.h:11
Definition: DEM_continuum_constitutive_law.h:23
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_continuum_particle.h:26
#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
v
Definition: generate_convection_diffusion_explicit_element.py:114
float radius
Definition: mesh_to_mdpa_converter.py:18
def load(f)
Definition: ode_solve.py:307
Definition: mesh_converter.cpp:33