|
Panzer Version of the Day
|
Computes 
#include <Panzer_Integrator_CurlBasisDotVector.hpp>

Public Member Functions | |
| Integrator_CurlBasisDotVector (const panzer::EvaluatorStyle &evalStyle, const std::string &resName, const std::string &valName, const panzer::BasisIRLayout &basis, const panzer::IntegrationRule &ir, const double &multiplier=1, const std::vector< std::string > &fmNames=std::vector< std::string >()) | |
| Main Constructor. | |
| Integrator_CurlBasisDotVector (const Teuchos::ParameterList &p) | |
| ParameterList Constructor. | |
| Integrator_CurlBasisDotVector (const panzer::EvaluatorStyle &evalStyle, const PHX::FieldTag &resTag, const PHX::FieldTag &valTag, const panzer::BasisDescriptor &bd, const panzer::IntegrationDescriptor &id, const int &spaceDim=3, const double &multiplier=1, const std::vector< PHX::FieldTag > &multipliers=std::vector< PHX::FieldTag >()) | |
| FieldTag Constructor. | |
| void | postRegistrationSetup (typename Traits::SetupData sd, PHX::FieldManager< Traits > &fm) |
| Post-Registration Setup. | |
| void | evaluateFields (typename Traits::EvalData d) |
| Evaluate Fields. | |
| Public Member Functions inherited from panzer::EvaluatorWithBaseImpl< Traits > | |
| void | setDetailsIndex (const int di) |
| An evaluator builder sets the details index. | |
| Public Member Functions inherited from panzer::DomainEvaluator | |
| DomainEvaluator (DomainType domain=ALL) | |
| Constructor. | |
| virtual | ~DomainEvaluator ()=default |
| Default destructor. | |
| void | setDomain (const DomainType domain) |
| Set the domain for the evaluator. | |
| DomainType | getDomain () |
| Get the domain for the evaluator. | |
| virtual int | cellStartIndex (const panzer::Workset &workset) const |
| Returns the starting cell for the specified domain for a given workset. | |
| virtual int | cellEndIndex (const panzer::Workset &workset) const |
| Returns the non-inclusive end cell for the specified domain for a given workset. | |
Private Types | |
| using | ScalarT = typename EvalT::ScalarT |
| The scalar type. | |
Private Member Functions | |
| Teuchos::RCP< Teuchos::ParameterList > | getValidParameters () const |
| Get Valid Parameters. | |
Private Attributes | |
| const panzer::EvaluatorStyle | evalStyle_ |
| An enum determining the behavior of this Evaluator. | |
| bool | useDescriptors_ |
| A flag indicating whether or not to use the descriptor interface. | |
| panzer::BasisDescriptor | bd_ |
| The BasisDescriptor for the basis to use. | |
| panzer::IntegrationDescriptor | id_ |
| The IntegrationDescriptor for the quadrature to use. | |
| PHX::MDField< ScalarT, panzer::Cell, panzer::BASIS > | field_ |
| A field to which we'll contribute, or in which we'll store, the result of computing this integral. | |
| PHX::MDField< const ScalarT, panzer::Cell, panzer::IP > | vector2D_ |
A field representing the vector-valued function we're integrating ( ![]() | |
| PHX::MDField< const ScalarT, panzer::Cell, panzer::IP, panzer::Dim > | vector3D_ |
A field representing the vector-valued function we're integrating ( ![]() | |
| double | multiplier_ |
The scalar multiplier out in front of the integral ( ![]() | |
| std::vector< PHX::MDField< const ScalarT, panzer::Cell, panzer::IP > > | fieldMults_ |
The (possibly empty) list of fields that are multipliers out in front of the integral ( ![]() ![]() | |
| PHX::View< Kokkos::View< const ScalarT **, typename PHX::DevLayout< ScalarT >::type, Kokkos::MemoryUnmanaged > * > | kokkosFieldMults_ |
The PHX::View representation of the (possibly empty) list of fields that are multipliers out in front of the integral ( ![]() ![]() | |
| std::string | basisName_ |
| The name of the basis we're using. | |
| std::size_t | basisIndex_ |
| The index in the Workset bases for our particular BasisIRLayout name. | |
| int | spaceDim_ |
| The spatial dimension of the vector-valued function we're integrating, either 2 or 3. | |
| PHX::MDField< ScalarT, panzer::Cell, panzer::IP > | result2D_ |
| A field used to build up the result of this integral when working on a two-dimensional vector field. | |
| PHX::MDField< ScalarT, panzer::Cell, panzer::IP, panzer::Dim > | result3D_ |
| A field used to build up the result of this integral when working on a three-dimensional vector field. | |
Additional Inherited Members | |
| Public Types inherited from panzer::DomainEvaluator | |
| enum | DomainType : int { OWNED =0 , GHOST =1 , REAL =2 , VIRTUAL =3 , EXTERNAL =4 , ALL =5 } |
| Domain types supported by worksets. More... | |
| Protected Attributes inherited from panzer::EvaluatorWithBaseImpl< Traits > | |
| WorksetDetailsAccessor | wda |
Computes 
Evaluates the integral
![\[ Ma(x)b(x)\cdots\int\nabla\times\vec{\phi}\cdot\vec{v}\, dx,
\]](form_23.png)
where 




Definition at line 85 of file Panzer_Integrator_CurlBasisDotVector.hpp.
|
private |
The scalar type.
Definition at line 279 of file Panzer_Integrator_CurlBasisDotVector.hpp.
| panzer::Integrator_CurlBasisDotVector< EvalT, Traits >::Integrator_CurlBasisDotVector | ( | const panzer::EvaluatorStyle & | evalStyle, |
| const std::string & | resName, | ||
| const std::string & | valName, | ||
| const panzer::BasisIRLayout & | basis, | ||
| const panzer::IntegrationRule & | ir, | ||
| const double & | multiplier = 1, | ||
| const std::vector< std::string > & | fmNames = std::vector<std::string>() ) |
Main Constructor.
Creates an Evaluator to evaluate the integral
![\[ Ma(x)b(x)\cdots\int\nabla\times\vec{\phi}\cdot\vec{v}\, dx,
\]](form_23.png)
where 




| [in] | evalStyle | An enum declaring the behavior of this Evaluator, which is to either:
|
| [in] | resName | The name of either the contributed or evaluated field, depending on evalStyle. |
| [in] | valName | The name of the vector value being integrated ( ![]() |
| [in] | basis | The vector basis that you'd like to use ( ![]() |
| [in] | ir | The integration rule that you'd like to use. |
| [in] | multiplier | The scalar multiplier out in front of the integral you're computing ( ![]() |
| [in] | fmNames | A list of names of fields that are multipliers out in front of the integral you're computing ( ![]() ![]() |
| std::invalid_argument | If any of the inputs are invalid. |
| std::logic_error | If the basis supplied is not a vector basis, or if it doesn't require orientations. |
Definition at line 72 of file Panzer_Integrator_CurlBasisDotVector_impl.hpp.
| panzer::Integrator_CurlBasisDotVector< EvalT, Traits >::Integrator_CurlBasisDotVector | ( | const Teuchos::ParameterList & | p | ) |
ParameterList Constructor.
Creates an Evaluator to evaluate the integral
![\[ Ma(x)b(x)\cdots\int\nabla\times\vec{\phi}\cdot\vec{v}\, dx,
\]](form_23.png)
where 




| [in] | p | A ParameterList of the form <ParameterList>
<Parameter name = "Residual Name" type = "std::string" value = (required) />
<Parameter name = "Value Name" type = "std::string" value = (required) />
<Parameter name = "Basis" type = "RCP<panzer::BasisIRLayout>" value = (required) />
<Parameter name = "IR" type = "RCP<panzer::IntegrationRule>" value = (required) />
<Parameter name = "Multiplier" type = "double" value = (required) />
<Parameter name = "Field Multipliers" type = "RCP<const std::vector<std::string>>" value = null (default)/>
</ParameterList>
|
Definition at line 173 of file Panzer_Integrator_CurlBasisDotVector_impl.hpp.
| panzer::Integrator_CurlBasisDotVector< EvalT, TRAITS >::Integrator_CurlBasisDotVector | ( | const panzer::EvaluatorStyle & | evalStyle, |
| const PHX::FieldTag & | resTag, | ||
| const PHX::FieldTag & | valTag, | ||
| const panzer::BasisDescriptor & | bd, | ||
| const panzer::IntegrationDescriptor & | id, | ||
| const int & | spaceDim = 3, | ||
| const double & | multiplier = 1, | ||
| const std::vector< PHX::FieldTag > & | multipliers = std::vector<PHX::FieldTag>() ) |
FieldTag Constructor.
Creates an Evaluator to evaluate the integral
![\[ Ma(x)b(x)\cdots\int\nabla\times\vec{\phi}\cdot\vec{v}\, dx,
\]](form_23.png)
where 




| [in] | evalStyle | An enum declaring the behavior of this Evaluator, which is to either:
|
| [in] | resTag | The tag of either the contributed or evaluated field, depending on evalStyle. |
| [in] | valTag | The tag of the vector value being integrated ( ![]() |
| [in] | bd | The vector basis descriptor that you'd like to use ( ![]() |
| [in] | id | The integration descriptor that you'd like to use. |
| [in] | spaceDim | The spatial dimensionality of the problem. If not specified, this defaults to 3. |
| [in] | multiplier | The scalar multiplier out in front of the integral you're computing ( ![]() |
| [in] | multipliers | A list of tags of fields that are multipliers out in front of the integral you're computing ( ![]() ![]() |
| std::invalid_argument | If any of the inputs are invalid. |
| std::logic_error | If the basis supplied is not a vector basis, or if it doesn't require orientations. |
Definition at line 203 of file Panzer_Integrator_CurlBasisDotVector_impl.hpp.
| void panzer::Integrator_CurlBasisDotVector< EvalT, Traits >::postRegistrationSetup | ( | typename Traits::SetupData | sd, |
| PHX::FieldManager< Traits > & | fm ) |
Post-Registration Setup.
Sets the PHX::Views for all of the field multipliers, sets the basis index, and sets up the field that will be used to build up the result of the integration.
| [in] | sd | Essentially a list of Worksets, which are collections of cells (elements) that all live on a single process. |
| [in] | fm | The FieldManager used to create the field to build up the result. |
Definition at line 284 of file Panzer_Integrator_CurlBasisDotVector_impl.hpp.
| void panzer::Integrator_CurlBasisDotVector< EvalT, Traits >::evaluateFields | ( | typename Traits::EvalData | d | ) |
Evaluate Fields.
This actually performs the integration using a handful of functors in Kokkos::parallel_fors, looping over the cells in the Workset.
| [in] | workset | The Workset on which you're going to do the integration. |
Definition at line 688 of file Panzer_Integrator_CurlBasisDotVector_impl.hpp.
|
private |
Get Valid Parameters.
Get all the parameters that we support such that the ParameterList Constructor can do some validation of the input ParameterList.
Definition at line 784 of file Panzer_Integrator_CurlBasisDotVector_impl.hpp.
|
private |
An enum determining the behavior of this Evaluator.
This Evaluator will compute the result of its integration and then:
Definition at line 289 of file Panzer_Integrator_CurlBasisDotVector.hpp.
|
private |
A flag indicating whether or not to use the descriptor interface.
Definition at line 295 of file Panzer_Integrator_CurlBasisDotVector.hpp.
|
private |
The BasisDescriptor for the basis to use.
Definition at line 300 of file Panzer_Integrator_CurlBasisDotVector.hpp.
|
private |
The IntegrationDescriptor for the quadrature to use.
Definition at line 305 of file Panzer_Integrator_CurlBasisDotVector.hpp.
|
private |
A field to which we'll contribute, or in which we'll store, the result of computing this integral.
Definition at line 311 of file Panzer_Integrator_CurlBasisDotVector.hpp.
|
private |
A field representing the vector-valued function we're integrating ( 
Definition at line 317 of file Panzer_Integrator_CurlBasisDotVector.hpp.
|
private |
A field representing the vector-valued function we're integrating ( 
Definition at line 324 of file Panzer_Integrator_CurlBasisDotVector.hpp.
|
private |
The scalar multiplier out in front of the integral ( 
Definition at line 330 of file Panzer_Integrator_CurlBasisDotVector.hpp.
|
private |
The (possibly empty) list of fields that are multipliers out in front of the integral ( 

Definition at line 337 of file Panzer_Integrator_CurlBasisDotVector.hpp.
|
private |
The PHX::View representation of the (possibly empty) list of fields that are multipliers out in front of the integral ( 

Definition at line 344 of file Panzer_Integrator_CurlBasisDotVector.hpp.
|
private |
The name of the basis we're using.
Definition at line 349 of file Panzer_Integrator_CurlBasisDotVector.hpp.
|
private |
The index in the Workset bases for our particular BasisIRLayout name.
Definition at line 355 of file Panzer_Integrator_CurlBasisDotVector.hpp.
|
private |
The spatial dimension of the vector-valued function we're integrating, either 2 or 3.
Definition at line 361 of file Panzer_Integrator_CurlBasisDotVector.hpp.
|
private |
A field used to build up the result of this integral when working on a two-dimensional vector field.
Definition at line 367 of file Panzer_Integrator_CurlBasisDotVector.hpp.
|
private |
A field used to build up the result of this integral when working on a three-dimensional vector field.
Definition at line 373 of file Panzer_Integrator_CurlBasisDotVector.hpp.