New question #691848 on Yade:
https://answers.launchpad.net/yade/+question/691848

Dear all,

I practice to save the data of the example "bouncing sphere", some problems 
confuse me.
First, I want to get the displacement plot of 'sphere1' in the whole bouncing 
process. And then, saving the data about the test. The code of mine is as 
follows:

#
from yade import plot

O.bodies.append([
        # fixed: particle's position in space will not change (support)
        sphere(center=(0,0,0),radius=.5,fixed=True),
        # this particles is free, subject to dynamics
        sphere((0,0,2),.5)
])

sphere1=O.bodies[-1]
z=sphere1.state.pos[2]-sphere1.state.refPos[2]

O.engines=[
        ForceResetter(),
        InsertionSortCollider([Bo1_Sphere_Aabb()]),
        InteractionLoop(
                [Ig2_Sphere_Sphere_ScGeom()],        # collision geometry
                [Ip2_FrictMat_FrictMat_FrictPhys()], # collision "physics"
                [Law2_ScGeom_FrictPhys_CundallStrack()]   # contact law -- 
apply forces
        ),
        # Apply gravity force to particles. damping: numerical dissipation of 
energy.
        NewtonIntegrator(gravity=(0,0,-9.81),damping=0.1),
        PyRunner(command='addPlotData()',iterPeriod=100)
]

O.dt=.5e-4*PWaveTimeStep()

O.trackEnergy=True
                
def addPlotData():
                
plot.addData(i=O.iter,z=sphere1.state.pos[2]-sphere1.state.refPos[2],**O.energy)
               
O.run(1000000,True)

plot.saveDataTxt('bounce.txt')
                
plot.plots={'i':('z',None,O.energy.keys)}

plot.plot()

O.saveTmp()
#

After running the code,there is no displacement data saved and it comes the 
error warning:
#
Exception ignored in thread started by: <function liveUpdate at 0x7f9be8a40790>
Traceback (most recent call last):
  File "/usr/lib/x86_64-linux-gnu/yade/py/yade/plot.py", line 514, in liveUpdate
    ax.relim() # recompute axes limits
  File "/usr/lib/python3/dist-packages/matplotlib/axes/_base.py", line 2051, in 
relim
    self._update_line_limits(line)
  File "/usr/lib/python3/dist-packages/matplotlib/axes/_base.py", line 1924, in 
_update_line_limits
    path = line.get_path()
  File "/usr/lib/python3/dist-packages/matplotlib/lines.py", line 1027, in 
get_path
    self.recache()
  File "/usr/lib/python3/dist-packages/matplotlib/lines.py", line 679, in 
recache
    self._xy = np.column_stack(np.broadcast_arrays(x, y)).astype(float)
  File "<__array_function__ internals>", line 5, in broadcast_arrays
  File "/usr/lib/python3/dist-packages/numpy/lib/stride_tricks.py", line 264, 
in broadcast_arrays
    shape = _broadcast_shape(*args)
  File "/usr/lib/python3/dist-packages/numpy/lib/stride_tricks.py", line 191, 
in _broadcast_shape
    b = np.broadcast(*args[:32])
ValueError: shape mismatch: objects cannot be broadcast to a single shape
#

Many thanks in advance


-- 
You received this question notification because your team yade-users is
an answer contact for Yade.

_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to     : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to