plot of surface displacement, total displacement and force at left of box
Trying to plot graphs of forces surface displacement, total displacement and the force at the left of the box. Nothing was displaced in the graph and i get the error message : "Missing columns in plot.data, adding NaN: tDspl". Please help me debug the error. Am new to yade.
The script is attached .
from yade import pack
from math import *
from yade import plot
from yade import qt
gravity = 100
#box dimensions
widthl = .3
widthr = .3
widthc = .3
height = .3
thick = .1
deep = -.2
#size of grains
sizeMin = 40e-3
sizeMax = 60e-3
frictionAngle = .5
young = 1e8 #stiffness
poisson = 10
dt = 1e-3 #time step
nGravityDeposition = 250 #how long to run initial gravity deposition
nCycles = 3 #how many jumps to run afterwards
nStepsBetweenCycles = 200 #number of times steps between jumps
dspl = 20e-3
#how much larger the initial make cloud box should be
fillBoxHFactor = 3
from yade import polyhedra_utils
width = widthl + widthc + widthr
#mat
mat = PolyhedraMat(
O.materials.
def computeSurfaceD
vertices = []
for b in O.bodies:
if not isinstance(
pos = b.state.pos
ori = b.state.ori
vs = b.shape.v
vs = [pos + ori*v for v in vs]
vertices.
maxZ = max(v[2] for v in vertices)
return maxZ
def plotAddData():
sd = computeSurfaceD
plot.addData(
i = O.iter,
tDspl = O.bodies[
fLeft = sum(O.forces.
surfDspl = sd,
)
plot.plots = {'i':'surfDspl'
#######
#engines
O.engines=[
ForceResetter(),
InsertionSor
InteractionLoop(
[
[
[
),
NewtonIntegr
#commnet out the original PyRunner, replace with new one
#PyRunner(
PyRunner(
]
O.dt = dt
def moveBottom():
v = dspl / O.dt
for b in movables:
b.state.vel = (0,0,-v)
def stopBottom():
for b in movables:
b.state.vel = (0,0,0)
def checker():
for i in range(nCycles):
ii = nGravityDeposit
if O.iter == ii:
moveBottom()
if O.iter == ii+1:
stopBottom()
if O.iter == nGravityDeposit
O.pause()
# box
p000 = Vector3(0,0,0)
p100 = Vector3(widthl,0,0)
p200 = Vector3(
p300 = Vector3(
pxs = (p000,p100,
p001,p101,p201,p301 = [p+Vector3(
p010,p110,p210,p310 = [p+Vector3(
p011,p111,p211,p311 = [p+Vector3(
p00b,p10b,p20b,p30b = [p+Vector3(
p01b,p11b,p21b,p31b = [p+Vector3(
def rect(vs,**kw):
v1,v2,v3,v4 = vs
return [
facet(
facet(
]
movables = rect((p100,
rects = (
(p000,
(p200,
(p000,
(p300,
(p000,
(p100,
(p200,
(p010,
(p110,
(p210,
(p100,
(p110,
(p100,
(p200,
)
rects = movables + sum((rect(r) for r in rects),[])
O.bodies.
# gravel
polyhedra_
###########
Thank you,
Henry
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- henry
- Solved:
- Last query:
- Last reply: