FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
CClock.h
1#ifndef CClock_H
2#define CClock_H
3
49#include <fhsim/simobject/SimObject.h>
50
51#include <chrono>
52#include <cmath>
53#include <string>
54#include <time.h>
55
56class CClock : public SimObject
57{
58 public:
60 CClock(std::string sSimObjectName, ISimObjectCreator* pCreator);
61
63 void OdeFcn(const double dT, const double* const adX, double* const adXDot) const{};
64
65 void FinalSetup(const double T, const double* const X, ISimObjectCreator* const creator);
66
67 const double* SimTime(const double T, const double* const X);
68 const double* ElapsedSimTime(const double T, const double* const X);
69
70 const double* WallTime(const double T, const double* const X);
71 const double* ElapsedWallTime(const double T, const double* const X);
72
78 static void SplitSeconds(long long totalSeconds, double hourMinuteSecond[3]);
79
80
81 protected:
83 double m_SimTime;
87 double m_WallTime[3];
90
91 double m_InitSimTime;
93 std::chrono::steady_clock::time_point m_InitSteadyTime;
94};
95
96
97#endif
Definition CClock.h:57
void OdeFcn(const double dT, const double *const adX, double *const adXDot) const
Calculates the state derivatives.
Definition CClock.h:63
double m_WallTime[3]
Definition CClock.h:87
CClock(std::string sSimObjectName, ISimObjectCreator *pCreator)
Constructor.
double m_ElapsedSimTime
Definition CClock.h:85
double m_SimTime
Definition CClock.h:83
double m_ElapsedWallTime[3]
Definition CClock.h:89
static void SplitSeconds(long long totalSeconds, double hourMinuteSecond[3])
std::chrono::steady_clock::time_point m_InitSteadyTime
The monotonic clock at FinalSetup; the elapsed wall time is measured from it.
Definition CClock.h:93