Export wall for Paraview
i ran the oedometer tutorial in yade. I want to visualise it in paraview so i use VTKRecorder to export all the parameters. but there is no vtk/vtp file generated for wall element (plate is used as a wall). Please help me how to export wall to visulaise in paraview. Here the script i modified:
readParamsFromT
# make rMean, rRelFuzz, maxLoad accessible directly as variables later
from yade.params.table import *
# create box with free top, and ceate loose packing inside the box
from yade import pack, plot, qtv
O.bodies.
sp = pack.SpherePack()
sp.makeCloud((0, 0, 0), (1, 1, 1), rMean=rMean, rRelFuzz=rRelFuzz)
sp.toSimulation()
O.engines = [
# sphere, facet, wall
# the loading plate is a wall, we need to handle sphere+sphere, sphere+facet, sphere+wall
),
# the label creates an automatic variable referring to this engine
# we use it below to change its attributes from the functions called
# save data for Paraview
]
O.dt = .5 * PWaveTimeStep()
qt.View()
# the following checkUnbalanced, unloadPlate and stopUnloading functions are all called by the 'checker'
# (the last engine) one after another; this sequence defines progression of different stages of the
# simulation, as each of the functions, when the condition is satisfied, updates 'checker' to call
# the next function when it is run from within the simulation next time
# check whether the gravity deposition has already finished
# if so, add wall on the top of the packing and start the oedometric test
def checkUnbalanced():
# at the very start, unbalanced force can be low as there is only few contacts, but it does not mean the packing is stable
if O.iter < 5000:
return
# the rest will be run only if unbalanced is < .1 (stabilized packing)
if unbalancedForce() > .1:
return
# add plate at the position on the top of the packing
# the maximum finds the z-coordinate of the top of the topmost particle
O.bodies.
global plate # without this line, the plate variable would only exist inside this function
plate = O.bodies[-1] # the last particles is the plate
# Wall objects are "fixed" by default, i.e. not subject to forces
# prescribing a velocity will therefore make it move at constant velocity (downwards)
plate.state.vel = (0, 0, -.1)
# start plotting the data now, it was not interesting before
O.engines = O.engines + [PyRunner(
# next time, do not call this function anymore, but the next one (unloadPlate) instead
checker.command = 'unloadPlate()'
def unloadPlate():
# if the force on plate exceeds maximum load, start unloading
if abs(O.forces.
plate.state.vel *= -1
# next time, do not call this function anymore, but the next one (stopUnloading) instead
checker.command = 'stopUnloading()'
def stopUnloading():
if abs(O.forces.
# O.tags can be used to retrieve unique identifiers of the simulation
# if running in batch, subsequent simulation would overwrite each other's output files otherwise
# d (or description) is simulation description (composed of parameter values)
# while the id is composed of time and process number
plot.
O.pause()
def addPlotData():
if not isinstance(
plot.addData()
return
Fz = O.forces.
plot.addData(
# besides unbalanced force evolution, also plot the displacement-force diagram
plot.plots = {'i': ('unbalanced',), 'w': ('Fz',)}
plot.plot()
O.saveTmp()
Thanks in advance
Question information
- Language:
- English Edit question
- Status:
- Answered
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Last query:
- Last reply:
Can you help with this problem?
Provide an answer of your own, or ask Amrisha Khandelwal for more information if necessary.