#include <Phalanx_Evaluator_Manager.hpp>
Public Member Functions | |
EvaluatorManager (const std::string &evaluator_type_name="???") | |
~EvaluatorManager () | |
void | requireField (const PHX::FieldTag &v) |
Require a variable to be evaluated. | |
void | registerEvaluator (const Teuchos::RCP< PHX::Evaluator< Traits > > &p) |
Registers a variable provider with the manager. | |
void | sortAndOrderEvaluators () |
void | postRegistrationSetup (PHX::FieldManager< Traits > &vm) |
void | evaluateFields (typename Traits::EvalData d) |
Compute the required variables for the fill on the specific element. | |
void | preEvaluate (typename Traits::PreEvalData d) |
This routine is called before each residual/Jacobian fill. | |
void | postEvaluate (typename Traits::PostEvalData d) |
This routine is called after each residual/Jacobian fill. | |
void | setEvaluationTypeName (const std::string &evaluation_type_name) |
const std::vector < Teuchos::RCP< PHX::FieldTag > > & | getFieldTags () |
bool | sortingCalled () const |
void | print (std::ostream &os) const |
Printing. | |
Protected Member Functions | |
void | createProviderEvaluationOrder () |
Create and arrange the dependency list in the correct order it should be evaluated. | |
Protected Attributes | |
std::vector< Teuchos::RCP < PHX::FieldTag > > | fields_ |
Fields required by the user. | |
std::string | evaluation_type_name_ |
bool | sorting_called_ |
Flag to tell the setup has been called. | |
Evaluator Objects | |
Stores information about variable provider objects. | |
std::vector< Teuchos::RCP < PHX::Evaluator< Traits > > > | varProviders |
std::vector< std::vector < Teuchos::RCP< PHX::FieldTag > > > | providerVariables |
std::vector< std::vector < Teuchos::RCP< PHX::FieldTag > > > | providerRequirements |
std::vector< std::string > | providerNames |
Evaluation Order Objects | |
Stores information about the order that providers need to be called to evaluate fields correctly. | |
std::vector< int > | providerEvalOrderIndex |
PHX::EvaluatorManager< Traits >::EvaluatorManager | ( | const std::string & | evaluator_type_name = "???" |
) | [inline] |
PHX::EvaluatorManager< Traits >::~EvaluatorManager | ( | ) | [inline] |
void PHX::EvaluatorManager< Traits >::createProviderEvaluationOrder | ( | ) | [inline, protected] |
Create and arrange the dependency list in the correct order it should be evaluated.
References PHX::EvaluatorManager< Traits >::evaluation_type_name_, PHX::EvaluatorManager< Traits >::fields_, PHX::EvaluatorManager< Traits >::providerEvalOrderIndex, PHX::EvaluatorManager< Traits >::providerRequirements, PHX::EvaluatorManager< Traits >::providerVariables, and PHX::EvaluatorManager< Traits >::varProviders.
Referenced by PHX::EvaluatorManager< Traits >::sortAndOrderEvaluators().
void PHX::EvaluatorManager< Traits >::evaluateFields | ( | typename Traits::EvalData | d | ) | [inline] |
Compute the required variables for the fill on the specific element.
References PHX::EvaluatorManager< Traits >::providerEvalOrderIndex, and PHX::EvaluatorManager< Traits >::varProviders.
const std::vector< Teuchos::RCP< PHX::FieldTag > > & PHX::EvaluatorManager< Traits >::getFieldTags | ( | ) | [inline] |
References PHX::EvaluatorManager< Traits >::fields_.
void PHX::EvaluatorManager< Traits >::postEvaluate | ( | typename Traits::PostEvalData | d | ) | [inline] |
This routine is called after each residual/Jacobian fill.
This routine is called ONCE on the provider after the fill loop over elements is completed. This allows us to evaluate any post fill data. An example is to print out some statistics such as the maximum grid peclet number in a cell.
References PHX::EvaluatorManager< Traits >::providerEvalOrderIndex, and PHX::EvaluatorManager< Traits >::varProviders.
void PHX::EvaluatorManager< Traits >::postRegistrationSetup | ( | PHX::FieldManager< Traits > & | vm | ) | [inline] |
Calls post registration setup on all variable providers.
References PHX::EvaluatorManager< Traits >::providerEvalOrderIndex, and PHX::EvaluatorManager< Traits >::varProviders.
void PHX::EvaluatorManager< Traits >::preEvaluate | ( | typename Traits::PreEvalData | d | ) | [inline] |
This routine is called before each residual/Jacobian fill.
This routine is called ONCE on the provider before the fill loop over elements is started. This allows us to reset global objects between each fill. An example is to reset a provider that monitors the maximum grid peclet number in a cell. This call would zero out the maximum for a new fill.
References PHX::EvaluatorManager< Traits >::providerEvalOrderIndex, and PHX::EvaluatorManager< Traits >::varProviders.
void PHX::EvaluatorManager< Traits >::print | ( | std::ostream & | os | ) | const [inline] |
Printing.
References PHX::EvaluatorManager< Traits >::evaluation_type_name_, PHX::EvaluatorManager< Traits >::fields_, PHX::EvaluatorManager< Traits >::providerEvalOrderIndex, PHX::EvaluatorManager< Traits >::providerNames, PHX::EvaluatorManager< Traits >::providerRequirements, PHX::EvaluatorManager< Traits >::providerVariables, and PHX::EvaluatorManager< Traits >::varProviders.
void PHX::EvaluatorManager< Traits >::registerEvaluator | ( | const Teuchos::RCP< PHX::Evaluator< Traits > > & | p | ) | [inline] |
Registers a variable provider with the manager.
References PHX::EvaluatorManager< Traits >::providerNames, PHX::EvaluatorManager< Traits >::providerRequirements, PHX::EvaluatorManager< Traits >::providerVariables, and PHX::EvaluatorManager< Traits >::varProviders.
void PHX::EvaluatorManager< Traits >::requireField | ( | const PHX::FieldTag & | v | ) | [inline] |
Require a variable to be evaluated.
References PHX::FieldTag::clone(), and PHX::EvaluatorManager< Traits >::fields_.
Referenced by PHX::EvaluatorManager< Traits >::sortAndOrderEvaluators().
void PHX::EvaluatorManager< Traits >::setEvaluationTypeName | ( | const std::string & | evaluation_type_name | ) | [inline] |
void PHX::EvaluatorManager< Traits >::sortAndOrderEvaluators | ( | ) | [inline] |
Sets up all field dependencies. This should only be called once all variables and DOFs have been added and all providers have been registered. Sorts variable and creates dependency lists and evaluation order
References PHX::EvaluatorManager< Traits >::createProviderEvaluationOrder(), PHX::EvaluatorManager< Traits >::providerEvalOrderIndex, PHX::EvaluatorManager< Traits >::providerVariables, PHX::EvaluatorManager< Traits >::requireField(), and PHX::EvaluatorManager< Traits >::sorting_called_.
bool PHX::EvaluatorManager< Traits >::sortingCalled | ( | ) | const [inline] |
References PHX::EvaluatorManager< Traits >::sorting_called_.
std::string PHX::EvaluatorManager< Traits >::evaluation_type_name_ [protected] |
std::vector< Teuchos::RCP<PHX::FieldTag> > PHX::EvaluatorManager< Traits >::fields_ [protected] |
Fields required by the user.
Referenced by PHX::EvaluatorManager< Traits >::createProviderEvaluationOrder(), PHX::EvaluatorManager< Traits >::getFieldTags(), PHX::EvaluatorManager< Traits >::print(), and PHX::EvaluatorManager< Traits >::requireField().
std::vector<int> PHX::EvaluatorManager< Traits >::providerEvalOrderIndex [protected] |
Referenced by PHX::EvaluatorManager< Traits >::createProviderEvaluationOrder(), PHX::EvaluatorManager< Traits >::evaluateFields(), PHX::EvaluatorManager< Traits >::postEvaluate(), PHX::EvaluatorManager< Traits >::postRegistrationSetup(), PHX::EvaluatorManager< Traits >::preEvaluate(), PHX::EvaluatorManager< Traits >::print(), and PHX::EvaluatorManager< Traits >::sortAndOrderEvaluators().
std::vector<std::string> PHX::EvaluatorManager< Traits >::providerNames [protected] |
std::vector< std::vector< Teuchos::RCP<PHX::FieldTag> > > PHX::EvaluatorManager< Traits >::providerRequirements [protected] |
std::vector< std::vector< Teuchos::RCP<PHX::FieldTag> > > PHX::EvaluatorManager< Traits >::providerVariables [protected] |
bool PHX::EvaluatorManager< Traits >::sorting_called_ [protected] |
Flag to tell the setup has been called.
Referenced by PHX::EvaluatorManager< Traits >::sortAndOrderEvaluators(), and PHX::EvaluatorManager< Traits >::sortingCalled().
std::vector< Teuchos::RCP<PHX::Evaluator<Traits> > > PHX::EvaluatorManager< Traits >::varProviders [protected] |
Referenced by PHX::EvaluatorManager< Traits >::createProviderEvaluationOrder(), PHX::EvaluatorManager< Traits >::evaluateFields(), PHX::EvaluatorManager< Traits >::postEvaluate(), PHX::EvaluatorManager< Traits >::postRegistrationSetup(), PHX::EvaluatorManager< Traits >::preEvaluate(), PHX::EvaluatorManager< Traits >::print(), and PHX::EvaluatorManager< Traits >::registerEvaluator().