Logo Search packages:      
Sourcecode: yade version File versions  Download package

Public Types | Public Member Functions | Public Attributes

Law2_ScGeom_CohFrictPhys_CohesionMoment Class Reference

Inheritance diagram for Law2_ScGeom_CohFrictPhys_CohesionMoment:
Inheritance graph
Collaboration diagram for Law2_ScGeom_CohFrictPhys_CohesionMoment:
Collaboration graph

List of all members.

Public Types

typedef _ArgumentTypes ArgumentTypes
typedef _DispatchType1 DispatchType1
typedef _DispatchType2 DispatchType2
typedef _ReturnType ReturnType

Public Member Functions

void addForce (const Body::id_t id, const Vector3r &f, Scene *rb)
void addTorque (const Body::id_t id, const Vector3r &t, Scene *rb)
void applyForceAtContactPoint (const Vector3r &force, const Vector3r &contactPoint, const Body::id_t id1, const Vector3r &pos1, const Body::id_t id2, const Vector3r &pos2)
virtual void callPostLoad (void)
virtual string checkOrder () const
virtual void checkPyClassRegistersItself (const std::string &thisClassName) const
 FUNCTOR2D (ScGeom6D, CohFrictPhys)
virtual std::string get2DFunctorType1 (void)
virtual std::string get2DFunctorType2 (void)
virtual string getBaseClassName (unsigned int i=0) const
virtual int getBaseClassNumber ()
virtual vector< string > getFunctorTypes ()
virtual _ReturnType go (Parm1, Parm2, Parm3)
virtual _ReturnType go (Parm1, Parm2)
virtual _ReturnType go (Parm1, Parm2, Parm3, Parm4)
virtual _ReturnType go (Parm1, Parm2, Parm3, Parm4, Parm5)
virtual _ReturnType go (Parm1, Parm2, Parm3, Parm4, Parm5, Parm6, Parm7)
virtual void go (shared_ptr< IGeom > &_geom, shared_ptr< IPhys > &_phys, Interaction *I)
virtual _ReturnType go (Parm1, Parm2, Parm3, Parm4, Parm5, Parm6)
virtual _ReturnType go (Parm1)
virtual _ReturnType goReverse (Parm1)
virtual _ReturnType goReverse (Parm1, Parm2)
virtual _ReturnType goReverse (Parm1, Parm2, Parm3, Parm4, Parm5, Parm6, Parm7)
virtual _ReturnType goReverse (Parm1, Parm2, Parm3)
virtual _ReturnType goReverse (Parm1, Parm2, Parm3, Parm4, Parm5)
virtual _ReturnType goReverse (Parm1, Parm2, Parm3, Parm4, Parm5, Parm6)
virtual _ReturnType goReverse (Parm1, Parm2, Parm3, Parm4)
bool operator!= (const Serializable &other)
bool operator== (const Serializable &other)
virtual boost::python::dict pyDict () const
virtual void pyHandleCustomCtorArgs (boost::python::tuple &args, boost::python::dict &kw)
virtual void pyRegisterClass (boost::python::object _scope)
virtual void pySetAttr (const std::string &key, const boost::python::object &value)
std::string pyStr ()
 string representation of this object
void pyUpdateAttrs (const boost::python::dict &d)
 REGISTER_CLASS_AND_BASE (Functor2D, Functor FunctorWrapper)
template<class ArchiveT >
void serialize (ArchiveT &ar, unsigned int version)
 YADE_CLASS_BASE_DOC (LawFunctor, Functor,"Functor for applying constitutive laws on :yref:`interactions<Interaction>`.")
 YADE_CLASS_BASE_DOC_ATTRS (Law2_ScGeom_CohFrictPhys_CohesionMoment, LawFunctor,"Law for linear traction-compression-bending-twisting, with cohesion+friction and Mohr-Coulomb plasticity surface. This law adds adhesion and moments to :yref:`Law2_ScGeom_FrictPhys_CundallStrack`.\n\nThe normal force is (with the convention of positive tensile forces) $F_n=min(k_n*u_n, a_n)$, with $a_n$ the normal adhesion. The shear force is $F_s=k_s*u_s$, the plasticity condition defines the maximum value of the shear force, by default $F_s^{max}=F_n*tan(\\phi)+a_s$, with $\\phi$ the friction angle and $a_n$ the shear adhesion. If :yref:`CohFrictPhys::cohesionDisableFriction` is True, friction is ignored as long as adhesion is active, and the maximum shear force is only $F_s^{max}=a_s$.\n\nIf the maximum tensile or maximum shear force is reached and :yref:`CohFrictPhys::fragile` =True (default), the cohesive link is broken, and $a_n, a_s$ are set back to zero. If a tensile force is present, the contact is lost, else the shear strength is $F_s^{max}=F_n*tan(\\phi)$. If :yref:`CohFrictPhys::fragile` =False (in course of implementation), the behaviour is perfectly plastic, and the shear strength is kept constant.\n\nIf :yref:`Law2_ScGeom_CohFrictPhys_CohesionMoment::momentRotationLaw` =True, bending and twisting moments are computed using a linear law with moduli respectively $k_t$ and $k_r$ (the two values are the same currently), so that the moments are : $M_b=k_b*\\Theta_b$ and $M_t=k_t*\\Theta_t$, with $\\Theta_{b,t}$ the relative rotations between interacting bodies. There is no maximum value of moments in the current implementation, though they could be added in the future.\n\nCreep at contact is implemented in this law, as defined in [Hassan2010]_. If activated, there is a viscous behaviour of the shear and twisting components, and the evolution of the elastic parts of shear displacement and relative twist is given by $du_{s,e}/dt=-F_s/\\nu_s$ and $d\\Theta_{t,e}/dt=-M_t/\\nu_t$.\n\n.. note::\n Periodicity is not handled yet in this law.",((bool, neverErase, false,,"Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. :yref:`Law2_ScGeom_CapillaryPhys_Capillarity`)"))((bool, always_use_moment_law, false,,"If true, use bending/twisting moments at all contacts. If false, compute moments only for cohesive contacts."))((bool, shear_creep, false,,"activate creep on the shear force, using :yref:`CohesiveFrictionalContactLaw::creep_viscosity`."))((bool, twist_creep, false,,"activate creep on the twisting moment, using :yref:`CohesiveFrictionalContactLaw::creep_viscosity`."))((Real, creep_viscosity, 1,,"creep viscosity [Pa.s/m]. probably should be moved to Ip2_2xCohFrictMat_CohFrictPhys...")))
 YADE_CLASS_BASE_DOC_ATTRS_CTOR_PY (Functor, Serializable,"Function-like object that is called by Dispatcher, if types of arguments match those the Functor declares to accept.",((string, label,,,"Textual label for this object; must be valid python identifier, you can refer to it directly fron python (must be a valid python identifier).")),,.def_readonly("timingDeltas",&Functor::timingDeltas,"Detailed information about timing inside the Dispatcher itself. Empty unless enabled in the source code and O.timingEnabled==True.").add_property("bases",&Functor::getFunctorTypes,"Ordered list of types (as strings) this functor accepts."))

Public Attributes

 updated before every dispatch loop by the dispatcher; DO NOT ABUSE access to scene, except for getting global variables like scene->dt.
shared_ptr< TimingDeltastimingDeltas

Detailed Description

Definition at line 16 of file CohesiveFrictionalContactLaw.hpp.

The documentation for this class was generated from the following files:

Generated by  Doxygen 1.6.0   Back to index