Poroelastic Modelling

Numerical methods and mathematical models of Elmer
Matthew
Posts: 31
Joined: 19 Jun 2014, 18:22
Antispam: Yes

Poroelastic Modelling

Post by Matthew »

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.
Attachments
Governing equations
Governing equations
1.png (1.76 KiB) Viewed 5415 times
raback
Site Admin
Posts: 4832
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Poroelastic Modelling

Post by raback »

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
Matthew
Posts: 31
Joined: 19 Jun 2014, 18:22
Antispam: Yes

Re: Poroelastic Modelling

Post by Matthew »

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
Attachments
2.png
2.png (5.33 KiB) Viewed 5406 times
annier
Posts: 1168
Joined: 27 Aug 2013, 13:51
Antispam: Yes

Re: Poroelastic Modelling

Post by annier »

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
Anil Kunwar
Faculty of Mechanical Engineering, Silesian University of Technology, Gliwice
Matthew
Posts: 31
Joined: 19 Jun 2014, 18:22
Antispam: Yes

Re: Poroelastic Modelling

Post by Matthew »

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
mzenker
Posts: 1999
Joined: 07 Dec 2009, 11:49
Location: Germany

Re: Poroelastic Modelling

Post by mzenker »

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
Matthew
Posts: 31
Joined: 19 Jun 2014, 18:22
Antispam: Yes

Re: Poroelastic Modelling

Post by Matthew »

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
raback
Site Admin
Posts: 4832
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Poroelastic Modelling

Post by raback »

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,

Code: Select all

c_e * t_e = \sum c_i * t_i  
I guess this will only work if your expansion coefficients are isotropic.

-Peter
mzenker
Posts: 1999
Joined: 07 Dec 2009, 11:49
Location: Germany

Re: Poroelastic Modelling

Post by mzenker »

Hi,

if you want to write your own solver, first consult the solver manual, chapter "basic programming".

HTH,

Matthias
Matthew
Posts: 31
Joined: 19 Jun 2014, 18:22
Antispam: Yes

Re: Poroelastic Modelling

Post by Matthew »

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?

Code: Select all

  TempSol => VariableGet( Mesh % Variables, 'Temperature' )
  IF ( ASSOCIATED( TempSol) ) THEN
     TempPerm    => TempSol % Perm
     Temperature => TempSol % Values
  END IF
If I add all the temperatures, how do I make sure the elastic solver will call the added temperature variable?

Thank you,
Jamil
Post Reply