Hi Nikolai,
I just went through your code and also compiled and ran it. Here are a
few comments:
As initial saturation you set the residual water saturation. This
corresponds to maximum capillary pressures, which can get extremely high
at this point. This leads to your initial water pressure being negative,
actually -1.3e6. However, on the left boundary you set S_w = 1.0, which
is actually out of the bounds of your pc-sw curve because you are
considering Snr = 0.27031. It should still return useful pc values using
Brooks-Corey I suppose. On the right side, you do not initialize the
value for saturation, so it is probably some random value that is
currently in your memory. This is something you should look into and
think about what value you actually want to prescribe there. Maybe the
initial saturation, i.e. no gradient?
Anyway, this large difference in capillary pressures on the left side
leads to an influx of water which can affect your oil pressure as well.
I am not sure what you expect as a result, but I didn't find it
surprising at first. The capillary effects in this setup are very large.
Let me know if this helps you!
Dennis
On 20.08.2018 14:05, Nikolai Andrianov wrote:
Hi Dennis,
Thank you for your feedback.
I have fixed the bug in in my local
dumux/porousmediumflow/2p/volumevariables.hh as you suggested, but
unless I keep my modifications to
discretization/cellcentered/tpfa/darcyslaw.hh the Dirichlet BCs
conditions look weird.
I have also updated the repository
https://git.iws.uni-stuttgart.de/andrian/rate-sens-nofrac
<https://git.iws.uni-stuttgart.de/andrian/rate-sens-nofrac> so that
these results could be reproduced.
Attached are 3 screenshots:
1. my_current_pn.png: The pn field obtained with the modified
darcyslaw.hh as described below (fixing the bug in
volumevariables.hhdid not change the solution neither in pn nor in
sw);
2. orig_darcyslaw.png: The original darcyslaw.hh (i.e. without the
modifications described below), the bug in volumevariables.hh not
fixed. Observe that the pn values at the left and the right
boundaries are quite different from the ones I prescribe in the
.input file - 1.1 bar at the left and 1 bar at the right.
3. orig_darcyslaw_bug_fixed.png:The original darcyslaw.hh and the
fixed bug in volumevariables.hh. Still the pressure field is far
from the expected one.
Looking forward for your feedback.
Thanks,
Nikolai
------------------------------------------------------------------------
*From:* Dumux <[email protected]> on behalf of
Dennis Gläser <[email protected]>
*Sent:* Monday, August 20, 2018 11:29:48 AM
*To:* [email protected]
*Subject:* Re: [DuMuX] Linear solver crashes in release mode, but not
in debug mode
Hi Nikolai,
this should lead you directly to the commit where this was fixed:
https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/commit/1fb7860720c08942c4166070b27bb138815a1be5
By prescribing both pressure and saturation at a Dirichlet boundary,
pn will be constant at the boundary. In fact it will be the prescribed
pressure + the capillary pressure resulting from the given boundary
saturation. So you should not need the changes to darcys law that you
have made. However, as Timo mentioned already, when using a
cell-centered scheme you will not see the exact boundary value in your
vtu files.
I would strongly recommend you use the unmodified Darcy's law and make
sure to cherry-pick the commit I mentioned or pull the newest dumux
version. Hopefully this solves the issue!
Best wishes,
Dennis
On 20.08.2018 11:17, Nikolai Andrianov wrote:
Hi Dennis,
I just modified my local
discretization/cellcentered/tpfa/darcyslaw.hh as follows near line 207:
// Obtain inside and outside pressures
//const auto pInside = insideVolVars.pressure(phaseIdx);
//const auto pOutside = outsideVolVars.pressure(phaseIdx);
Scalar pInside, pOutside;
if (!scvf.boundary()) {
// Inside the domain calculate the phase flux using
phase pressures (with pn = pw + pc)
pInside = insideVolVars.pressure(phaseIdx);
pOutside = outsideVolVars.pressure(phaseIdx);
}
else {
// Do not include the contributions from capillary
forces for boundary fluxes
//static_assert( (VolumeVariables::priVarFormulation() ==
TwoPFormulation::p0s1), "darcyslaw.hh: BC implemented for p0s1
formulation only!"); // uncommenting this yields an error
// WARNING: implemented for p1s0 formulation only!
pInside = insideVolVars.pressure(1);
pOutside = outsideVolVars.pressure(1);
}
Without this modification, I was not able to keep pn constant at
Dirichlet boundaries. As you see, the modification is hard-coded for
the p1s0 formulation.
No, I did not pull any recent dumux versions because I did not want
to get stuck with compiling of possible incompatibilities 😊 (I work
with the version from the dumux-course). Can you please point out
which files have been modified to fix the bug you are mentioning? Or
which commit should I be looking for?
Thanks,
Nikolai
------------------------------------------------------------------------
*From:* Dumux <[email protected]> on behalf of
Dennis Gläser <[email protected]>
*Sent:* Monday, August 20, 2018 10:25:06 AM
*To:* [email protected]
*Subject:* Re: [DuMuX] Linear solver crashes in release mode, but not
in debug mode
Hi Nikolai,
I am sorry if I missed your previous posts and this question is
obsolete, but can you tell us what you mean by having corrected
darcyslaw.hh? I checked your repository but couldn't find a modified
version of the file, neither a respective branch in the dumux
repository. So I assume you have a locally modified version of the
file on your system?
There used to be a bug in the two-phase model with respect to the
p1s0 formulation. That has been fixed about three weeks ago, have you
pulled dumux eversince?
Let us know if this helps!
Cheers,
Dennis
On 17.08.2018 19:49, Nikolai Andrianov wrote:
Dear DuMuX experts,
Please advise what can cause the following bizarre error: the code
compiled with debug options runs smoothly but the same code compiled
with release options crashes in the linear solver with the following
message:
Solve: M deltax^k = rNewton: Caught exception: "SolverAbort
[apply:/home/nikolai/dumux/dune-istl/dune/istl/solvers.hh:628]:
breakdown in BiCGSTAB - rho 0 <= EPSILON 1e-80 after 87.5 iterations"
This error pops up when working on a modified version of the
exercise-fractures test cases from dumux-course. Apart from
modifying the -problem.hh and -spatialparams.hh files, I have also
corrected darcyslaw.hh and switched the formulation to p1s0 (as
described in my previous post).
Compilation .opts files are attached.
May thanks,
Nikolai
_______________________________________________
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]
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux
_______________________________________________
Dumux mailing list
[email protected]
https://listserv.uni-stuttgart.de/mailman/listinfo/dumux