Question #261724 on Yade changed: https://answers.launchpad.net/yade/+question/261724
behzad posted a new comment: I paste it here. How can I attach files? // 2014 © Behzad Majidi <behzad.maj...@gmail.com> // 2014 © Ricardo Pieralisi <ricpieral...@gmail.com> #pragma once #include<core/Material.hpp> #include<pkg/dem/FrictPhys.hpp> #include<pkg/dem/ViscoelasticPM.hpp> #include<pkg/dem/CohesiveFrictionalContactLaw.hpp> #include<pkg/common/Dispatching.hpp> #include<pkg/dem/ScGeom.hpp> #include<pkg/dem/DemXDofGeom.hpp> #include<pkg/common/MatchMaker.hpp> //********************** CohBurgersMat ****************************/ class CohBurgersMat : public CohFrictMat { public : virtual ~CohBurgersMat () {}; /// Serialization YADE_CLASS_BASE_DOC_ATTRS_CTOR(CohBurgersMat,CohFrictMat,"", ((Real,kmn,NaN,,"Normal elastic stiffness for Maxwell.")) ((Real,cmn,NaN,,"Normal viscous constant for Maxwell.")) ((Real,kms,NaN,,"Shear elastic stiffness for Maxwell.")) ((Real,cms,NaN,,"Shear viscous constant for Maxwell.")) ((Real,kkn,NaN,,"Normal elastic stiffness for Kelvin.")) ((Real,ckn,NaN,,"Normal viscous constant for Kelvin.")) ((Real,kks,NaN,,"Shear elastic stiffness for Kelvin.")) ((Real,cks,NaN,,"Shear viscous constant for Kelvin.")), createIndex(); ); /// Indexable REGISTER_CLASS_INDEX(CohBurgersMat,CohFrictMat); }; REGISTER_SERIALIZABLE(CohBurgersMat); //********************** CohBurgersPhys ****************************/ class CohBurgersPhys : public CohFrictPhys { public : virtual ~CohBurgersPhys() {}; void SetBreakingState() {cohesionBroken = true; normalAdhesion = 0; shearAdhesion = 0;}; YADE_CLASS_BASE_DOC_ATTRS_CTOR(CohBurgersPhys,CohFrictPhys,"", ((Real,kmn,NaN,,"Stiffness of Maxwell's spring(normal)")) ((Real,kkn,NaN,,"Stiffness of Kelvin's spring(normal)")) ((Real,cmn,NaN,,"Viscosity of Maxwell's dashpot(normal)")) ((Real,ckn,NaN,,"Viscosity of Kelvin's dashpot(normal)")) ((Real,kms,NaN,,"Stiffness of Maxwell's spring(shear)")) ((Real,kks,NaN,,"Stiffness of Kelvin's spring(shear)")) ((Real,cms,NaN,,"Viscosity of Maxwell's dashpot(shear)")) ((Real,cks,NaN,,"Viscosity of Kelvin's dashpot(shear)")) ((Vector3r,ukn,Vector3r(0,0,0),,"Normal displacement")) ((Vector3r,uks,Vector3r(0,0,0),,"Shear displacement")), createIndex(); ) REGISTER_CLASS_INDEX(CohBurgersPhys,CohFrictPhys); }; REGISTER_SERIALIZABLE(CohBurgersPhys); //********************** Ip2_CohBurgersMat_CohBurgersMat_CohBurgersPhys ****************************/ class Ip2_CohBurgersMat_CohBurgersMat_CohBurgersPhys: public IPhysFunctor { public : virtual void go( const shared_ptr<Material>& b1, const shared_ptr<Material>& b2, const shared_ptr<Interaction>& interaction); virtual void Calculate_CohBurgersMat_CohBurgersMat_CohBurgersPhys(const shared_ptr<Material>& b1, const shared_ptr<Material>& b2, const shared_ptr<Interaction>& interaction, shared_ptr<CohBurgersPhys> phys); int cohesionDefinitionIteration; YADE_CLASS_BASE_DOC_ATTRS_CTOR(Ip2_CohBurgersMat_CohBurgersMat_CohBurgersPhys,IPhysFunctor, "Convert 2 instances of :yref:`CohBurgersMat` to :yref:`CohBurgersPhys` using the rule of consecutive connection.", ((bool,setCohesionNow,false,,"If true, assign cohesion to all existing contacts")) ((bool,setCohesionOnNewContacts,false,,"If true, assign cohesion at all new contacts.")) , cohesionDefinitionIteration = -1; ); FUNCTOR2D(CohBurgersMat,CohBurgersMat); }; REGISTER_SERIALIZABLE(Ip2_CohBurgersMat_CohBurgersMat_CohBurgersPhys); class Ip2_FrictMat_CohBurgersMat_CohBurgersPhys: public IPhysFunctor { public : virtual void go( const shared_ptr<Material>& b1, const shared_ptr<Material>& b2, const shared_ptr<Interaction>& interaction); virtual void Calculate_FrictMat_CohBurgersMat_CohBurgersPhys(const shared_ptr<Material>& b1, const shared_ptr<Material>& b2, const shared_ptr<Interaction>& interaction, shared_ptr<CohBurgersPhys> phys); int cohesionDefinitionIteration; YADE_CLASS_BASE_DOC_ATTRS_CTOR(Ip2_FrictMat_CohBurgersMat_CohBurgersPhys,IPhysFunctor, "converts an interaction of FrictMat and CohBurgersMat to CohBurgersPhys", ((bool,setCohesionNow,false,,"If true, assign cohesion to all existing contacts")) ((bool,setCohesionOnNewContacts,false,,"If true, assign cohesion at all new contacts.")) , cohesionDefinitionIteration = -1; ); FUNCTOR2D(FrictMat,CohBurgersMat); }; REGISTER_SERIALIZABLE(Ip2_FrictMat_CohBurgersMat_CohBurgersPhys); //******************** Law2_ScGeom_CohBurgersPhys_CohesiveBurgers *************************/ class Law2_ScGeom_CohBurgersPhys_CohesiveBurgers: public LawFunctor { public: virtual bool go(shared_ptr<IGeom>& _geom, shared_ptr<IPhys>& _phys, Interaction*); FUNCTOR2D(ScGeom,CohBurgersPhys); YADE_CLASS_BASE_DOC(Law2_ScGeom_CohBurgersPhys_CohesiveBurgers, LawFunctor,""); }; REGISTER_SERIALIZABLE(Law2_ScGeom_CohBurgersPhys_CohesiveBurgers); bool computeForceTorqueCohBurgers(shared_ptr<IGeom>& _geom, shared_ptr<IPhys>& _phys, Interaction* I, Vector3r & force, Vector3r & torque1, Vector3r & torque2); -- You received this question notification because you are a member of yade-users, which is an answer contact for Yade. _______________________________________________ Mailing list: https://launchpad.net/~yade-users Post to : yade-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp