yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #14504
[Question #593060]: Combining TriaxialStressController and Capillary Engine
New question #593060 on Yade:
https://answers.launchpad.net/yade/+question/593060
Hi all,
I'm trying to simulate the 3D triaxial test with the effect of water using Linear Model Capillary Law. My sample code is given below.
The companion files I got from (1) for testing purpose.
First I want to compact a package with no effect of capillary until I reach a predefined confining stress, let's say 5 kPa.
Second, from the end of the first state, I'll switch on the capillary engine and start the test.
I'm having some issues in first step:
a) When I choose the internalCompaction = True, particles instead of growing, they are shrinking down after a few time steps.
b) I printed out the stress acting on the wall, they seems to be all 0, they cannot reach the goal value in the TriaxialStressController Engine.
--------------
Code:
from yade import pack, plot
from yade import utils
num_spheres=500
mn,mx=Vector3(-0.1,-0.1,-0.1),Vector3(0.1,0.1,0.1)
thick = 0 # thickness used for walls
compFricDegree = 1 # to generate a super dense specimen
wall_velocity = 0.5
rate=0.01
damp=0.06
local_damping = 0.006
## create material
O.materials.append(FrictMat(young=50e6,poisson=0.5,frictionAngle=radians(compFricDegree),density=2600,label='spheres'))
O.materials.append(FrictMat(young=50e6,poisson=0.5,frictionAngle=0,density=0,label='walls'))
## create walls around the packing
walls=utils.aabbWalls([mn,mx],thickness=thick,oversizeFactor=2,material='walls')
wallIds=O.bodies.append(walls)
sp=pack.SpherePack()
sp.makeCloud(mn,mx,0.005,0.3,num_spheres,False,0.8,seed=1)
O.bodies.append([sphere(c,r,material='spheres') for c,r in sp])
volume = (mx[0]-mn[0])*(mx[1]-mn[1])*(mx[2]-mn[2])
mean_rad = pow(0.09*volume/num_spheres,0.3333)
O.dt=.5*utils.PWaveTimeStep()
O.usesTimeStepper=True
triax=TriaxialStressController(
maxMultiplier =1.001,
finalMaxMultiplier =1.000001,
thickness = thick,
radiusControlInterval =10,
stressMask = 7,
max_vel =0.01,
strainDamping =0.75,
stressDamping =0.01
)
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_CapillaryPhys(label='capillary_phys')],
[Law2_ScGeom_FrictPhys_CundallStrack(label='cundall_law')] #for linear model only
),
Law2_ScGeom_CapillaryPhys_Capillarity(capillaryPressure=1000.0,label='cap_law'),#for linear model only
GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8, defaultDt=4*utils.PWaveTimeStep()),
triax,
NewtonIntegrator(damping=local_damping,gravity=(0,0,0))
]
cap_law.dead=True
cundall_law.neverErase=True
triax.internalCompaction = True
from yade import qt
triax.stressMask = 7
triax.goal1 = 5000
triax.goal2 = 5000
triax.goal3 = 5000
qt.View()
-------------------
or view with syntax highlight http://pastebin.com/fGFYpmzS
I tried alternative way by cap_law.dead=False and put capillaryPressure = 0 but no luck.
My system is:
Mint 17 64bit
YADE daily 2017a
Thanks in advance for your comments and help!
Hien
(1) https://yade-dem.org/w/images/d/d2/CapillaryFiles2016.tar.gz
--
You received this question notification because your team yade-users is
an answer contact for Yade.