Modifying rampHoldFall for non 0 startTime values and a check for startTime =

endTime.
This commit is contained in:
graham
2009-07-16 10:29:00 +01:00
parent 5e7c9469fa
commit 449e983d76

View File

@ -65,19 +65,28 @@ scalar rampHoldFall::relaxation()
{ {
scalar t = cvMesh_.time().timeOutputValue(); scalar t = cvMesh_.time().timeOutputValue();
scalar tStart = cvMesh_.time().startTime().value();
scalar tEnd = cvMesh_.time().endTime().value(); scalar tEnd = cvMesh_.time().endTime().value();
scalar tSpan = tStart - tEnd;
if (t < rampEndFraction_*tEnd) if (tSpan < VSMALL)
{
return rampStartRelaxation_;
}
if (t - tStart < rampEndFraction_*tSpan)
{ {
// Ramp // Ramp
return rampGradient_*(t/tEnd) + rampStartRelaxation_; return rampGradient_*((t - tStart)/tSpan) + rampStartRelaxation_;
} }
else if (t > fallStartFraction_*tEnd) else if (t - tStart > fallStartFraction_*tSpan)
{ {
// Fall // Fall
return fallGradient_*(t/tEnd) + fallEndRelaxation_ - fallGradient_; return
fallGradient_*((t - tStart)/tSpan)
+ fallEndRelaxation_ - fallGradient_;
} }
else else
{ {