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

Reply via email to