Deah Mahmoud,

I seem to have been triggered by your last question:

So Is there a way in dumux to ensure no flux across the interface between 2 
layers ?

If you want to keep heat conduction across the interface then what I said makes no sense, of course. Besides Timo's proposition, I am wondering if it may be possible to achieve this also if you overload the function

static constexpr bool evaluatePermeabilityAtScvfIP()
{ return true; }

in your spatial params and return true. This evaluates the permeability at the face centers. For positions on the interface, you could return zero in your permeabilityAtPos() function. This, of course, fails if you have other material interfaces at which you don't want to evaluate the permeability at the face center but use a harmonic average instead. In case you only have a single interface, this could be an approach that is simple to try out.

Cheers,
Dennis



On 28.04.21 09:09, Timo Koch wrote:
Dear Mahmoud,

I understand it in a way that you want to have no mass flow over these 
boundaries but there can be heat conduction.
You could solve this either by using a multidomain model where you only solve 
heat conduction in some parts of the mesh. This is a bit more evolved.

A simpler method would be to modify Darcy’s law and introduce a 
transmissibility factor obtained from the problem. So in Darcy’s law it would 
be (pseudo code)
const auto tFactor = problem.transmissilityFactor(scvf);
return transmissibility*tFactor;

and in the problem you implement this function and return 0.0 at the desired 
positions.
I note that you can fully do that in your own module by duplicating the 
original Darcy’s law, rename the class, make the changes, and set it as the 
property AdvectionType.
For prototyping you can of course just start by modifying Darcy’s law in the 
dumux core.

Timo

On 28. Apr 2021, at 09:02, Dennis Gläser <[email protected]> 
wrote:

Dear Mahmoud,

as far as I know, this is not possible out-of-the-box. If you generate the mesh externally from a 
geometry, you may try duplicating the interface line (I am assuming 2d here) between the two layers 
so that they get meshed "twice". Then, these two lines end up as boundaries in the 
computational domain, at which you can prescribe no-flow boundary conditions. Gmsh, for instance, 
also has a feature called "crack" (or similar), where you can split the mesh along 
defined lines after meshing.

If you do such thing, it only works if there are no floating (sub-)domains 
around that are not connected somehow to Dirichlet boundary conditions. I am 
assuming your interface does not go through the entire domain, as otherwise 
you'd have two decoupled systems. In any case, I do not see your attached image 
with your setup. My guess is that the mailing list does not allow for 
attachments?

Cheers,
Dennis


On 28.04.21 05:52, Mahmoud Atef Mahmoud Mohamed Aboelseoud S277151 wrote:
Hello Dumux team,


Is there a way in Dumux to impose zero transmissibility along an interface 
between 2 layers to have zero flux across that interface like in the industrial 
simulator Eclipse ? I'm simulating a geothermal aquifer with an upper and lower 
boundary layers where into the aquifer, there's an injection well (cooled water 
with low temperature) and a production well. I'm using the OnePNI model and 
CCMpfa discretization scheme. I want to monitor the heat transfer by conduction 
at the boundary layers and thus I need to have them inside my domain. I tried 
setting zero permeability for both upper and lower boundary layers but it 
doesn't help the numerics and the convergence becomes extremely difficult. So I 
increased the permeability of those boundary layers keeping it 1e^3 lower than 
that of the aquifer and the code became stable regarding the easiness of 
convergence but I could still see an anomaly in the pressure in those upper and 
lower boundary layers as shown in the attached image in which 3 numerical 
layers were used to represent each of the upper and lower boundary layers.

So Is there a way in dumux to ensure no flux across the interface between 2 
layers ? Thanks in advance.


Best Regards,

Mahmoud
_______________________________________________
DuMux mailing list
[email protected]
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux
_______________________________________________
DuMux mailing list
[email protected]
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux
_______________________________________________
DuMux mailing list
[email protected]
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux

_______________________________________________
DuMux mailing list
[email protected]
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux

Reply via email to