|
Panzer
Version of the Day
|
Computes
.
More...
#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. More... | |
| Integrator_CurlBasisDotVector (const Teuchos::ParameterList &p) | |
ParameterList Constructor. More... | |
| 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. More... | |
| void | postRegistrationSetup (typename Traits::SetupData sd, PHX::FieldManager< Traits > &fm) |
| Post-Registration Setup. More... | |
| void | evaluateFields (typename Traits::EvalData d) |
| Evaluate Fields. More... | |
Public Member Functions inherited from panzer::EvaluatorWithBaseImpl< Traits > | |
| void | setDetailsIndex (const int di) |
| An evaluator builder sets the details index. More... | |
Public Member Functions inherited from panzer::DomainEvaluator | |
| DomainEvaluator (DomainType domain=ALL) | |
| Constructor. More... | |
| virtual | ~DomainEvaluator ()=default |
| Default destructor. More... | |
| void | setDomain (const DomainType domain) |
| Set the domain for the evaluator. More... | |
| DomainType | getDomain () |
| Get the domain for the evaluator. More... | |
| virtual int | cellStartIndex (const panzer::Workset &workset) const |
| Returns the starting cell for the specified domain for a given workset. More... | |
| virtual int | cellEndIndex (const panzer::Workset &workset) const |
| Returns the non-inclusive end cell for the specified domain for a given workset. More... | |
Private Types | |
| using | ScalarT = typename EvalT::ScalarT |
| The scalar type. More... | |
Private Member Functions | |
| Teuchos::RCP < Teuchos::ParameterList > | getValidParameters () const |
| Get Valid Parameters. More... | |
Private Attributes | |
| const panzer::EvaluatorStyle | evalStyle_ |
An enum determining the behavior of this Evaluator. More... | |
| bool | useDescriptors_ |
| A flag indicating whether or not to use the descriptor interface. More... | |
| panzer::BasisDescriptor | bd_ |
The BasisDescriptor for the basis to use. More... | |
| panzer::IntegrationDescriptor | id_ |
The IntegrationDescriptor for the quadrature to use. More... | |
| 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. More... | |
| PHX::MDField< const ScalarT, panzer::Cell, panzer::IP > | vector2D_ |
A field representing the vector-valued function we're integrating ( ) in a two-dimensional problem. More... | |
| PHX::MDField< const ScalarT, panzer::Cell, panzer::IP, panzer::Dim > | vector3D_ |
A field representing the vector-valued function we're integrating ( ) in a three-dimensional problem. More... | |
| double | multiplier_ |
The scalar multiplier out in front of the integral ( ). More... | |
| 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 ( , , etc.). More... | |
| Kokkos::View< Kokkos::View < const ScalarT **, typename PHX::DevLayout< ScalarT > ::type, PHX::Device > * > | kokkosFieldMults_ |
The Kokkos::View representation of the (possibly empty) list of fields that are multipliers out in front of the integral ( , , etc.). More... | |
| std::string | basisName_ |
| The name of the basis we're using. More... | |
| std::size_t | basisIndex_ |
The index in the Workset bases for our particular BasisIRLayout name. More... | |
| int | spaceDim_ |
| The spatial dimension of the vector-valued function we're integrating, either 2 or 3. More... | |
| 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. More... | |
| 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. More... | |
Additional Inherited Members | |
Public Types inherited from panzer::DomainEvaluator | |
| enum | DomainType : int { OWNED =0, GHOST =1, REAL =2, VIRTUAL =3, ALL =4 } |
| Domain types supported by worksets. More... | |
Protected Attributes inherited from panzer::EvaluatorWithBaseImpl< Traits > | |
| WorksetDetailsAccessor | wda |
Computes
.
Evaluates the integral
where
is some constant,
,
, etc., are some fields that depend on position,
is some vector-valued function, and
is some vector basis.
Evaluator handles both cases. 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
where
is some constant,
,
, etc., are some fields that depend on position,
is some vector-valued function, and
is some vector basis.
| [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 ( ). If not specified, this defaults to 1. |
| [in] | fmNames | A list of names of fields that are multipliers out in front of the integral you're computing ( , , etc.). If not specified, this defaults to an empty vector. |
| 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 73 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
where
is some constant,
,
, etc., are some fields that depend on position,
is some vector-valued function, and
is some vector basis.
Evaluator with a ParameterList; however, it is strongly advised that you not use this ParameterList Constructor, but rather that you favor the Main Constructor with its compile-time argument checking instead.| [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 174 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
where
is some constant,
,
, etc., are some fields that depend on position,
is some vector-valued function, and
is some vector basis.
| [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 ( ). If not specified, this defaults to 1. |
| [in] | multipliers | A list of tags of fields that are multipliers out in front of the integral you're computing ( , , etc.). If not specified, this defaults to an empty vector. |
| 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 204 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 Kokkos::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 285 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.
ParameterList with all the valid parameters (keys) in it. The values tied to those keys are meaningless default values. Definition at line 782 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 (
) in a two-dimensional problem.
Definition at line 317 of file Panzer_Integrator_CurlBasisDotVector.hpp.
|
private |
A field representing the vector-valued function we're integrating (
) in a three-dimensional problem.
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 (
,
, etc.).
Definition at line 337 of file Panzer_Integrator_CurlBasisDotVector.hpp.
|
private |
The Kokkos::View representation of the (possibly empty) list of fields that are multipliers out in front of the integral (
,
, etc.).
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.
1.8.5