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"
43 virtual public Teuchos::ParameterListAcceptorDefaultBase
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);
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!"
113template<
class Scalar>
116 TEUCHOS_TEST_FOR_EXCEPT( is_null(paramList) );
117 paramList->validateParameters(*this->getValidParameters());
118 setMyParamList(paramList);
119 Teuchos::readVerboseObjectSublist(&*paramList,
this);
122template<
class Scalar>
125 static RCP<Teuchos::ParameterList> validPL;
126 if (is_null(validPL)) {
127 RCP<Teuchos::ParameterList> pl = Teuchos::parameterList();
128 Teuchos::setupVerboseObjectSublist(&*pl);
Base class for strategy objects that append data from one InterplationBufferBase object to another.
Base class for an interpolation buffer.
virtual int getOrder() const =0
Get order of interpolation.
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.
Smart interplation buffer class.
void setParameterList(RCP< Teuchos::ParameterList > const ¶mList)
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...
RCP< const Teuchos::ParameterList > getValidParameters() const