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_;
|
||||
setTime(value() + deltaT_, timeIndex_ + 1);
|
||||
|
||||
// If the time is very close to zero reset to zero
|
||||
if (mag(value()) < 10*SMALL*deltaT_)
|
||||
if (!subCycling_)
|
||||
{
|
||||
setTime(0.0, timeIndex_);
|
||||
}
|
||||
|
||||
switch (writeControl_)
|
||||
{
|
||||
case wcTimeStep:
|
||||
outputTime_ = !(timeIndex_ % label(writeInterval_));
|
||||
break;
|
||||
|
||||
case wcRunTime:
|
||||
case wcAdjustableRunTime:
|
||||
// If the time is very close to zero reset to zero
|
||||
if (mag(value()) < 10*SMALL*deltaT_)
|
||||
{
|
||||
label outputIndex =
|
||||
label(((value() - startTime_) + 0.5*deltaT_)/writeInterval_);
|
||||
setTime(0.0, timeIndex_);
|
||||
}
|
||||
|
||||
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;
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user