26 o <<
"********************" << std::endl;
27 o <<
"a_fcriteria_coulomb:" << std::endl;
28 o <<
"********************" << std::endl;
29 o <<
"This class derives from a _fcriteria_in," << std::endl;
30 o <<
"it implements a specific resistance criterion:" << std::endl;
31 o <<
"The excentricity of the resultant of the force on a face is required to remain in between specific bounds" << std::endl;
32 o <<
"And the shear force on a face needs to respect Coulomb criteria: |Q| <= f |N| + c" << std::endl;
33 o <<
"With |Q| = |Qx + Qy|" << std::endl;
34 o <<
"f 'value': set the bound (default: 0.5 = 26.6 deg.)" << std::endl;
35 o <<
"f: get the bound" << std::endl;
36 o <<
"c 'value': set the cohesion (default: 0.)" << std::endl;
37 o <<
"c: get the cohesion" << std::endl;
51 double Q = sqrt(Qx*Qx+Qy*Qy);
64 double Q = sqrt(Qx*Qx+Qy*Qy);
67 double p2 = Q-
f_*N-
c_;
71 return sqrt(p1*p1+p2*p2);
a_face_2d4 * cf_2d4(a_face *f)
virtual bool ok(const a_face *f) const
return true if forces on the face are passing through the face and shear is not too high
virtual double penalty(const a_face *f) const
return max excentricity if abs is higher than max (1. by default)
static const std::string help()
get information about the class
double f() const
get max f friction coefficient
virtual double penalty(const a_face *f) const
return max excentricity if abs is higher than max (1. by default)
virtual bool ok(const a_face *f) const
return true if forces on the face are passing through the face
static const std::string help()
get information about the class