mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Fix date for long simulation times
This commit is contained in:
parent
14cedcf434
commit
e350c04871
@ -114,7 +114,9 @@ namespace Opm
|
||||
|
||||
boost::posix_time::ptime SimulatorTimer::currentDateTime() const
|
||||
{
|
||||
return startDateTime() + boost::posix_time::seconds( (int) simulationTimeElapsed());
|
||||
// boost uses only 32 bit long for seconds. But 64 bit for milliseconds
|
||||
// as a work around for very large timess we just use milliseconds
|
||||
return startDateTime() + boost::posix_time::milliseconds( simulationTimeElapsed() / Opm::prefix::milli);
|
||||
}
|
||||
|
||||
/// Total time.
|
||||
|
@ -46,4 +46,7 @@ TSTEP
|
||||
TSTEP
|
||||
21*5.0 /
|
||||
|
||||
TSTEP
|
||||
5*365000 /
|
||||
|
||||
END ==
|
||||
|
@ -59,8 +59,9 @@ BOOST_AUTO_TEST_CASE(CreateTimer)
|
||||
|
||||
BOOST_CHECK_EQUAL( 0, simtimer.currentStepNum() );
|
||||
BOOST_CHECK_EQUAL( 0., simtimer.simulationTimeElapsed() );
|
||||
BOOST_CHECK_EQUAL( 120, simtimer.numSteps() );
|
||||
BOOST_CHECK_EQUAL( 1200., Opm::unit::convert::to(simtimer.totalTime(), Opm::unit::day) );
|
||||
BOOST_CHECK_EQUAL( 125, simtimer.numSteps() );
|
||||
// 1200 + 1000 * 365 * 5
|
||||
BOOST_CHECK_EQUAL( 1826200, Opm::unit::convert::to(simtimer.totalTime(), Opm::unit::day) );
|
||||
BOOST_CHECK_EQUAL( 0., Opm::unit::convert::to(simtimer.simulationTimeElapsed(), Opm::unit::day) );
|
||||
|
||||
double testCurrentTime = 0.;
|
||||
@ -85,9 +86,12 @@ BOOST_AUTO_TEST_CASE(CreateTimer)
|
||||
BOOST_CHECK_EQUAL( false, simtimer.done() );
|
||||
BOOST_CHECK_EQUAL( 0., Opm::unit::convert::to(simtimer.simulationTimeElapsed(), Opm::unit::day) );
|
||||
|
||||
simtimer.setCurrentStepNum(120);
|
||||
simtimer.setCurrentStepNum(125);
|
||||
BOOST_CHECK_EQUAL( Opm::unit::convert::to(simtimer.simulationTimeElapsed(), Opm::unit::day),
|
||||
Opm::unit::convert::to(simtimer.totalTime(), Opm::unit::day) );
|
||||
|
||||
boost::gregorian::date endDate( 7014, 3, 14);
|
||||
BOOST_CHECK_EQUAL ( simtimer.currentDateTime(), boost::posix_time::ptime(endDate));
|
||||
|
||||
int i = 0;
|
||||
double testCurrentTime1 = 0.;
|
||||
@ -111,5 +115,7 @@ BOOST_AUTO_TEST_CASE(CreateTimer)
|
||||
Opm::unit::convert::to(simtimer.totalTime(), Opm::unit::minute) );
|
||||
BOOST_CHECK_EQUAL( Opm::unit::convert::to(testCurrentTime2, Opm::unit::minute),
|
||||
Opm::unit::convert::to(simtimer.totalTime(), Opm::unit::minute) );
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user