undrained triax test of fully saturated material (using TriaxialStressController and FlowEngine)

Asked by Christian Jakob on 2014-06-13


For my simulations it is no problem to do a drained triax test with this PFV options:


I also want to do an undrained test, like this:


Then I get this warning:

CHOLMOD warning: matrix not positive definite
something went wrong in Cholesky factorization, use LDLt as fallback this time

To solve this, I have to use at least one fixed pressure boundary condition or impose pressure at one (or more) cells, e.g.:


So the pressure of this cell will be constant during the calculation and in the end it is still a drained test, right?
If I do flow.clearImposedPressure() after some steps were done, the same warning (see above) appears again.

Is there a trick to simulate an undrained test with FlowEngine?


Question information

English Edit question
Yade Edit question
No assignee Edit question
Solved by:
Bruno Chareyre
Last query:
Last reply:
Jérôme Duriez (jduriez) said : #1

Hello Christian,

Curiosity question : why do you want to use FlowEgine in a simulation where there is no flow ? Disregarding the (modelization of) presence of water, and using a constant volume control (that is often said to correspond to undrained conditions in soil mechanics) would not be adequate for you ?


Christian Jakob (jakob-ifgt) said : #2

Hi Jerome,

Ok, I see the problem is that FlowEngine supports just incompressible flow.

Hm, then the question is how to make FlowEngine compressible?


Jérôme Duriez (jduriez) said : #3

I think Tran2011b (in https://www.yade-dem.org/doc/publications.html#master-and-phd-theses) used a compressible scheme. But I can not tell you more about it (and you will need to read french before other answers).

Christian Jakob (jakob-ifgt) said : #4

Thanks for the literature link, Jerome.

Nice to hear that compressible flow is implemented in the code of Van Tieng Tran. But it seems this feature was never pushed to yade main trunk ...

1/ Undrained/incompressible is ill posed, therefore not possible without tricks (I'm myself thinking about it).
2/ imposed pressure condition is a drainage condition, it is not what you want.
3/ the compressible scheme is used if you set flow.bulkModulus to something (isn't it visible in the documentation?)

Jerome: undrained does not mean no flow.

Christian Jakob (jakob-ifgt) said : #6

Thanks Bruno Chareyre, that solved my question.

Christian Jakob (jakob-ifgt) said : #7


1/ tricks?
2/ right, I thought it could be used as a trick
3/ flow.fluidBulkModulus is hopefully doing what I want and it is now visible for me ^^
Are there other parameters to take care of in compressible scheme?

Sorry for late reply... for the record:
1/ custom ones, I have no general answer
2/ I think maintaining constant volume by manipulating the imposed pressure does not play very well with incompressibility
3/ switching to compressible scheme does not imply to change other parameters, no. It is more the other way around: the stability of the incompressible scheme requires the smallest timestep, for instance. So switching to compressible should be 100% safe in general.