simulation explodes as soon as flow engine is activated
Hello there,
I have been struggling with this for a while now and could not figure out what is wrong. My simulation (shear test with periodic boundary conditions) explodes as soon as the flow engine is activated (see the last 2 lines) and I don't know if it is due to the technical problems that I am facing with the flow engine or if there is something wrong with my script. Could someone please try it and see if it works on his side?
Many thanks
Luc
###
from yade import pack
sp=pack.
O.periodic=True
# dimensions of sample
RADIUS=0.05
length=
height=length
width=length
thickness=
# microproperties
DENS=2600
E=1e8
P=0.5
compFRIC=10.
FRIC=30.
TENS=0.
COH=0.
# loading conditions
SN=5e6
RATE=0.1
####
O.cell.
O.materials.
O.materials.
upBox = utils.box(
lowBox = utils.box(
O.bodies.
sp.makeCloud(
O.bodies.
effCellVol=
volRatio=
#### engines
flow=PeriodicFl
isActivated=0
,useSolver=3
### what should we define in the next 2 lines?
,defTolerance=-1 # with this value, triangulation is done according to meshUpdateInterval
,meshUpdateInt
,duplicateThre
,boundaryUseMa
,wallIds=
,wallThickness
,bndCondIsPres
,permeabilityF
,viscosity=1.
,label='flowEng'
)
O.engines=[
ForceResetter()
,InsertionSort
,InteractionLoop(
[Ig2_
[Ip2_
[Law2_
)
,GlobalStiffne
,PeriTriaxCont
,flow
,NewtonIntegra
]
def compactionDone():
print 'Changing contact properties now'
tt=TriaxialCom
tt.setContactP
print 'DONE! iter=',O.iter,'| isotropic confinement done: stresses=
triax.dead=True
O.pause()
#### Initialization
print 'SAMPLE PREPARATION!'
O.run(1000000,1)
#### Applying normal stress
print 'NORMAL LOADING! iter=',O.iter
stage=0
stiff=fnPlaten=
def servo():
global stage,stiff,
if stage==0:
currentSN=
unbF=
boundaryVel=
O.bodies[
if ( (abs(currentSN-
stage+=1
fnPlaten=
print 'Normal stress =',currentSN,' | unbF=',unbF
for i in O.interactions.
stiff+
print 'DONE! iter=',O.iter
O.pause()
if stage==1:
fnDesired=
boundaryVel=
O.bodies[
O.engines = O.engines[
O.run(1000000,1)
print 'Normal stress (platen) = ',O.forces.
print 'Normal stress (contacts) = ',getStress(
#### preparing for shearing
print 'Gluing spheres to boundary walls'
## gluing particles in contact with the walls
for i in O.interactions:
if i.isReal:
if isinstance(
O.bodies[
if isinstance(
O.bodies[
for i in O.interactions:
if i.isReal and ( O.bodies[
O.bodies[
O.bodies[
O.bodies[
O.bodies[
i.phys.
#### shearing
print 'SHEARING! iter=',O.iter
flow.isActivated=1 # sample explodes as soon as fluid is activated???
O.bodies[
O.run(10)
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Luc Scholtès
- Solved:
- Last query:
- Last reply: