yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #25972
Re: [Question #698135]: PFV model is not working without any issue
Question #698135 on Yade changed:
https://answers.launchpad.net/yade/+question/698135
Status: Needs information => Open
Sam gave more information on the question:
Hi Robert,
Thanks for the reply. When I run the code, I get this one:
Welcome to Yade 2018.02b-290bf6a54e~xenial
TCP python prompt on localhost:9000, auth cookie `yaksus'
XMLRPC info provider on http://localhost:21000
Running script MINPFV.py
You can find the MWE pf the code as follows:
# import corrosponding yade modulus
from yade import pack
from yade import geom
from yade import plot
from yade import ymport
from yade import qt
from yade.gridpfacet import *
import gts, os.path, locale
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
import sys,os
from yade import plot,pack,export
sys.path.append(os.pardir)
########################################################################
# A. DEFINING VARIABLES, MATERIALS' PROPERTIES AND PACKING #
########################################################################
# A.a). define variables
key = 'Triaxial_Undrained' # file name to be saved
young=550e6 # normal contact stiffness
compFricDegree = 1.8 # initial contact friction during the confining
phase
finalFricDegree = 43 # contact friction during the deviatoric loading
poisson = 0.3 # shear-to-normal stiffness ratio
isoStress = 110000 # confining stress
conStress = 100000 # confining stress for deviatoric loading stage
width = 1.4e-1 # sample width
height = 2.8e-1 # target sample height(after consolidation)
height_0 = 3.2e-1 # initial sample height
num_spheres=500 # number of spheres
R_p = 0.0084 # mean particle radius
rCoff = 10 # thickness of top and bot sphere cap (based on rParticle)
rParticle = 0.02e-1 # membrane grid seed size
alpha = 8
rate = 0.1 # loading rate (strain rate)
damp = 0.3 # damping coefficient
targetPorosity = 0.43 # target porosity
thresholdvalue = 0.05 # threshold unbalance force
final_rate = 0.1 # strain rate for deviator loading
thresholdstrain = 0.06 # threshold axial strain for terminate
enlargefactor = 1.00
# A.b). create materials for sand spheres and plates
Sand = O.materials.append(CohFrictMat(
young=young,poisson=poisson,frictionAngle=radians(compFricDegree),
alphaKr=0.25,alphaKtw=0,etaRoll=0.005,etaTwist=0,
normalCohesion=5e6,shearCohesion=5e6,
momentRotationLaw=True,density=2650,label='spheres'
))
# A.c). create membrane materials
207
GridMat = O.materials.append(CohFrictMat(
young=100e6,poisson=0.3,density=2650,frictionAngle=radians(0),
alphaKr=0,alphaKtw=0,etaRoll=0,etaTwist=0,
normalCohesion=1e9,shearCohesion=1e9,
momentRotationLaw=True,label='gridNodeMat'
))
pFacetMat = O.materials.append(FrictMat(
young=100e6,poisson=0.3,density=2650,frictionAngle=radians(0),label='pFacetMat'
))
# A.d). create TOP & BOT plate materials
frictMat = O.materials.append(FrictMat(
young=100e6,poisson=0.3,density=2650,frictionAngle=radians(0),label='frictMat'
))
###################################################################
# B. DEFINING GLOBAL ENGINES #
###################################################################
#**********************************************************************#
O.engines=[
ForceResetter(),
InsertionSortCollider([
Bo1_Sphere_Aabb(),
Bo1_PFacet_Aabb(),
Bo1_Facet_Aabb(),
Bo1_GridConnection_Aabb()
]),
InteractionLoop(
[
Ig2_Sphere_Sphere_ScGeom6D(),
Ig2_GridNode_GridNode_GridNodeGeom6D(),
Ig2_GridConnection_GridConnection_GridCoGridCoGeom(),
Ig2_Sphere_PFacet_ScGridCoGeom(),
Ig2_Facet_Sphere_ScGeom6D()
],
[
Ip2_FrictMat_FrictMat_FrictPhys(),
Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(label="cohesiveIp")
],
[
Law2_ScGeom_FrictPhys_CundallStrack(),
Law2_ScGeom6D_CohFrictPhys_CohesionMoment(useIncrementalForm
=True,always_use_moment_law=False,label='cohesiveLaw'),
Law2_GridCoGridCoGeom_FrictPhys_CundallStrack(),
Law2_ScGridCoGeom_FrictPhys_CundallStrack(),
],label="iloop"
),
GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=25,timestepSafetyCoefficient=0.8),
NewtonIntegrator(gravity=(0,0,0),damping=0.1,label='newton')
]
#**********************************************************************#
O.engines[2].lawDispatcher.functors[1].always_use_moment_law=False
O.engines[2].physDispatcher.functors[1].setCohesionOnNewContacts=False
#######################################################################
# C. GENERATING PACKING #
#######################################################################
# C.a). generate random dense sphere pack
sp=pack.SpherePack()
pred = pack.inCylinder((0,0,0),(0,0,height_0),.5*width)
sp.makeCloud((0,0,0),(.3,.3,2),rMean=0.0083,rRelFuzz=0.1)
#sp = pack.randomDensePack(
pred,spheresInCell=num_spheres,radius=R_p,rRelFuzz=0.3,
returnSpherePack=True,memoDbg=True),#memoizeDb='/tmp/loosePackings11.sqlite')
sp.toSimulation(color=(0,1,1),material=Sand)
triax=TriaxialStressController(
maxMultiplier=1.+2e4/young, # spheres growing factor (fast
growth)
finalMaxMultiplier=1.+2e3/young, # spheres growing factor (slow
growth)
thickness = 0,
stressMask = 7,
max_vel = 0.005,
internalCompaction=True, # If true the confining pressure is
generated by growing particles
)
newton=NewtonIntegrator(damping=0.2)
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()],label="iloop"
),
FlowEngine(dead=1,label="flow"),#introduced as a dead engine for
the moment, see 2nd section
GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8),
triax,
newton
]
triax.goal1=triax.goal2=triax.goal3=-10000
while 1:
O.run(1000, True)
unb=unbalancedForce()
if unb<0.001 and abs(-10000-triax.meanStress)/10000<0.001:
break
--
You received this question notification because your team yade-users is
an answer contact for Yade.