Skip to content
Snippets Groups Projects
Commit ef2cc4af authored by Benjamin Faigle's avatar Benjamin Faigle
Browse files

Fixed Impet iteration for compositional models using more than one transported...

Fixed Impet iteration for compositional models using more than one transported quantity: iterative transport vectors are now initialized with model-specific transport vectors for correct size.
reviewed by markus

git-svn-id: svn://svn.iws.uni-stuttgart.de/DUMUX/dumux/trunk@8854 2fb0f335-1f38-0410-981e-8018bf24f1b0
parent 0a437f07
No related branches found
No related tags found
No related merge requests found
...@@ -111,12 +111,11 @@ public: ...@@ -111,12 +111,11 @@ public:
// the method is valid for any transported quantity. // the method is valid for any transported quantity.
TransportSolutionType transValueOldIter; TransportSolutionType transValueOldIter;
problem_.transportModel().getTransportedQuantity(transValueOldIter); problem_.transportModel().getTransportedQuantity(transValueOldIter);
int transSize = transValueOldIter.size(); TransportSolutionType updateOldIter(transValueOldIter);
TransportSolutionType updateOldIter(transSize);
updateOldIter = 0; updateOldIter = 0;
TransportSolutionType transportedQuantity(transSize); TransportSolutionType transportedQuantity(transValueOldIter);
TransportSolutionType updateHelp(transSize); TransportSolutionType updateHelp(transValueOldIter);
TransportSolutionType updateDiff(transSize); TransportSolutionType updateDiff(transValueOldIter);
while (!converg) while (!converg)
{ {
...@@ -138,7 +137,7 @@ public: ...@@ -138,7 +137,7 @@ public:
updateDiff -= updateOldIter; updateDiff -= updateOldIter;
transValueOldIter = transportedQuantity; transValueOldIter = transportedQuantity;
updateOldIter = updateVec; updateOldIter = updateVec;
Dune::dinfo << " defect = " << dt * updateDiff.two_norm() / transportedQuantity.two_norm();
// break criteria for iteration loop // break criteria for iteration loop
if (iterFlag_ == 2 && dt * updateDiff.two_norm() / transportedQuantity.two_norm() <= maxDefect_) if (iterFlag_ == 2 && dt * updateDiff.two_norm() / transportedQuantity.two_norm() <= maxDefect_)
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment