Phalanx  Development
Public Types | Public Member Functions | List of all members
PHX::FieldManager< Traits > Class Template Reference

Public Types

typedef PHX::EvaluationContainer_TemplateManager< Traits >::iterator iterator
 

Public Member Functions

void requireFieldForAllEvaluationTypes (const PHX::FieldTag &t)
 
template<typename EvalT >
void requireField (const PHX::FieldTag &t)
 
void registerEvaluatorForAllEvaluationTypes (const Teuchos::RCP< PHX::Evaluator< Traits > > &e)
 
template<typename EvalT >
void registerEvaluator (const Teuchos::RCP< PHX::Evaluator< Traits > > &e)
 
void registerEvaluator (typename PHX::FieldManager< Traits >::iterator it, const Teuchos::RCP< PHX::Evaluator< Traits > > &e)
 
template<typename DataT , typename EvalT , typename Tag0 , typename Tag1 , typename Tag2 , typename Tag3 , typename Tag4 , typename Tag5 , typename Tag6 , typename Tag7 >
void getFieldData (PHX::MDField< DataT, Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 > &f)
 
template<typename DataT , typename EvalT , typename Tag0 , typename Tag1 , typename Tag2 , typename Tag3 , typename Tag4 , typename Tag5 , typename Tag6 , typename Tag7 >
void getFieldData (PHX::MDField< const DataT, Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 > &f)
 
template<typename EvalT , typename DataT , typename Tag0 , typename Tag1 , typename Tag2 , typename Tag3 , typename Tag4 , typename Tag5 , typename Tag6 , typename Tag7 >
void setUnmanagedField (PHX::MDField< DataT, Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 > &f)
 Allows the user to manage the memory allocation of a particular field and dynamically set/swap the memory at any time. More...
 
template<typename EvalT , typename DataT >
void setUnmanagedField (PHX::MDField< DataT > &f)
 Allows the user to manage the memory allocation of a particular field and dynamically set/swap the memory at any time. More...
 
template<typename EvalT >
void postRegistrationSetupForType (typename Traits::SetupData d)
 Allocates memory for a single evaluation type.
 
void postRegistrationSetup (typename Traits::SetupData d)
 Allocates memory for all evaluation types.
 
template<typename EvalT >
void evaluateFields (typename Traits::EvalData d)
 
template<typename EvalT >
void preEvaluate (typename Traits::PreEvalData d)
 
template<typename EvalT >
void postEvaluate (typename Traits::PostEvalData d)
 
template<typename EvalT >
void setKokkosExtendedDataTypeDimensions (const std::vector< PHX::index_size_type > &dims)
 
template<typename EvalT >
const std::vector< PHX::index_size_type > & getKokkosExtendedDataTypeDimensions () const
 
FieldManager::iterator begin ()
 Return iterator to first EvaluationContainer.
 
FieldManager::iterator end ()
 Return iterator to last EvaluationContainer.
 
template<typename EvalT >
void writeGraphvizFile (const std::string filename="graph.dot", bool writeEvaluatedFields=true, bool writeDependentFields=false, bool debugRegisteredEvaluators=false) const
 Writes graphviz dot file for the evaluation type.
 
void writeGraphvizFile (const std::string base_filename="graph", const std::string file_extension=".dot", bool writeEvaluatedFields=true, bool writeDependentFields=false, bool debugRegisteredEvaluators=false) const
 Writes graphviz dot file for all evaluation types (adds eval type to filename).
 
void print (std::ostream &os) const
 
template<typename EvalT >
void analyzeGraph (double &speedup, double &parallelizability) const
 
template<typename Traits>
void registerEvaluator (FieldManager::iterator it, const Teuchos::RCP< PHX::Evaluator< Traits > > &e)
 

Member Function Documentation

◆ setUnmanagedField() [1/2]

template<typename Traits >
template<typename EvalT , typename DataT , typename Tag0 , typename Tag1 , typename Tag2 , typename Tag3 , typename Tag4 , typename Tag5 , typename Tag6 , typename Tag7 >
void PHX::FieldManager< Traits >::setUnmanagedField ( PHX::MDField< DataT, Tag0, Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7 > &  f)
inline

Allows the user to manage the memory allocation of a particular field and dynamically set/swap the memory at any time.

This overrides the field allocated to this array in the FieldManager. The fieldManager then sets this new memory pointer in all evaluator fields that use it.

NOTE: this is a very dangerous power user capability as the user must allocate the field correctly (remember Sacado AD types must have the extra dimensions) and make sure that all uses of that field in all evaluators are rebound correctly using the function callback. They can't store the view off internally since it may change at any time.

◆ setUnmanagedField() [2/2]

template<typename Traits >
template<typename EvalT , typename DataT >
void PHX::FieldManager< Traits >::setUnmanagedField ( PHX::MDField< DataT > &  f)
inline

Allows the user to manage the memory allocation of a particular field and dynamically set/swap the memory at any time.

This overrides the field allocated to this array in the FieldManager. The fieldManager then sets this new memory pointer in all evaluator fields that use it.

NOTE: this is a very dangerous power user capability as the user must allocate the field correctly (remember Sacado AD types must have the extra dimensions) and make sure that all uses of that field in all evaluators are rebound correctly using the function callback. They can't store the view off internally since it may change at any time.


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