← Back to team overview

yade-users team mailing list archive

Re: [Question #691703]: Hydraulic fracture with DFNFlowEngine

 

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.