29 #ifndef RYTHMOS_INTERPOLATION_BUFFER_APPENDER_BASE_HPP
30 #define RYTHMOS_INTERPOLATION_BUFFER_APPENDER_BASE_HPP
32 #include "Rythmos_InterpolationBufferBase.hpp"
33 #include "Rythmos_Types.hpp"
34 #include "Thyra_VectorBase.hpp"
35 #include "Teuchos_Describable.hpp"
36 #include "Teuchos_ParameterListAcceptor.hpp"
37 #include "Teuchos_VerboseObject.hpp"
38 #include "Teuchos_RCP.hpp"
39 #include "Teuchos_implicit_cast.hpp"
40 #include "Teuchos_Assert.hpp"
49 template<
class Scalar>
51 :
virtual public Teuchos::Describable
52 ,
virtual public Teuchos::ParameterListAcceptor
53 ,
virtual public Teuchos::VerboseObject<InterpolationBufferAppenderBase<Scalar> >
100 template<
class Scalar>
111 TEUCHOS_TEST_FOR_EXCEPTION(
112 ( compareTimeValues(appendRange.
lower(),interpBuffSink.
getTimeRange().lower()) < 0 &&
113 compareTimeValues(appendRange.
upper(),interpBuffSink.
getTimeRange().lower()) > 0 ),
115 "Error, import range = [" << appendRange.
lower() <<
"," << appendRange.
upper() <<
"] is not a prepend "
116 "of the base range = [" << interpBuffSink.
getTimeRange().lower() <<
"," << interpBuffSink.
getTimeRange().upper() <<
"] "
117 "interpolation buffer.\n"
120 TEUCHOS_TEST_FOR_EXCEPTION(
121 ( compareTimeValues(appendRange.
lower(),interpBuffSink.
getTimeRange().upper()) < 0 &&
122 compareTimeValues(appendRange.
upper(),interpBuffSink.
getTimeRange().upper()) > 0 ),
124 "Error, import range = [" << appendRange.
lower() <<
"," << appendRange.
upper() <<
"] is not an append "
125 "of the base range = [" << interpBuffSink.
getTimeRange().lower() <<
"," << interpBuffSink.
getTimeRange().upper() <<
"] "
126 "interpolation buffer.\n"
129 TEUCHOS_TEST_FOR_EXCEPTION(
130 compareTimeValues(appendRange.
lower(),interpBuffSource.
getTimeRange().lower())<0,
132 "Error, append range's lower bound = " << appendRange.
lower() <<
" does not sit inside incoming"
133 " interpolation buffer's time range = "
136 TEUCHOS_TEST_FOR_EXCEPTION(
137 compareTimeValues(interpBuffSource.
getTimeRange().upper(),appendRange.
upper())<0,
139 "Error, append range's upper bound = " << appendRange.
upper() <<
"does not sit inside incoming"
140 " interpolation buffer's time range = "
149 #endif //RYTHMOS_INTERPOLATION_BUFFER_APPENDER_BASE_HPP
void assertAppendPreconditions(const InterpolationBufferBase< Scalar > &interpBuffSource, const TimeRange< Scalar > &range, const InterpolationBufferBase< Scalar > &interpBuffSink) const
Base class for an interpolation buffer.
Base class for strategy objects that append data from one InterplationBufferBase object to another...
virtual TimeRange< Scalar > getTimeRange() const =0
Return the range of time values where interpolation calls can be performed.
virtual void append(const InterpolationBufferBase< Scalar > &interpBuffSource, const TimeRange< Scalar > &range, const Ptr< InterpolationBufferBase< Scalar > > &interpBuffSink)=0
Append or Prepend data from one interpolation buffer into another.