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 31 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
For convenience, declare the DOFDescriptor iterator.
Definition at line 354 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
For convenience, declare a basis iterator.
Definition at line 370 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 35 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
inlinevirtual |
Definition at line 42 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
virtual |
Implements panzer::EquationSet< EvalT >.
Definition at line 133 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
virtual |
Implements panzer::EquationSet< EvalT >.
Definition at line 509 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
pure virtual |
Implements panzer::EquationSet< EvalT >.
|
virtual |
Implements panzer::EquationSet< EvalT >.
Definition at line 329 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 567 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 585 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
virtual |
Implements panzer::EquationSet< EvalT >.
Definition at line 610 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 699 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 707 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 715 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 723 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
virtual |
Implements panzer::EquationSet< EvalT >.
Definition at line 731 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
virtual |
Implements panzer::EquationSet< EvalT >.
Definition at line 742 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 749 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
virtual |
Set the list of tangent parameter names.
Implements panzer::EquationSetBase.
Definition at line 756 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 771 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 782 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 808 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 822 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 54 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Returns true if transient support should be enabled in the equation set.
Definition at line 763 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 836 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 881 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 903 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 925 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 947 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 969 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 1100 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 988 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Returns the PureBasis associated with the residual contributions for the dof_name.
Definition at line 997 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Returns the integration rule associated with the residual contributions for the dof_name.
Definition at line 1007 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Returns the BasisIRLayout for the dof_name.
Definition at line 1019 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 1032 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 1065 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Returns the parameter list used to build this equation set.
Definition at line 1108 of file Panzer_EquationSet_DefaultImpl_impl.hpp.
|
protected |
Definition at line 115 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 346 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
protected |
Definition at line 349 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 367 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Definition at line 372 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Definition at line 373 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Definition at line 374 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Definition at line 375 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Key is the dof name and the value is the corresponding basis.
Definition at line 378 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Key is the coordinate prefix name and the value is the corresponding basis.
Definition at line 381 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 384 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 387 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Definition at line 389 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Definition at line 391 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Definition at line 392 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Definition at line 393 of file Panzer_EquationSet_DefaultImpl_decl.hpp.
|
private |
Definition at line 395 of file Panzer_EquationSet_DefaultImpl_decl.hpp.