29 #ifndef RYTHMOS_SMART_INTERPOLATION_BUFFER_APPENDER_HPP
30 #define RYTHMOS_SMART_INTERPOLATION_BUFFER_APPENDER_HPP
32 #include "Rythmos_InterpolationBufferAppenderBase.hpp"
33 #include "Teuchos_ParameterListAcceptorDefaultBase.hpp"
40 template<
class Scalar>
43 virtual public Teuchos::ParameterListAcceptorDefaultBase
74 template<
class Scalar>
81 TEUCHOS_TEST_FOR_EXCEPTION(
82 true, std::logic_error,
83 "This class has never been tested before and should not be used\n"
88 #ifdef HAVE_RYTHMOS_DEBUG
89 this->assertAppendPreconditions(interpBuffSource,range,*interpBuffSink);
90 #endif // HAVE_RYTHMOS_DEBUG
91 if (interpBuffSink->getOrder() >= interpBuffSource.
getOrder()) {
96 defaultAppender.
append(interpBuffSink,interpBuffSource,range);
101 TEUCHOS_TEST_FOR_EXCEPTION(
102 true,std::logic_error,
103 "Error, the smart interpolation buffer appender is not implemented\n"
104 "for appending interpolation buffers with higher order interpolation\n"
105 "into interpolation buffers with a lower order of interpolation yet!"
113 template<
class Scalar>
116 TEUCHOS_TEST_FOR_EXCEPT( is_null(paramList) );
117 paramList->validateParameters(*this->getValidParameters());
118 setMyParamList(paramList);
119 Teuchos::readVerboseObjectSublist(&*paramList,
this);
122 template<
class Scalar>
125 static RCP<Teuchos::ParameterList> validPL;
126 if (is_null(validPL)) {
127 RCP<Teuchos::ParameterList> pl = Teuchos::parameterList();
128 Teuchos::setupVerboseObjectSublist(&*pl);
137 #endif //RYTHMOS_SMART_INTERPOLATION_BUFFER_APPENDER_HPP
Concrete InterplationBufferAppender subclass that just transfers notes without any regard for accurac...
void append(const InterpolationBufferBase< Scalar > &interpBuffSource, const TimeRange< Scalar > &range, const Ptr< InterpolationBufferBase< Scalar > > &interpBuffSink)
Concrete implementation that simply copies the nodal points between the interpolation buffers...
RCP< const Teuchos::ParameterList > getValidParameters() const
void append(const InterpolationBufferBase< Scalar > &interpBuffSource, const TimeRange< Scalar > &range, const Ptr< InterpolationBufferBase< Scalar > > &interpBuffSink)
Concrete implementation that attempts to use the order of interpolation between the two interpolation...
Base class for an interpolation buffer.
Base class for strategy objects that append data from one InterplationBufferBase object to another...
void setParameterList(RCP< Teuchos::ParameterList > const ¶mList)
Smart interplation buffer class.
virtual int getOrder() const =0
Get order of interpolation.