yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #06006
Re: [Bug 666246] Re: periodic boundary don't work with ViscEl classes
2010/10/26 Václav Šmilauer <eu@xxxxxxxx>
> Moving the discussion back to the bug tracker...
>
> Chiara: misunderstanding, sorry, I meant that the prevous
> Ig2_Facet_Sphere_ScGeom did not work for facets because the shift2
> parameter was disregarded. Otherwise it should work with facets just
> fine, as well as any other shapes.
>
Ok, sorry :-)
>
> For getting periodicity &c in the contact law: please use
> Cell::intrShiftPos (computes the shift2, which moves id2 to the period
> of id1) and Cell::intrShiftVel (computes the velocity delta that must be
> added to id2's velocity so that they are as if in the same period). It
> takes care of possible ways of accounting for velGrad
> (Cell::homoDeform).
>
Ok then I will update my law, I missed these introductions. Thanks!
Chiara
>
> --
> periodic boundary don't work with ViscEl classes
> https://bugs.launchpad.net/bugs/666246
> You received this bug notification because you are a member of Yade
> developers, which is subscribed to Yade.
>
> Status in Yet Another Dynamic Engine: Fix Committed
>
> Bug description:
> Periodic boundary don't work with Ig2_Facet_Sphere_ScGeom and
> Ig2_Sphere_Sphere_ScGeom functors.
>
>
> #=============BEGIN SCRIPT TEST PERIODIC WITH
> Ig2_Sphere_Sphere_ScGeom==========
> # -*- coding: utf-8
>
> from yade import utils
>
> sphereRadius=0.1
> tc=0.001# collision time
> en=0.3 # normal restitution coefficient
> es=0.3 # tangential restitution coefficient
> density=2700
> frictionAngle=radians(35)#
> params=utils.getViscoelasticFromSpheresInteraction(tc,en,es)
>
> sphereMat=O.materials.append(ViscElMat(density=density,frictionAngle=frictionAngle,**params))
>
>
> # Spheres
> sphId=O.bodies.append([
> utils.sphere( (i*0.2+0.1,0.5,0.2), 0.1, material=sphereMat) for i in
> range(5)
> ])
> O.bodies[sphId[-1]].state.vel=(0.5,0.5,0)
>
> ## Engines
> O.engines=[
> ForceResetter(),
> InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
> InteractionLoop(
> [Ig2_Sphere_Sphere_ScGeom()],
> [Ip2_ViscElMat_ViscElMat_ViscElPhys()],
> [Law2_ScGeom_ViscElPhys_Basic()],
> ),
> NewtonIntegrator(damping=0),
> ]
>
> O.periodic=True
> O.cell.refSize=Vector3(1,1,1)
>
> O.dt=.01*tc
>
> O.saveTmp()
> #==========================END======================
>
>
> #=============BEGIN SCRIPT TEST PERIODIC WITH
> Ig2_Facet_Sphere_ScGeom==========
> # -*- coding: utf-8
>
> from yade import utils
>
> sphereRadius=0.1
> tc=0.001# collision time
> en=0.3 # normal restitution coefficient
> es=0.3 # tangential restitution coefficient
> density=2700
> frictionAngle=radians(35)#
> params=utils.getViscoelasticFromSpheresInteraction(tc,en,es)
>
> facetMat=O.materials.append(ViscElMat(frictionAngle=frictionAngle,**params))
>
> sphereMat=O.materials.append(ViscElMat(density=density,frictionAngle=frictionAngle,**params))
>
> floor
> n=5.
> s=1./n
> for i in range(0,n):
> for j in range(0,n):
> O.bodies.append([
> utils.facet(
> [(i*s,j*s,0.1),(i*s,(j+1)*s,0.1),((i+1)*s,(j+1)*s,0.1)],material=facetMat),
> utils.facet(
> [(i*s,j*s,0.1),((i+1)*s,j*s,0.1),((i+1)*s,(j+1)*s,0.1)],material=facetMat),
> ])
>
> # Spheres
> sphId=O.bodies.append([
> utils.sphere( (0.5,0.5,0.2), 0.1, material=sphereMat),
> ])
> O.bodies[sphId[-1]].state.vel=(0.5,0,0)
>
> ## Engines
> O.engines=[
> ForceResetter(),
> InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
> InteractionLoop(
> [Ig2_Facet_Sphere_ScGeom()],
> [Ip2_ViscElMat_ViscElMat_ViscElPhys()],
> [Law2_ScGeom_ViscElPhys_Basic()],
> ),
> GravityEngine(gravity=[0,0,-9.81]),
> NewtonIntegrator(damping=0),
> ]
>
> O.periodic=True
> O.cell.refSize=Vector3(1,1,1)
>
> O.dt=.01*tc
>
> O.saveTmp()
> #==========================END======================
>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev>
> Post to : yade-dev@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-dev<https://launchpad.net/%7Eyade-dev>
> More help : https://help.launchpad.net/ListHelp
>
--
periodic boundary don't work with ViscEl classes
https://bugs.launchpad.net/bugs/666246
You received this bug notification because you are a member of Yade
developers, which is subscribed to Yade.
Status in Yet Another Dynamic Engine: Fix Committed
Bug description:
Periodic boundary don't work with Ig2_Facet_Sphere_ScGeom and Ig2_Sphere_Sphere_ScGeom functors.
#=============BEGIN SCRIPT TEST PERIODIC WITH Ig2_Sphere_Sphere_ScGeom==========
# -*- coding: utf-8
from yade import utils
sphereRadius=0.1
tc=0.001# collision time
en=0.3 # normal restitution coefficient
es=0.3 # tangential restitution coefficient
density=2700
frictionAngle=radians(35)#
params=utils.getViscoelasticFromSpheresInteraction(tc,en,es)
sphereMat=O.materials.append(ViscElMat(density=density,frictionAngle=frictionAngle,**params))
# Spheres
sphId=O.bodies.append([
utils.sphere( (i*0.2+0.1,0.5,0.2), 0.1, material=sphereMat) for i in range(5)
])
O.bodies[sphId[-1]].state.vel=(0.5,0.5,0)
## Engines
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom()],
[Ip2_ViscElMat_ViscElMat_ViscElPhys()],
[Law2_ScGeom_ViscElPhys_Basic()],
),
NewtonIntegrator(damping=0),
]
O.periodic=True
O.cell.refSize=Vector3(1,1,1)
O.dt=.01*tc
O.saveTmp()
#==========================END======================
#=============BEGIN SCRIPT TEST PERIODIC WITH Ig2_Facet_Sphere_ScGeom==========
# -*- coding: utf-8
from yade import utils
sphereRadius=0.1
tc=0.001# collision time
en=0.3 # normal restitution coefficient
es=0.3 # tangential restitution coefficient
density=2700
frictionAngle=radians(35)#
params=utils.getViscoelasticFromSpheresInteraction(tc,en,es)
facetMat=O.materials.append(ViscElMat(frictionAngle=frictionAngle,**params))
sphereMat=O.materials.append(ViscElMat(density=density,frictionAngle=frictionAngle,**params))
floor
n=5.
s=1./n
for i in range(0,n):
for j in range(0,n):
O.bodies.append([
utils.facet( [(i*s,j*s,0.1),(i*s,(j+1)*s,0.1),((i+1)*s,(j+1)*s,0.1)],material=facetMat),
utils.facet( [(i*s,j*s,0.1),((i+1)*s,j*s,0.1),((i+1)*s,(j+1)*s,0.1)],material=facetMat),
])
# Spheres
sphId=O.bodies.append([
utils.sphere( (0.5,0.5,0.2), 0.1, material=sphereMat),
])
O.bodies[sphId[-1]].state.vel=(0.5,0,0)
## Engines
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
InteractionLoop(
[Ig2_Facet_Sphere_ScGeom()],
[Ip2_ViscElMat_ViscElMat_ViscElPhys()],
[Law2_ScGeom_ViscElPhys_Basic()],
),
GravityEngine(gravity=[0,0,-9.81]),
NewtonIntegrator(damping=0),
]
O.periodic=True
O.cell.refSize=Vector3(1,1,1)
O.dt=.01*tc
O.saveTmp()
#==========================END======================
References