Capillary model

Asked by Amiya Prakash Das

Hi

Sorry i asked this question earlier, but i need some clarification regarding the results i am getting.

I am trying to isotropically compress a packing with capillarity with sigmaIso being 10e06 Pa. When i am varying my Capillary pressure viz., 200, 1500 and 10000 kPa, i am still getting same response in terms of void ration and mean stress. Is it because of water being in pendular regime or i am doing something wrong.

My script:

# generate loose packing
from yade import pack, qt, plot

#some parameters:
young_modulus=5e6
friction = 0.5
angle = atan(friction)
local_damping = 0.01
viscous_normal = 0.021
viscous_shear = 0.8*viscous_normal
mn = Vector3(0,0,0)
mx = Vector3(.05,.05,.05)
#key ='_triax_base_',

#creating a material (FrictMat):
O.materials.append(FrictMat(young=young_modulus,poisson=0.5,frictionAngle=angle,density=2600,label='spheres'))

#SphereMat=O.materials[id_SphereMat]
O.materials.append(FrictMat(young=young_modulus,poisson=0.5,frictionAngle=0,density=0,label='walls'))

#generate boundary:
walls=aabbWalls([mn,mx],thickness=0,material='walls')
wallIds=O.bodies.append(walls)

#generate particles:
sp=pack.SpherePack()

sp.makeCloud(mn,mx,.001,rRelFuzz=.3,seed=1)
O.bodies.append([sphere(c,r,material='spheres') for c,r in sp])

triax=TriaxialStressController(thickness = 0,
          stressMask = 7,
          internalCompaction=False, # If true the confining pressure is generated by growing particles
                 goal1=-1e06,
                               goal2=-1e06,
                               goal3=-1e06,
                               max_vel=0.01,

)

#define engines:

O.engines=[
  ForceResetter(),
  InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
  InteractionLoop(
   [Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
   [Ip2_FrictMat_FrictMat_CapillaryPhys()], #for linear model only
   [Law2_ScGeom_FrictPhys_CundallStrack()], #for linear model only
  ),
  Law2_ScGeom_CapillaryPhys_Capillarity(capillaryPressure=10000),#for linear model only
  GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8),
                triax,
                TriaxialStateRecorder(iterPeriod=100,file='Porosity_10000.txt'),
  NewtonIntegrator(damping=local_damping),
                PyRunner(command='addPlotData()',iterPeriod=100)
]

def addPlotData():
   plot.addData(
      i=O.iter,
      s11=-triax.stress(triax.wall_right_id)[0],s22=-triax.stress(triax.wall_top_id)[1],s33=-triax.stress(triax.wall_front_id)[2],
      e11=-triax.strain[0],e22=-triax.strain[1],e33=-triax.strain[2], poro=utils.porosity(), stress=-triax.meanStress,
               )

#set time step and run simulation:
O.dt=0.5*PWaveTimeStep()

plot.plots={'i ':('s11','s22','s33'),' i':('e11','e22','e33'), 'stress':('poro')}

#show the plot
plot.plot()

#save the plot
#plot.saveDataTxt('Porosity_1.txt',vars=('i','s11','s22','s33','e11','e22','e33','poro','stress'))

from yade import qt
qt.View()
print('Press PLAY button')

Thanks...
Amiya

Question information

Language:
English Edit question
Status:
Answered
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Jérôme Duriez (jduriez) said :
#1

A quick look to your script at least indicates you do not define neverErase [*] in your "dry" contact law (Law2_ScGeom_FrictPhys_CundallStrack)

Doing so, you're considering liquid bridges at contacts only, disregarding the possibility for liquid bridges to stretch and exist when particles separate (such distant liquid bridges usually exist for lower suction values). If we assume that the capillary force between contacting particles is constant in the range of tested suctions (?), we indeed get a possible explanation for your simulations to be all the same.

You may thus start with defining neverErase=True.

Jerome

[*] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.Law2_ScGeom_FrictPhys_CundallStrack.neverErase

Revision history for this message
Amiya Prakash Das (amiya0703) said :
#2

Hi

I tried your suggestion, but i still get the same response.

Best
Amiya

Can you help with this problem?

Provide an answer of your own, or ask Amiya Prakash Das for more information if necessary.

To post a message you must log in.