10#ifndef TEMPUS_TEST_SINCOS_MODEL_DECL_HPP 
   11#define TEMPUS_TEST_SINCOS_MODEL_DECL_HPP 
   13#include "Thyra_ModelEvaluator.hpp"                
   14#include "Thyra_StateFuncModelEvaluatorBase.hpp"   
   16#include "Teuchos_ParameterListAcceptorDefaultBase.hpp" 
   17#include "Teuchos_ParameterList.hpp" 
  108template <
class Scalar>
 
  109class SinCosModel : 
public Thyra::StateFuncModelEvaluatorBase<Scalar>,
 
  110                    public Teuchos::ParameterListAcceptorDefaultBase {
 
  113  SinCosModel(Teuchos::RCP<Teuchos::ParameterList> pList = Teuchos::null);
 
  120      int j, 
double t) 
const;
 
  125  Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> > 
get_x_space() 
const;
 
  126  Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> > 
get_f_space() 
const;
 
  128  Teuchos::RCP<Thyra::LinearOpWithSolveBase<Scalar> > 
create_W() 
const;
 
  129  Teuchos::RCP<Thyra::LinearOpBase<Scalar> > 
create_W_op() 
const;
 
  130  Teuchos::RCP<const Thyra::LinearOpWithSolveFactoryBase<Scalar> >
 
  132  Thyra::ModelEvaluatorBase::InArgs<Scalar> 
createInArgs() 
const;
 
  134  Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> > 
get_p_space(
int l) 
const;
 
  135  Teuchos::RCP<const Teuchos::Array<std::string> > 
get_p_names(
int l) 
const;
 
  136  Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> > 
get_g_space(
int j) 
const;
 
  142  void setParameterList(Teuchos::RCP<Teuchos::ParameterList> 
const ¶mList);
 
  153      const Thyra::ModelEvaluatorBase::InArgs<Scalar> &inArgs_bar,
 
  154      const Thyra::ModelEvaluatorBase::OutArgs<Scalar> &outArgs_bar) 
const;
 
  169  mutable Thyra::ModelEvaluatorBase::InArgs<Scalar> 
inArgs_;
 
  170  mutable Thyra::ModelEvaluatorBase::OutArgs<Scalar> 
outArgs_;
 
  172  Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> > 
x_space_;
 
  173  Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> > 
f_space_;
 
  174  Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> > 
p_space_;
 
  175  Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> > 
g_space_;
 
 
  203template <
class Scalar>
 
  215  Thyra::ModelEvaluatorBase::InArgs<Scalar> 
createInArgs() 
const;
 
  216  Teuchos::RCP<Thyra::LinearOpWithSolveBase<Scalar> > 
create_W() 
const;
 
  217  Teuchos::RCP<Thyra::LinearOpBase<Scalar> > 
create_W_op() 
const;
 
  226      const Thyra::ModelEvaluatorBase::InArgs<Scalar> &inArgs_bar,
 
  227      const Thyra::ModelEvaluatorBase::OutArgs<Scalar> &outArgs_bar) 
const;
 
 
SinCosModelAdjoint(Teuchos::RCP< Teuchos::ParameterList > pList=Teuchos::null)
 
void evalModelImpl(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs_bar, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs_bar) const
 
Thyra::ModelEvaluatorBase::OutArgs< Scalar > createOutArgsImpl() const
 
Teuchos::RCP< Thyra::LinearOpWithSolveBase< Scalar > > create_W() const
 
Thyra::ModelEvaluatorBase::InArgs< Scalar > createInArgs() const
 
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > create_W_op() const
 
Sine-Cosine model problem from Rythmos. This is a canonical Sine-Cosine differential equation.
 
int dim_
Number of state unknowns (2)
 
Teuchos::RCP< const Teuchos::Array< std::string > > get_p_names(int l) const
 
int np_
Number of parameters in this vector (2)
 
Thyra::ModelEvaluatorBase::OutArgs< Scalar > createOutArgsImpl() const
 
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_f_space() const
 
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > p_space_
 
Scalar x0_ic_
Initial condition for x0.
 
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > g_space_
 
bool useDfDpAsTangent_
Treat DfDp OutArg as tangent (df/dx*dx/dp+df/dp)
 
int Np_
Number of parameter vectors (1)
 
Thyra::ModelEvaluatorBase::InArgs< Scalar > createInArgs() const
 
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > create_W_op() const
 
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > DxDp_space_
 
Scalar t0_ic_
Time value where the initial condition is specified.
 
Teuchos::RCP< const Thyra::LinearOpWithSolveFactoryBase< Scalar > > get_W_factory() const
 
Thyra::ModelEvaluatorBase::InArgs< Scalar > getExactSolution(double t) const
 
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_x_space() const
 
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > x_space_
 
Scalar a_
Model parameter.
 
Scalar x1_ic_
Initial condition for x1.
 
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
 
Teuchos::RCP< Thyra::LinearOpWithSolveBase< Scalar > > create_W() const
 
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > f_space_
 
void evalModelImpl(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs_bar, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs_bar) const
 
Thyra::ModelEvaluatorBase::InArgs< Scalar > getNominalValues() const
 
Scalar f_
Model parameter.
 
Thyra::ModelEvaluatorBase::InArgs< Scalar > getExactSensSolution(int j, double t) const
 
Scalar L_
Model parameter.
 
Scalar b_
Parameter determined from the IC.
 
Thyra::ModelEvaluatorBase::InArgs< Scalar > inArgs_
 
bool acceptModelParams_
Changes inArgs to require parameters.
 
void setParameterList(Teuchos::RCP< Teuchos::ParameterList > const ¶mList)
 
Thyra::ModelEvaluatorBase::InArgs< Scalar > nominalValues_
 
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_g_space(int j) const
 
void calculateCoeffFromIC_()
 
int ng_
Number of elements in this observation function (1)
 
void setupInOutArgs_() const
 
int Ng_
Number of observation functions (1)
 
bool haveIC_
false => no nominal values are provided (default=true)
 
Scalar phi_
Parameter determined from the IC.
 
Thyra::ModelEvaluatorBase::OutArgs< Scalar > outArgs_
 
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_p_space(int l) const