43 #ifndef PANZER_MODEL_EVALUATOR_DECL_HPP 44 #define PANZER_MODEL_EVALUATOR_DECL_HPP 46 #include "PanzerDiscFE_config.hpp" 56 #include "Teuchos_RCP.hpp" 57 #include "Teuchos_AbstractFactory.hpp" 59 #include "Thyra_VectorBase.hpp" 60 #include "Thyra_VectorSpaceBase.hpp" 61 #include "Thyra_StateFuncModelEvaluatorBase.hpp" 62 #include "Thyra_LinearOpWithSolveFactoryBase.hpp" 68 class FieldManagerBuilder;
69 template<
typename>
class LinearObjFactory;
71 class ReadOnlyVectorGlobalEvaluationData;
73 template<
typename Scalar>
75 :
public Thyra::StateFuncModelEvaluatorBase<Scalar>
84 ModelEvaluator(
const Teuchos::RCP<panzer::FieldManagerBuilder>& fmb,
87 const std::vector<Teuchos::RCP<Teuchos::Array<std::string> > >& p_names,
88 const std::vector<Teuchos::RCP<Teuchos::Array<double> > >& p_values,
90 const Teuchos::RCP<panzer::GlobalData>&
global_data,
91 bool build_transient_support,
double t_init);
95 const Teuchos::RCP<panzer::GlobalData>&
global_data,
96 bool build_transient_support,
double t_init);
107 Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
get_x_space()
const;
110 Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
get_f_space()
const;
113 Teuchos::RCP<const Teuchos::Array<std::string> >
get_p_names(
int i)
const;
116 Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
get_p_space(
int i)
const;
119 Teuchos::ArrayView<const std::string>
get_g_names(
int i)
const override;
125 Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
get_g_space(
int i)
const;
128 Teuchos::RCP<Thyra::LinearOpBase<Scalar> >
create_W_op()
const;
131 Teuchos::RCP<const Thyra::LinearOpWithSolveFactoryBase<Scalar> >
get_W_factory()
const;
134 Teuchos::RCP<Thyra::LinearOpBase<Scalar> >
create_DfDp_op(
int i)
const;
137 Thyra::ModelEvaluatorBase::InArgs<Scalar>
createInArgs()
const;
143 void setupModel(
const Teuchos::RCP<panzer::WorksetContainer> & wc,
144 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
145 const std::vector<panzer::BC> & bcs,
150 const Teuchos::ParameterList& closure_models,
151 const Teuchos::ParameterList& user_data,
152 bool writeGraph=
false,
const std::string & graphPrefix=
"",
153 const Teuchos::ParameterList& me_params = Teuchos::ParameterList());
166 int addParameter(
const std::string & name,
const Scalar & initial);
178 int addParameter(
const Teuchos::Array<std::string> & names,
179 const Teuchos::Array<Scalar> & initialValues);
199 const Teuchos::RCP<GlobalEvaluationData> & ged,
201 const Teuchos::RCP<const UniqueGlobalIndexerBase> & ugi=Teuchos::null);
212 const Teuchos::RCP<GlobalEvaluationData> & ged);
231 const std::vector<WorksetDescriptor> & wkst_desc,
232 const Teuchos::RCP<ResponseMESupportBuilderBase> & builder);
249 template <
typename ResponseEvaluatorFactory_BuilderT>
251 const std::vector<WorksetDescriptor> & wkst_desc,
252 const ResponseEvaluatorFactory_BuilderT & builder);
258 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
261 const Teuchos::ParameterList& closure_models,
262 const Teuchos::ParameterList& user_data,
263 const bool write_graphviz_file=
false,
264 const std::string& graphviz_file_prefix=
"")
265 {
responseLibrary_->buildResponseEvaluators(physicsBlocks,eqset_factory,cm_factory,closure_models,user_data,write_graphviz_file,graphviz_file_prefix);
269 typedef Thyra::ModelEvaluatorBase MEB;
270 MEB::OutArgsSetup<Scalar> outArgs;
271 outArgs.setModelEvalDescription(this->description());
273 outArgs.setSupports(MEB::OUT_ARG_f);
274 outArgs.setSupports(MEB::OUT_ARG_W_op);
281 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
283 const Teuchos::ParameterList& closure_models,
284 const Teuchos::ParameterList& user_data,
285 const bool write_graphviz_file=
false,
286 const std::string& graphviz_file_prefix=
"")
287 {
responseLibrary_->buildResponseEvaluators(physicsBlocks,cm_factory,closure_models,user_data,write_graphviz_file,graphviz_file_prefix);
291 typedef Thyra::ModelEvaluatorBase MEB;
292 MEB::OutArgsSetup<Scalar> outArgs;
293 outArgs.setModelEvalDescription(this->description());
295 outArgs.setSupports(MEB::OUT_ARG_f);
296 outArgs.setSupports(MEB::OUT_ARG_W_op);
305 const Teuchos::RCP<panzer::WorksetContainer> & wc,
306 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
307 const std::vector<panzer::BC> & bcs,
311 const Teuchos::ParameterList& closure_models,
312 const Teuchos::ParameterList& user_data,
313 const bool write_graphviz_file=
false,
314 const std::string& graphviz_file_prefix=
"");
323 const Teuchos::RCP<panzer::WorksetContainer> & wc,
324 const std::vector<Teuchos::RCP<panzer::PhysicsBlock> >& physicsBlocks,
325 const std::vector<panzer::BC> & bcs,
329 const Teuchos::ParameterList& closure_models,
330 const Teuchos::ParameterList& user_data,
331 const bool write_graphviz_file=
false,
332 const std::string& graphviz_file_prefix=
"");
364 for (
int i=0; i<index; i++) {
375 for (
int i=0; i<index; i++) {
396 const Thyra::ModelEvaluatorBase::InArgs<Scalar> & inArgs,
410 const Thyra::ModelEvaluatorBase::InArgs<Scalar> & inArgs,
424 const Thyra::ModelEvaluatorBase::InArgs<Scalar> & inArgs,
438 const Thyra::ModelEvaluatorBase::InArgs<Scalar> & inArgs,
449 void evalModel_D2fDx2(
const Thyra::ModelEvaluatorBase::InArgs<Scalar> & inArgs,
462 const Thyra::ModelEvaluatorBase::InArgs<Scalar> & inArgs,
475 const Thyra::ModelEvaluatorBase::InArgs<Scalar> & inArgs,
488 const Thyra::ModelEvaluatorBase::InArgs<Scalar> & inArgs,
501 virtual void evalModelImpl(
const Thyra::ModelEvaluatorBase::InArgs<Scalar> &inArgs,
502 const Thyra::ModelEvaluatorBase::OutArgs<Scalar> &outArgs)
const;
508 const Thyra::ModelEvaluatorBase::OutArgs<Scalar> &outArgs)
const;
512 const Thyra::ModelEvaluatorBase::OutArgs<Scalar> &outArgs)
const;
520 const Thyra::ModelEvaluatorBase::OutArgs<Scalar> &outArgs)
const;
528 const Thyra::ModelEvaluatorBase::OutArgs<Scalar> &outArgs)
const;
536 const Thyra::ModelEvaluatorBase::OutArgs<Scalar> &outArgs)
const;
544 const Thyra::ModelEvaluatorBase::OutArgs<Scalar> &outArgs)
const;
552 const Thyra::ModelEvaluatorBase::OutArgs<Scalar> &outArgs)
const;
560 const Thyra::ModelEvaluatorBase::OutArgs<Scalar> &outArgs)
const;
563 bool required_basic_g(
const Thyra::ModelEvaluatorBase::OutArgs<Scalar> &outArgs)
const;
584 void setParameters(
const Thyra::ModelEvaluatorBase::InArgs<Scalar> &inArgs)
const;
593 Teuchos::RCP<Teuchos::Array<std::string> >
names;
594 Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
space;
599 Teuchos::RCP<panzer::ResponseLibrary<panzer::Traits> >
dfdp_rl;
601 Teuchos::RCP<panzer::ResponseLibrary<panzer::Traits> >
dgdp_rl;
610 Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
space;
613 Teuchos::RCP<ResponseMESupportBuilderBase>
builder;
621 bool operator()(
const Teuchos::RCP<ResponseObject> & ro) {
return name==ro->name; }
626 const Teuchos::Array<Scalar> & in_values)
const;
630 const Teuchos::RCP<const UniqueGlobalIndexerBase> & ugi)
const;
634 Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
x_space_;
635 Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
f_space_;
661 Teuchos::RCP<const panzer::LinearObjFactory<panzer::Traits> >
lof_;
663 mutable Teuchos::RCP<ReadOnlyVector_GlobalEvaluationData>
xContainer_;
677 template<
typename Scalar>
678 template <
typename ResponseEvaluatorFactory_BuilderT>
681 const std::vector<WorksetDescriptor> & wkst_desc,
682 const ResponseEvaluatorFactory_BuilderT & builder)
688 TEUCHOS_TEST_FOR_EXCEPTION(responseLibrary_->responseEvaluatorsBuilt(),std::logic_error,
689 "panzer::ModelEvaluator::addResponse: Response with name \"" << responseName <<
"\" " 690 "cannot be added to the model evaluator because evalModel has already been called!");
693 responseLibrary_->addResponse(responseName,wkst_desc,builder);
696 TEUCHOS_TEST_FOR_EXCEPTION(std::find_if(responses_.begin(),responses_.end(),
typename ResponseObject::SearchName(responseName))!=responses_.end(),
698 "panzer::ModelEvaluator::addResponse: Response with name \"" << responseName <<
"\" " 699 "has already been added to the model evaluator!");
707 Teuchos::RCP<panzer::ResponseBase> respBase = responseLibrary_->getResponse<
panzer::Traits::Residual>(responseName);
708 TEUCHOS_TEST_FOR_EXCEPTION(respBase==Teuchos::null,std::logic_error,
709 "panzer::ModelEvaluator::addResponse: Response with name \"" << responseName <<
"\" " 710 "has no residual type! Not sure what is going on!");
713 Teuchos::RCP<panzer::ResponseMESupportBase<panzer::Traits::Residual> > resp =
715 TEUCHOS_TEST_FOR_EXCEPTION(resp==Teuchos::null,std::logic_error,
716 "panzer::ModelEvaluator::addResponse: Response with name \"" << responseName <<
"\" " 717 "resulted in bad cast to panzer::ResponseMESupportBase, the type of the response is incompatible!");
720 Teuchos::RCP<const Thyra::VectorSpaceBase<double> > vs = resp->getVectorSpace();
721 respObject->space = vs;
724 resp->setVector(Thyra::createMember(vs));
728 Teuchos::RCP<panzer::ResponseBase> respJacBase = responseLibrary_->getResponse<
panzer::Traits::Jacobian>(responseName);
729 if(respJacBase!=Teuchos::null) {
733 Teuchos::RCP<panzer::ResponseMESupportBase<RespEvalT> > resp =
735 TEUCHOS_TEST_FOR_EXCEPTION(resp==Teuchos::null,std::logic_error,
736 "panzer::ModelEvaluator::addResponse: Response with name \"" << responseName <<
737 "\" resulted in bad cast to panzer::ResponseMESupportBase<Jacobian>, the type " 738 "of the response is incompatible!");
741 if(resp->supportsDerivative())
742 resp->setDerivative(resp->buildDerivative());
745 #ifdef Panzer_BUILD_HESSIAN_SUPPORT 747 Teuchos::RCP<panzer::ResponseBase> respHesBase = responseLibrary_->getResponse<panzer::Traits::Hessian>(responseName);
748 if(respHesBase!=Teuchos::null) {
749 typedef panzer::Traits::Hessian RespEvalT;
752 Teuchos::RCP<panzer::ResponseMESupportBase<RespEvalT> > resp =
754 TEUCHOS_TEST_FOR_EXCEPTION(resp==Teuchos::null,std::logic_error,
755 "panzer::ModelEvaluator::addResponse: Response with name \"" << responseName <<
756 "\" resulted in bad cast to panzer::ResponseMESupportBase<Hessian>, the type " 757 "of the response is incompatible!");
760 if(resp->supportsDerivative())
761 resp->setDerivative(resp->buildDerivative());
765 respObject->name = responseName;
766 respObject->wkst_desc = wkst_desc;
768 responses_.push_back(respObject);
770 require_in_args_refresh_ =
true;
771 require_out_args_refresh_ =
true;
773 return responses_.size()-1;
Interface for constructing a BCStrategy_TemplateManager.
std::vector< WorksetDescriptor > wkst_desc
virtual void evalModelImpl_basic_dfdp_scalar(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
bool require_out_args_refresh_
Allocates and initializes an equation set template manager.
Thyra::ModelEvaluatorBase::InArgs< Scalar > getNominalValues() const
Teuchos::RCP< panzer::ResponseLibrary< panzer::Traits > > dfdp_rl
std::vector< Teuchos::RCP< ParameterObject > > parameters_
void setParameters(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs) const
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_g_space(int i) const
GlobalEvaluationDataContainer nonParamGlobalEvaluationData_
bool build_transient_support_
int addFlexibleResponse(const std::string &responseName, const std::vector< WorksetDescriptor > &wkst_desc, const Teuchos::RCP< ResponseMESupportBuilderBase > &builder)
SearchName(const std::string &n)
int getXDotTangentVectorIndex(const int index) const
Teuchos::RCP< const Thyra::VectorBase< Scalar > > initial_value
const std::string & get_g_name(int i) const
Thyra::ModelEvaluatorBase::InArgs< Scalar > prototypeInArgs_
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > space
panzer::AssemblyEngine_TemplateManager< panzer::Traits > ae_tm_
void buildDistroParamDgDp_RL(const Teuchos::RCP< panzer::WorksetContainer > &wc, const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks, const std::vector< panzer::BC > &bcs, const panzer::EquationSetFactory &eqset_factory, const panzer::BCStrategyFactory &bc_factory, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &cm_factory, const Teuchos::ParameterList &closure_models, const Teuchos::ParameterList &user_data, const bool write_graphviz_file=false, const std::string &graphviz_file_prefix="")
std::vector< Teuchos::RCP< ResponseObject > > responses_
void evalModel_D2gDpDx(int rIndex, int pIndex, const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &delta_x, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &D2gDpDx) const
void evalModel_D2gDx2(int rIndex, const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &delta_x, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &D2gDx2) const
Teuchos::RCP< Teuchos::Array< std::string > > names
Teuchos::RCP< panzer::GlobalData > global_data_
void setupAssemblyInArgs(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, panzer::AssemblyEngineInArgs &ae_inargs) const
virtual void evalModelImpl_basic_dgdp_distro(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
panzer::ParamVec scalar_value
void evalModel_D2fDp2(int pIndex, const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &delta_x, const Teuchos::RCP< Thyra::LinearOpBase< Scalar > > &D2fDp2) const
void initializeNominalValues() const
Initialize the nominal values with good starting conditions.
Thyra::ModelEvaluatorBase::OutArgs< Scalar > createOutArgsImpl() const
virtual void evalModelImpl_basic_dgdp_scalar(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
Sacado::ScalarParameterVector< panzer::EvaluationTraits > ParamVec
Teuchos::RCP< panzer::ResponseLibrary< panzer::Traits > > dgdp_rl
Teuchos::RCP< const Thyra::LinearOpWithSolveFactoryBase< Scalar > > get_W_factory() const
bool operator()(const Teuchos::RCP< ResponseObject > &ro)
PHX::MDField< ScalarT > vector
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_x_space() const
int addResponse(const std::string &responseName, const std::vector< WorksetDescriptor > &wkst_desc, const ResponseEvaluatorFactory_BuilderT &builder)
Teuchos::RCP< panzer::GlobalData > global_data
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > x_space_
void evalModel_D2gDp2(int rIndex, int pIndex, const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &delta_x, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &D2gDp2) const
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > f_space_
bool required_basic_dfdp_scalar(const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
Are derivatives of the residual with respect to the scalar parameters in the out args? DfDp.
Teuchos::ArrayView< const std::string > get_g_names(int i) const override
Teuchos::RCP< const UniqueGlobalIndexerBase > global_indexer
bool require_in_args_refresh_
bool required_basic_dfdp_distro(const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
Are derivatives of the residual with respect to the distributed parameters in the out args...
virtual void evalModelImpl(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_p_space(int i) const
GlobalEvaluationDataContainer distrParamGlobalEvaluationData_
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > space
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > create_DfDp_op(int i) const
Teuchos::RCP< const panzer::LinearObjFactory< panzer::Traits > > lof_
void buildResponses(const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &cm_factory, const Teuchos::ParameterList &closure_models, const Teuchos::ParameterList &user_data, const bool write_graphviz_file=false, const std::string &graphviz_file_prefix="")
void applyDirichletBCs(const Teuchos::RCP< Thyra::VectorBase< Scalar > > &x, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &f) const
Thyra::ModelEvaluatorBase::OutArgs< Scalar > prototypeOutArgs_
std::vector< Teuchos::RCP< Thyra::VectorSpaceBase< double > > > tangent_space_
Teuchos::RCP< const Thyra::LinearOpWithSolveFactoryBase< Scalar > > solverFactory_
int getXTangentVectorIndex(const int index) const
Teuchos::RCP< ParameterObject > createDistributedParameter(const std::string &key, const Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > &vs, const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &initial, const Teuchos::RCP< const UniqueGlobalIndexerBase > &ugi) const
Teuchos::RCP< const Teuchos::Array< std::string > > get_p_names(int i) const
bool required_basic_g(const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
Does this set of out args require a simple response?
bool required_basic_dgdx(const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
Are their required responses in the out args? DgDx.
Teuchos::RCP< ParameterObject > createScalarParameter(const Teuchos::Array< std::string > &names, const Teuchos::Array< Scalar > &in_values) const
Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > get_f_space() const
void buildDistroParamDfDp_RL(const Teuchos::RCP< panzer::WorksetContainer > &wc, const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks, const std::vector< panzer::BC > &bcs, const panzer::EquationSetFactory &eqset_factory, const panzer::BCStrategyFactory &bc_factory, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &cm_factory, const Teuchos::ParameterList &closure_models, const Teuchos::ParameterList &user_data, const bool write_graphviz_file=false, const std::string &graphviz_file_prefix="")
Thyra::ModelEvaluatorBase::InArgs< Scalar > createInArgs() const
void setupModel(const Teuchos::RCP< panzer::WorksetContainer > &wc, const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks, const std::vector< panzer::BC > &bcs, const panzer::EquationSetFactory &eqset_factory, const panzer::BCStrategyFactory &bc_factory, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &volume_cm_factory, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &bc_cm_factory, const Teuchos::ParameterList &closure_models, const Teuchos::ParameterList &user_data, bool writeGraph=false, const std::string &graphPrefix="", const Teuchos::ParameterList &me_params=Teuchos::ParameterList())
void evalModel_D2fDpDx(int pIndex, const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &delta_x, const Teuchos::RCP< Thyra::LinearOpBase< Scalar > > &D2fDpDx) const
void evalModel_D2gDxDp(int rIndex, int pIndex, const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &delta_p, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &D2gDxDp) const
void evalModel_D2fDx2(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &delta_x, const Teuchos::RCP< Thyra::LinearOpBase< Scalar > > &D2fDx2) const
Teuchos::RCP< panzer::ResponseLibrary< panzer::Traits > > getResponseLibrary() const
virtual void evalModelImpl_basic_g(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
Construct a simple response dicatated by this set of out args.
Teuchos::RCP< Thyra::LinearOpBase< Scalar > > create_W_op() const
int addDistributedParameter(const std::string &name, const Teuchos::RCP< const Thyra::VectorSpaceBase< Scalar > > &vs, const Teuchos::RCP< GlobalEvaluationData > &ged, const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &initial, const Teuchos::RCP< const UniqueGlobalIndexerBase > &ugi=Teuchos::null)
void setOneTimeDirichletBeta(const Scalar &beta) const
Teuchos::RCP< ResponseMESupportBuilderBase > builder
Teuchos::RCP< panzer::LinearObjContainer > ghostedContainer_
void buildResponses(const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks, const panzer::EquationSetFactory &eqset_factory, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &cm_factory, const Teuchos::ParameterList &closure_models, const Teuchos::ParameterList &user_data, const bool write_graphviz_file=false, const std::string &graphviz_file_prefix="")
Teuchos::RCP< panzer::ResponseLibrary< panzer::Traits > > responseLibrary_
void addNonParameterGlobalEvaluationData(const std::string &name, const Teuchos::RCP< GlobalEvaluationData > &ged)
void resetParameters() const
virtual void evalModelImpl_basic(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
Evaluate a simple model, meaning a residual and a jacobian, no fancy stochastic galerkin or multipoin...
Teuchos::RCP< ReadOnlyVector_GlobalEvaluationData > xdotContainer_
Teuchos::RCP< const Thyra::VectorBase< Scalar > > get_parameter_vector(int index) const
Thyra::ModelEvaluatorBase::InArgs< Scalar > nominalValues_
bool required_basic_dgdp_scalar(const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
Are their required responses in the out args? DgDp.
virtual void evalModelImpl_basic_dfdp_distro(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
Scalar oneTimeDirichletBeta_
virtual void evalModelImpl_basic_dgdx(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
bool required_basic_dgdp_distro(const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const
Are their required responses in the out args? DgDp.
bool oneTimeDirichletBeta_on_
Teuchos::RCP< ReadOnlyVector_GlobalEvaluationData > xContainer_
int addParameter(const std::string &name, const Scalar &initial)
void evalModel_D2fDxDp(int pIndex, const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Teuchos::RCP< const Thyra::VectorBase< Scalar > > &delta_p, const Teuchos::RCP< Thyra::LinearOpBase< Scalar > > &D2fDxDp) const
virtual void evalModelImpl_basic_dfdp_scalar_fd(const Thyra::ModelEvaluatorBase::InArgs< Scalar > &inArgs, const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs) const