yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #11016
Re: [Question #263739]: isotropic compression at controled pressure
Question #263739 on Yade changed:
https://answers.launchpad.net/yade/+question/263739
Status: Open => Answered
Bruno Chareyre proposed the following answer:
Hello,
I don't understand exactly in which sense it is not what you expect. I suggest to forget max_vel, assign a very large value to it so that it does not interfere.
Trying to summarize what to do in your case (assuming
TriaxialStressCOntroller is labeled "triax"):
#stress control in all directions and for all boundaries independently
triax.stressMask = 7
triax.internalCompaction=False
# if there is gravity, imposing the same stress at the top and bottom boundaries would lead to free fall... block the bottom wall:
triax.wall_bottom_activated=False
#define the target stresses to be applied, if it must be isotropic:
triax.goal1=triax.goal2=triax.goal3=isoP
#then run
O.run()
This will reach the target isoP very quickly (a few iterations), in fact it could well result in a dynamic compaction at constant applied pressure (exception is if you impose a small max_vel).
If what you want is to increase the isotropic confinement progressively:
for k in range(N):
triax.goal1=triax.goal2=triax.goal3=isoP*float(k)/float(N)
O.run(number,True)
The problem is the initial stress under gravity is not isotropic, for
superimposing an isotropic stress to the intitial anisotropic one,
better something like this:
#initialize with current stress
triax.goal1=triax.stress(0)[0]
triax.goal2=-triax.stress(3)[1]
triax.goal3=triax.stress(4)[2]
#and increase progressively
for k in range(N):
triax.goal1+= isoP/float(N)
triax.goal2+= isoP/float(N)
triax.goal3+= isoP/float(N)
O.run(number,True)
Bruno
--
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.