195int CSimulation::nDoCliffCollapse(
int const nCoast,
CRWCliff* pCliff,
double& dFineCollapse,
double& dSandCollapse,
double& dCoarseCollapse,
double& dPreCollapseCliffElev,
double& dPostCollapseCliffElev)
217 int nNotchLayer =
m_pRasterGrid->m_Cell[nX][nY].nGetLayerAtElev(dNotchElev);
221 LogStream <<
m_ulIter <<
": " <<
ERR <<
" cell [" << nX <<
"][" << nY <<
"] has dNotchElev (" << dNotchElev <<
") above sediment top elevation (" <<
m_pRasterGrid->m_Cell[nX][nY].dGetSedimentTopElev() <<
")" << endl;
229 int nTopLayer =
m_pRasterGrid->m_Cell[nX][nY].nGetTopLayerAboveBasement();
243 dPreCollapseCliffElev =
m_pRasterGrid->m_Cell[nX][nY].dGetSedimentTopElev();
246 double dAvailable = 0;
247 double dFineConsLost = 0;
248 double dFineUnconsLost = 0;
249 double dSandConsLost = 0;
250 double dSandUnconsLost = 0;
251 double dCoarseConsLost = 0;
252 double dCoarseUnconsLost = 0;
255 for (
int n = nTopLayer; n > nNotchLayer; n--)
258 dAvailable =
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetUnconsolidatedSediment()->dGetFineDepth() -
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetUnconsolidatedSediment()->dGetNotchFineLost();
261 dFineCollapse += dAvailable;
262 dFineUnconsLost += dAvailable;
263 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetUnconsolidatedSediment()->SetFineDepth(0);
264 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetUnconsolidatedSediment()->SetNotchFineLost(0);
267 dAvailable =
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetUnconsolidatedSediment()->dGetSandDepth() -
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetUnconsolidatedSediment()->dGetNotchSandLost();
270 dSandCollapse += dAvailable;
271 dSandUnconsLost += dAvailable;
272 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetUnconsolidatedSediment()->SetSandDepth(0);
273 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetUnconsolidatedSediment()->SetNotchSandLost(0);
276 dAvailable =
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetUnconsolidatedSediment()->dGetCoarseDepth() -
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetUnconsolidatedSediment()->dGetNotchCoarseLost();
279 dCoarseCollapse += dAvailable;
280 dCoarseUnconsLost += dAvailable;
281 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetUnconsolidatedSediment()->SetCoarseDepth(0);
282 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetUnconsolidatedSediment()->SetNotchCoarseLost(0);
286 dAvailable =
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetConsolidatedSediment()->dGetFineDepth() -
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetConsolidatedSediment()->dGetNotchFineLost();
289 dFineCollapse += dAvailable;
290 dFineConsLost += dAvailable;
291 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetConsolidatedSediment()->SetFineDepth(0);
292 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetConsolidatedSediment()->SetNotchFineLost(0);
295 dAvailable =
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetConsolidatedSediment()->dGetSandDepth() -
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetConsolidatedSediment()->dGetNotchSandLost();
298 dSandCollapse += dAvailable;
299 dSandConsLost += dAvailable;
300 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetConsolidatedSediment()->SetSandDepth(0);
301 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetConsolidatedSediment()->SetNotchSandLost(0);
304 dAvailable =
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetConsolidatedSediment()->dGetCoarseDepth() -
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetConsolidatedSediment()->dGetNotchCoarseLost();
307 dCoarseCollapse += dAvailable;
308 dCoarseConsLost += dAvailable;
309 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetConsolidatedSediment()->SetCoarseDepth(0);
310 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(n)->pGetConsolidatedSediment()->SetNotchCoarseLost(0);
315 double dNotchLayerTop =
m_pRasterGrid->m_Cell[nX][nY].dCalcLayerElev(nNotchLayer);
316 double dNotchLayerThickness =
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->dGetTotalThickness();
317 double dNotchLayerFracRemoved = (dNotchLayerTop - dNotchElev) / dNotchLayerThickness;
320 double dFineDepth =
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetUnconsolidatedSediment()->dGetFineDepth();
321 dAvailable = dFineDepth -
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetUnconsolidatedSediment()->dGetNotchFineLost();
325 double dLost = dAvailable * dNotchLayerFracRemoved;
326 dFineCollapse += dLost;
327 dFineUnconsLost += dLost;
328 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetUnconsolidatedSediment()->SetFineDepth(dFineDepth - dLost);
329 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetUnconsolidatedSediment()->SetNotchFineLost(0);
332 double dSandDepth =
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetUnconsolidatedSediment()->dGetSandDepth();
333 dAvailable = dSandDepth -
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetUnconsolidatedSediment()->dGetNotchSandLost();
337 double dLost = dAvailable * dNotchLayerFracRemoved;
338 dSandCollapse += dLost;
339 dSandUnconsLost += dLost;
340 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetUnconsolidatedSediment()->SetSandDepth(dSandDepth - dLost);
341 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetUnconsolidatedSediment()->SetNotchSandLost(0);
344 double dCoarseDepth =
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetUnconsolidatedSediment()->dGetCoarseDepth();
345 dAvailable = dCoarseDepth -
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetUnconsolidatedSediment()->dGetNotchCoarseLost();
349 double dLost = dAvailable * dNotchLayerFracRemoved;
350 dCoarseCollapse += dLost;
351 dCoarseUnconsLost += dLost;
352 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetUnconsolidatedSediment()->SetCoarseDepth(dCoarseDepth - dLost);
353 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetUnconsolidatedSediment()->SetNotchCoarseLost(0);
357 dFineDepth =
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetConsolidatedSediment()->dGetFineDepth();
358 dAvailable = dFineDepth -
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetConsolidatedSediment()->dGetNotchFineLost();
362 double dLost = dAvailable * dNotchLayerFracRemoved;
363 dFineCollapse += dLost;
364 dFineConsLost += dLost;
365 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetConsolidatedSediment()->SetFineDepth(dFineDepth - dLost);
366 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetConsolidatedSediment()->SetNotchFineLost(0);
369 dSandDepth =
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetConsolidatedSediment()->dGetSandDepth();
370 dAvailable = dSandDepth -
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetConsolidatedSediment()->dGetNotchSandLost();
374 double dLost = dAvailable * dNotchLayerFracRemoved;
375 dSandCollapse += dLost;
376 dSandConsLost += dLost;
377 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetConsolidatedSediment()->SetSandDepth(dSandDepth - dLost);
378 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetConsolidatedSediment()->SetNotchSandLost(0);
381 dCoarseDepth =
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetConsolidatedSediment()->dGetCoarseDepth();
382 dAvailable = dCoarseDepth -
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetConsolidatedSediment()->dGetNotchCoarseLost();
386 double dLost = dAvailable * dNotchLayerFracRemoved;
387 dCoarseCollapse += dLost;
388 dCoarseConsLost += dLost;
389 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetConsolidatedSediment()->SetCoarseDepth(dCoarseDepth - dLost);
390 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nNotchLayer)->pGetConsolidatedSediment()->SetNotchCoarseLost(0);
394 m_pRasterGrid->m_Cell[nX][nY].IncrCliffCollapseErosion(dFineCollapse, dSandCollapse, dCoarseCollapse);
400 dPostCollapseCliffElev =
m_pRasterGrid->m_Cell[nX][nY].dGetSedimentTopElev();
445 int nCoastSize =
m_VCoast[nCoast].nGetCoastlineSize();
452 int nPoly =
m_pRasterGrid->m_Cell[nXCliff][nYCliff].nGetPolygonID();
467 if ((nTalusWidth % 2) == 0)
471 vector<int> VnTalusProfileCoastStartPoint(nCoastSize);
474 VnTalusProfileCoastStartPoint[0] = nStartPoint;
483 if ((nCount % 2) != 0)
484 nTmpPoint = nStartPoint + nSigned;
487 nTmpPoint = nStartPoint - nSigned;
492 if ((nTmpPoint < 0) || (nTmpPoint > (nCoastSize - 1)))
501 VnTalusProfileCoastStartPoint[nn] = nTmpPoint;
506 while (nn <
static_cast<int>(VnTalusProfileCoastStartPoint.size()));
508 bool bHitFirstCoastPoint =
false;
509 bool bHitLastCoastPoint =
false;
511 double dTotSandToDepositAllProfiles = dSandFromCollapse;
512 double dTotCoarseToDepositAllProfiles = dCoarseFromCollapse;
513 double dTotSandDepositedAllProfiles = 0;
514 double dTotCoarseDepositedAllProfiles = 0;
517 int nStartPointSize =
static_cast<int>(VnTalusProfileCoastStartPoint.size());
518 for (
int nAcross = 0; nAcross < nStartPointSize; nAcross++)
520 bool bDoSandDepositionOnThisProfile =
false;
521 bool bSandDepositionCompletedOnThisProfile =
false;
522 bool bDoCoarseDepositionOnThisProfile =
false;
523 bool bCoarseDepositionCompletedOnThisProfile =
false;
525 int nRemaining =
tMax(1, nTalusWidth - nAcross);
531 double dTargetSandToDepositOnThisProfile = (dTotSandToDepositAllProfiles - dTotSandDepositedAllProfiles) / nRemaining;
532 double dTargetCoarseToDepositOnThisProfile = (dTotCoarseToDepositAllProfiles - dTotCoarseDepositedAllProfiles) / nRemaining;
535 double dSandProp = 0.5;
536 double dCoarseProp = 1 - dSandProp;
537 if (dTargetSandToDepositOnThisProfile + dTargetCoarseToDepositOnThisProfile > 0)
539 dSandProp = dTargetSandToDepositOnThisProfile / (dTargetSandToDepositOnThisProfile + dTargetCoarseToDepositOnThisProfile);
540 dCoarseProp = 1 - dSandProp;
543 double dSandDepositedOnThisProfile = 0;
544 double dCoarseDepositedOnThisProfile = 0;
546 if (dTotSandToDepositAllProfiles > 0)
548 bDoSandDepositionOnThisProfile =
true;
551 bSandDepositionCompletedOnThisProfile =
true;
554 bSandDepositionCompletedOnThisProfile =
true;
556 if (dTotCoarseToDepositAllProfiles > 0)
558 bDoCoarseDepositionOnThisProfile =
true;
561 bCoarseDepositionCompletedOnThisProfile =
true;
564 bCoarseDepositionCompletedOnThisProfile =
true;
566 if (bSandDepositionCompletedOnThisProfile && bCoarseDepositionCompletedOnThisProfile)
574 int nThisPoint = VnTalusProfileCoastStartPoint[nAcross];
578 bHitFirstCoastPoint =
true;
580 if (nThisPoint == nCoastSize-1)
581 bHitLastCoastPoint =
true;
593 bool bJustDepositWhatWeCan =
false;
596 int nSeawardOffset = 0;
601 if (bJustDepositWhatWeCan || (bSandDepositionCompletedOnThisProfile && bCoarseDepositionCompletedOnThisProfile))
615 if (dCliffHeightFrac < 1)
628 bJustDepositWhatWeCan =
true;
639 dCliffHeightFrac = 1;
644 if (bHitFirstCoastPoint && bHitLastCoastPoint)
647 LogStream <<
m_ulIter <<
": unable to deposit sufficient unconsolidated talus from cliff collapse at [" << nXCliff <<
"][" << nYCliff <<
"] nStartPoint = " << nStartPoint <<
" nThisPoint = " << nThisPoint << endl <<
"\tnSeawardOffset = " << nSeawardOffset <<
" dCliffHeightFrac = " << dCliffHeightFrac <<
" nAcross = " << nAcross << endl <<
"\tdTargetSandToDepositOnThisProfile = " << dTargetSandToDepositOnThisProfile <<
" dSandDepositedOnThisProfile = " << dSandDepositedOnThisProfile <<
" dTotSandToDepositAllProfiles = " << dTotSandToDepositAllProfiles <<
" dTotSandDepositedAllProfiles = " << dTotSandDepositedAllProfiles << endl <<
"\tdTargetCoarseToDepositOnThisProfile = " << dTargetCoarseToDepositOnThisProfile <<
" dCoarseDepositedOnThisProfile = " << dCoarseDepositedOnThisProfile <<
" dTotCoarseToDepositAllProfiles = " << dTotCoarseToDepositAllProfiles <<
" dTotCoarseDepositedAllProfiles = " << dTotCoarseDepositedAllProfiles << endl;
653 double dThisProfileLength = (nTalusProfileLen + nSeawardOffset + 1) *
m_dCellSide;
657 int nRtn =
nGetCoastNormalEndPoint(nCoast, nThisPoint, nCoastSize, &PtStart, dThisProfileLength, &PtEnd, &PtiEnd,
false);
662 LogStream <<
m_ulIter <<
": unable to deposit sufficient unconsolidated talus from cliff collapse, could not find a solution for the end point of the Dean profile" << endl;
668 if (PtStart == PtEnd)
677 vector<CGeom2DPoint> VTmpProfile;
678 VTmpProfile.push_back(PtStart);
679 VTmpProfile.push_back(PtEnd);
680 vector<CGeom2DIPoint> VCellsUnderProfile;
685 int nRasterProfileLength =
static_cast<int>(VCellsUnderProfile.size());
688 if (nRasterProfileLength - nSeawardOffset < 3)
693 else if (nRasterProfileLength - nSeawardOffset == 3)
696 bJustDepositWhatWeCan =
true;
699 vector<double> dVProfileNow(nRasterProfileLength, 0);
700 vector<bool> bVProfileValid(nRasterProfileLength,
true);
705 for (
int n = 0; n < nRasterProfileLength; n++)
707 int nX = VCellsUnderProfile[n].nGetX();
708 int nY = VCellsUnderProfile[n].nGetY();
710 dVProfileNow[n] =
m_pRasterGrid->m_Cell[nX][nY].dGetSedimentTopElev();
714 bVProfileValid[n] =
false;
718 double dCliffHeight = dPreCollapseCliffElev - dPostCollapseCliffElev;
719 double dTalusTopElev = dPostCollapseCliffElev + (dCliffHeight * dCliffHeightFrac);
727 double dTalusSlopeLength = dThisProfileLength - ((nSeawardOffset - 1) *
m_dCellSide);
734 dA = (dTalusTopElev - dVProfileNow[nRasterProfileLength - 1]) / pow(dTalusSlopeLength,
DEAN_POWER);
737 double dInc = dTalusSlopeLength / (nRasterProfileLength - nSeawardOffset - 2);
738 vector<double> dVDeanProfile(nRasterProfileLength);
741 CalcDeanProfile(&dVDeanProfile, dInc, dTalusTopElev, dA,
true, nSeawardOffset, dTalusTopElev);
744 double dTotElevDiff =
dSubtractProfiles(&dVDeanProfile, &dVProfileNow, &bVProfileValid);
775 if (! bJustDepositWhatWeCan && (dTotElevDiff < (dTargetSandToDepositOnThisProfile + dTargetCoarseToDepositOnThisProfile)))
784 for (
int n = 0; n < nRasterProfileLength; n++)
787 if (bDoSandDepositionOnThisProfile)
790 bSandDepositionCompletedOnThisProfile =
true;
792 bSandDepositionCompletedOnThisProfile =
false;
796 if (bDoCoarseDepositionOnThisProfile)
799 bCoarseDepositionCompletedOnThisProfile =
true;
801 bCoarseDepositionCompletedOnThisProfile =
false;
805 if (bSandDepositionCompletedOnThisProfile && bCoarseDepositionCompletedOnThisProfile)
813 int nX = VCellsUnderProfile[n].nGetX();
814 int nY = VCellsUnderProfile[n].nGetY();
820 int nTopLayer =
m_pRasterGrid->m_Cell[nX][nY].nGetTopNonZeroLayerAboveBasement();
829 cerr <<
"All layers have zero thickness" << endl;
834 if (dVDeanProfile[n] > dVProfileNow[n])
837 double dSandToDeposit = 0;
838 if (bDoSandDepositionOnThisProfile)
840 dSandToDeposit = (dVDeanProfile[n] - dVProfileNow[n]) * dSandProp;
841 dSandToDeposit =
tMin(dSandToDeposit, (dTargetSandToDepositOnThisProfile - dSandDepositedOnThisProfile), (dTotSandToDepositAllProfiles - dTotSandDepositedAllProfiles));
843 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nTopLayer)->pGetUnconsolidatedSediment()->AddSandDepth(dSandToDeposit);
848 dSandDepositedOnThisProfile += dSandToDeposit;
849 dTotSandDepositedAllProfiles += dSandToDeposit;
852 double dCoarseToDeposit = 0;
853 if (bDoCoarseDepositionOnThisProfile)
855 dCoarseToDeposit = (dVDeanProfile[n] - dVProfileNow[n]) * dCoarseProp;
856 dCoarseToDeposit =
tMin(dCoarseToDeposit, (dTargetCoarseToDepositOnThisProfile - dCoarseDepositedOnThisProfile), (dTotCoarseToDepositAllProfiles - dTotCoarseDepositedAllProfiles));
858 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nTopLayer)->pGetUnconsolidatedSediment()->AddCoarseDepth(dCoarseToDeposit);
863 dCoarseDepositedOnThisProfile += dCoarseToDeposit;
864 dTotCoarseDepositedAllProfiles += dCoarseToDeposit;
874 m_pRasterGrid->m_Cell[nX][nY].AddSandTalusDeposition(dSandToDeposit);
875 m_pRasterGrid->m_Cell[nX][nY].AddCoarseTalusDeposition(dCoarseToDeposit);
885 else if (dVDeanProfile[n] < dVProfileNow[n])
888 double dThisLowering = dVProfileNow[n] - dVDeanProfile[n];
891 double dExistingAvailableFine =
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nTopLayer)->pGetUnconsolidatedSediment()->dGetFineDepth();
892 double dExistingAvailableSand =
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nTopLayer)->pGetUnconsolidatedSediment()->dGetSandDepth();
893 double dExistingAvailableCoarse =
m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nTopLayer)->pGetUnconsolidatedSediment()->dGetCoarseDepth();
896 int nFineWeight = (dExistingAvailableFine > 0 ? 1 : 0);
897 int nSandWeight = (dExistingAvailableSand > 0 ? 1 : 0);
898 int nCoarseWeight = (dExistingAvailableCoarse > 0 ? 1 : 0);
908 double dFine =
tMin(dExistingAvailableFine, dFineLowering);
909 double dRemaining = dExistingAvailableFine - dFine;
912 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nTopLayer)->pGetUnconsolidatedSediment()->SetFineDepth(dRemaining);
932 double dSandToErode =
tMin(dExistingAvailableSand, dSandLowering);
933 double dRemaining = dExistingAvailableSand - dSandToErode;
936 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nTopLayer)->pGetUnconsolidatedSediment()->SetSandDepth(dRemaining);
945 dTargetSandToDepositOnThisProfile += dSandToErode;
946 dTotSandToDepositAllProfiles += dSandToErode;
960 double dCoarseToErode =
tMin(dExistingAvailableCoarse, dCoarseLowering);
961 double dRemaining = dExistingAvailableCoarse - dCoarseToErode;
964 m_pRasterGrid->m_Cell[nX][nY].pGetLayerAboveBasement(nTopLayer)->pGetUnconsolidatedSediment()->SetCoarseDepth(dRemaining);
973 dTargetCoarseToDepositOnThisProfile += dCoarseToErode;
974 dTotCoarseToDepositAllProfiles += dCoarseToErode;
998 if (bDoSandDepositionOnThisProfile)
1001 bSandDepositionCompletedOnThisProfile =
true;
1004 if (bDoCoarseDepositionOnThisProfile)
1007 bCoarseDepositionCompletedOnThisProfile =
true;
1010 if (bSandDepositionCompletedOnThisProfile && bCoarseDepositionCompletedOnThisProfile)
1018 LogStream <<
ERR <<
m_ulIter <<
": non-zero dTotSandToDepositAllProfiles = " << dTotSandToDepositAllProfiles << endl;
1022 LogStream <<
ERR <<
m_ulIter <<
": non-zero dTotCoarseToDepositAllProfiles = " << dTotCoarseToDepositAllProfiles << endl;