1) It seems that you are setting no-flow for the saturation on the right 
boundary. I'm not very surprised by the result.


2) Yes, the choice must be consistent. Have a look at 
dumux/porousmediumflow/2p/sequential/indices.hh to see the available options.


3) It's the pressure that is chosen via the property PressureFormulation, see 
dumux/porousmediumflow/2p/sequential/properties.hh. I'm not aware of any better 
paper and also fear that our formulation with capillary pressure isn't 
rigorously derived. Again, consistency of BCs and primary variables is 
mandatory.


4) 2pnc is a fully implicit model. It directly discretizes the component mass 
balances, there is no dedicated pressure equation. I'd say that it is the right 
model for your needs, as long as you code correctly the desired relations in a 
dedicated fluid system.


Kind regards

Bernd




--
_______________________________________________________________

Bernd Flemisch                         phone: +49 711 685 69162
IWS, Universität Stuttgart             fax:   +49 711 685 60430
Pfaffenwaldring 61            email: [email protected]
D-70569 Stuttgart            url: www.hydrosys.uni-stuttgart.de
_______________________________________________________________
________________________________
Von: Dumux <[email protected]> im Auftrag von lc 
<[email protected]>
Gesendet: Montag, 28. Januar 2019 08:45:12
An: [email protected]
Betreff: [DuMuX] about BCs, 2pnc model and pressure equation


Good morning,

I have some other questions of mixed nature:

1) I'm simulating the water injection (from left) in a rectangular domain 
filled with oil. As soon as the water front reach the right (outlet) boundary 
something happens, as you can see from the pic attached. Here it is shown the 
water saturation field zoomed at the outlet, the rest of the domain is uniform.

In the following the BCs I impose. Is there anything strange for the Neumann 
part? Thank you.

void boundaryTypesAtPos(BoundaryTypes &bcTypes, const GlobalPosition& 
globalPos) const
    {
            if (globalPos[0] < this->bBoxMin()[0] + eps_)
            {
                bcTypes.setNeumann(pressEqIdx);
                bcTypes.setDirichlet(satEqIdx);
            }
            else if (globalPos[0] > this->bBoxMax()[0] - eps_)
            {
                bcTypes.setDirichlet(pressEqIdx);
                bcTypes.setNeumann(satEqIdx);
                //bcTypes.setOutflow(satEqIdx);
            }
            else
            {
                bcTypes.setAllNeumann();
            }
    }

bcTypes.setNeumann(satEqIdx);


void neumannAtPos(PrimaryVariables &values, const GlobalPosition& globalPos) 
const
    {
        values = 0;

        if (globalPos[0] < this->bBoxMin()[0] + eps_) {

                const Scalar waterDensity = 1000.0;
                const Scalar oilDensity = 850.0;
                const Scalar Q = 300 / (60 * 60 * 24);
                const Scalar speed = Q / (2. * 800. * 150.);
                values[wPhaseIdx] = - (waterDensity * speed);
                values[wPhaseIdx] = - inFlux_;
        }
        else if (globalPos[0] > this->bBoxMax()[0] - eps_) {
          values[wPhaseIdx] = 0.;


void dirichletAtPos(PrimaryVariables &values, const GlobalPosition& globalPos) 
const
    {
        values = 0;
        const Scalar smax = 0.7856;
        const Scalar smin = 0.2121;

        if (globalPos[0] < this->bBoxMin()[0] + eps_) {

          values[swIdx] = smax;
        } else {
          values[pwIdx] = -30e5;
        }
    }


2) As I read from here, https://dumux.org/doxygen/2.12/a01896.html, if the 
formulation is: [$ p_w $]  - [$ S_w $]   Is it possible to assign boundary 
conditions on other non-primary variables, such as for example, pn - Sn? Does 
DuMux perform some conversion internally? Or the choice of primary variable 
must be consistent with the variables used in BCs?


3) I read the 2p2c model doc, https://dumux.org/doxygen/2.12/a01900.html, and 
the paper SPE 99619 and "Analysis of a Compositional Model for Fluid Flow in 
Porous Media" by Chen, Qin and Ewing.

In the pressure equation, which pressure is the one which appears in the time 
derivative? And in general, which pressure is used in multicomponent models? 
Finally, in addition, to the cited references, is there any other paper for a 
more explicit derivation os such formulas? And also in this case, how to apply 
BC on phase/components, should they be consistent with primary variables 
adopted?


4) I need to simulate a 2p3c (water/oil phases, and water/polymer/surfactant in 
the water phase), so I guess I should use the 2pnc component model, right? In 
doc https://dumux.org/doxygen/2.12/a01903.html, where is the pressure equation? 
Is the same of 2p2c? Moreover, in my case fluids should be immiscible. Can I 
still use this model?


Thank you very much,

Kind regards,

Lorenzo

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

Reply via email to