squashing modelling
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 TriaxialStressC
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.bndCondIsP
#flow.bndCondVa
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.bndCondIsP
#flow.bndCondVa
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.internalC
triax.goal2=-0.1
triax.goal1= 0
triax.goal3= 0
triax.wall_
triax.wall_
triax.wall_
triax.wall_
triax.wall_
"
when I ask for printing the force and position of the top plate
"global plate:
plate = O.bodies[
Ftot0 = abs(O.forces.
Ftot1 = abs(O.forces.
Ftot2 = abs(O.forces.
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.defToleran
flow.meshUpdate
flow.useSolver=3
flow.permeabili
flow.viscosity=10
flow.bndCondIsP
flow.bndCondVal
flow.boundaryUs
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.bndCondIsP
#flow.bndCondVa
flow.updateTria
newton.damping=0
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Rioual
- Solved:
- Last query:
- Last reply: