Panzer
Version of the Day
|
#include <Panzer_EquationSet_DefaultImpl_decl.hpp>
Classes | |
struct | DOFDescriptor |
Public Member Functions | |
EquationSet_DefaultImpl (const Teuchos::RCP< Teuchos::ParameterList > ¶ms, const int &default_integration_order, const panzer::CellData &cell_data, const Teuchos::RCP< panzer::GlobalData > &global_data, const bool build_transient_support) | |
virtual | ~EquationSet_DefaultImpl () |
virtual void | buildAndRegisterGatherAndOrientationEvaluators (PHX::FieldManager< panzer::Traits > &fm, const panzer::FieldLibrary &fl, const LinearObjFactory< panzer::Traits > &lof, const Teuchos::ParameterList &user_data) const |
virtual void | buildAndRegisterScatterEvaluators (PHX::FieldManager< panzer::Traits > &fm, const panzer::FieldLibrary &fl, const LinearObjFactory< panzer::Traits > &lof, const Teuchos::ParameterList &user_data) const |
virtual void | buildAndRegisterEquationSetEvaluators (PHX::FieldManager< panzer::Traits > &fm, const panzer::FieldLibrary &fl, const Teuchos::ParameterList &user_data) const =0 |
virtual void | buildAndRegisterDOFProjectionsToIPEvaluators (PHX::FieldManager< panzer::Traits > &fm, const panzer::FieldLayoutLibrary &fl, const Teuchos::RCP< panzer::IntegrationRule > &ir, const Teuchos::Ptr< const panzer::LinearObjFactory< panzer::Traits > > &lof, const Teuchos::ParameterList &user_data) const |
virtual void | buildAndRegisterClosureModelEvaluators (PHX::FieldManager< panzer::Traits > &fm, const panzer::FieldLayoutLibrary &fl, const Teuchos::RCP< panzer::IntegrationRule > &ir, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &factory, const Teuchos::ParameterList &models, const Teuchos::ParameterList &user_data) const |
Register closure model evaluators with the model name internally specified by the equation set. More... | |
virtual void | buildAndRegisterClosureModelEvaluators (PHX::FieldManager< panzer::Traits > &fm, const panzer::FieldLayoutLibrary &fl, const Teuchos::RCP< panzer::IntegrationRule > &ir, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &factory, const std::string &model_name, const Teuchos::ParameterList &models, const Teuchos::ParameterList &user_data) const |
Register closure model evaluators with the model name specified by an argument. More... | |
virtual void | buildAndRegisterInitialConditionEvaluators (PHX::FieldManager< panzer::Traits > &fm, const panzer::FieldLibrary &fl, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &factory, const std::string &model_name, const Teuchos::ParameterList &models, const LinearObjFactory< panzer::Traits > &lof, const Teuchos::ParameterList &user_data) const |
virtual const Teuchos::RCP < Teuchos::ParameterList > | getEvaluatorParameterList () const |
Returns the parameter list that will be passed off from the equaiton set to the closure model evaluator factory. This allows users to pass parameters from a particular equaiton set to its associated closure models. More... | |
virtual const std::vector < std::pair< std::string, Teuchos::RCP < panzer::PureBasis > > > & | getProvidedDOFs () const |
Return the Basis for the equation set, key is the DOF name (note coordinate DOFs are NOT included) More... | |
virtual const std::vector < std::vector< std::string > > & | getCoordinateDOFs () const |
Return a vector of vectors that correspond to DOFs set as coordinate fields. More... | |
virtual const std::map< int, Teuchos::RCP < panzer::IntegrationRule > > & | getIntegrationRules () const |
Return a map of unique integration rules for the equation set, key is the integration order. More... | |
virtual void | setElementBlockId (const std::string &blockId) |
virtual std::string | getElementBlockId () const |
virtual std::string | getType () const |
Returns the type of the equation set object. Corresponds to the keyword used by the equation set factory to build a particular concrete equation set. More... | |
virtual void | setTangentParamNames (const std::vector< std::string > &tangent_param_names) |
Set the list of tangent parameter names. More... | |
void | getAddedDOFs (std::vector< std::string > &dofNames) const |
void | updateDOF (const std::string &dofName, int basisOrder, int integrationOrder=-1) |
Modifying an existing DOF's basis function and integration rule. More... | |
int | getBasisOrder (const std::string &dofName) const |
Get the basis order for an existing degree of freedom. More... | |
int | getIntegrationOrder (const std::string &dofName) const |
Get the integration order for an existing degree of freedom. More... | |
Public Member Functions inherited from panzer::EquationSet< EvalT > | |
EquationSet () | |
virtual | ~EquationSet () |
Public Member Functions inherited from panzer::EquationSetBase | |
EquationSetBase () | |
virtual | ~EquationSetBase () |
Public Member Functions inherited from panzer::EvaluatorsRegistrar | |
int | setDetailsIndex (const int details_index) |
int | getDetailsIndex () const |
Get the WorksetDetails index. More... | |
Public Member Functions inherited from panzer::GlobalDataAcceptorDefaultImpl | |
GlobalDataAcceptorDefaultImpl () | |
GlobalDataAcceptorDefaultImpl (const Teuchos::RCP< panzer::GlobalData > &gd) | |
~GlobalDataAcceptorDefaultImpl () | |
void | setGlobalData (const Teuchos::RCP< panzer::GlobalData > &gd) |
Teuchos::RCP< panzer::GlobalData > | getGlobalData () const |
Public Member Functions inherited from panzer::GlobalDataAcceptor | |
virtual | ~GlobalDataAcceptor () |
Protected Member Functions | |
virtual void | setupDOFs () |
Builds the integration rule, basis, DOFs, and default parameter list. This MUST be called in the constructor of all classes derived form this object. More... | |
bool | buildTransientSupport () const |
Returns true if transient support should be enabled in the equation set. More... | |
void | addDOF (const std::string &dofName, const std::string &basisType, const int &basisOrder, const int integrationOrder=-1, const std::string residualName="", const std::string scatterName="") |
void | addDOFGrad (const std::string &dofName, const std::string &gradName="") |
void | addDOFCurl (const std::string &dofName, const std::string &curlName="") |
void | addDOFDiv (const std::string &dofName, const std::string &divName="") |
void | addDOFTimeDerivative (const std::string &dofName, const std::string &dotName="") |
void | setCoordinateDOFs (const std::vector< std::string > &dofNames) |
void | addClosureModel (const std::string &closure_model) |
void | setDefaultValidParameters (Teuchos::ParameterList &valid_parameters) |
Teuchos::RCP< panzer::PureBasis > | getBasisForDOF (const std::string &dof_name) const |
Returns the PureBasis associated with the residual contributions for the dof_name. More... | |
Teuchos::RCP < panzer::IntegrationRule > | getIntRuleForDOF (const std::string &dof_name) const |
Returns the integration rule associated with the residual contributions for the dof_name. More... | |
Teuchos::RCP < panzer::BasisIRLayout > | getBasisIRLayoutForDOF (const std::string &dof_name) const |
Returns the BasisIRLayout for the dof_name. More... | |
void | buildAndRegisterResidualSummationEvaluator (PHX::FieldManager< panzer::Traits > &fm, const std::string dof_name, const std::vector< std::string > &residual_contributions, const std::string residual_field_name="") const |
void | buildAndRegisterResidualSummationEvaluator (PHX::FieldManager< panzer::Traits > &fm, const std::string dof_name, const std::vector< std::string > &residual_contributions, const std::vector< double > &scale_contributions, const std::string residual_field_name="") const |
Teuchos::RCP < Teuchos::ParameterList > | getEquationSetParameterList () const |
Returns the parameter list used to build this equation set. More... | |
void | setupDeprecatedDOFsSupport () |
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 |
Protected Attributes | |
std::map< std::string, DOFDescriptor > | m_provided_dofs_desc |
Maps the dof name into a DOFDescriptor. Should be private, but is protected so that the aux equaiton sets can access it. More... | |
std::vector< std::string > | m_tangent_param_names |
Private Types | |
typedef std::map< std::string, DOFDescriptor > ::const_iterator | DescriptorIterator |
For convenience, declare the DOFDescriptor iterator. More... | |
typedef std::map< std::string, std::pair< Teuchos::RCP < panzer::PureBasis > , Teuchos::RCP< std::vector < std::string > > > >::const_iterator | BasisIterator |
For convenience, declare a basis iterator. More... | |
Private Attributes | |
std::map< std::string, std::pair< Teuchos::RCP < panzer::PureBasis > , Teuchos::RCP< std::vector < std::string > > > > | m_basis_to_dofs |
Map that links a common basis to a vector of dof names. Key is the unique basis name, the value is a pair that contains an RCP to a basis and an RCP to a vector of dof names that share the basis. More... | |
const Teuchos::RCP < Teuchos::ParameterList > | m_input_params |
int | m_default_integration_order |
const panzer::CellData | m_cell_data |
const bool | m_build_transient_support |
std::vector< std::pair < std::string, Teuchos::RCP < panzer::PureBasis > > > | m_provided_dofs |
Key is the dof name and the value is the corresponding basis. More... | |
std::vector< std::pair < std::string, Teuchos::RCP < panzer::PureBasis > > > | m_provided_coord_prefixes |
Key is the coordinate prefix name and the value is the corresponding basis. More... | |
std::map< int, Teuchos::RCP < panzer::IntegrationRule > > | m_int_rules |
Key is the integration rule order and the value is the corresponding integration rule. More... | |
std::map< std::string, Teuchos::RCP < panzer::PureBasis > > | m_unique_bases |
Key is the basis name from panzer::PureBasis::name() and value is the corresponding PureBasis. More... | |
Teuchos::RCP < Teuchos::ParameterList > | m_eval_plist |
std::string | m_block_id |
std::string | m_type |
std::vector< std::string > | m_closure_model_ids |
std::vector< std::vector < std::string > > | m_coordinate_dofs |
Definition at line 63 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
For convenience, declare the DOFDescriptor iterator.
Definition at line 386 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
For convenience, declare a basis iterator.
Definition at line 402 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
panzer::EquationSet_DefaultImpl< EvalT >::EquationSet_DefaultImpl | ( | const Teuchos::RCP< Teuchos::ParameterList > & | params, |
const int & | default_integration_order, | ||
const panzer::CellData & | cell_data, | ||
const Teuchos::RCP< panzer::GlobalData > & | global_data, | ||
const bool | build_transient_support | ||
) |
Definition at line 67 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
inlinevirtual |
Definition at line 74 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
virtual |
Implements panzer::EquationSet< EvalT >.
Definition at line 165 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
virtual |
Implements panzer::EquationSet< EvalT >.
Definition at line 541 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
pure virtual |
Implements panzer::EquationSet< EvalT >.
|
virtual |
Implements panzer::EquationSet< EvalT >.
Definition at line 361 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
virtual |
Register closure model evaluators with the model name internally specified by the equation set.
Implements panzer::EquationSet< EvalT >.
Definition at line 599 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
virtual |
Register closure model evaluators with the model name specified by an argument.
Implements panzer::EquationSet< EvalT >.
Definition at line 617 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
virtual |
Implements panzer::EquationSet< EvalT >.
Definition at line 642 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
virtual |
Returns the parameter list that will be passed off from the equaiton set to the closure model evaluator factory. This allows users to pass parameters from a particular equaiton set to its associated closure models.
Implements panzer::EquationSet< EvalT >.
Definition at line 731 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
virtual |
Return the Basis for the equation set, key is the DOF name (note coordinate DOFs are NOT included)
Implements panzer::EquationSet< EvalT >.
Definition at line 739 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
virtual |
Return a vector of vectors that correspond to DOFs set as coordinate fields.
Implements panzer::EquationSet< EvalT >.
Definition at line 747 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
virtual |
Return a map of unique integration rules for the equation set, key is the integration order.
Implements panzer::EquationSet< EvalT >.
Definition at line 755 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
virtual |
Implements panzer::EquationSet< EvalT >.
Definition at line 763 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
virtual |
Implements panzer::EquationSet< EvalT >.
Definition at line 774 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
virtual |
Returns the type of the equation set object. Corresponds to the keyword used by the equation set factory to build a particular concrete equation set.
Implements panzer::EquationSet< EvalT >.
Definition at line 781 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
virtual |
Set the list of tangent parameter names.
Implements panzer::EquationSetBase.
Definition at line 788 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
void panzer::EquationSet_DefaultImpl< EvalT >::getAddedDOFs | ( | std::vector< std::string > & | dofNames | ) | const |
Used to get the DOFs that have been added to the equation set. This can be used at anytime, however it returns only DOFs added using the addDOF
method. Note that if setupDOFs
has been called, the getProvidedDOFs
should be used instead (it also returns more information about the basis being used).
[out] | dofNames | The name of all the dofs that have been added so far. Any previous entries in this vector will be discarded. |
Definition at line 803 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
void panzer::EquationSet_DefaultImpl< EvalT >::updateDOF | ( | const std::string & | dofName, |
int | basisOrder, | ||
int | integrationOrder = -1 |
||
) |
Modifying an existing DOF's basis function and integration rule.
This imples the DOF already has been added and the setupDOFs
method has not been called. Note that this method is public so that non-derived classes (like mixed in interfaces can call it). Furthermore, the type of basis cannot be changed, only the order.
[in] | dofName | (Required) Name of field to lookup in the unique global indexer. |
[in] | basisOrder | (Required) Polynomial order for the basis for this DOF. |
[in] | integrationOrder | (Optional) Order of the integration rule associated with this DOF. If set to -1 (default), it will use the default integration order. |
Definition at line 814 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
int panzer::EquationSet_DefaultImpl< EvalT >::getBasisOrder | ( | const std::string & | dofName | ) | const |
Get the basis order for an existing degree of freedom.
[in] | dofName | (Required) Name of field to lookup in the unique global indexer. |
Definition at line 840 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
int panzer::EquationSet_DefaultImpl< EvalT >::getIntegrationOrder | ( | const std::string & | dofName | ) | const |
Get the integration order for an existing degree of freedom.
[in] | dofName | (Required) Name of field to lookup in the unique global indexer. |
Definition at line 854 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protectedvirtual |
Builds the integration rule, basis, DOFs, and default parameter list. This MUST be called in the constructor of all classes derived form this object.
Definition at line 86 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Returns true if transient support should be enabled in the equation set.
Definition at line 795 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Alert the panzer library of a DOF provided by this equation set. This automatically sets up the gather/scatter routines neccessary to evaluate and assemble with this unknown.
[in] | dofName | (Required) Name of field to lookup in the unique global indexer. This also serves as a key for the remaining addDOF* methods. |
[in] | basisType | (Required) Name of the basis type for this DOF. |
[in] | basisOrder | (Required) Polynomial order for the basis for this DOF. |
[in] | integrationOrder | (Optional) Order of the integration rule associated with this DOF. If set to -1 (default), it will use the default integration order. |
[in] | residualName | (Optional) Name of field that is to be scattered associated with this DOF. If not supplied or an empty string used, the default is to add the prefix "RESIDUAL_" to the dofName for the residual field name. |
[in] | scatterName | (Optional) Name of the required scatter field associated with this DOF. If not supplied or an empty string used, the default is to add the prefix "SCATTER_" to the dofName for the scatter field name. |
Definition at line 868 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Alert the panzer library that a gradient of particular a DOF is needed.
[in] | dofName | (Required) Name of field to lookup in the unique global indexer. |
[in] | gradName | (Optional) Name of the gradient field associated with this DOF. If not supplied or an empty string used, the default is to add the prefix "GRAD_" to the dofName for the name of the gradient field. |
Definition at line 913 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Alert the panzer library that a curl of particular a DOF is needed.
[in] | dofName | (Required) Name of field to lookup in the unique global indexer. |
[in] | curlName | (Optional) Name of the curl field associated with this DOF. If not supplied or an empty string used, the default is to add the prefix "CURL_" to the dofName for the naem of the curl field. |
Definition at line 935 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Alert the panzer library that a div of particular a DOF is needed.
[in] | dofName | (Required) Name of field to lookup in the unique global indexer. |
[in] | divName | (Optional) Name of the div field associated with this DOF. If not supplied or an empty string used, the default is to add the prefix "DIV__" to the dofName for the naem of the div field. |
Definition at line 957 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Alert the panzer library that a time derivative of particular a DOF is needed.
[in] | dofName | (Required) Name of field to lookup in the unique global indexer. |
[in] | dotName | (Optional) Name of the time derivative field associated with this DOF. If not supplied or an empty string used, the default is to add the prefix "DXDT_" to the dofName for the name of the time derivative field. |
Definition at line 979 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Alert the panzer to the fact that a set of DOFs coorespond to coordinates. They may have to be handled differently.
[in] | dofNames | Name of fields that will represent the coordinates (in order). Must be of dimension equal to the size of the problem. Also DOF must have been already added. |
Definition at line 1001 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Alert the equation set default implementation to build the required closure model(s) for this equation set. You can make multiple calls to this funciton to build multiple closure models.
Definition at line 1132 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Sets the valid default parameters in the parameter list used by the default equation set implementaiton. To validate the incoming user list, get the defaults using this call, then add their own valid parameters specific to the user derived equation set and then validate the list.
Definition at line 1020 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Returns the PureBasis associated with the residual contributions for the dof_name.
Definition at line 1029 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Returns the integration rule associated with the residual contributions for the dof_name.
Definition at line 1039 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Returns the BasisIRLayout for the dof_name.
Definition at line 1051 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Adds a Sum evaluator that evaluates the local residual contributions by summing a vector of fields of integrated residuals. This is a convenience function for when a user integrates multiple residual contributions and needs to sum them together before being loaded into the global matrix. Almost all implementations do this internally and this function just automates that process for users.
[in] | fm | Field Manager to register new evaluator with |
[in] | dof_name | Name of DOF that this residual will contribute to |
[in] | residual_contributions | Vector of field names that will be summed to produce the residual contributions |
[in] | residualfield_name | Name of the evalauted residual field. This is optional and will use a default value if the string is empty. |
Definition at line 1064 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Adds a Sum evaluator that evaluates the local residual contributions by summing a vector of fields of integrated residuals. This version allows you to scale each term. This is a convenience function for when a user integrates multiple residual contributions and needs to sum them together before being loaded into the global matrix. Almost all implementations do this internally and this function just automates that process for users.
[in] | fm | Field Manager to register new evaluator with |
[in] | dof_name | Name of DOF that this residual will contribute to |
[in] | residual_contributions | Vector of field names that will be summed to produce the residual contributions |
[in] | scale_contributions | Vector of scalars for each term in the residual contributions. |
[in] | residualfield_name | Name of the evalauted residual field. This is optional and will use a default value if the string is empty. |
Definition at line 1097 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Returns the parameter list used to build this equation set.
Definition at line 1140 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Definition at line 147 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Maps the dof name into a DOFDescriptor. Should be private, but is protected so that the aux equaiton sets can access it.
Definition at line 378 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
protected |
Definition at line 381 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Map that links a common basis to a vector of dof names. Key is the unique basis name, the value is a pair that contains an RCP to a basis and an RCP to a vector of dof names that share the basis.
Some of our evaluators are vectorized to work on a block of dofs as long as they share a common basis. We can minimize the evaluators built below by grouping dofs with a common basis. This struct is for grouping dofs with a common basis.
Definition at line 399 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Definition at line 404 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Definition at line 405 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Definition at line 406 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Definition at line 407 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Key is the dof name and the value is the corresponding basis.
Definition at line 410 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Key is the coordinate prefix name and the value is the corresponding basis.
Definition at line 413 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Key is the integration rule order and the value is the corresponding integration rule.
Definition at line 416 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Key is the basis name from panzer::PureBasis::name() and value is the corresponding PureBasis.
Definition at line 419 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Definition at line 421 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Definition at line 423 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Definition at line 424 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Definition at line 425 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Definition at line 427 of file Panzer_EquationSet_DefaultImpl_decl.hpp.