Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO > Class Template Reference

GatherSolution_Epetra (Hessian Specialization) More...

#include <Panzer_GatherSolution_Epetra_Hessian.hpp>

Inheritance diagram for panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >:
Inheritance graph
[legend]

Public Member Functions

 GatherSolution_Epetra (const Teuchos::RCP< const panzer::GlobalIndexer > &indexer)
 Constructor. More...
 
 GatherSolution_Epetra (const Teuchos::RCP< const panzer::GlobalIndexer > &indexer, const Teuchos::ParameterList &p)
 Initializing Constructor. More...
 
void postRegistrationSetup (typename TRAITS::SetupData d, PHX::FieldManager< TRAITS > &vm)
 Post-Registration Setup. More...
 
void preEvaluate (typename TRAITS::PreEvalData d)
 Pre-Evaluate: Sets the solution vector. More...
 
void evaluateFields (typename TRAITS::EvalData d)
 Evaluate Fields: Gather operation. More...
 
virtual Teuchos::RCP
< CloneableEvaluator
clone (const Teuchos::ParameterList &pl) const
 Create a copy. 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 PHX::EvaluatorWithBaseImpl< TRAITS >
virtual void evaluateFields (typename Traits::EvalData d) override=0
 
- Public Member Functions inherited from PHX::Evaluator< Traits >
 Evaluator ()
 
virtual ~Evaluator ()
 
virtual void postRegistrationSetup (typename Traits::SetupData d, PHX::FieldManager< Traits > &vm)=0
 
virtual const std::vector
< Teuchos::RCP< FieldTag > > & 
evaluatedFields () const =0
 
virtual const std::vector
< Teuchos::RCP< FieldTag > > & 
contributedFields () const =0
 
virtual const std::vector
< Teuchos::RCP< FieldTag > > & 
dependentFields () const =0
 
virtual const std::vector
< Teuchos::RCP< FieldTag > > & 
unsharedFields () const =0
 
virtual void preEvaluate (typename Traits::PreEvalData d)=0
 
virtual void postEvaluate (typename Traits::PostEvalData d)=0
 
virtual const std::string & getName () const =0
 
virtual void bindField (const PHX::FieldTag &ft, const PHX::any &f)=0
 
virtual PHX::DeviceEvaluator
< Traits > * 
createDeviceEvaluator () const =0
 
virtual void rebuildDeviceEvaluator (PHX::DeviceEvaluator< Traits > *e) const =0
 
virtual void deleteDeviceEvaluator (PHX::DeviceEvaluator< Traits > *e) const =0
 
virtual void printFieldValues (std::ostream &os) const =0
 
- 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...
 
- Public Member Functions inherited from panzer::CloneableEvaluator
 CloneableEvaluator ()
 
virtual ~CloneableEvaluator ()
 

Private Types

typedef panzer::Traits::Hessian EvalT
 The evaluation type. More...
 
typedef
panzer::Traits::Hessian::ScalarT 
ScalarT
 The scalar type. More...
 

Private Member Functions

 GatherSolution_Epetra ()
 Default Constructor (disabled). More...
 

Private Attributes

Teuchos::RCP< const
panzer::GlobalIndexer
globalIndexer_
 Maps the local (field, element, basis) triplet to a global ID for scattering. More...
 
std::vector< std::string > indexerNames_
 A list of the names of the fields to be gathered. More...
 
std::vector< int > fieldIds_
 Field IDs, which need to be mapped. More...
 
std::vector< PHX::MDField
< ScalarT, Cell, NODE > > 
gatherFields_
 The fields to be gathered. More...
 
std::vector< PHX::MDField
< ScalarT, Cell, NODE > > 
sensFields_
 The sensitivity fields. More...
 
bool useTimeDerivativeSolutionVector_
 A flag indicating whether we're to be working with $ x $ or $ \dot{x} $. More...
 
std::string globalDataKey_
 The key identifying the GlobalEvaluationData. More...
 
std::string sensitivitiesName_
 Sets which gather operations have sensitivities. More...
 
int gatherSeedIndex_
 Which gather seed in the workset to use. More...
 
bool firstSensitivitiesAvailable_
 A flag indicating whether or not we're to be working with the first derivative sensitivities. More...
 
bool firstApplySensitivities_
 Used by evaluateFields() to turn on/off the first derivative sensitivities. More...
 
std::string sensitivities2ndPrefix_
 The prefix for the field containing the second sensitivities. More...
 
bool secondSensitivitiesAvailable_
 A flag indicating whether or not we're to be working with the second derivative sensitivities. More...
 
bool secondApplySensitivities_
 Used by evaluateFields() to turn on/off the second derivative sensitivities. More...
 
Teuchos::RCP< Epetra_Vectorx_
 The solution vector. More...
 
Teuchos::RCP
< panzer::EpetraVector_ReadOnly_GlobalEvaluationData
xEvRoGed_
 The GlobalEvaluationData containing both the owned and ghosted solution vectors. More...
 
Teuchos::RCP
< panzer::EpetraVector_ReadOnly_GlobalEvaluationData
dxEvRoGed_
 The GlobalEvaluationData containing both the owned and ghosted derivative vectors. More...
 

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
 

Detailed Description

template<typename TRAITS, typename LO, typename GO>
class panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >

GatherSolution_Epetra (Hessian Specialization)

Gathers solution values from the Newton solution vector into the nodal fields of the field manager.

Currently makes an assumption that the stride is constant for degrees of freedom (DOFs) and that the number of DOFs is equal to the size of the solution names vector.

Definition at line 65 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

Member Typedef Documentation

template<typename TRAITS , typename LO , typename GO >
typedef panzer::Traits::Hessian panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::EvalT
private

The evaluation type.

Definition at line 176 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

template<typename TRAITS , typename LO , typename GO >
typedef panzer::Traits::Hessian::ScalarT panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::ScalarT
private

The scalar type.

Definition at line 181 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

Constructor & Destructor Documentation

template<typename TRAITS , typename LO , typename GO >
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::GatherSolution_Epetra ( const Teuchos::RCP< const panzer::GlobalIndexer > &  indexer)
inline

Constructor.

Simply saves the input indexer as this object's globalIndexer_.

Parameters
[in]indexerThe GlobalIndexer that handles the global unknown numbering.

Definition at line 81 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

template<typename TRAITS , typename LO , typename GO >
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::GatherSolution_Epetra ( const Teuchos::RCP< const panzer::GlobalIndexer > &  indexer,
const Teuchos::ParameterList p 
)

Initializing Constructor.

Saves the input indexer as this object's globalIndexer_, allocates fields, and determines the first active name.

Parameters
[in]indexerThe GlobalIndexer that handles the global unknown numbering.
[in]pA ParameterList used as input for GatherSolution_Input.

Definition at line 84 of file Panzer_GatherSolution_Epetra_Hessian_impl.hpp.

template<typename TRAITS , typename LO , typename GO >
panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::GatherSolution_Epetra ( )
private

Default Constructor (disabled).

Member Function Documentation

template<typename TRAITS , typename LO , typename GO >
void panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::postRegistrationSetup ( typename TRAITS::SetupData  d,
PHX::FieldManager< TRAITS > &  vm 
)

Post-Registration Setup.

Loops over the gatherFields_ and sets the fieldIds_.

Parameters
[in]dUnused.
[in]fmUnused.

Definition at line 138 of file Panzer_GatherSolution_Epetra_Hessian_impl.hpp.

template<typename TRAITS , typename LO , typename GO >
void panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::preEvaluate ( typename TRAITS::PreEvalData  d)

Pre-Evaluate: Sets the solution vector.

If using an EpetraVector_ReadOnly_GlobalEvaluationData, this sets the GlobalEvaluationData(s) containing both the owned and ghosted solution (and, if applicaple, derivative) vectors. If using the older EpeteraLinearObjContainer, this sets the solution vector. Also determines whether or not to apply sensitivities.

Parameters
[in]dThe PreEvalData containing the GlobalEvaluationDataContainer and the first_ and second_sensitivities_names.
Exceptions
std::logic_errorIf it's unable to find the solution or (if applicable) derivative vectors.

Definition at line 170 of file Panzer_GatherSolution_Epetra_Hessian_impl.hpp.

template<typename TRAITS , typename LO , typename GO >
void panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::evaluateFields ( typename TRAITS::EvalData  d)

Evaluate Fields: Gather operation.

Loops over the cells in the workset, the fields to be gathered, and the basis functions, and fills in the fields. If sensitivities are to be applied, this also seeds the derivatives.

Parameters
[in]dThe Workset on which we're going to do all the work.

Definition at line 259 of file Panzer_GatherSolution_Epetra_Hessian_impl.hpp.

template<typename TRAITS , typename LO , typename GO >
virtual Teuchos::RCP<CloneableEvaluator> panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::clone ( const Teuchos::ParameterList pl) const
inlinevirtual

Create a copy.

Creates a GatherSolution_Epetra using the Initializing Constructor and the current object's globalIndexer_.

Parameters
[in]plA ParameterList used as input for GatherSolution_Input.
Returns
A GatherSolution_Epetra constructed with this object's globalIndexer_ and the input ParameterList.

Implements panzer::CloneableEvaluator.

Definition at line 162 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

Member Data Documentation

template<typename TRAITS , typename LO , typename GO >
Teuchos::RCP<const panzer::GlobalIndexer> panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::globalIndexer_
private

Maps the local (field, element, basis) triplet to a global ID for scattering.

Definition at line 187 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

template<typename TRAITS , typename LO , typename GO >
std::vector<std::string> panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::indexerNames_
private

A list of the names of the fields to be gathered.

Definition at line 192 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

template<typename TRAITS , typename LO , typename GO >
std::vector<int> panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::fieldIds_
private

Field IDs, which need to be mapped.

Definition at line 197 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

template<typename TRAITS , typename LO , typename GO >
std::vector< PHX::MDField<ScalarT, Cell, NODE> > panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::gatherFields_
private

The fields to be gathered.

Definition at line 202 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

template<typename TRAITS , typename LO , typename GO >
std::vector< PHX::MDField<ScalarT, Cell, NODE> > panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::sensFields_
private

The sensitivity fields.

Definition at line 207 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

template<typename TRAITS , typename LO , typename GO >
bool panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::useTimeDerivativeSolutionVector_
private

A flag indicating whether we're to be working with $ x $ or $ \dot{x} $.

Definition at line 213 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

template<typename TRAITS , typename LO , typename GO >
std::string panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::globalDataKey_
private

The key identifying the GlobalEvaluationData.

Definition at line 218 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

template<typename TRAITS , typename LO , typename GO >
std::string panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::sensitivitiesName_
private

Sets which gather operations have sensitivities.

Definition at line 223 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

template<typename TRAITS , typename LO , typename GO >
int panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::gatherSeedIndex_
private

Which gather seed in the workset to use.

If it's less than zero, then use alpha or beta as appropriate.

Definition at line 230 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

template<typename TRAITS , typename LO , typename GO >
bool panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::firstSensitivitiesAvailable_
private

A flag indicating whether or not we're to be working with the first derivative sensitivities.

Definition at line 236 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

template<typename TRAITS , typename LO , typename GO >
bool panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::firstApplySensitivities_
private

Used by evaluateFields() to turn on/off the first derivative sensitivities.

Definition at line 242 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

template<typename TRAITS , typename LO , typename GO >
std::string panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::sensitivities2ndPrefix_
private

The prefix for the field containing the second sensitivities.

Definition at line 247 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

template<typename TRAITS , typename LO , typename GO >
bool panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::secondSensitivitiesAvailable_
private

A flag indicating whether or not we're to be working with the second derivative sensitivities.

Definition at line 253 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

template<typename TRAITS , typename LO , typename GO >
bool panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::secondApplySensitivities_
private

Used by evaluateFields() to turn on/off the second derivative sensitivities.

Definition at line 259 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

template<typename TRAITS , typename LO , typename GO >
Teuchos::RCP<Epetra_Vector> panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::x_
private

The solution vector.

Definition at line 264 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

template<typename TRAITS , typename LO , typename GO >
Teuchos::RCP<panzer::EpetraVector_ReadOnly_GlobalEvaluationData> panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::xEvRoGed_
private

The GlobalEvaluationData containing both the owned and ghosted solution vectors.

Definition at line 271 of file Panzer_GatherSolution_Epetra_Hessian.hpp.

template<typename TRAITS , typename LO , typename GO >
Teuchos::RCP<panzer::EpetraVector_ReadOnly_GlobalEvaluationData> panzer::GatherSolution_Epetra< panzer::Traits::Hessian, TRAITS, LO, GO >::dxEvRoGed_
private

The GlobalEvaluationData containing both the owned and ghosted derivative vectors.

Definition at line 278 of file Panzer_GatherSolution_Epetra_Hessian.hpp.


The documentation for this class was generated from the following files: