mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
prevent outputIndex calculation upon subcycling
This commit is contained in:
@ -662,83 +662,89 @@ Foam::Time& Foam::Time::operator++()
|
|||||||
deltaTSave_ = deltaT_;
|
deltaTSave_ = deltaT_;
|
||||||
setTime(value() + deltaT_, timeIndex_ + 1);
|
setTime(value() + deltaT_, timeIndex_ + 1);
|
||||||
|
|
||||||
// If the time is very close to zero reset to zero
|
if (!subCycling_)
|
||||||
if (mag(value()) < 10*SMALL*deltaT_)
|
|
||||||
{
|
{
|
||||||
setTime(0.0, timeIndex_);
|
// If the time is very close to zero reset to zero
|
||||||
}
|
if (mag(value()) < 10*SMALL*deltaT_)
|
||||||
|
|
||||||
switch (writeControl_)
|
|
||||||
{
|
|
||||||
case wcTimeStep:
|
|
||||||
outputTime_ = !(timeIndex_ % label(writeInterval_));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case wcRunTime:
|
|
||||||
case wcAdjustableRunTime:
|
|
||||||
{
|
{
|
||||||
label outputIndex =
|
setTime(0.0, timeIndex_);
|
||||||
label(((value() - startTime_) + 0.5*deltaT_)/writeInterval_);
|
}
|
||||||
|
|
||||||
if (outputIndex > outputTimeIndex_)
|
switch (writeControl_)
|
||||||
|
{
|
||||||
|
case wcTimeStep:
|
||||||
|
outputTime_ = !(timeIndex_ % label(writeInterval_));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case wcRunTime:
|
||||||
|
case wcAdjustableRunTime:
|
||||||
{
|
{
|
||||||
|
label outputIndex = label
|
||||||
|
(
|
||||||
|
((value() - startTime_) + 0.5*deltaT_)
|
||||||
|
/ writeInterval_
|
||||||
|
);
|
||||||
|
|
||||||
|
if (outputIndex > outputTimeIndex_)
|
||||||
|
{
|
||||||
|
outputTime_ = true;
|
||||||
|
outputTimeIndex_ = outputIndex;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
outputTime_ = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case wcCpuTime:
|
||||||
|
{
|
||||||
|
label outputIndex = label(elapsedCpuTime()/writeInterval_);
|
||||||
|
if (outputIndex > outputTimeIndex_)
|
||||||
|
{
|
||||||
|
outputTime_ = true;
|
||||||
|
outputTimeIndex_ = outputIndex;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
outputTime_ = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case wcClockTime:
|
||||||
|
{
|
||||||
|
label outputIndex = label(elapsedClockTime()/writeInterval_);
|
||||||
|
if (outputIndex > outputTimeIndex_)
|
||||||
|
{
|
||||||
|
outputTime_ = true;
|
||||||
|
outputTimeIndex_ = outputIndex;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
outputTime_ = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// see if endTime needs adjustment to stop at the next run()/end() check
|
||||||
|
if (!end())
|
||||||
|
{
|
||||||
|
if (stopAt_ == saNoWriteNow)
|
||||||
|
{
|
||||||
|
endTime_ = value();
|
||||||
|
}
|
||||||
|
else if (stopAt_ == saWriteNow)
|
||||||
|
{
|
||||||
|
endTime_ = value();
|
||||||
outputTime_ = true;
|
outputTime_ = true;
|
||||||
outputTimeIndex_ = outputIndex;
|
|
||||||
}
|
}
|
||||||
else
|
else if (stopAt_ == saNextWrite && outputTime_ == true)
|
||||||
{
|
{
|
||||||
outputTime_ = false;
|
endTime_ = value();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case wcCpuTime:
|
|
||||||
{
|
|
||||||
label outputIndex = label(elapsedCpuTime()/writeInterval_);
|
|
||||||
if (outputIndex > outputTimeIndex_)
|
|
||||||
{
|
|
||||||
outputTime_ = true;
|
|
||||||
outputTimeIndex_ = outputIndex;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
outputTime_ = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case wcClockTime:
|
|
||||||
{
|
|
||||||
label outputIndex = label(elapsedClockTime()/writeInterval_);
|
|
||||||
if (outputIndex > outputTimeIndex_)
|
|
||||||
{
|
|
||||||
outputTime_ = true;
|
|
||||||
outputTimeIndex_ = outputIndex;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
outputTime_ = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// see if endTime needs adjustment to stop at the next run()/end() check
|
|
||||||
if (!end())
|
|
||||||
{
|
|
||||||
if (stopAt_ == saNoWriteNow)
|
|
||||||
{
|
|
||||||
endTime_ = value();
|
|
||||||
}
|
|
||||||
else if (stopAt_ == saWriteNow)
|
|
||||||
{
|
|
||||||
endTime_ = value();
|
|
||||||
outputTime_ = true;
|
|
||||||
}
|
|
||||||
else if (stopAt_ == saNextWrite && outputTime_ == true)
|
|
||||||
{
|
|
||||||
endTime_ = value();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
|
|||||||
Reference in New Issue
Block a user