yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #20518
[Question #683543]: Undrained triaxial test servo control
New question #683543 on Yade:
https://answers.launchpad.net/yade/+question/683543
Hello,
I want to run the undrained triaxial test and I have tried two servo control mechanism. One control mechanism works but the other doesn't. So I want to ask why one works but the other doesn't while they seemed same to me.
1. run "servo()" that I defined every step in the O.engine, this method doesn't work
t0=O.time
O.cell.trsf=Matrix3.Identity
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]),
NewtonIntegrator(damping=0.05),
GlobalStiffnessTimeStepper(),
PyRunner(command='servo', iterPeriod=1),]
def servo():
ratex=-0.05
ratey=0.5*sqrt(1-0.05*(O.time-t0))*0.05/(1-0.05*(O.time-t0))/(1-0.05*(O.time-t0)) # derivative to time, d(sqrt(1/1-0.05*t))/dt
ratez=0.5*sqrt(1-0.05*(O.time-t0))*0.05/(1-0.05*(O.time-t0))/(1-0.05*(O.time-t0)) # derivative to time, d(sqrt(1/1-0.05*t))/dt
O.cell.velGrad=Matrix3(ratex,0,0,0,ratey,0,0,0,ratez)
2. do not run "servo" that I defined, instead, just add two sentences at the end of the script, this method works
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]),
NewtonIntegrator(damping=0.05),
GlobalStiffnessTimeStepper(),]
O.cell.trsf=Matrix3.Identity
O.cell.velGrad=Matrix3(-0.05, 0, 0, 0, 0.025, 0, 0, 0, 0.025)
In the first servo control mechanism, the volume continues to increase, which is wrong. In the second mechanism, the volume only decreases negligibly, which is right. If I put the O.cell.trsf=Matrix3.Identity in the "servo" in the first method, do you think it can work? Do you know the reason for this?
Thank you!
Regards,
Yuxuan
--
You received this question notification because your team yade-users is
an answer contact for Yade.