yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #11953
[Question #274781]: Unable to run a CapillaryTriaxialTest
New question #274781 on Yade:
https://answers.launchpad.net/yade/+question/274781
Hello everyone,
I successfully ran a triaxial compression test using the TriaxialTest() preprocessor. However, if I try to add capillary physics the simulation does not appear to work.
The only differences between my working TriaxialTest() script and CapillaryTriaxialTest() are as follows:
1) Change "TriaxialTest" to "CapillaryTriaxialTest"
2) Change "radiusStdDev" to "Rdispersion"
3) Add "collider.verletDist=0" (I added this because the collider complained about not finding NewtonIntegrator)
I have capillary pressure at 0 as I am currently just trying to get it working. The particle packing does not appear to happen at all, I just get a porosity of 1.0. I tried it with Yade1.07 as well as the daily 1.20 build.
I confess to being a novice, am I missing something obvious?
Below is my script
Thanks,
Gary
############################################
### DEFINING VARIABLES AND MATERIALS ###
############################################
num_spheres=7000# number of spheres
key='_triax_base_'
compFricDegree = 15 # initial contact friction during the confining phase
finalFricDegree = 15 # contact friction during the deviatoric loading
rate=25.0 # loading rate (strain rate)
damp=0.2 # damping coefficient
young=50.0e6 # contact stiffness
mn,mx=Vector3(0,0,0),Vector3(0.00004,0.00004,0.00004) # corners of the initial packing
confinement_p = 10000.0
triaxial_p = 1.0e4
cap_p = 10000.0
############################
### Triaxial Test ###
############################
ttest=CapillaryTriaxialTest(
Key=key,
boxYoungModulus=young,
compactionFrictionDeg=compFricDegree,
# capillaryPressure=cap_p,
dampingForce=damp,
finalMaxMultiplier=1.+2e3/young, # spheres growing factor (slow growth)
# internalCompaction=True,
lowerCorner=mn,
maxMultiplier=1.+2e4/young, # spheres growing factor (fast growth)
numberOfGrains=num_spheres,
radiusMean=0.0000008,
Rdispersion=0.1,
recordIntervalIter=200,
sigmaIsoCompaction=confinement_p,
sigmaLateralConfinement=triaxial_p,
sphereFrictionDeg=finalFricDegree,
sphereYoungModulus=young,
strainRate=rate,
timeStepUpdateInterval=100,
upperCorner=mx,
# water=False,
)
ttest.load()
triax=typedEngine('TriaxialCompressionEngine')
recorder=typedEngine('TriaxialStateRecorder')
newton=typedEngine('NewtonIntegrator')
collider=typedEngine('InsertionSortCollider')
collider.verletDist=0
#####################################################
### Record and plot data ###
#####################################################
from yade import plot
from yade import timing
## a function saving variables
def history():
plot.addData(e11=triax.strain[0], e22=triax.strain[1], e33=triax.strain[2],
ev=-triax.strain[0]-triax.strain[1]-triax.strain[2],
s11=triax.stress(triax.wall_top_id)[0],
s22=triax.stress(triax.wall_right_id)[1],
s33=triax.stress(triax.wall_front_id)[2],
i=O.iter)
O.engines=O.engines[0:5]+[PyRunner(iterPeriod=200,command='history()',label='recorder')]+O.engines[5:7]
O.timingEnabled=True
totalTime=0
import sys
for i in range(0,1000):
O.run(100,True)
totalTime+=sum([e.execTime for e in O.engines])
print '\r Total time: %g s'%(totalTime/1e9)," state:",triax.currentState," progress:",(i/10.0),"%\r",
timing.reset()
sys.stdout.flush()
O.save('finalState'+key+'.yade.gz')
print "\n### Final state saved ###"
plot.plots={'i':('e11','e22','e33',None,'s11','s22','s33')}
plot.plot()
plot.saveDataTxt('results'+key)
plot.saveGnuplot('plotScript'+key)
--
You received this question notification because your team yade-users is
an answer contact for Yade.