Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
panzer::ResponseEvaluatorFactoryBase Class Referenceabstract

#include <Panzer_ResponseEvaluatorFactoryBase.hpp>

Inheritance diagram for panzer::ResponseEvaluatorFactoryBase:
Inheritance graph
[legend]

Public Member Functions

 ResponseEvaluatorFactoryBase ()
 
virtual ~ResponseEvaluatorFactoryBase ()
 
virtual Teuchos::RCP
< ResponseBase
buildResponseObject (const std::string &responseName, const std::vector< WorksetDescriptor > &wkstdescs) const =0
 
virtual void buildAndRegisterEvaluators (const std::string &responseName, PHX::FieldManager< panzer::Traits > &fm, const panzer::PhysicsBlock &physicsBlock, const Teuchos::ParameterList &user_data) const =0
 
virtual bool typeSupported () const =0
 
- Public Member Functions inherited from panzer::EvaluatorsRegistrar
int setDetailsIndex (const int details_index)
 
int getDetailsIndex () const
 Get the WorksetDetails index. More...
 

Additional Inherited Members

- Protected Member Functions inherited from panzer::EvaluatorsRegistrar
 EvaluatorsRegistrar ()
 Default ctor initializes WorksetDetails index to 0. More...
 
virtual ~EvaluatorsRegistrar ()
 
template<typename EvalT >
void registerEvaluator (PHX::FieldManager< panzer::Traits > &fm, const Teuchos::RCP< PHX::Evaluator< panzer::Traits > > &op) const
 

Detailed Description

This pure virtual class defines the methods to be used to construct a response using field managers. It is assumed that multiple field managers can be populated with this response, thus the object itself should remain stateless.

(Later, EvaluatorsRegistrar was added to manage the workset details index. It is stateful, but its default state behaves as if the Registrar is not present.)

Note
Users should not derive directly off of this object, but should instead derive from the ResponseEvaluatorFactory which is the templated version with a specific evaluation type.

Definition at line 44 of file Panzer_ResponseEvaluatorFactoryBase.hpp.

Constructor & Destructor Documentation

panzer::ResponseEvaluatorFactoryBase::ResponseEvaluatorFactoryBase ( )
inline

Definition at line 47 of file Panzer_ResponseEvaluatorFactoryBase.hpp.

virtual panzer::ResponseEvaluatorFactoryBase::~ResponseEvaluatorFactoryBase ( )
inlinevirtual

Definition at line 49 of file Panzer_ResponseEvaluatorFactoryBase.hpp.

Member Function Documentation

virtual Teuchos::RCP<ResponseBase> panzer::ResponseEvaluatorFactoryBase::buildResponseObject ( const std::string &  responseName,
const std::vector< WorksetDescriptor > &  wkstdescs 
) const
pure virtual

Build the response object used by this factory. This object assumes the role of the scatter target and will be accessible by all the evaluators in the field managers. This is the sideset version of the buildResponseObject function.

Parameters
[in]responseNameName of response to be built. This name will be used for looking up the response in the GlobalEvaluationDataContainer object.
[in]wkstdescsA vector of descriptors for the elements this response is over.

Implemented in panzer::ResponseEvaluatorFactory_ExtremeValue< EvalT, LO, GO >, panzer::ResponseEvaluatorFactory_Probe< EvalT, LO, GO >, panzer::ResponseEvaluatorFactory_Functional< EvalT, LO, GO >, panzer_stk::ResponseEvaluatorFactory_SolutionWriter< EvalT >, panzer::ResponseEvaluatorFactory< EvalT >, and panzer::ResponseEvaluatorFactory_IPCoordinates< EvalT >.

virtual void panzer::ResponseEvaluatorFactoryBase::buildAndRegisterEvaluators ( const std::string &  responseName,
PHX::FieldManager< panzer::Traits > &  fm,
const panzer::PhysicsBlock physicsBlock,
const Teuchos::ParameterList user_data 
) const
pure virtual

Build and register evaluators for a response on a particular physics block.

Parameters
[in]responseNameThe name of the response to be constructed by these evaluators.
[in,out]fmField manager to be fuild with the evaluators.
[in]physicsBlockWhat physics block is being used for constructing the evaluators
[in]user_dataThe user data parameter list, this stores things that the user may find useful.

Implemented in panzer::ResponseEvaluatorFactory_ExtremeValue< EvalT, LO, GO >, panzer::ResponseEvaluatorFactory_Probe< EvalT, LO, GO >, panzer::ResponseEvaluatorFactory_Functional< EvalT, LO, GO >, panzer_stk::ResponseEvaluatorFactory_SolutionWriter< EvalT >, panzer::ResponseEvaluatorFactory< EvalT >, and panzer::ResponseEvaluatorFactory_IPCoordinates< EvalT >.

virtual bool panzer::ResponseEvaluatorFactoryBase::typeSupported ( ) const
pure virtual

Is this evaluation type supported by the factory. This is used to determine cases where a response may support a particular evaluation type, however at runtime the user decides not to enable the (say) Jacobian evaluation of this response.

Note that use of this mechanism is complementary to having the builder return Teuchos::null for a particular evaluation type.

Note
In this contect the "type" does not make a lot of sense. But in the dervied interface ResponseEvaluatorFactory<EvalT> the type is the EvalT. Inclusion of this method here simply makes dynamic access to this method possible with out a cast. In the end it cleans up the code.

Implemented in panzer::ResponseEvaluatorFactory_ExtremeValue< EvalT, LO, GO >, panzer::ResponseEvaluatorFactory_Probe< EvalT, LO, GO >, panzer::ResponseEvaluatorFactory_Functional< EvalT, LO, GO >, panzer_stk::ResponseEvaluatorFactory_SolutionWriter< EvalT >, panzer::ResponseEvaluatorFactory< EvalT >, panzer::ResponseEvaluatorFactory_IPCoordinates< EvalT >, and panzer::ResponseEvaluatorFactory_IPCoordinates< EvalT >.


The documentation for this class was generated from the following file: