30 #ifndef _libDEM_ContactLaw_hpp_
31 #define _libDEM_ContactLaw_hpp_
39 #define APPLY_FORCE(F1, F2, energyLabel) \
42 if (Physic::EnergyBalance::get().is_enable()) \
44 Physic::EnergyBalance& energy = Physic::EnergyBalance::get(); \
45 energy.add_force_on(de1, energyLabel, F1); \
46 energy.add_force_on(de2, energyLabel, F2); \
52 #define APPLY_TORQUE(T1, T2, energyLabel) \
55 if (Physic::EnergyBalance::get().is_enable()) \
57 Physic::EnergyBalance& energy = Physic::EnergyBalance::get(); \
58 energy.add_torque_on(de1, energyLabel, T1); \
59 energy.add_torque_on(de2, energyLabel, T2); \
72 static std::string
class_ID() {
return "DEM::ContactLaw_" + T::class_ID() +
"_";}
83 virtual void info(std::ostream &)
const;
85 const Geom::Vector& normal,
const double& penetration) = 0;
107 template<
class T>
void
111 template<
class T>
void
115 template<
class T>
void
119 template<
class T>
void
Definition: Manager.hpp:220
the discrete element is just a spherical Element with additional dedicated features
Definition: DiscreteElement.hpp:47
Definition: Vector.hpp:75
static granoo_endl endl
Definition: Out.hpp:106
Definition: Common.hpp:198