Question #700761 on Yade changed:
https://answers.launchpad.net/yade/+question/700761

    Status: Needs information => Open

Ziyu Wang gave more information on the question:
Hello,I'm sorry I didn't make it clear,I will post my MWE in the end(The
model is a cube generated by RandomDensePack,composed of 5000 particles
with a side length of 0.05m )

Yes,I changed the value of flow.permeabilityFactor to 1,2,3,5,0.01,etc..
In fact, the point of my question is that the flow.getboundaryflux(4) and (5) 
recorded by plot.addData() has not changed in the whole process of triaxial 
compression failure (that is, it has always been a constant value). For 
example,When I set flow.permeabilityFactor to 5, the measured 
values(flow.getboundaryflux(4) and (5)) are always about - 73 and 73 throughout 
the triaxial compression process. However, as far as I know, the permeability 
should be a variable value in the process of triaxial compression failure

-----------------script----------------------
from yade import pack, ymport, plot, utils, export, timing
Wy=-10e6
Sy=-2e6
rate=-0.1
damp=0.4
stabilityThreshold=0.001
key='_triax_base_'
young=3000e9
name='JCFPM_triax'
compFricDegree=30
poisson=0.4

mn,mx=Vector3(0,0,0),Vector3(0.05,0.05,0.05)
O.materials.append(JCFpmMat(type=1,density=2640,young=young,poisson=poisson,tensileStrength=160e6,cohesion=1600e6,frictionAngle=radians(10),label='sphere'))
O.materials.append(JCFpmMat(type=1,frictionAngle=0,density=0,label='wall'))

walls=aabbWalls([mn,mx],thickness=0,material='wall')
wallIds=O.bodies.append(walls)
O.bodies.append(ymport.text('packing-JCFPM.spheres',scale=1,shift=Vector3(0,0,0),material='sphere',color=(0.6,0.5,0.15)))

triax=TriaxialStressController(
        maxMultiplier=1.+4e8/young, 
        finalMaxMultiplier=1.+4e7/young, 
        thickness = 0,
        stressMask = 7,
        internalCompaction=True, 
)
newton=NewtonIntegrator(damping=damp)
O.timingEnabled=True

def recorder():
        yade.plot.addData(
        i=O.iter,
        e11=-triax.strain[0],#e22=-triax.strain[1],
        e33=-triax.strain[2],
        s11=-triax.stress(triax.wall_right_id)[0],#0+边界id为right
        s33=-triax.stress(triax.wall_front_id)[2],#2+边界id为front
        numberTc=interactionLaw.nbTensCracks,
        numberSc=interactionLaw.nbShearCracks,
        unb=unbalancedForce(),
        flux1=flow.getBoundaryFlux(4),
        flux2=flow.getBoundaryFlux(5)
)
        plot.saveDataTxt('triax_JCFPM_HM_Wy=10.0Mpa,Sy=2.0MPa')

def stop_condition():
        extremum=max(abs(s) for s in plot.data['s33'])
        s=abs(plot.data['s33'][-1])
        e=abs(plot.data['e33'][-1])
        if e < 0.001:
                return
        if abs(s)/abs(extremum) < 0.9 :
                print('Max stress and strain:',extremum,e)
                presentcohesive_count = 0
                for i in O.interactions:
                        if hasattr(i.phys, 'isCohesive'):
                                if i.phys.isCohesive == 1:
                                        presentcohesive_count+=1
                print('the number of cohesive bond now 
is:',presentcohesive_count)
                O.pause()

O.engines=[
        ForceResetter(),
        
InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=1.5,label='is2aabb'),Bo1_Box_Aabb()]),
        InteractionLoop(
                
[Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=1.5,label='ss2sc'),Ig2_Box_Sphere_ScGeom()],
                [Ip2_JCFpmMat_JCFpmMat_JCFpmPhys()],
                
[Law2_ScGeom_JCFpmPhys_JointedCohesiveFrictionalPM(recordCracks=True,Key='triax_JCFPM_HM',label='interactionLaw')]
        ),
        
GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.7),
        triax,
        FlowEngine(dead=1,label='flow'),
        
PyRunner(iterPeriod=int(1000),initRun=True,command='recorder()',label='data',dead=0),
        PyRunner(iterPeriod=1000,command='stop_condition()',dead=0),
        
VTKRecorder(iterPeriod=500,initRun=True,fileName='triax/JFFPM-',recorders=['spheres','jcfpm','cracks'],Key='triax',label='vtk',dead=1),
        newton,
]

O.step()
ss2sc.interactionDetectionFactor=-1
is2aabb.aabbEnlargeFactor=-1
cohesiveCount = 0
for i in O.interactions:
 if hasattr(i.phys, 'isCohesive'):
              if i.phys.isCohesive == True:
                     cohesiveCount+=1
print('the origin total number of cohesive bond is:',cohesiveCount)
triax.goal1=triax.goal2=triax.goal3=Wy

while 1:
        O.run(1000,1)
        unb=unbalancedForce()
        print('unbalanced force:',unb,'mean stres:',triax.meanStress)
        if unb<stabilityThreshold and abs(Wy-triax.meanStress)/abs(Wy)<0.001:
                break

yade.timing.reset()
flow.dead=0
flow.debug=False
flow.fluidBulkModulus=2.2e9
flow.permeabilityFactor=5
flow.decoupleForces =  False
flow.meshUpdateInterval=-1
flow.useSolver=4
flow.viscosity=0.001
flow.bndCondIsPressure=[0,0,0,0,1,1]
flow.bndCondValue=[0,0,0,0,0,Sy]

triax.internalCompaction=False
flow.emulateAction()
triax.stressMask=3
triax.goal1=Wy
triax.goal2=Wy
triax.goal3=rate

plot.plots={'e33':(('s33','g'),None,('unb','b')),'i':(('numberTc','b'),('numberSc','r'),None,('s33','y'))}
plot.plot(subPlots=False)
O.run()
-------------------------------------------------------

-- 
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     : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp

Reply via email to