Question #691703 on Yade changed:
https://answers.launchpad.net/yade/+question/691703
Liu Changdong posted a new comment:
Hi mrhappy:
Thank you very much for answering my questions. From the question [1] i
know how to impose water. And i changed my script to simulate a simple
example like oedometer.py with JCFpmMat and DFNFlowEngine, and it worded
very well. But when I added a crack to the model the following problem
occurred:
negative volume for an ordinary pore (temp warning, should still be safe)
negative volume for an ordinary pore (temp warning, should still be safe)
negative volume for an ordinary pore (temp warning, should still be safe)
negative volume for an ordinary pore (temp warning, should still be safe).
I try to reduce time step, but it does not work. My script is as followed:
Can you tell me how to keep track of broken interface.
=========================
from yade import pack
dimModele = 1.0
pred = pack.inAlignedBox((0,0,0),(dimModele,dimModele,dimModele))
# the packing of spheres :
def mat(): return
JCFpmMat(type=1,young=1e8,poisson=0.3,frictionAngle=radians(30),density=3000,tensileStrength=1e6,cohesion=1e6,jointNormalStiffness=1e7,jointShearStiffness=1e7,jointCohesion=1e6,jointFrictionAngle=radians(20),jointDilationAngle=0.0)
nSpheres = 3000.0
poros=0.13
rMeanSpheres = dimModele * pow(3.0/4.0*(1-poros)/(pi*nSpheres),1.0/3.0)
print ''
print 'Creating a cubic sample of spheres (may take some time and cause
warnings)'
print ''
sp =
pack.randomDensePack(pred,radius=rMeanSpheres,rRelFuzz=0.3,memoizeDb='/tmp/gts-triax-packings.sqlite',returnSpherePack=True)
sp.toSimulation(color=(0.9,0.8,0.6),wire=False,material=mat)
print ''
print 'Sample created !'
for o in O.bodies:
if isinstance(o.shape,Sphere):
o.shape.radius*=0.8
# Definition of the facets for joint's geometry
import gts
# joint with ~ 31 deg. dip angle
v1 = gts.Vertex(1,0.5,0)
v2 = gts.Vertex(0,0.5,0)
v3 = gts.Vertex(0,0.5,1)
v4 = gts.Vertex(1,0.5,1)
e1 = gts.Edge(v1,v2)
e2 = gts.Edge(v2,v4)
e3 = gts.Edge(v4,v1)
f1 = gts.Face(e1,e2,e3)
e4 = gts.Edge(v4,v3)
e5 = gts.Edge(v3,v2)
f2 = gts.Face(e2,e4,e5)
s1 = gts.Surface()
s1.add(f1)
s1.add(f2)
facet = gtsSurface2Facets(s1,material=mat)
O.bodies.append(facet)
yade.qt.View()
yade.qt.Controller()
execfile('identifBis.py')
newton=NewtonIntegrator(damping=0.2)
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=0.1)],
[Ip2_JCFpmMat_JCFpmMat_JCFpmPhys(cohesiveTresholdIteration=1)],
[Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(smoothJoint=True,label='interactionLaw',
recordCracks=True,
Key='identifier',neverErase=True),Law2_ScGeom_FrictPhys_CundallStrack()]
),
DFNFlowEngine(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
]
flow.dead=0
flow.BulkModulus=1
flow.viscosity=1
flow.defTolerance=0.3
flow.permeabilityFactor=1
flow.meshUpdateInterval=1
flow.updateTriangulation=True
flow.breakControlledRemesh=True
flow.bndCondIsPressure=[0,0,0,0,1,1]
flow.boundaryUseMaxMin=[1,1,1,1,1,1]
flow.bndCondValue=[0,0,0,0,0,1]
flow.useSolver=3
O.engines=O.engines+[PyRunner(iterPeriod=200,command='flow.saveVtk()')]
O.dt=0.1e-10
O.dynDt=False
========================
can anyone help me with this?
thank you!
[1] https://answers.launchpad.net/yade/+question/689826
--
You received this question notification because your team yade-users is
an answer contact for Yade.
_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help : https://help.launchpad.net/ListHelp