remove the wall and append a box (load-unload-stopunloading)
Dear all,
I am modifying the oedometric test example [1].
(a) Similar to the example, one wall (plate) was created to realize the process of loading, unloading and stopUnloading. No questions in this step.
(b) Then I removed the wall and appended a box, trying to realize the same process as (a). However, this step can not be realized. One new engine was used, and I think the problem may be about the engine. Below is the code:
readParamsFromT
from yade.params.table import *
from yade import pack, plot
aggregate=
O.bodies.
wallMat=
wall=O.
sp=pack.
sp.makeCloud(
sp.toSimulation
O.engines=[
ForceResetter(),
InsertionSor
InteractionLoop(
[
[
[
),
NewtonIntegr
PyRunner(
]
O.dt=.5*
def checkUnbalanced():
if O.iter<10000: return
if unbalancedForce
global plate # without this line, the plate variable would only exist inside this function
plate=
plate.
O.engines=
checker.
def unloadPlate():
if abs(O.forces.
plate.
checker.
def stopUnloading():
if abs(O.forces.
plot.
O.pause()
######remove the facet and append the box
O.
boxMat=
O.
O.engines=[
# sphere, facet, box
# the loading plate is a wall, we need to handle sphere+sphere, sphere+facet, sphere+wall
),
]
O.
def checkUnbalanced1():
global box # without this line, the box variable would only exist inside this function
def unloadBox():
if abs(O.forces.
def stopUnloading1():
if abs(O.forces.
def addPlotData():
if not isinstance(
plot.
Fz=O.
plot.
# besides unbalanced force evolution, also plot the displacement-force diagram
plot.plots=
plot.plot()
O.run()
waitIfBatch()
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Weimin Song
- Solved:
- Last query:
- Last reply: