Excess pore-water pressure in triaxial test
Hello.
Can you please provide any information how to implement undrained condition with flow engine? When I change boundary condition in example script (oedometric.py) and put fluidBulkModulu
Kind regards, Fedor
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Fedor
- Solved:
- Last query:
- Last reply:
Revision history for this message
|
#2 |
Hi Fedor!
I was also trying to simulate a similar problem when I used 'flow.bndCondIs
negative volume for an ordinary pore (temp warning, should still be safe)
Failed to triangulate body with id=36 Point=-0.342856 -0.282828 1.24841 rad=0.0553163
and ultimately, it terminates with 'segementation fault'.
If I tried with some boundaries having pressure conditions, e.g. ' 'flow.bndCondIs
I believe using DFNFlowEngine could help, but I am so naive that I couldn't compile to yade. If you could do that and check, that may serve the purpose for both of us.
thanks.
Revision history for this message
|
#3 |
Hi Fedor,
Mathematically it should be possible to solve for pressure when the fluid is compressible (else it is ill-posed), but it requires that at least the initial value of pressure is defined. I don't think I've tried that before.
Do you have a (non-)working example?
Regards
Bruno
Revision history for this message
|
#6 |
Dear Bruno,
I was wondering if you checked the script? \
Kind regards, Fedor
Revision history for this message
|
#7 |
No, not yet. In the coming days with a bit of luck.
-------- Message d'origine --------De : Fedor <email address hidden> Date : 30/05/2023 16:55 (GMT+01:00) À : <email address hidden> Objet : Re: [Question #706740]: Excess pore-water pressure in triaxial test Question #706740 on Yade changed:https:/
Revision history for this message
|
#10 |
Are there any updates regarding this question? I would also like to simulate an undrained triaxial test with a flow engine and I am encountering the same error. Are there any alternative methods available to determine the evolution of pore water during the test? Thank you in advance.
Revision history for this message
|
#11 |
Hi,
I checked the script and I did not see a problem.
There is a pressure response by the fluid when loading is applied.
Did you expect something different? How?
There is indeed this annoying warning (but "should still be safe") , I'll remove it from source code. You can ignore it.
Revision history for this message
|
#12 |
Hello,
Thank you for reply.
I imposed pressure (flow.imposePre
Revision history for this message
|
#13 |
hi Fedor,
I have a question, why did you choose so low bulk modulus, bulk modulus of water is about 2.1e9. such low bulk modulus will result in volumetric strain.
Thanks
Revision history for this message
|
#14 |
Hey Yuri,
Check the manual please is written as a coefficient
Revision history for this message
|
#15 |
> I imposed pressure (flow.imposePre
No, you don't. In the script this line is commented out. If you were imposing pressure it would be a "drained" test.
> volumetric strain should not change during undrained condition
If the fluid is compressible there is nothing to prevent volume changes, as long as you don't force a constant volume (and you don't, because you have mixed stress/displacement conditions on the walls).
> i could not see pore pressure built up
Not sure what you mean. I run your script and I see a plot with changes in the value of "p".
Yuri is correct in #13: flow.fluidBulkM
Revision history for this message
|
#16 |
Thanks a lot.
>Mathematically it should be possible to solve for pressure when the fluid is compressible (else it is ill-posed), but it requires that at least the initial value of pressure is defined.
That's why I tried to do it both with compressible fluid and some initial water pressure inside. Maybe I did't understand correctly.
In undrained experiment usually the pore pressure is rising during deviatoric and reach the max value which is corresponded minimum effective stress.
Now I tried with comprssible fluid and receive this
CHOLMOD error: invalid xtype. file: ../Cholesky/
CHOLMOD error: argument missing. file: ../Cholesky/
Segmentation fault
Revision history for this message
|
#17 |
Initially, I thought your script was crashing in undrained conditions. I thus conjectured that it could come from uninitialized pressure.
But in fact the script does not crash. Pressure is simply initialized at zero. There is no problem.
Imposing pressure in one point would not only initialize, it would continuously impose pressure (at least if you just uncomment the corresponding line, that's what would happen).
> In undrained experiment usually the pore pressure is rising during deviatoric
That is another question. It depends on many things. Let's stick to the numerical model and let's see if it is self-consistent before considering experiments. The main question at this step: is pressure change consistent with the volume change?
> Now I tried with comprssible fluid and receive this
I suppose you meant "incompressible"? This one won't solve: the pressure of an incompressible fluid is unknown if no pressure is imposed somewhere (in other words, the matrix is singular).
Revision history for this message
|
#18 |
No no. I run scrip as it is ( which I attached ) with flow.fluidBulkM
CHOLMOD error: invalid xtype. file: ../Cholesky/
CHOLMOD error: argument missing. file: ../Cholesky/
Segmentation fault
Revision history for this message
|
#19 |
I cannot reproduce your problem with current yadedaily (20230525-
Which version are you using?
Revision history for this message
|
#21 |
2018... hence the misunderstanding.
Apparently something has been improved since then.
I suggest using a newer version. The good news is that you will not have to change the script.
Revision history for this message
|
#22 |
Welcome to Yade 2022.01a
Using python version: 3.10.6 (main, Mar 10 2023, 10:55:28) [GCC 11.3.0]
TCP python prompt on localhost:9000, auth cookie `dyseak'
XMLRPC info provider on http://
Running script N3.py
time step 0.0006163537652
Segmentation fault (core dumped)
Revision history for this message
|
#23 |
Try yadedaily?
p.s. No need. I tried your script with yade 2020.01a and it also runs without problem.
Do you confirm that you have segfaults with the exact script in #4?
Could you show the output of:
yade.libVersion
Revision history for this message
|
#24 |
fedor@fedor-
Welcome to Yade 20230525-
Using python version: 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0]
TCP python prompt on localhost:9000, auth cookie `seacus'
XMLRPC info provider on http://
Running script N3.py
time step 0.0154088441303
Segmentation fault (core dumped)
Revision history for this message
|
#25 |
Dear Bruno.
I used the yadedaily exactly you did
Welcome to Yade 20230525-
Using python version: 3.8.10 (default, May 26 2023, 14:05:08)
[GCC 9.4.0]
TCP python prompt on localhost:9000, auth cookie `yeukdc'
XMLRPC info provider on http://
Running script N3.py
INFO:matplotlib
INFO:matplotlib
time step 0.4082482904638631
negative volume for an ordinary pore (temp warning, should still be safe)
negative volume for an ordinary pore (temp warning, should still be safe)
negative volume for an ordinary pore (temp warning, should still be safe)
<FATAL ERROR> ThreadRunner:35 void yade::ThreadRun
CGAL ERROR: assertion violation!
Expr: dexp != 2047
File: /usr/include/
Line: 404
Explanation: Creating an Mpzf from infinity or NaN.
CHOLMOD error: invalid xtype. file: ../Cholesky/
CHOLMOD error: argument missing. file: ../Cholesky/
Segmentation fault (core dumped)
Revision history for this message
|
#26 |
Sorry, I skipped your PS
fm547@ubuntu:~$ yadedaily
Welcome to Yade 20230525-
Using python version: 3.8.10 (default, May 26 2023, 14:05:08)
[GCC 9.4.0]
TCP python prompt on localhost:9000, auth cookie `ckeuay'
XMLRPC info provider on http://
[[ ^L clears screen, ^U kills line. F12 controller, F11 3D view (press "h" in 3D view for help), F10 both, F9 generator, F8 plot. ]]
In [1]: yade.libVersion
```
Yade version : 20230525-
Yade features : LOGGER USEFUL_ERRORS COMPLEX_MP VTK OPENMP GTS QT5 CGAL PFVFLOW PFVFLOW LINSOLV MPI TWOPHASEFLOW LS_DEM FEMLIKE GL2PS LBMFLOW THERMAL PARTIALSAT POTENTIAL_PARTICLES POTENTIAL_BLOCKS
Yade config dir: ~/.config/yadedaily
Yade precision : 53 bits, 15 decimal places, with mpmath, PrecisionDouble
Yade RealHP<…> : (15, 33, 45, 60, 120, 150, 300) decimal digits in C++, (15, 33) decimal digits accessible from python
```
Libraries used :
| library | cmake | C++ |
| ------------- | -------
| boost | 107100 | 1.71.0 |
| cgal | | 5.0.2 |
| clp | 1.17.5 | 1.17.5 |
| cmake | 3.16.3 | |
| coinutils | 2.11.4 | 2.11.4 |
| compiler | /usr/bin/c++ 9.4.0 | gcc 9.4.0 |
| eigen | 3.3.7 | 3.3.7 |
| freeglut | 2.8.1 | |
| gl | | 20190805 |
| ipython | 7.13.0 | |
| metis | | 5.1.0 |
| mpi | 3.1 | ompi:4.0.3 |
| mpi4py | 3.0.3 | |
| mpmath | 1.1.0 | |
| openblas | | OpenBLAS 0.3.8 |
| python | 3.8.10 | 3.8.10 |
| qglviewer | | 2.6.3 |
| qt | | 5.12.8 |
| sqlite | | 3.31.1 |
| suitesparse | 5.7.1 | 5.7.1 |
| vtk | 6.3.0 | 6.3.0 |
```
Linux version : Ubuntu 20.04.6 LTS
Architecture : amd64
Little endian : True
```
Revision history for this message
|
#27 |
fedor@fedor-
Welcome to Yade 20230525-
Using python version: 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0]
TCP python prompt on localhost:9000, auth cookie `syksce'
XMLRPC info provider on http://
[[ ^L clears screen, ^U kills line. F12 controller, F11 3D view (press "h" in 3D view for help), F10 both, F9 generator, F8 plot. ]]
In [1]: yade.libVersion
```
Yade version : 20230525-
Yade features : LOGGER USEFUL_ERRORS COMPLEX_MP VTK OPENMP GTS QT5 CGAL PFVFLOW PFVFLOW LINSOLV MPI TWOPHASEFLOW LS_DEM FEMLIKE GL2PS LBMFLOW THERMAL PARTIALSAT POTENTIAL_PARTICLES POTENTIAL_BLOCKS
Yade config dir: ~/.config/yadedaily
Yade precision : 53 bits, 15 decimal places, with mpmath, PrecisionDouble
Yade RealHP<…> : (15, 33, 45, 60, 120, 150, 300) decimal digits in C++, (15, 33) decimal digits accessible from python
```
Libraries used :
| library | cmake | C++ |
| ------------- | -------
| boost | 107400 | 1.74.0 |
| cgal | | 5.4 |
| clp | 1.17.5 | 1.17.5 |
| cmake | 3.22.1 | |
| coinutils | 2.11.4 | 2.11.4 |
| compiler | /usr/bin/c++ 11.3.0 | gcc 11.3.0 |
| eigen | 3.4.0 | 3.4.0 |
| freeglut | 2.8.1 | |
| gl | | 20190805 |
| ipython | 7.31.1 | |
| metis | | 5.1.0 |
| mpi | 3.1 | ompi:4.1.2 |
| mpi4py | 3.1.3 | |
| mpmath | 1.2.1 | |
| openblas | | OpenBLAS 0.3.20 |
| python | 3.10.6 | 3.10.6 |
| qglviewer | | 2.6.3 |
| qt | | 5.15.3 |
| sqlite | | 3.37.2 |
| suitesparse | 5.10.1 | 5.10.1 |
| vtk | 9.1.0 | 9.1.0 |
```
Linux version : Ubuntu 22.04.2 LTS
Architecture : amd64
Little endian : True
```
Revision history for this message
|
#28 |
Thanks. We have the same versions... hard to tell why it doesn't give the same behavior on two computers and very difficult to debug.
Do you get the same error always? Or are there cases when it runs longer/differently?
What if you try multiple times with "yade -j3 test.py"?
Revision history for this message
|
#29 |
Good news) The problem was related to vtk recorder (interaction part). I comment it and it works well.
Thanks a bunch.
Bruno, let me ask you something ties to simulation.
During the simulation i obtained this.
n [1]: <WARNING> Shop:401 static yade::Matrix3r yade::Shop:
How should i deal with it?
Revision history for this message
|
#30 |
I doubt vtkRecorder was the problem given this line (related to solving a linear system):
CHOLMOD error: invalid xtype. file: ../Cholesky/
More likely, the problem appears randomly, and it is the annoying part.
> How should i deal with it?
By "passing the actual volume"? ;)
If the contacts on the boundaries are sufficiently stiff it probably makes a very small difference.
Revision history for this message
|
#31 |
Hello Bruno. Thank you for your support and patience.