Compresion test with contant pressure in a cylinder packing
Hi everyone!
I'm working on a project where as the title says, I need to apply a constant pressure over a cylinder packing.
In order to simulate friction with the cylinder walls I seted two particle taggs, one for the ones with fixed position (Walls, Tag=12)) with the setParticleNonD
http://
with a third tag (tag=2) but at the step when it start working my wall and particles just "explode" as when you have a big time step size.
Is there any way to make kind of a circular piston or maybe other idea that archive what I need?
Here is my script. And I apologize by my poor English, I hope it's not that bad.
from esys.lsm import *
from esys.lsm.util import *
from esys.lsm.geometry import *
from LHDRun import LHD
from PistonRun import PistonRun
sim = LsmMpi(
Rmin=0.005
Rmax=0.005
minPoint = Vec3(-2, -2, 0)
maxPoint = Vec3(2, 2, 1.2)
Time=15
TimeBCkP=0.1
TimeStepSize=1e-3
sim.initNeighbo
particleTyp
gridSpacing
verletDist=
)
NumTimeSteps=
sim.setNumTimeS
sim.setTimeStep
sim.setSpatialD
BoundingBox(
)
sim.createInter
GravityPrms(
)
)
sim.readGeometr
sim.setParticle
tag = 1,
mask = -1,
Density = 2600
)
sim.setParticle
tag = 12,
mask = -1,
Density = 2600
)
sim.setParticle
tag = 2,
mask = -1,
Density = 2600
)
sim.setParticle
sim.setParticle
sim.createInter
FrictionPrms(
name=
youngsMod
poissonsR
dynamicMu
staticMu=0.6
)
)
sim.createWall(
name='disco',
posn=
normal=
)
sim.createInter
NRotBondedWa
name=
wallName=
normalK=
particleTag=2
)
)
sim.createInter
LinDampingPrms(
name=
viscosity
maxIterat
)
)
sim.createInter
RotDampingPrms(
name=
viscosity
maxIterat
)
)
sim.createCheck
CheckPointPrms(
fileNameP
beginTime
endTimeSt
timeStepI
)
)
sim.createField
WallVectorFiel
wallName='disco',
fieldName=
fileName=
fileFormat=
beginTimeStep=0,
endTimeStep=
timeStepIncr=
)
)
sim.createField
WallVectorFiel
wallName='disco',
fieldName=
fileName=
fileFormat=
beginTimeStep=0,
endTimeStep=
timeStepIncr=
)
)
#Runnable (this one works perfectly)
lhd=LHD(sim=sim)
sim.addPostTime
#Runnable (here I have some problems)
piston=PistonRun(
sim=sim,
wallName=
wallInteract
rampTime=
pressure=10000,
startTime=
)
sim.addPostTime
sim.run()
Question information
- Language:
- English Edit question
- Status:
- Solved
- Assignee:
- No assignee Edit question
- Solved by:
- Dion Weatherley
- Solved:
- 2020-01-16
- Last query:
- 2020-01-16
- Last reply:
- 2018-12-04
|
#1 |
Hi Pablo,
Firstly, it would appear that your timestep increment is still too large. I calculate that you will need to decrease it from 1e-3 to 3e-4 for the parameters you have chosen.
The specific equation I have used is this:
dt < 0.2 * sqrt (M_min/K_max)
where:
M_min = 4./3.*pi*
K_max = Y_max*R_max
density = 2600.
R_min = 0.005
R_max = 0.005
Y_max = 100000.
This equation means that dt < 3.3e-4. I would normally try dt < 1.e-4 to be safe.
I would definitely try this first. I have not looked carefully at the rest of your script.
Another reason why simulations might "explode" is if particles are on the wrong side of walls. Check the position and normal vectors of walls to make sure particles are always on the positive normal side of the wall.
Let us know if you have further problems.
Cheers,
Dion
Pablo Cid (marmolin) said : | #2 |
Thanks Dion Weatherley, that solved my question.