9 #ifndef Tempus_IntegratorObserverLogging_impl_hpp
10 #define Tempus_IntegratorObserverLogging_impl_hpp
13 #include "Tempus_TimeStepControl.hpp"
17 template<
class Scalar>
19 : nameObserveStartIntegrator_ (
"observeStartIntegrator" ),
20 nameObserveStartTimeStep_ (
"observeStartTimeStep" ),
21 nameObserveNextTimeStep_ (
"observeNextTimeStep" ),
22 nameObserveBeforeTakeStep_ (
"observeBeforeTakeStep" ),
23 nameObserveAfterTakeStep_ (
"observeAfterTakeStep" ),
24 nameObserveAcceptedTimeStep_(
"observeAcceptedTimeStep"),
25 nameObserveEndIntegrator_ (
"observeEndIntegrator" )
27 counters_ = Teuchos::rcp(
new std::map<std::string,int>);
28 order_ = Teuchos::rcp(
new std::list<std::string>);
32 template<
class Scalar>
35 template<
class Scalar>
38 { logCall(nameObserveStartIntegrator_); }
40 template<
class Scalar>
43 { logCall(nameObserveStartTimeStep_); }
45 template<
class Scalar>
48 { logCall(nameObserveNextTimeStep_); }
50 template<
class Scalar>
53 { logCall(nameObserveBeforeTakeStep_); }
55 template<
class Scalar>
58 { logCall(nameObserveAfterTakeStep_); }
60 template<
class Scalar>
63 { logCall(nameObserveAcceptedTimeStep_); }
65 template<
class Scalar>
68 { logCall(nameObserveEndIntegrator_); }
70 template<
class Scalar>
73 (*counters_)[nameObserveStartIntegrator_ ] = 0;
74 (*counters_)[nameObserveStartTimeStep_ ] = 0;
75 (*counters_)[nameObserveNextTimeStep_ ] = 0;
76 (*counters_)[nameObserveBeforeTakeStep_ ] = 0;
77 (*counters_)[nameObserveAfterTakeStep_ ] = 0;
78 (*counters_)[nameObserveAcceptedTimeStep_] = 0;
79 (*counters_)[nameObserveEndIntegrator_ ] = 0;
83 template<
class Scalar>
84 Teuchos::RCP<const std::map<std::string,int> >
88 template<
class Scalar>
89 Teuchos::RCP<const std::list<std::string> >
93 template<
class Scalar>
96 (*counters_)[call] += 1;
97 order_->push_back(call);
101 #endif // Tempus_IntegratorObserverLogging_impl_hpp