295 CellData & cellData1, CellData & cellData2, CellData & cellData3, CellData & cellData4,
296 CellData & cellData5, CellData & cellData6, CellData & cellData7, CellData & cellData8,
297 InteractionVolumeContainer& interactionVolumes, TransmissibilityCalculator& transmissibilityCalculator,
int fIdx)
299 auto element1 = interactionVolume.getSubVolumeElement(0);
300 auto element2 = interactionVolume.getSubVolumeElement(1);
301 auto element3 = interactionVolume.getSubVolumeElement(2);
302 auto element4 = interactionVolume.getSubVolumeElement(3);
303 auto element5 = interactionVolume.getSubVolumeElement(4);
304 auto element6 = interactionVolume.getSubVolumeElement(5);
305 auto element7 = interactionVolume.getSubVolumeElement(6);
306 auto element8 = interactionVolume.getSubVolumeElement(7);
309 int eIdxGlobal1 = problem_.variables().index(element1);
310 int eIdxGlobal2 = problem_.variables().index(element2);
311 int eIdxGlobal3 = problem_.variables().index(element3);
312 int eIdxGlobal4 = problem_.variables().index(element4);
313 int eIdxGlobal5 = problem_.variables().index(element5);
314 int eIdxGlobal6 = problem_.variables().index(element6);
315 int eIdxGlobal7 = problem_.variables().index(element7);
316 int eIdxGlobal8 = problem_.variables().index(element8);
319 Dune::FieldVector<Scalar, 8> potW(0);
320 Dune::FieldVector<Scalar, 8> potNw(0);
322 potW[0] = cellData1.potential(wPhaseIdx);
323 potW[1] = cellData2.potential(wPhaseIdx);
324 potW[2] = cellData3.potential(wPhaseIdx);
325 potW[3] = cellData4.potential(wPhaseIdx);
326 potW[4] = cellData5.potential(wPhaseIdx);
327 potW[5] = cellData6.potential(wPhaseIdx);
328 potW[6] = cellData7.potential(wPhaseIdx);
329 potW[7] = cellData8.potential(wPhaseIdx);
331 potNw[0] = cellData1.potential(nPhaseIdx);
332 potNw[1] = cellData2.potential(nPhaseIdx);
333 potNw[2] = cellData3.potential(nPhaseIdx);
334 potNw[3] = cellData4.potential(nPhaseIdx);
335 potNw[4] = cellData5.potential(nPhaseIdx);
336 potNw[5] = cellData6.potential(nPhaseIdx);
337 potNw[6] = cellData7.potential(nPhaseIdx);
338 potNw[7] = cellData8.potential(nPhaseIdx);
341 Dune::FieldVector<Scalar, numPhases> lambda1(cellData1.mobility(wPhaseIdx));
342 lambda1[nPhaseIdx] = cellData1.mobility(nPhaseIdx);
345 Scalar lambdaTotal1 = lambda1[wPhaseIdx] + lambda1[nPhaseIdx];
348 Dune::FieldVector<Scalar, numPhases> lambda2(cellData2.mobility(wPhaseIdx));
349 lambda2[nPhaseIdx] = cellData2.mobility(nPhaseIdx);
352 Scalar lambdaTotal2 = lambda2[wPhaseIdx] + lambda2[nPhaseIdx];
355 Dune::FieldVector<Scalar, numPhases> lambda3(cellData3.mobility(wPhaseIdx));
356 lambda3[nPhaseIdx] = cellData3.mobility(nPhaseIdx);
359 Scalar lambdaTotal3 = lambda3[wPhaseIdx] + lambda3[nPhaseIdx];
362 Dune::FieldVector<Scalar, numPhases> lambda4(cellData4.mobility(wPhaseIdx));
363 lambda4[nPhaseIdx] = cellData4.mobility(nPhaseIdx);
366 Scalar lambdaTotal4 = lambda4[wPhaseIdx] + lambda4[nPhaseIdx];
369 Dune::FieldVector<Scalar, numPhases> lambda5(cellData5.mobility(wPhaseIdx));
370 lambda5[nPhaseIdx] = cellData5.mobility(nPhaseIdx);
373 Scalar lambdaTotal5 = lambda5[wPhaseIdx] + lambda5[nPhaseIdx];
376 Dune::FieldVector<Scalar, numPhases> lambda6(cellData6.mobility(wPhaseIdx));
377 lambda6[nPhaseIdx] = cellData6.mobility(nPhaseIdx);
380 Scalar lambdaTotal6 = lambda6[wPhaseIdx] + lambda6[nPhaseIdx];
383 Dune::FieldVector<Scalar, numPhases> lambda7(cellData7.mobility(wPhaseIdx));
384 lambda7[nPhaseIdx] = cellData7.mobility(nPhaseIdx);
387 Scalar lambdaTotal7 = lambda7[wPhaseIdx] + lambda7[nPhaseIdx];
390 Dune::FieldVector<Scalar, numPhases> lambda8(cellData8.mobility(wPhaseIdx));
391 lambda8[nPhaseIdx] = cellData8.mobility(nPhaseIdx);
394 Scalar lambdaTotal8 = lambda8[wPhaseIdx] + lambda8[nPhaseIdx];
396 std::vector<DimVector> lambda(8);
397 lambda[0][0] = lambdaTotal1;
398 lambda[0][1] = lambdaTotal1;
399 lambda[0][2] = lambdaTotal1;
400 lambda[1][0] = lambdaTotal2;
401 lambda[1][1] = lambdaTotal2;
402 lambda[1][2] = lambdaTotal2;
403 lambda[2][0] = lambdaTotal3;
404 lambda[2][1] = lambdaTotal3;
405 lambda[2][2] = lambdaTotal3;
406 lambda[3][0] = lambdaTotal4;
407 lambda[3][1] = lambdaTotal4;
408 lambda[3][2] = lambdaTotal4;
409 lambda[4][0] = lambdaTotal5;
410 lambda[4][1] = lambdaTotal5;
411 lambda[4][2] = lambdaTotal5;
412 lambda[5][0] = lambdaTotal6;
413 lambda[5][1] = lambdaTotal6;
414 lambda[5][2] = lambdaTotal6;
415 lambda[6][0] = lambdaTotal7;
416 lambda[6][1] = lambdaTotal7;
417 lambda[6][2] = lambdaTotal7;
418 lambda[7][0] = lambdaTotal8;
419 lambda[7][1] = lambdaTotal8;
420 lambda[7][2] = lambdaTotal8;
422 Scalar potentialDiffW0 = 0;
423 Scalar potentialDiffW1 = 0;
424 Scalar potentialDiffW2 = 0;
425 Scalar potentialDiffW3 = 0;
426 Scalar potentialDiffW4 = 0;
427 Scalar potentialDiffW5 = 0;
428 Scalar potentialDiffW6 = 0;
429 Scalar potentialDiffW7 = 0;
430 Scalar potentialDiffW8 = 0;
431 Scalar potentialDiffW9 = 0;
432 Scalar potentialDiffW10 = 0;
433 Scalar potentialDiffW11 = 0;
435 Scalar potentialDiffNw0 = 0;
436 Scalar potentialDiffNw1 = 0;
437 Scalar potentialDiffNw2 = 0;
438 Scalar potentialDiffNw3 = 0;
439 Scalar potentialDiffNw4 = 0;
440 Scalar potentialDiffNw5 = 0;
441 Scalar potentialDiffNw6 = 0;
442 Scalar potentialDiffNw7 = 0;
443 Scalar potentialDiffNw8 = 0;
444 Scalar potentialDiffNw9 = 0;
445 Scalar potentialDiffNw10 = 0;
446 Scalar potentialDiffNw11 = 0;
449 Dune::FieldVector<Scalar, 12> fluxW(0);
450 Dune::FieldVector<Scalar, 12> fluxNw(0);
453 Dune::FieldVector<Scalar, 2 * dim - dim + 1>
u(0);
454 TransmissibilityType T(0);
456 if (fIdx < 0 || fIdx == 0)
459 int caseL = transmissibilityCalculator.
transmissibility(T, interactionVolume, lambda, 0, 1, 2, 3,
472 potentialDiffW0 = Tu[0];
482 potentialDiffNw0 = Tu[0];
494 potentialDiffW0 = Tu[0];
504 potentialDiffNw0 = Tu[0];
516 potentialDiffW0 = Tu[0];
526 potentialDiffNw0 = Tu[0];
538 potentialDiffW0 = Tu[0];
548 potentialDiffNw0 = Tu[0];
552 if (fIdx < 0 || fIdx == 1)
555 int caseL = transmissibilityCalculator.
transmissibility(T, interactionVolume, lambda, 1, 3, 0, 2, 5,
568 potentialDiffW1 = Tu[0];
578 potentialDiffNw1 = Tu[0];
590 potentialDiffW1 = Tu[0];
600 potentialDiffNw1 = Tu[0];
612 potentialDiffW1 = Tu[0];
622 potentialDiffNw1 = Tu[0];
634 potentialDiffW1 = Tu[0];
644 potentialDiffNw1 = Tu[0];
648 if (fIdx < 0 || fIdx == 2)
651 int caseL = transmissibilityCalculator.
transmissibility(T, interactionVolume, lambda, 3, 2, 1, 0, 7,
664 potentialDiffW2 = Tu[0];
674 potentialDiffNw2 = Tu[0];
686 potentialDiffW2 = Tu[0];
696 potentialDiffNw2 = Tu[0];
708 potentialDiffW2 = Tu[0];
718 potentialDiffNw2 = Tu[0];
730 potentialDiffW2 = Tu[0];
740 potentialDiffNw2 = Tu[0];
744 if (fIdx < 0 || fIdx == 3)
747 int caseL = transmissibilityCalculator.
transmissibility(T, interactionVolume, lambda, 2, 0, 3, 1, 6,
760 potentialDiffW3 = Tu[0];
770 potentialDiffNw3 = Tu[0];
782 potentialDiffW3 = Tu[0];
792 potentialDiffNw3 = Tu[0];
804 potentialDiffW3 = Tu[0];
814 potentialDiffNw3 = Tu[0];
826 potentialDiffW3 = Tu[0];
836 potentialDiffNw3 = Tu[0];
840 if (fIdx < 0 || fIdx == 4)
843 int caseL = transmissibilityCalculator.
transmissibility(T, interactionVolume, lambda, 5, 4, 7, 6, 1,
856 potentialDiffW4 = Tu[0];
866 potentialDiffNw4 = Tu[0];
878 potentialDiffW4 = Tu[0];
888 potentialDiffNw4 = Tu[0];
900 potentialDiffW4 = Tu[0];
910 potentialDiffNw4 = Tu[0];
922 potentialDiffW4 = Tu[0];
932 potentialDiffNw4 = Tu[0];
936 if (fIdx < 0 || fIdx == 5)
939 int caseL = transmissibilityCalculator.
transmissibility(T, interactionVolume, lambda, 7, 5, 6, 4, 3,
952 potentialDiffW5 = Tu[0];
962 potentialDiffNw5 = Tu[0];
974 potentialDiffW5 = Tu[0];
984 potentialDiffNw5 = Tu[0];
996 potentialDiffW5 = Tu[0];
1006 potentialDiffNw5 = Tu[0];
1018 potentialDiffW5 = Tu[0];
1028 potentialDiffNw5 = Tu[0];
1032 if (fIdx < 0 || fIdx == 6)
1035 int caseL = transmissibilityCalculator.
transmissibility(T, interactionVolume, lambda, 6, 7, 4, 5, 2,
1048 potentialDiffW6 = Tu[0];
1058 potentialDiffNw6 = Tu[0];
1060 else if (caseL == 2)
1070 potentialDiffW6 = Tu[0];
1080 potentialDiffNw6 = Tu[0];
1082 else if (caseL == 3)
1092 potentialDiffW6 = Tu[0];
1102 potentialDiffNw6 = Tu[0];
1114 potentialDiffW6 = Tu[0];
1124 potentialDiffNw6 = Tu[0];
1128 if (fIdx < 0 || fIdx == 7)
1131 int caseL = transmissibilityCalculator.
transmissibility(T, interactionVolume, lambda, 4, 6, 5, 7, 0,
1144 potentialDiffW7 = Tu[0];
1154 potentialDiffNw7 = Tu[0];
1156 else if (caseL == 2)
1166 potentialDiffW7 = Tu[0];
1176 potentialDiffNw7 = Tu[0];
1178 else if (caseL == 3)
1188 potentialDiffW7 = Tu[0];
1198 potentialDiffNw7 = Tu[0];
1210 potentialDiffW7 = Tu[0];
1220 potentialDiffNw7 = Tu[0];
1224 if (fIdx < 0 || fIdx == 8)
1227 int caseL = transmissibilityCalculator.
transmissibility(T, interactionVolume, lambda, 4, 0, 6, 2, 5,
1240 potentialDiffW8 = Tu[0];
1250 potentialDiffNw8 = Tu[0];
1252 else if (caseL == 2)
1262 potentialDiffW8 = Tu[0];
1272 potentialDiffNw8 = Tu[0];
1274 else if (caseL == 3)
1284 potentialDiffW8 = Tu[0];
1294 potentialDiffNw8 = Tu[0];
1306 potentialDiffW8 = Tu[0];
1316 potentialDiffNw8 = Tu[0];
1320 if (fIdx < 0 || fIdx == 9)
1323 int caseL = transmissibilityCalculator.
transmissibility(T, interactionVolume, lambda, 1, 5, 3, 7, 0,
1336 potentialDiffW9 = Tu[0];
1346 potentialDiffNw9 = Tu[0];
1348 else if (caseL == 2)
1358 potentialDiffW9 = Tu[0];
1368 potentialDiffNw9 = Tu[0];
1370 else if (caseL == 3)
1380 potentialDiffW9 = Tu[0];
1390 potentialDiffNw9 = Tu[0];
1402 potentialDiffW9 = Tu[0];
1412 potentialDiffNw9 = Tu[0];
1416 if (fIdx < 0 || fIdx == 10)
1419 int caseL = transmissibilityCalculator.
transmissibility(T, interactionVolume, lambda, 7, 3, 5, 1, 6,
1432 potentialDiffW10 = Tu[0];
1442 potentialDiffNw10 = Tu[0];
1444 else if (caseL == 2)
1454 potentialDiffW10 = Tu[0];
1464 potentialDiffNw10 = Tu[0];
1466 else if (caseL == 3)
1476 potentialDiffW10 = Tu[0];
1486 potentialDiffNw10 = Tu[0];
1498 potentialDiffW10 = Tu[0];
1508 potentialDiffNw10 = Tu[0];
1512 if (fIdx < 0 || fIdx == 11)
1515 int caseL = transmissibilityCalculator.
transmissibility(T, interactionVolume, lambda, 2, 6, 0, 4, 3,
1528 potentialDiffW11 = Tu[0];
1538 potentialDiffNw11 = Tu[0];
1540 else if (caseL == 2)
1550 potentialDiffW11 = Tu[0];
1560 potentialDiffNw11 = Tu[0];
1562 else if (caseL == 3)
1572 potentialDiffW11 = Tu[0];
1582 potentialDiffNw11 = Tu[0];
1594 potentialDiffW11 = Tu[0];
1604 potentialDiffNw11 = Tu[0];
1609 cellData1.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(0, 0), potentialDiffW0);
1610 cellData1.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(0, 0), potentialDiffNw0);
1611 cellData1.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(0, 1), -potentialDiffW3);
1612 cellData1.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(0, 1), -potentialDiffNw3);
1613 cellData1.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(0, 2), -potentialDiffW8);
1614 cellData1.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(0, 2), -potentialDiffNw8);
1616 cellData2.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(1, 0), potentialDiffW1);
1617 cellData2.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(1, 0), potentialDiffNw1);
1618 cellData2.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(1, 1), -potentialDiffW0);
1619 cellData2.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(1, 1), -potentialDiffNw0);
1620 cellData2.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(1, 2), potentialDiffW9);
1621 cellData2.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(1, 2), potentialDiffNw9);
1623 cellData3.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(2, 0), potentialDiffW3);
1624 cellData3.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(2, 0), potentialDiffNw3);
1625 cellData3.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(2, 1), -potentialDiffW2);
1626 cellData3.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(2, 1), -potentialDiffNw2);
1627 cellData3.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(2, 2), potentialDiffW11);
1628 cellData3.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(2, 2), potentialDiffNw11);
1630 cellData4.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(3, 0), potentialDiffW2);
1631 cellData4.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(3, 0), potentialDiffNw2);
1632 cellData4.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(3, 1), -potentialDiffW1);
1633 cellData4.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(3, 1), -potentialDiffNw1);
1634 cellData4.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(3, 2), -potentialDiffW10);
1635 cellData4.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(3, 2), -potentialDiffNw10);
1637 cellData5.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(4, 0), potentialDiffW8);
1638 cellData5.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(4, 0), potentialDiffNw8);
1639 cellData5.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(4, 1), -potentialDiffW4);
1640 cellData5.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(4, 1), -potentialDiffNw4);
1641 cellData5.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(4, 2), potentialDiffW7);
1642 cellData5.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(4, 2), potentialDiffNw7);
1644 cellData6.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(5, 0), -potentialDiffW9);
1645 cellData6.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(5, 0), -potentialDiffNw9);
1646 cellData6.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(5, 1), -potentialDiffW5);
1647 cellData6.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(5, 1), -potentialDiffNw5);
1648 cellData6.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(5, 2), potentialDiffW4);
1649 cellData6.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(5, 2), potentialDiffNw4);
1651 cellData7.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(6, 0), -potentialDiffW11);
1652 cellData7.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(6, 0), -potentialDiffNw11);
1653 cellData7.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(6, 1), -potentialDiffW7);
1654 cellData7.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(6, 1), -potentialDiffNw7);
1655 cellData7.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(6, 2), potentialDiffW6);
1656 cellData7.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(6, 2), potentialDiffNw6);
1658 cellData8.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(7, 0), potentialDiffW10);
1659 cellData8.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(7, 0), potentialDiffNw10);
1660 cellData8.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(7, 1), -potentialDiffW6);
1661 cellData8.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(7, 1), -potentialDiffNw6);
1662 cellData8.fluxData().addUpwindPotential(wPhaseIdx, interactionVolume.getIndexOnElement(7, 2), potentialDiffW5);
1663 cellData8.fluxData().addUpwindPotential(nPhaseIdx, interactionVolume.getIndexOnElement(7, 2), potentialDiffNw5);
1666 Dune::FieldVector<Scalar, numPhases> lambda0Upw(0.0);
1667 lambda0Upw[wPhaseIdx] = (potentialDiffW0 >= 0) ? lambda1[wPhaseIdx] : lambda2[wPhaseIdx];
1668 lambda0Upw[nPhaseIdx] = (potentialDiffNw0 >= 0) ? lambda1[nPhaseIdx] : lambda2[nPhaseIdx];
1671 Dune::FieldVector<Scalar, numPhases> lambda1Upw(0.0);
1672 lambda1Upw[wPhaseIdx] = (potentialDiffW1 >= 0) ? lambda2[wPhaseIdx] : lambda4[wPhaseIdx];
1673 lambda1Upw[nPhaseIdx] = (potentialDiffNw1 >= 0) ? lambda2[nPhaseIdx] : lambda4[nPhaseIdx];
1676 Dune::FieldVector<Scalar, numPhases> lambda2Upw(0.0);
1677 lambda2Upw[wPhaseIdx] = (potentialDiffW2 >= 0) ? lambda4[wPhaseIdx] : lambda3[wPhaseIdx];
1678 lambda2Upw[nPhaseIdx] = (potentialDiffNw2 >= 0) ? lambda4[nPhaseIdx] : lambda3[nPhaseIdx];
1681 Dune::FieldVector<Scalar, numPhases> lambda3Upw(0.0);
1682 lambda3Upw[wPhaseIdx] = (potentialDiffW3 >= 0) ? lambda3[wPhaseIdx] : lambda1[wPhaseIdx];
1683 lambda3Upw[nPhaseIdx] = (potentialDiffNw3 >= 0) ? lambda3[nPhaseIdx] : lambda1[nPhaseIdx];
1686 Dune::FieldVector<Scalar, numPhases> lambda4Upw(0.0);
1687 lambda4Upw[wPhaseIdx] = (potentialDiffW4 >= 0) ? lambda6[wPhaseIdx] : lambda5[wPhaseIdx];
1688 lambda4Upw[nPhaseIdx] = (potentialDiffNw4 >= 0) ? lambda6[nPhaseIdx] : lambda5[nPhaseIdx];
1691 Dune::FieldVector<Scalar, numPhases> lambda5Upw(0.0);
1692 lambda5Upw[wPhaseIdx] = (potentialDiffW5 >= 0) ? lambda8[wPhaseIdx] : lambda6[wPhaseIdx];
1693 lambda5Upw[nPhaseIdx] = (potentialDiffNw5 >= 0) ? lambda8[nPhaseIdx] : lambda6[nPhaseIdx];
1696 Dune::FieldVector<Scalar, numPhases> lambda6Upw(0.0);
1697 lambda6Upw[wPhaseIdx] = (potentialDiffW6 >= 0) ? lambda7[wPhaseIdx] : lambda8[wPhaseIdx];
1698 lambda6Upw[nPhaseIdx] = (potentialDiffNw6 >= 0) ? lambda7[nPhaseIdx] : lambda8[nPhaseIdx];
1701 Dune::FieldVector<Scalar, numPhases> lambda7Upw(0.0);
1702 lambda7Upw[wPhaseIdx] = (potentialDiffW7 >= 0) ? lambda5[wPhaseIdx] : lambda7[wPhaseIdx];
1703 lambda7Upw[nPhaseIdx] = (potentialDiffNw7 >= 0) ? lambda5[nPhaseIdx] : lambda7[nPhaseIdx];
1706 Dune::FieldVector<Scalar, numPhases> lambda8Upw(0.0);
1707 lambda8Upw[wPhaseIdx] = (potentialDiffW8 >= 0) ? lambda5[wPhaseIdx] : lambda1[wPhaseIdx];
1708 lambda8Upw[nPhaseIdx] = (potentialDiffNw8 >= 0) ? lambda5[nPhaseIdx] : lambda1[nPhaseIdx];
1711 Dune::FieldVector<Scalar, numPhases> lambda9Upw(0.0);
1712 lambda9Upw[wPhaseIdx] = (potentialDiffW9 >= 0) ? lambda2[wPhaseIdx] : lambda6[wPhaseIdx];
1713 lambda9Upw[nPhaseIdx] = (potentialDiffNw9 >= 0) ? lambda2[nPhaseIdx] : lambda6[nPhaseIdx];
1716 Dune::FieldVector<Scalar, numPhases> lambda10Upw(0.0);
1717 lambda10Upw[wPhaseIdx] = (potentialDiffW10 >= 0) ? lambda8[wPhaseIdx] : lambda4[wPhaseIdx];
1718 lambda10Upw[nPhaseIdx] = (potentialDiffNw10 >= 0) ? lambda8[nPhaseIdx] : lambda4[nPhaseIdx];
1721 Dune::FieldVector<Scalar, numPhases> lambda11Upw(0.0);
1722 lambda11Upw[wPhaseIdx] = (potentialDiffW11 >= 0) ? lambda3[wPhaseIdx] : lambda7[wPhaseIdx];
1723 lambda11Upw[nPhaseIdx] = (potentialDiffNw11 >= 0) ? lambda3[nPhaseIdx] : lambda7[nPhaseIdx];
1725 for (
int i = 0; i < numPhases; i++)
1728 DimVector vel12 = interactionVolume.getNormal(0, 0);
1729 DimVector vel21 = interactionVolume.getNormal(1, 1);
1730 DimVector vel24 = interactionVolume.getNormal(1, 0);
1731 DimVector vel42 = interactionVolume.getNormal(3, 1);
1732 DimVector vel43 = interactionVolume.getNormal(3, 0);
1733 DimVector vel34 = interactionVolume.getNormal(2, 1);
1734 DimVector vel31 = interactionVolume.getNormal(2, 0);
1735 DimVector vel13 = interactionVolume.getNormal(0, 1);
1736 DimVector vel65 = interactionVolume.getNormal(5, 2);
1737 DimVector vel56 = interactionVolume.getNormal(4, 1);
1738 DimVector vel86 = interactionVolume.getNormal(7, 2);
1739 DimVector vel68 = interactionVolume.getNormal(5, 1);
1740 DimVector vel78 = interactionVolume.getNormal(6, 2);
1741 DimVector vel87 = interactionVolume.getNormal(7, 1);
1742 DimVector vel57 = interactionVolume.getNormal(4, 2);
1743 DimVector vel75 = interactionVolume.getNormal(6, 1);
1744 DimVector vel51 = interactionVolume.getNormal(4, 0);
1745 DimVector vel15 = interactionVolume.getNormal(0, 2);
1746 DimVector vel26 = interactionVolume.getNormal(1, 2);
1747 DimVector vel62 = interactionVolume.getNormal(5, 0);
1748 DimVector vel84 = interactionVolume.getNormal(7, 0);
1749 DimVector vel48 = interactionVolume.getNormal(3, 2);
1750 DimVector vel37 = interactionVolume.getNormal(2, 2);
1751 DimVector vel73 = interactionVolume.getNormal(6, 0);
1765 Dune::FieldVector<Scalar, 12> flux(0);
1780 vel12 *= flux[0] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal1, 0, 0));
1781 vel21 *= flux[0] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal2, 1, 1));
1782 vel24 *= flux[1] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal2, 1, 0));
1783 vel42 *= flux[1] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal4, 3, 1));
1784 vel43 *= flux[2] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal4, 3, 0));
1785 vel34 *= flux[2] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal3, 2, 1));
1786 vel31 *= flux[3] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal3, 2, 0));
1787 vel13 *= flux[3] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal1, 0, 1));
1788 vel65 *= flux[4] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal6, 5, 2));
1789 vel56 *= flux[4] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal5, 4, 1));
1790 vel86 *= flux[5] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal8, 7, 2));
1791 vel68 *= flux[5] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal6, 5, 1));
1792 vel78 *= flux[6] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal7, 6, 2));
1793 vel87 *= flux[6] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal8, 7, 1));
1794 vel57 *= flux[7] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal5, 4, 2));
1795 vel75 *= flux[7] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal7, 6, 1));
1796 vel51 *= flux[8] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal5, 4, 0));
1797 vel15 *= flux[8] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal1, 0, 2));
1798 vel26 *= flux[9] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal2, 1, 2));
1799 vel62 *= flux[9] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal6, 5, 0));
1800 vel84 *= flux[10] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal8, 7, 0));
1801 vel48 *= flux[10] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal4, 3, 2));
1802 vel37 *= flux[11] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal3, 2, 2));
1803 vel73 *= flux[11] / (interactionVolumes.getRealFluxFaceArea(interactionVolume, eIdxGlobal7, 6, 0));
1806 Scalar lambdaT0 = lambda0Upw[wPhaseIdx] + lambda0Upw[nPhaseIdx];
1807 Scalar lambdaT1 = lambda1Upw[wPhaseIdx] + lambda1Upw[nPhaseIdx];
1808 Scalar lambdaT2 = lambda2Upw[wPhaseIdx] + lambda2Upw[nPhaseIdx];
1809 Scalar lambdaT3 = lambda3Upw[wPhaseIdx] + lambda3Upw[nPhaseIdx];
1810 Scalar lambdaT4 = lambda4Upw[wPhaseIdx] + lambda4Upw[nPhaseIdx];
1811 Scalar lambdaT5 = lambda5Upw[wPhaseIdx] + lambda5Upw[nPhaseIdx];
1812 Scalar lambdaT6 = lambda6Upw[wPhaseIdx] + lambda6Upw[nPhaseIdx];
1813 Scalar lambdaT7 = lambda7Upw[wPhaseIdx] + lambda7Upw[nPhaseIdx];
1814 Scalar lambdaT8 = lambda8Upw[wPhaseIdx] + lambda8Upw[nPhaseIdx];
1815 Scalar lambdaT9 = lambda9Upw[wPhaseIdx] + lambda9Upw[nPhaseIdx];
1816 Scalar lambdaT10 = lambda10Upw[wPhaseIdx] + lambda10Upw[nPhaseIdx];
1817 Scalar lambdaT11 = lambda11Upw[wPhaseIdx] + lambda11Upw[nPhaseIdx];
1818 Scalar fracFlow0 = (lambdaT0 > threshold_) ? lambda0Upw[i] / (lambdaT0) : 0.0;
1819 Scalar fracFlow1 = (lambdaT1 > threshold_) ? lambda1Upw[i] / (lambdaT1) : 0.0;
1820 Scalar fracFlow2 = (lambdaT2 > threshold_) ? lambda2Upw[i] / (lambdaT2) : 0.0;
1821 Scalar fracFlow3 = (lambdaT3 > threshold_) ? lambda3Upw[i] / (lambdaT3) : 0.0;
1822 Scalar fracFlow4 = (lambdaT4 > threshold_) ? lambda4Upw[i] / (lambdaT4) : 0.0;
1823 Scalar fracFlow5 = (lambdaT5 > threshold_) ? lambda5Upw[i] / (lambdaT5) : 0.0;
1824 Scalar fracFlow6 = (lambdaT6 > threshold_) ? lambda6Upw[i] / (lambdaT6) : 0.0;
1825 Scalar fracFlow7 = (lambdaT7 > threshold_) ? lambda7Upw[i] / (lambdaT7) : 0.0;
1826 Scalar fracFlow8 = (lambdaT8 > threshold_) ? lambda8Upw[i] / (lambdaT8) : 0.0;
1827 Scalar fracFlow9 = (lambdaT9 > threshold_) ? lambda9Upw[i] / (lambdaT9) : 0.0;
1828 Scalar fracFlow10 = (lambdaT10 > threshold_) ? lambda10Upw[i] / (lambdaT10) : 0.0;
1829 Scalar fracFlow11 = (lambdaT11 > threshold_) ? lambda11Upw[i] / (lambdaT11) : 0.0;
1851 vel84 *= fracFlow10;
1852 vel48 *= fracFlow10;
1853 vel37 *= fracFlow11;
1854 vel73 *= fracFlow11;
1857 cellData1.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(0, 0), vel12);
1858 cellData1.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(0, 1), vel13);
1859 cellData1.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(0, 2), vel15);
1860 cellData2.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(1, 0), vel24);
1861 cellData2.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(1, 1), vel21);
1862 cellData2.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(1, 2), vel26);
1863 cellData3.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(2, 0), vel31);
1864 cellData3.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(2, 1), vel34);
1865 cellData3.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(2, 2), vel37);
1866 cellData4.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(3, 0), vel43);
1867 cellData4.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(3, 1), vel42);
1868 cellData4.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(3, 2), vel48);
1869 cellData5.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(4, 0), vel51);
1870 cellData5.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(4, 1), vel56);
1871 cellData5.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(4, 2), vel57);
1872 cellData6.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(5, 0), vel62);
1873 cellData6.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(5, 1), vel68);
1874 cellData6.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(5, 2), vel65);
1875 cellData7.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(6, 0), vel73);
1876 cellData7.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(6, 1), vel75);
1877 cellData7.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(6, 2), vel78);
1878 cellData8.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(7, 0), vel84);
1879 cellData8.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(7, 1), vel87);
1880 cellData8.fluxData().addVelocity(i, interactionVolume.getIndexOnElement(7, 2), vel86);
1883 cellData1.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(0, 0));
1884 cellData1.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(0, 1));
1885 cellData1.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(0, 2));
1886 cellData2.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(1, 0));
1887 cellData2.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(1, 1));
1888 cellData2.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(1, 2));
1889 cellData3.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(2, 0));
1890 cellData3.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(2, 1));
1891 cellData3.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(2, 2));
1892 cellData4.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(3, 0));
1893 cellData4.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(3, 1));
1894 cellData4.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(3, 2));
1895 cellData5.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(4, 0));
1896 cellData5.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(4, 1));
1897 cellData5.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(4, 2));
1898 cellData6.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(5, 0));
1899 cellData6.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(5, 1));
1900 cellData6.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(5, 2));
1901 cellData7.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(6, 0));
1902 cellData7.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(6, 1));
1903 cellData7.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(6, 2));
1904 cellData8.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(7, 0));
1905 cellData8.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(7, 1));
1906 cellData8.fluxData().setVelocityMarker(interactionVolume.getIndexOnElement(7, 2));