21
21
((Real,cn,NaN,,"Normal viscous constant"))
22
22
((Real,ks,NaN,,"Shear elastic stiffness"))
23
23
((Real,cs,NaN,,"Shear viscous constant"))
24
((Real,frictionAngle,NaN,,"Friction angle [rad]")),
24
((Real,frictionAngle,NaN,,"Friction angle [rad]"))
25
((bool,massMultiply,true,,"Stiffness and viscosity are multiplied by the reduced mass. If massMultiply=false, these parameter are set explicitly without mass multiplication"))
26
((Real,mR,0.0,,"Rolling resistance, see [Zhou1999536]_."))
27
((unsigned int,mRtype,1,,"Rolling resistance type, see [Zhou1999536]_. mRtype=1 - equation (3) in [Zhou1999536]_; mRtype=2 - equation (4) in [Zhou1999536]_."))
28
((bool,Capillar,false,,"True, if capillar forces need to be added."))
29
((Real,Vb,NaN,,"Liquid bridge volume [m^3]"))
30
((Real,gamma,NaN,,"Surface tension [N/m]"))
31
((Real,theta,NaN,,"Contact angle [°]"))
32
((std::string,CapillarType,"",,"Different types of capillar interaction: Willett_numeric, Willett_analytic [Willett2000]_ , Weigert [Weigert1999]_ , Rabinovich [Rabinov2005]_ ")),
27
35
REGISTER_CLASS_INDEX(ViscElMat,Material);
32
40
class ViscElPhys : public FrictPhys{
34
42
virtual ~ViscElPhys();
35
44
YADE_CLASS_BASE_DOC_ATTRS_CTOR(ViscElPhys,FrictPhys,"IPhys created from :yref:`ViscElMat`, for use with :yref:`Law2_ScGeom_ViscElPhys_Basic`.",
36
45
((Real,cn,NaN,,"Normal viscous constant"))
37
((Real,cs,NaN,,"Shear viscous constant")),
46
((Real,cs,NaN,,"Shear viscous constant"))
47
((Real,mR,0.0,,"Rolling resistance, see [Zhou1999536]_."))
48
((unsigned int,mRtype,1,,"Rolling resistance type, see [Zhou1999536]_. mRtype=1 - equation (3) in [Zhou1999536]_; mRtype=2 - equation (4) in [Zhou1999536]_"))
49
((bool,Capillar,false,,"True, if capillar forces need to be added."))
50
((bool,liqBridgeCreated,false,,"Whether liquid bridge was created, only after a normal contact of spheres"))
51
((Real,sCrit,false,,"Critical bridge length [m]"))
52
((Real,Vb,NaN,,"Liquid bridge volume [m^3]"))
53
((Real,gamma,NaN,,"Surface tension [N/m]"))
54
((Real,theta,NaN,,"Contact angle [rad]"))
55
((std::string,CapillarType,"",,"Different types of capillar interaction: Willett_numeric, Willett_analytic, Weigert, Rabinovich")),
58
76
class Law2_ScGeom_ViscElPhys_Basic: public LawFunctor {
60
78
virtual void go(shared_ptr<IGeom>&, shared_ptr<IPhys>&, Interaction*);
80
Real calculateCapillarForce(const ScGeom& geom, ViscElPhys& phys);
61
81
FUNCTOR2D(ScGeom,ViscElPhys);
62
YADE_CLASS_BASE_DOC(Law2_ScGeom_ViscElPhys_Basic,LawFunctor,"Linear viscoelastic model operating on :yref:`ScGeom` and :yref:`ViscElPhys`.");
82
YADE_CLASS_BASE_DOC(Law2_ScGeom_ViscElPhys_Basic,LawFunctor,"Linear viscoelastic model operating on :yref:`ScGeom` and :yref:`ViscElPhys`. The model is mostly based on the paper for For details see Pournin [Pournin2001]_ .");
64
84
REGISTER_SERIALIZABLE(Law2_ScGeom_ViscElPhys_Basic);