On 02.11.18 12:07, lc wrote:

Hello,

I enclose all the files that I use.

Up to now in tutorialproblem_implicit.hh I introduce a double small_number = 1e-6; which works ok when I initialize the oil saturation profile (snIdx) but it is not effective on swIdx.

Hi Lorenzo,

I'm sorry, I don't understand what you did.


Also as I general question I'm wondering which is the correct model to approach this problem. I see that in this case it is used a different model.

NEW_TYPE_TAG(McWhorterProblem, INHERITS_FROM(FVPressureTwoP, FVTransportTwoP, IMPESTwoP, BuckleyLeverettSpatialParams));


And in general, in terms of accuracy and speed should I prefer sequential or implicit setup?

There is no general answer to this question. It all depends on your setup and on the questions you are trying to solve with your simulation.

Usually, sequential models perform well if the coupling is weak.

There is a lot of literature on this topic. Please restrict questions on the mailing list to Dumux-specific questions.


Best wishes,

Timo


Thanks a lot,

Lorenzo


On 02/11/2018 13:56, Timo Koch wrote:
Hi Lorenzo,

it all depends on your setup. Probably something wrong with your custom material law.

What have you tried so far to fix your issue?

Timo

On 2. Nov 2018, at 11:53, lc <[email protected] <mailto:[email protected]>> wrote:

Hello Dennis,

thank you. I did as you suggested but as I do this, the Newton solver does not converge anymore on any grid level.

Do you have any hints?

Thank you,

Lorenzo

On 02/11/2018 10:45, Dennis Gläser wrote:

Good morning Lorenzo,

per default, the formulation for the 2p model is pw-sn. That means your primary variables are the water pressure and the non-wetting phase saturation (in your case oil I assume). Therefore, Indices::swIdx does not exists as it is not part of your primary variables.

Since you are considering a two-phase system, just set the oil saturation by doing

*values[Indices::snIdx] = 1.0 - std::min(smax, smin + exp_value + small_number);*

This is what you want I guess.

Best wishes,
Dennis


On 02.11.2018 08:37, lc wrote:

Good morning,

I'd like to ask how to impose an initial condition on the water saturation and not on the oil saturation.

Actually, what I implemented is the following:

         const auto pos = fvGeometry.subContVol[scvIdx].global;

        double x_0 = 0.;
        double smin = 0.2121;
        double smax = 0.7856;
        double exp_arg = (0.5 - pow((pos[0]-x_0)/(2.+cos(3.*sqrt(std::abs(pos[1]-75.0)))), 2.) );
        double exp_value = exp_arg >= -100 ? exp(exp_arg) : 0;
        double small_number = 1e-6;

*        values[Indices::snIdx] = std::min(smax, smin + exp_value + small_number);*

but this last line, should be imposed on values[Indices::swIdx] but if I write it I get an error, not declared variable.


Thank you,

Lorenzo





_______________________________________________
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] <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]
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