On 30 June 2011 13:51, Christian Jakob <[email protected]> wrote:
> Dear Chiara, > > Thank you for your answer. > > 1.) Your script does not work on my yade version (bzr2877)... > Sorry, the script is out of date. I will update it asap. However, in case you wanted to start using it right now, you are free to follow suggestions below (I will ignore warnings for the moment). Replace this: O.bodies[1].state.blockedDOFs=['rx','ry','rz'] # block particles rotations with: O.bodies[1].state.blockedDOFs='XYZ' # block particles rotations Replace this: contactLaw.betan=0.5 # normal direction contactLaw.betas=0.0 # shear direction contactLaw.useDamping=True contactLaw.betas=0.5 # line 81 with: damping.betan=0.5 # normal direction damping.betas=0.0 # shear direction damping.useDamping=True damping.betas=0.5 # line 81 > > me@debian:~$ yade /home/me/YADE/yade-source-and-** > examples/scripts/Damping_HM.py > Welcome to Yade bzr2877 > TCP python prompt on localhost:9000, auth cookie `akdeuy' > XMLRPC info provider on http://localhost:21000 > Running script /home/me/YADE/yade-source-and-** > examples/scripts/Damping_HM.py > /home/me/YADE/lib/yade-**bzr2877/py/yade/utils.py:210: DeprecationWarning: > dynamic=False is deprecated, use fixed=True instead > _commonBodySetup(b,V,**geomInert,material,pos=center,** > dynamic=dynamic,fixed=fixed) > /home/me/YADE/lib/yade-**bzr2877/py/yade/utils.py:195: DeprecationWarning: > dynamic=True is deprecated, use fixed=False instead > _commonBodySetup(b,V,Vector3(**geomInert,geomInert,geomInert)** > ,material,pos=center,dynamic=**dynamic,fixed=fixed) > Traceback (most recent call last): > File "/home/me/YADE/bin/yade-**bzr2877", line 183, in runScript > execfile(script,globals()) > File "/home/me/YADE/yade-source-**and-examples/scripts/Damping_**HM.py", > line 28, in <module> > O.bodies[1].state.blockedDOFs=**['rx','ry','rz'] # block particles > rotations > > ArgumentError: Python argument types in > None.None(State, list) > did not match C++ signature: > None(State {lvalue}, std::string) > [[ ^L clears screen, ^U kills line. F12 controller, F11 3d view, F10 both, > F9 generator, F8 plot. ]] > Yade [1]: > > > > 2.) Nethertheless I tried these two methods you suggested: > > 2.1.) WAY 1 ... viscoelastic material with unknows parameters tc, en, es > ... > (from /examples/ring2d/**ringSimpleViscoelastic.py) > > tc = 0.001 #??? > en = 0.3 #??? > es = 0.3 #??? > params=utils.**getViscoelasticFromSpheresInte**raction(tc,en,es) > O.materials.append(ViscElMat(**frictionAngle=1,**params)) # **params sets > kn, cn, ks, cs > #... > [Ip2_ViscElMat_ViscElMat_**ViscElPhys()], > [Law2_ScGeom_ViscElPhys_Basic(**)], > #... > > -> works, but I do not know how to verify tc, en and es ... if you know, > let me know ;) > Sergei, ping :-) The coefficients of restitution, en and es, depend on the type of material you use. This law is not of Hertzian type though. > > 2.2.) WAY 2 ... frictional material with beta_n and beta_s > (from /scripts/Damping_HM.py) > > O.materials.append(FrictMat(**young=2e7,poisson=.3,density=** > 2700,frictionAngle=1)) > #... > [Ip2_FrictMat_FrictMat_**MindlinPhys(label='damping')], > [Law2_ScGeom_MindlinPhys_**Mindlin(label='contactLaw')] > #... > contactLaw.betan=0.5 # normal direction > contactLaw.betas=0.0 # shear direction > contactLaw.useDamping=True > > > -> does not work ... > > me@debian:~/YADE/my-yade-**projects$ yade two-spheres_way2.py > Welcome to Yade bzr2877 > TCP python prompt on localhost:9000, auth cookie `sakeyc' > XMLRPC info provider on http://localhost:21000 > Running script two-spheres_way2.py > WARN: Law2_ScGeom_MindlinPhys_**Mindlin.betan is deprecated, use > Law2_ScGeom_MindlinPhys_**Mindlin._beta_parameters_of_** > Ip2_FrictMat_FrictMat_**MindlinPhys instead. > Traceback (most recent call last): > File "/home/me/YADE/bin/yade-**bzr2877", line 183, in runScript > execfile(script,globals()) > File "two-spheres_way2.py", line 55, in <module> > contactLaw.betan=0.5 # normal direction > ValueError: Law2_ScGeom_MindlinPhys_**Mindlin.betan is deprecated; > throwing exception requested. Reason: !Moved to MindlinPhys, where the value > is assigned by the appropriate Ip2 functor. > [[ ^L clears screen, ^U kills line. F12 controller, F11 3d view, F10 both, > F9 generator, F8 plot. ]] > Yade [1]: > See above. Cheers, Chiara > > > Regards, > > Christian > > Zitat von Chiara Modenese <[email protected]>: > > > Dear Christian, >> >> viscous damping is already implemented in the current version of >> HertzMindlin contact law. Damping can be applied in both normal and shear >> directions. Actually, in the code you can choose between two different >> forms >> of damping: >> 1) the first one refers to the solution of a damped linear spring-mass >> system where damping coefficient is a fraction of the critical damping >> coefficient for the system. The current contact stiffness is employed in >> such a case (since the law is non-linear, a tangential contact stiffness >> can >> be computed each time step). >> 2) the second one is based on a numerical solution provided by Tsuji et >> al. >> (1992) which can be used to relate damping coefficient and coefficient of >> restitution when non-linear spring is involved. >> >> Up to you which method to choose, though to me the second option gives a >> better physical interpretation of the phenomena. >> >> The script in .../yade/scripts/Damping_HM.py should provide you a basic >> example to start with. Let me know if you need further help with that. >> >> Chiara >> >> >> >> >> On 29 June 2011 09:14, Christian Jakob <[email protected]> wrote: >> >> Hello again, >>> >>> I need to create a material with Hertz-Mindlin contact model (given >>> shear modulus and poisson ratio) with viscous damping in normal and >>> shear direction. The question is: How can I do this? >>> >>> I can create a viscous elastic material with linear contact model ... >>> >>> O.materials.append(ViscElMat(**density=2700,kn=1e8,ks=1e8,** >>> frictionAngle=1,cn=0.002,cs=0.**001)) >>> >>> and I can create an inelastic material with Hertz model, but without >>> viscous damping .... >>> >>> O.materials.append(**NormalInelasticMat(young=2e7,** >>> poisson=0.3,frictionAngle=1,**coeff_dech=1)) >>> >>> if I try to combine, an error occured: >>> >>> O.materials.append(**NormalInelasticMat(young=2e7,** >>> poisson=0.3,frictionAngle=1,**coeff_dech=1,cn=0.002,cs=0.**001)) >>> >>> "AttributeError: No such attribute: cn" >>> >>> >>> Regards, >>> >>> Christian Jakob >>> -- >>> This message was sent from Launchpad by >>> Christian Jakob >>> (https://launchpad.net/~jakob-**ifgt<https://launchpad.net/%7Ejakob-ifgt> >>> ) >>> using the "Contact this team" link on the yade-users team page >>> (https://launchpad.net/~yade-**users<https://launchpad.net/%7Eyade-users> >>> ). >>> For more information see >>> https://help.launchpad.net/**YourAccount/ContactingPeople<https://help.launchpad.net/YourAccount/ContactingPeople> >>> >>> ______________________________**_________________ >>> Mailing list: >>> https://launchpad.net/~yade-**users<https://launchpad.net/%7Eyade-users> >>> Post to : [email protected] >>> Unsubscribe : >>> https://launchpad.net/~yade-**users<https://launchpad.net/%7Eyade-users> >>> More help : >>> https://help.launchpad.net/**ListHelp<https://help.launchpad.net/ListHelp> >>> >>> >> > > >
_______________________________________________ Mailing list: https://launchpad.net/~yade-users Post to : [email protected] Unsubscribe : https://launchpad.net/~yade-users More help : https://help.launchpad.net/ListHelp

