as already said with the solDependentNeumann approach from before.
On 08/12/2015 08:59 AM, [email protected] wrote:
Yes that is true. Is it possible to set grad pc*n = 0?
*Von:*Timo Koch [mailto:[email protected]]
*Gesendet:* Mittwoch, 12. August 2015 08:56
*An:* Futter, Georg; [email protected]
*Betreff:* Re: AW: AW: [DuMuX] Boundary conditions
but then grad pc = dpc/dsw*grad sw so setting grad pc*n = 0 should be
same as grad s*n =0 if I'm not wrong?
Best regards,
Timo
Am 12.08.2015 um 08:26 schrieb <[email protected]
<mailto:[email protected]>> <[email protected]
<mailto:[email protected]>>:
I see… The saturation influences the fluxes only indirectly via
the pc-Sw-relation and the relative permeability. So it is not
possible to set grad(S)*n=0 even though the saturation is a
primary variable. This is bad. I need to think of something else.
Thanks anyway J
*Von:*Timo Koch [mailto:[email protected]]
*Gesendet:* Dienstag, 11. August 2015 17:56
*An:* Futter, Georg; [email protected]
<mailto:[email protected]>
*Betreff:* Re: AW: [DuMuX] Boundary conditions
Hi Georg,
If you have grad(S) somewhere in your equation yes. Otherwise no.
If you want to have a boundary condition like grad(S)*n = 0,
calculate the residual (the whole flux term, i.e. everything with
a divergence in front) in solDependentNeumann and just leave out
the part of the flux that drops because of grad(s)=0. By
calculating I mean really calculate the residual in the code using
the current solution of the current newton step, i.e. your value
is still a function of the current primary variable not just a
constant value.
This way you set grad(s) to zero but still assemble the other part
of the flux.
All the best
Timo
Am 11.08.2015 um 16:54 schrieb <[email protected]
<mailto:[email protected]>> <[email protected]
<mailto:[email protected]>>:
Hi Timo,
Thanks for your quick reply J. I guess the most basic problem
I have is: is it possible to set grad(S)=0 as a boundary
condition? If yes, how can it be done?
Best regards
Georg
*Von:*Timo Koch [mailto:[email protected]]
*Gesendet:* Dienstag, 11. August 2015 16:03
*An:* DuMuX User Forum; Futter, Georg
*Betreff:* Re: [DuMuX] Boundary conditions
Dear Georg,
when you set Dirichlet boundary conditions the equation gets
replaced by the Dirichlet boundary condition. I think that's
what's clear.
When you set Neumann boundary conditions in Dumux you set a
value for the entire flux term (advective + diffusive part).
So when you set a "no-flow" flow condition meaning
you set the values in the neumann boundary function to zero
you really get no flow over the boundary -> F(advective +
diffusive)*n = 0. If you set it to a value, you set the whole
flux to that value.
If I understood correctly, this is NOT what you want to do in
your example. You want to set either the diffusive (something
like grad c * n = 0) or the advective (something like grad p *
n = 0) part to zero and keep the other part.
This is unfortunately not possible conveniently. What you have
to do is to use the function solDependentNeumann(). In that
function (you probably know the function) you have the current
element volume variables at hand.
So, if you want to set the diffusive flux to zero, you
calculate the advective flux in the solDependentNeumann
function -> the total flux gets replaced by the advective
flux. The same works of course the other way around.
You basically calculate the local residual inside the
solDependentNeumann function, leaving out either the advective
or the diffusive flux.
Note that the values obtained from the solDependentNeumann
function get multiplied with the face area during assembly, so
you don't have to / shouldn't do that in the function already.
I hope this works out for you.
Timo
On 08/11/2015 02:50 PM, [email protected]
<mailto:[email protected]> wrote:
Hello Dumux,
I am still struggling with the boundary conditions for my
system. What I want to do for the cathode side of my fuel
cell model is depicted in Figure1.jpg. I want to simulate
a fuel cell along one gas channel. I use the mpnc model
with a 2p3c-fluidsystem. On the inlet, gas is fed to the
fuel cell which may react along the channel. In the
electrochemical reaction, O2 of the feed gas is consumed
and H2O is produced. If the current that is produced in
the cell is high enough, liquid water will be formed and
transported to the outlet.
What I know is:
1.the total gas flux that goes into the system (depends on
the current)
2.The gas phase composition at the inlet ( all mole fractions)
3.The saturation at the inlet (S_g =1)
4.the total flux that goes out of the system (I can
calculate that because I know the sources and sinks for
H2O and O2 (see below))
5.the gas pressure at the outlet
What I want to determine from the Simulation:
1.the gas pressure at the inlet
2.the saturation at the outlet
For the boundary conditions at the outlet, I assume the
following:
1.No gravity
2.Pure advection
3.Grad(x_alpha^kappa) = 0 à no diffusion, perfect mixing
4.Grad(p_g) = grad(p_l ) = grad(p), this means grad(S_g )
= grad(S_l ) = 0
With that, the molar flux out of the system of species
kappa will read:
<image001.png>
(1)
The flux of Oxygen out of the system can be calculated via
Faradays law:
<image002.png>
(2)
Where lambda is the stoichiometry factor for the fuel cell
operation. A value of lambda = 2 means that twice as much
oxygen is fed to the cell as is needed to draw the desired
current and (labda-1) represents the amount of O2 that is
not consumed in the reaction (the amount that goes out).
Further, I is the cell current, 4 is the number of
electrons which is transferred in the reaction, F is
Faradays constant, A is the Area of the Channel outlet and
n is the normal vector.
With that, the pressure gradient at the outlet can be
calculated from (1) and (2):
<image003.png>
(3)
Inserting (3) in (1) gives the flux of an arbitrary
species at the outlet:
<image004.png>
(4)
Now I want to set these fluxes as Neumann conditions on
the outlet for the component conservation equations. Any
comments/objections on that? Additionally, I want to set
the pressure at the outlet using a Dirichlet condition.
For the saturation at the outlet I don’t know which type
of boundary condition I can use. I don’t know the value of
the saturation at the outlet so Dirichlet is not an
option. Will setting a Neumann condition (values[s0Idx] =
0.0) mean that the gradient of saturation is 0? Or what
will happen if I use values.setOutflow(s0Idx)?
Also, I don’t know what to do with the pressure at the
inlet. Its value should be determined by the simulation so
again, Dirichlet is not an option. Would setting a Neumann
condition (values[p0Idx] = molarGasFluxIn) mean I set the
corresponding pressure gradient?
Or could one also use an outflow condition for the pressure?
Thanks for your help
Georg
——————————————————————————
*German Aerospace Center *(DLR)
Institute of Engineering Thermodynamics | Computational
Electrochemistry | Pfaffenwaldring 38-40 | 70569 Stuttgart
Dipl.-Ing. *Georg Futter* | Ph.D. student
Telefon 0711/6862-8135 | [email protected]
<mailto:[email protected]>
www.DLR.de <http://www.DLR.de>
_______________________________________________
Dumux mailing list
[email protected]
<mailto:[email protected]>
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux
--
____________________________________________________________________
Timo Koch phone: +49 711 685 64676
IWS, Universität Stuttgart fax: +49 711 685 60430
Pfaffenwaldring 61 email:[email protected]
<mailto:[email protected]>
D-70569 Stuttgart url:www.hydrosys.uni-stuttgart.de
<http://www.hydrosys.uni-stuttgart.de>
____________________________________________________________________
--
____________________________________________________________________
Timo Koch phone: +49 711 685 64676
IWS, Universität Stuttgart fax: +49 711 685 60430
Pfaffenwaldring 61 email: [email protected]
D-70569 Stuttgart url: www.hydrosys.uni-stuttgart.de
____________________________________________________________________
_______________________________________________
Dumux mailing list
[email protected]
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux