← Back to team overview

yade-users team mailing list archive

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.