Hello Everyone,
I would like to setup a poroelastic model using ELMER. In poroelastic model (based on Biot and Terzaghi poroelastic theory), a material is assumed to be made up of solid matrix and fluid present in a porous structure.
Generally, there are two governing equations as shown in attachment 1.png. The equations relate the displacement of the solid matrix (u) which is described in terms of its stress tensor, and the hydrostatic pressure of the fluid (P). Other symbols are alpha (known as Biot parameter), Q (compressibility), kw (permeability) and S (fluid pressure source). The equations are almost similar with the linear elastic and heat equation, so I can use these two equations to my model as a multiphysics problem. I have tried to model this previously.
However, the main problem is that with the extension of the poroelastic modelling. The poroelastic modelling can be extended by assuming that the material consists of multiple porosity, which means in that material, it is made up of a solid matrix and many different fluids. So, the equations can be expanded by adding the effect of hydrostatic pressures of the different fluids present in the porous structure (basically just adding the second equation in the attachment below).
So, to model the multiple poroelastic model is difficult here because I cannot use many heat equations to represent the fluid pressures. Is there any way to do this? Hope anyone can help. If any part of the explanation seems hard to be digested please ask me and I will try to explain further.
Best,
Matthew.
Poroelastic Modelling
Poroelastic Modelling
- Attachments
-
- Governing equations
- 1.png (1.76 KiB) Viewed 5415 times
-
- Site Admin
- Posts: 4832
- Joined: 22 Aug 2009, 11:57
- Antispam: Yes
- Location: Espoo, Finland
- Contact:
Re: Poroelastic Modelling
Hi
Take the ModelPDE (programmers tutorial and test case) and write your tailored versions for the fluids. The ModelPDE is generic advection-diffusion-reaction equation that should be easy to adapt to your needs.
-Peter
Take the ModelPDE (programmers tutorial and test case) and write your tailored versions for the fluids. The ModelPDE is generic advection-diffusion-reaction equation that should be easy to adapt to your needs.
-Peter
Re: Poroelastic Modelling
Hi Peter,
Regarding your reply, I don't quite get what you mean.
Here I attached my set of equations. Is there anyway I can use ELMER to solve the system? My idea is to solve the pressures first before finding the displacement. And the second and third equations are interrelated with the term S21 (S21 is the term that relates the pressures P1 and P2), so I need to solve P1 and P2 simultaneously first, and then solve for P3 (equation 4). Plug in all the P1, P2 and P3 into equation 1 to get u. But that is just my idea, I don't know how to do. Can you help me?
Thanks,
Jamil
Regarding your reply, I don't quite get what you mean.
Here I attached my set of equations. Is there anyway I can use ELMER to solve the system? My idea is to solve the pressures first before finding the displacement. And the second and third equations are interrelated with the term S21 (S21 is the term that relates the pressures P1 and P2), so I need to solve P1 and P2 simultaneously first, and then solve for P3 (equation 4). Plug in all the P1, P2 and P3 into equation 1 to get u. But that is just my idea, I don't know how to do. Can you help me?
Thanks,
Jamil
- Attachments
-
- 2.png (5.33 KiB) Viewed 5406 times
Re: Poroelastic Modelling
Hi Jamil,
The ModelPDE is described from page 13 of this Elmer Programmers Manual for advection-diffusion-reaction equation. You can see there how you can develop a solver from a given partial differential equation and can apply for a PDE.
Yours
Anil Kunwar
The ModelPDE is described from page 13 of this Elmer Programmers Manual for advection-diffusion-reaction equation. You can see there how you can develop a solver from a given partial differential equation and can apply for a PDE.
Yours
Anil Kunwar
Anil Kunwar
Faculty of Mechanical Engineering, Silesian University of Technology, Gliwice
Faculty of Mechanical Engineering, Silesian University of Technology, Gliwice
Re: Poroelastic Modelling
Hi Anil,
Thanks for the link.
Hi All,
I just have one question. How is the linear elastic solver knows what temperature variable is going to be used to calculate the effect of temperature expansion? I know roughly that this is read from the source code line:
TempSol => VariableGet( Mesh % Variables, 'Temperature' )
But, let say I am now using my own solver for the temperature/heat equation, how is the linear elastic solver will read the variable in my new solver? Just curious, please help clear my mind. Thanks.
regards,
Jamil
Thanks for the link.
Hi All,
I just have one question. How is the linear elastic solver knows what temperature variable is going to be used to calculate the effect of temperature expansion? I know roughly that this is read from the source code line:
TempSol => VariableGet( Mesh % Variables, 'Temperature' )
But, let say I am now using my own solver for the temperature/heat equation, how is the linear elastic solver will read the variable in my new solver? Just curious, please help clear my mind. Thanks.
regards,
Jamil
Re: Poroelastic Modelling
Hi,
just shortly: you have to write the temperatue to the Elmer variable structure similar to the way it is done, for example, in the HeatSolver. I assume that you have consulted the Solver manual and the programmer's tutorial, next step is to dig in the source itself...
HTH,
Matthias
just shortly: you have to write the temperatue to the Elmer variable structure similar to the way it is done, for example, in the HeatSolver. I assume that you have consulted the Solver manual and the programmer's tutorial, next step is to dig in the source itself...
HTH,
Matthias
Re: Poroelastic Modelling
Hi Matthias,
Did you mean to write the variable temperature in .sif file like below:
Solver 1
...
Equation = "MyEquation"
...
Variable = Temperature
...
End
Now my problem is that, since I will have to use 3 different heat solvers, then I will have three different temperature variables (that represent three different pressures from my equations as given previously), all of them will be required by the elastic solver to compute the displacement. How can I do this? Do I need to modify the elastic solver as well?
Thank you,
Jamil
Did you mean to write the variable temperature in .sif file like below:
Solver 1
...
Equation = "MyEquation"
...
Variable = Temperature
...
End
Now my problem is that, since I will have to use 3 different heat solvers, then I will have three different temperature variables (that represent three different pressures from my equations as given previously), all of them will be required by the elastic solver to compute the displacement. How can I do this? Do I need to modify the elastic solver as well?
Thank you,
Jamil
-
- Site Admin
- Posts: 4832
- Joined: 22 Aug 2009, 11:57
- Antispam: Yes
- Location: Espoo, Finland
- Contact:
Re: Poroelastic Modelling
Hi Jamil,
will the three "temperatures" (t_i) also have different "heat expansion coefficients (c_i)"? In that case you should at least compute some effective "temperature" (t_f) in style,
I guess this will only work if your expansion coefficients are isotropic.
-Peter
will the three "temperatures" (t_i) also have different "heat expansion coefficients (c_i)"? In that case you should at least compute some effective "temperature" (t_f) in style,
Code: Select all
c_e * t_e = \sum c_i * t_i
-Peter
Re: Poroelastic Modelling
Hi,
if you want to write your own solver, first consult the solver manual, chapter "basic programming".
HTH,
Matthias
if you want to write your own solver, first consult the solver manual, chapter "basic programming".
HTH,
Matthias
Re: Poroelastic Modelling
Hi Peter,
The three temperature will have the same heat expansion coefficient.
My confusion now comes from the elastic solver. How will it read the temperature variables? Is the following line in elastic solver responsible to read the temperature variable?
If I add all the temperatures, how do I make sure the elastic solver will call the added temperature variable?
Thank you,
Jamil
The three temperature will have the same heat expansion coefficient.
My confusion now comes from the elastic solver. How will it read the temperature variables? Is the following line in elastic solver responsible to read the temperature variable?
Code: Select all
TempSol => VariableGet( Mesh % Variables, 'Temperature' )
IF ( ASSOCIATED( TempSol) ) THEN
TempPerm => TempSol % Perm
Temperature => TempSol % Values
END IF
Thank you,
Jamil