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

Public Member Functions | |
| Integrator_BasisTimesTensorTimesVector (const panzer::EvaluatorStyle &evalStyle, const std::string &resName, const std::string &valName, const panzer::BasisIRLayout &basis, const panzer::IntegrationRule &ir, const std::string &tensorName) | |
| Main Constructor. | |
| Integrator_BasisTimesTensorTimesVector (const Teuchos::ParameterList &p) | |
ParameterList Constructor. | |
| Integrator_BasisTimesTensorTimesVector (const panzer::EvaluatorStyle &evalStyle, const PHX::FieldTag &resTag, const PHX::FieldTag &valTag, const BasisDescriptor &bd, const IntegrationDescriptor &id, const PHX::FieldTag &tensorTag) | |
| Descriptor Constructor. | |
| void | postRegistrationSetup (typename Traits::SetupData sd, PHX::FieldManager< Traits > &fm) |
| Post-Registration Setup. | |
| void | evaluateFields (typename Traits::EvalData workset) |
| Evaluate Fields. | |
| KOKKOS_INLINE_FUNCTION void | operator() (const std::size_t &cell) const |
| Perform the integration. | |
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. | |
| BasisDescriptor | bd_ |
The BasisDescriptor for the basis to use. | |
| 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, panzer::Dim > | vector_ |
| A field representing the vector-valued function we're integrating ( | |
| PHX::MDField< const ScalarT, panzer::Cell, panzer::IP, panzer::Dim, panzer::Dim > | tensor_ |
| The tensor field( | |
| PHX::View< const ScalarT **** > | kokkosTensor_ |
The PHX::View representation of the tensor fields that are multiplied out in front of the integral ( | |
| int | numQP_ |
| The number of quadrature points for each cell. | |
| int | numDim_ |
| The dimensionality of our vector-valued fields. | |
| 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. | |
| PHX::MDField< const double, panzer::Cell, panzer::BASIS, panzer::IP, panzer::Dim > | basis_ |
| The vector basis information necessary for integration. | |
| PHX::View< ScalarT * > | tmp_ |
| Scratch space for caching temporary values in the kokkos kernel. | |
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
![\[
\int (a(x)\cdots\vec{s}(x))\cdot\vec{\phi}(x)\,dx,
\]](form_16.png)
where 


Definition at line 49 of file Panzer_Integrator_BasisTimesTensorTimesVector.hpp.
|
private |
The scalar type.
Definition at line 233 of file Panzer_Integrator_BasisTimesTensorTimesVector.hpp.
| panzer::Integrator_BasisTimesTensorTimesVector< EvalT, Traits >::Integrator_BasisTimesTensorTimesVector | ( | const panzer::EvaluatorStyle & | evalStyle, |
| const std::string & | resName, | ||
| const std::string & | valName, | ||
| const panzer::BasisIRLayout & | basis, | ||
| const panzer::IntegrationRule & | ir, | ||
| const std::string & | tensorName | ||
| ) |
Main Constructor.
Creates an Evaluator to evaluate the integral
![\[
\int (a(x)\cdots\vec{s}(x))\cdot\vec{\phi}(x)\,dx,
\]](form_16.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] | tensorName | The tensors name ( |
| 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 33 of file Panzer_Integrator_BasisTimesTensorTimesVector_impl.hpp.
| panzer::Integrator_BasisTimesTensorTimesVector< EvalT, Traits >::Integrator_BasisTimesTensorTimesVector | ( | const Teuchos::ParameterList & | p | ) |
ParameterList Constructor.
Creates an Evaluator to evaluate the integral
![\[
\int (a(x)\cdots\vec{s}(x))\cdot\vec{\phi}(x)\,dx,
\]](form_16.png)
where 


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 = "Tensor Name" type = "std::string" value = (required) />
</ParameterList>
|
Definition at line 170 of file Panzer_Integrator_BasisTimesTensorTimesVector_impl.hpp.
| panzer::Integrator_BasisTimesTensorTimesVector< EvalT, Traits >::Integrator_BasisTimesTensorTimesVector | ( | const panzer::EvaluatorStyle & | evalStyle, |
| const PHX::FieldTag & | resTag, | ||
| const PHX::FieldTag & | valTag, | ||
| const BasisDescriptor & | bd, | ||
| const IntegrationDescriptor & | id, | ||
| const PHX::FieldTag & | tensorTag | ||
| ) |
Descriptor Constructor.
Creates an Evaluator to evaluate the integral
![\[
\int (a(x)\cdots\vec{s}(x))\cdot\vec{\phi}(x)\,dx,
\]](form_16.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 basisdescripotr that you'd like to use ( |
| [in] | id | The integration descriptor that you'd like to use. |
| [in] | tensorTag | The tag of the tensor ( |
| 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 105 of file Panzer_Integrator_BasisTimesTensorTimesVector_impl.hpp.
| void panzer::Integrator_BasisTimesTensorTimesVector< EvalT, Traits >::postRegistrationSetup | ( | typename Traits::SetupData | sd, |
| PHX::FieldManager< Traits > & | fm | ||
| ) |
Post-Registration Setup.
Sets the PHX::Views for all the of the field multipliers, sets the number of quadrature points and dimensions in our vector field, and sets the basis index.
| [in] | sd | Essentially a list of Worksets, which are collections of cells (elements) that all live on a single process. |
| [in] | fm | This is unused, though part of the interface. |
Definition at line 197 of file Panzer_Integrator_BasisTimesTensorTimesVector_impl.hpp.
| void panzer::Integrator_BasisTimesTensorTimesVector< EvalT, Traits >::evaluateFields | ( | typename Traits::EvalData | workset | ) |
Evaluate Fields.
This actually performs the integration by calling operator()() in a Kokkos::parallel_for over the cells in the Workset.
| [in] | workeset | The Workset on which you're going to do the integration. |
Definition at line 269 of file Panzer_Integrator_BasisTimesTensorTimesVector_impl.hpp.
| KOKKOS_INLINE_FUNCTION void panzer::Integrator_BasisTimesTensorTimesVector< EvalT, Traits >::operator() | ( | const std::size_t & | cell | ) | const |
Perform the integration.
Generally speaking, for a given cell in the Workset, this routine loops over quadrature points, vector dimensions, and bases to perform the integration, scaling the vector field to be integrated by the tensor ( 
| [in] | tag | An indication of the number of field multipliers we have; either 0, 1, or something else. |
| [in] | cell | The cell in the Workset over which to integrate. |
Definition at line 234 of file Panzer_Integrator_BasisTimesTensorTimesVector_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 293 of file Panzer_Integrator_BasisTimesTensorTimesVector_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 243 of file Panzer_Integrator_BasisTimesTensorTimesVector.hpp.
|
private |
A flag indicating whether or not to use the descriptor interface.
Definition at line 249 of file Panzer_Integrator_BasisTimesTensorTimesVector.hpp.
|
private |
The BasisDescriptor for the basis to use.
Definition at line 254 of file Panzer_Integrator_BasisTimesTensorTimesVector.hpp.
|
private |
The IntegrationDescriptor for the quadrature to use.
Definition at line 259 of file Panzer_Integrator_BasisTimesTensorTimesVector.hpp.
|
private |
A field to which we'll contribute, or in which we'll store, the result of computing this integral.
Definition at line 265 of file Panzer_Integrator_BasisTimesTensorTimesVector.hpp.
|
private |
A field representing the vector-valued function we're integrating ( 
Definition at line 272 of file Panzer_Integrator_BasisTimesTensorTimesVector.hpp.
|
private |
The tensor field( 
Definition at line 278 of file Panzer_Integrator_BasisTimesTensorTimesVector.hpp.
|
private |
The PHX::View representation of the tensor fields that are multiplied out in front of the integral ( 
Definition at line 284 of file Panzer_Integrator_BasisTimesTensorTimesVector.hpp.
|
private |
The number of quadrature points for each cell.
Definition at line 290 of file Panzer_Integrator_BasisTimesTensorTimesVector.hpp.
|
private |
The dimensionality of our vector-valued fields.
Definition at line 295 of file Panzer_Integrator_BasisTimesTensorTimesVector.hpp.
|
private |
The name of the basis we're using.
Definition at line 300 of file Panzer_Integrator_BasisTimesTensorTimesVector.hpp.
|
private |
The index in the Workset bases for our particular BasisIRLayout name.
Definition at line 306 of file Panzer_Integrator_BasisTimesTensorTimesVector.hpp.
|
private |
The vector basis information necessary for integration.
Definition at line 312 of file Panzer_Integrator_BasisTimesTensorTimesVector.hpp.
|
private |
Scratch space for caching temporary values in the kokkos kernel.
Definition at line 315 of file Panzer_Integrator_BasisTimesTensorTimesVector.hpp.