← Back to team overview

yade-dev team mailing list archive

Re: container speedups?

 

> > Wow, impressive. Can you add script to examples/ or similar? I will try
> > to run it with older version to see the difference.
> 
> It is the script examples/STLImporterTest.py, r2099.
> Just uncomment line 21 and, may be, line 58 for saving results.
> To 50k iterations (as in the presented simulation) needed 14h30m...
Reading the script: are you aware that lines 28-30:
> s=utils.sphere([x,y,z],sphereRadius,material=sphereMat)
> p=utils.getViscoelasticFromSpheresInteraction(s.state['mass'],tc,en,es) s.mat['kn'],s.mat['cn'],s.mat['ks'],s.mat['cs']=p['kn'],p['cn'],p['ks'],p['cs']
uselessly compute viscoelastic properties of material for each sphere
(even if their parameters are the same) and moreover modify shared
material s.mat over and over with the same values...

You could do something like this instead:

sphereRadius=0.05
nbSpheres=Vector3(50,50,50)

params=utils.getViscoelasticFromSpheresInteraction(sphereMat.density*(4/3.)*pi*sphereRadius**3,tc,en,es)
sphereMat=O.materials.append(SimpleViscoelasticMat(density=Density,frictionAngle=frictionAngle,**params)) # shared material, since added to O.materials

from yade import pack
spheres=pack.regularOrtho(
	predicate=pack.inAlignedBox(Vector3(0,0,0),nbSpheres*2.2*sphereRadius),
	radius=sphereRadius,
	gap=0.2*sphereRadius,
	material=sphereMat
)
O.bodies.append(spheres)

v








Follow ups

References