Dear Timo,

Agreed, thank you. Now I have implemented similar behavior in my PrimaryVariableSwitch. It did not remedy the problem I was having, I keep looking.

Best regards,

Dmitry


On 30.03.2021 17:44, Timo Koch wrote:
Hi Dmitry,

I think you are misinterpreting the threshold adjustment.

If the threshold is higher if the phase state already switched in the last 
iteration. That means in the last iteration both phases where present and one 
disappeared.
In order to prevent the Newton from switching back and forth between states 
every iteration the threshold is slightly increased in the iteration after the 
switch.
This doesn’t alter the result since the Newton will always perform at least one 
more iteration after a switch, it just tries to keep the Newton more stable.
It could be interpreted as some kind of chop / semi-smooth Newton.

Best regards
Timo

On 30. Mar 2021, at 16:36, Dmitry Pavlov <[email protected]> wrote:


I have to switch primary variables, similarly to what Etienne said, from 
secondPhaseOnly to bothPhases. So I implemented my own PrimaryVariableSwitch.

I see in TwoPTwoCCO2PrimaryVariableSwitch that the switch is not necessarily done 
when the condition xnw > xnwMax is met (xnw is mole fraction, xnwMax is the 
maximum mole fraction that is allowed in one phase).

For the switch to happen, xnw should exceed xnwMax, and then (on next call, I 
am not sure whether it happens on the same time step or not), xnw should exceed 
xnwMax * 1.02. Only then the switch is made.

I do not understand at the moment why such a two-step switch procedure was 
needed for.


Best regards,

Dmitry


_______________________________________________
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