← Back to team overview

yade-users team mailing list archive

[Question #670765]: negative volume for an ordinary pore

 

New question #670765 on Yade:
https://answers.launchpad.net/yade/+question/670765

Hi,

I'm working on DEM-PFV coupling and get some problems.

1)When I run the simulation, I get such warning:
negative volume for an ordinary pore (temp warning, should still be safe)

2)I start the simulation through the controller and inspect it in the 3D view, I find that the small particles are not moving under the fluid force.
The FlowEngine is added before the newton integrator, why doesn't the fluid force acting on the particles?

Can anyone give me some suggestion? Thanks a lot.
I'm running Yade 2018.02b, Ubuntu 18.04.

My code is shown as follow:

====================================================
from yade import pack

num_spheres=1000# number of spheres
young=1e6
compFricDegree = 3 # initial contact friction during the confining phase
finalFricDegree = 30 # contact friction during the deviatoric loading
mn,mx=Vector3(0,0,0),Vector3(2,2,6) # corners of the initial packing

O.materials.append(FrictMat(young=young,poisson=0.5,frictionAngle=radians(compFricDegree),density=2600,label='spheres'))
O.materials.append(FrictMat(young=young,poisson=0.5,frictionAngle=0,density=0,label='walls'))
walls=aabbWalls([mn,mx],thickness=0,material='walls')
wallIds=O.bodies.append(walls)

sp=pack.SpherePack()
sp.makeCloud(mn,mx,rMean=0.3,rRelFuzz=0,num=100,periodic=False)
sp.makeCloud(mn,mx,rMean=0.03,rRelFuzz=0,num=900,periodic=False)
sp.toSimulation(material='spheres')

triax=TriaxialStressController(
	thickness = 0,
	stressMask = 7,
	max_vel = 0.005,
	internalCompaction=0, # If true the confining pressure is generated by growing particles
    wall_bottom_activated=False
)

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

setContactFriction(radians(finalFricDegree))

## ______________   Oedometer section   _________________

triax.stressMask=7
triax.goal1=triax.goal2=triax.goal3=-10000


#B. Activate flow engine and set boundary conditions in order to get permeability

flow.dead=0
flow.defTolerance=0.3
flow.meshUpdateInterval=200
flow.useSolver=3
flow.permeabilityFactor=1
flow.viscosity=10
flow.bndCondIsPressure=[0,0,0,0,1,1]
flow.bndCondValue=[0,0,0,0,10,0]
flow.boundaryUseMaxMin=[0,0,0,0,0,0]
O.dt=0.1e-3
O.dynDt=False

newton.damping=0
======================================================

Best,
Zhang Wenyue

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.