← Back to team overview

yade-users team mailing list archive

[Question #679320]: squashing modelling

 

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

Hello,

I would like to model the vertical squashing (compression) of a porous material filled with a fluid. The material is inserted in an initially cubic box with six impermeable faces. During the squashing the material is supposed to expand freely along the side faces of the box.
I want to measure the force felt by top plate (face).
For this model, I was inspired by the oedemeter.py code developed in yade (examples) which uses the TriaxialStressController.

1- My first question concerns the parametrization of the flow engine (* at the end of message):
I want to model as initial conditions 6 impermeable boundaries as: 

flow.bndCondIsPressure=[False,False,False,False,False,False]
#flow.bndCondValue=[0,0,0,0,0,0]

but I have immediatly some error messages concerning all the bodies of the code:

"55 : Vh==NULL!! id=55 Point=-261779 255626 -257189 rad=0.0669795
227 : Vh==NULL!! id=227 Point=281321 290581 293209 rad=0.0610796
285 : Vh==NULL!! id=285 Point=302977 -297801 305075 rad=0.0590901
304 : Vh==NULL!! id=304 Point=-457272 -456443 291186 rad=0.0584384
354 : Vh==NULL!! id=354 Point=-295804 297047 300808 rad=0.0567233
496 : Vh==NULL!! id=496 Point=303403 284717 -313298 rad=0.0518524
520 : Vh==NULL!! id=520 Point=310560 -309795 -315643 rad=0.0510292
572 : Vh==NULL!! id=572 Point=-336225 -819563 -802613 rad=0.0492455
CHOLMOD warning: matrix not positive definite
something went wrong in Cholesky factorization, use LDLt as fallback this time
6 : Vh==NULL!! id=6 Point=-2.05296e+15 -1.03117e+16 6.74598e+16 rad=0.0686603
7 : Vh==NULL!! id=7 Point=-6.70813e+13 7.31321e+16 5.4678e+16 rad=0.068626
etc..."

when I write instead:
flow.bndCondIsPressure=[False,False,False,True,False,False]
#flow.bndCondValue=[0,0,0,0,0,0]
I have no error message apparently but this is not what I want!


2- My second question concerns the control of the dynamics of the squashing I want and the motion
 for the 6 plates: a motion driven by an applied strain rate (0.1) on vertical direction and free motion with no applied 
pressure for the 4 side faces:
"
triax.stressMask=5
triax.internalCompaction=False
triax.goal2=-0.1
triax.goal1= 0
triax.goal3= 0
triax.wall_left_activated= True
triax.wall_right_activated= True
triax.wall_front_activated= True
triax.wall_back_activated= True
triax.wall_top_activated= True
"

when I ask for printing the force and position of the top plate 
"global plate:
plate = O.bodies[triax.wall_top_id]
Ftot0 = abs(O.forces.f(plate.id)[0])
Ftot1 = abs(O.forces.f(plate.id)[1])
Ftot2 = abs(O.forces.f(plate.id)[2])
xtot = plate.state.pos[0]
ytot = plate.state.pos[1]
ztot = plate.state.pos[2]"

I get a constant force Ftot1 an no motion at all of the upper plate (xtot, ytot, ztot)=Cst !!
I don't understand.

Thank you very much for your enlightments,

Fr. 

(*)
#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,1,1,0,0]
flow.bndCondValue=[0,0,1,0,0,0]
flow.boundaryUseMaxMin=[0,0,0,0,0,0]
O.dt=0.1e-3
O.dynDt=False

O.run(1,1)
...
#D. now the compression test, impermeable at the top, impermeable at the bottom plate and on the sides
flow.bndCondIsPressure=[False,False,False,False,False,False]
#flow.bndCondValue=[0,0,0,0,0,0]
flow.updateTriangulation=True #force remeshing to reflect new BC immediately
newton.damping=0



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