Panzer Version of the Day
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
panzer::Response_Functional< EvalT > Class Template Reference

#include <Panzer_Response_Functional.hpp>

Inheritance diagram for panzer::Response_Functional< EvalT >:
Inheritance graph
[legend]

Public Types

typedef EvalT::ScalarT ScalarT
 

Public Member Functions

 Response_Functional (const std::string &responseName, MPI_Comm comm, const Teuchos::RCP< const panzer::LinearObjFactory< panzer::Traits > > &linObjFact=Teuchos::null)
 
virtual void scatterResponse ()
 This simply does global summation, then shoves the result into a vector.
 
virtual void initializeResponse ()
 
virtual std::size_t localSizeRequired () const
 What is the number of values you need locally.
 
virtual bool vectorIsDistributed () const
 Is the vector distributed (or replicated)
 
Teuchos::RCP< Thyra::VectorBase< double > > getGhostedVector () const
 Get ghosted responses (this will be filled by the evaluator)
 
void adjustForDirichletConditions (const GlobalEvaluationData &localBCRows, const GlobalEvaluationData &globalBCRows)
 
void scatterResponse ()
 Prepare the response for access by the user (do global communication)
 
void scatterResponse ()
 Prepare the response for access by the user (do global communication)
 
void scatterResponse ()
 Prepare the response for access by the user (do global communication)
 
void adjustForDirichletConditions (const GlobalEvaluationData &localBCRows, const GlobalEvaluationData &globalBCRows)
 
void adjustForDirichletConditions (const GlobalEvaluationData &localBCRows, const GlobalEvaluationData &globalBCRows)
 
- Public Member Functions inherited from panzer::ResponseMESupport_Default< EvalT >
 ResponseMESupport_Default (const std::string &responseName, MPI_Comm comm)
 
virtual ~ResponseMESupport_Default ()
 
Teuchos::RCP< const Thyra::VectorSpaceBase< double > > getVectorSpace () const
 Get the vector space for this response, vector space is constructed lazily.
 
void setVector (const Teuchos::RCP< Thyra::VectorBase< double > > &destVec)
 
void setVectorSpace (Teuchos::RCP< const Thyra::VectorSpaceBase< double > > vs)
 set the vector space for this response
 
Teuchos::RCP< Thyra::VectorBase< double > > getVector () const
 Access the response vector.
 
- Public Member Functions inherited from panzer::ResponseMESupportBase< EvalT >
 ResponseMESupportBase (const std::string &responseName)
 
virtual ~ResponseMESupportBase ()
 
- Public Member Functions inherited from panzer::ResponseBase
 ResponseBase (const std::string &responseName)
 
virtual ~ResponseBase ()
 
std::string getName () const
 
std::string getLookupName () const
 
virtual void ghostToGlobal (int)
 Inherited from GlobalEvaluationData,.
 
virtual void initializeData ()
 
- Public Member Functions inherited from panzer::GlobalEvaluationData_Default
 GlobalEvaluationData_Default ()
 
 GlobalEvaluationData_Default (const GlobalEvaluationData_Default &s)
 
virtual void globalToGhost (int)
 
void setRequiresDirichletAdjustment (bool b)
 
bool requiresDirichletAdjustment () const
 
- Public Member Functions inherited from panzer::GlobalEvaluationData
virtual ~GlobalEvaluationData ()=0
 
virtual void print (std::ostream &os) const
 Diagnostic function for determinning what's in this object.
 

Public Attributes

ScalarT value
 provide direct access, this thing is pretty simple
 

Private Member Functions

void setSolnVectorSpace (const Teuchos::RCP< const Thyra::VectorSpaceBase< double > > &soln_vs)
 Set solution vector space.
 
 Response_Functional ()
 
 Response_Functional (const Response_Functional &)
 
void setSolnVectorSpace (const Teuchos::RCP< const Thyra::VectorSpaceBase< double > > &soln_vs)
 
void setSolnVectorSpace (const Teuchos::RCP< const Thyra::VectorSpaceBase< double > > &soln_vs)
 

Private Attributes

Teuchos::RCP< const panzer::LinearObjFactory< panzer::Traits > > linObjFactory_
 
Teuchos::RCP< const panzer::ThyraObjFactory< double > > thyraObjFactory_
 
Teuchos::RCP< LinearObjContaineruniqueContainer_
 
Teuchos::RCP< LinearObjContainerghostedContainer_
 

Additional Inherited Members

- Static Public Member Functions inherited from panzer::ResponseBase
static std::string buildLookupName (const std::string &responseName)
 
- Protected Member Functions inherited from panzer::ResponseMESupport_Default< EvalT >
Teuchos::RCP< const Teuchos::Comm< Thyra::Ordinal > > getComm () const
 Get the teuchos comm object.
 
bool useEpetra () const
 Is Epetra the right vector.
 
bool useThyra () const
 Is Thyra the right vector.
 
Thyra::ArrayRCP< double > getThyraVector () const
 Access the thyra vector.
 
Teuchos::RCP< Thyra::MultiVectorBase< double > > getThyraMultiVector () const
 Access the thyra MultiVector.
 

Detailed Description

template<typename EvalT>
class panzer::Response_Functional< EvalT >

This class provides a response storage for simple functionals of the solution (i.e. scalar values).

Definition at line 77 of file Panzer_Response_Functional.hpp.

Member Typedef Documentation

◆ ScalarT

template<typename EvalT >
typedef EvalT::ScalarT panzer::Response_Functional< EvalT >::ScalarT

Definition at line 80 of file Panzer_Response_Functional.hpp.

Constructor & Destructor Documentation

◆ Response_Functional() [1/3]

template<typename EvalT >
panzer::Response_Functional< EvalT >::Response_Functional ( const std::string & responseName,
MPI_Comm comm,
const Teuchos::RCP< const panzer::LinearObjFactory< panzer::Traits > > & linObjFact = Teuchos::null )
inline

Definition at line 82 of file Panzer_Response_Functional.hpp.

◆ Response_Functional() [2/3]

template<typename EvalT >
panzer::Response_Functional< EvalT >::Response_Functional ( )
private

◆ Response_Functional() [3/3]

template<typename EvalT >
panzer::Response_Functional< EvalT >::Response_Functional ( const Response_Functional< EvalT > & )
private

Member Function Documentation

◆ scatterResponse() [1/4]

template<typename EvalT >
void panzer::Response_Functional< EvalT >::scatterResponse ( )
virtual

This simply does global summation, then shoves the result into a vector.

Implements panzer::ResponseBase.

Definition at line 60 of file Panzer_Response_Functional_impl.hpp.

◆ initializeResponse()

template<typename EvalT >
virtual void panzer::Response_Functional< EvalT >::initializeResponse ( )
inlinevirtual

Implements panzer::ResponseBase.

Definition at line 107 of file Panzer_Response_Functional.hpp.

◆ localSizeRequired()

template<typename EvalT >
virtual std::size_t panzer::Response_Functional< EvalT >::localSizeRequired ( ) const
inlinevirtual

What is the number of values you need locally.

Implements panzer::ResponseMESupport_Default< EvalT >.

Definition at line 113 of file Panzer_Response_Functional.hpp.

◆ vectorIsDistributed()

template<typename EvalT >
virtual bool panzer::Response_Functional< EvalT >::vectorIsDistributed ( ) const
inlinevirtual

Is the vector distributed (or replicated)

Implements panzer::ResponseMESupport_Default< EvalT >.

Definition at line 116 of file Panzer_Response_Functional.hpp.

◆ getGhostedVector()

template<typename EvalT >
Teuchos::RCP< Thyra::VectorBase< double > > panzer::Response_Functional< EvalT >::getGhostedVector ( ) const
inline

Get ghosted responses (this will be filled by the evaluator)

Definition at line 119 of file Panzer_Response_Functional.hpp.

◆ adjustForDirichletConditions() [1/3]

template<typename EvalT >
void panzer::Response_Functional< EvalT >::adjustForDirichletConditions ( const GlobalEvaluationData & localBCRows,
const GlobalEvaluationData & globalBCRows )
virtual

Adjust the container for applied dirichlet conditions. The adjustment considers if a boundary condition was set globally and locally and based on that result adjusts the container so that when the ghost to global operation is correct across processors.

Parameters
[in]localBCRowsLinear object container uses the X vector to indicate locally set dirichlet conditions. The format is if an entry of the vector is nonzero then it was set as a dirichlet condition.
[in]globalBCRowsLinear object container uses the X vector to indicate globally set dirichlet conditions. The format is if an entry of the vector is nonzero then it was set as a dirichlet condition.

Implements panzer::GlobalEvaluationData_BCAdjustment.

Definition at line 191 of file Panzer_Response_Functional_impl.hpp.

◆ setSolnVectorSpace() [1/3]

template<typename EvalT >
void panzer::Response_Functional< EvalT >::setSolnVectorSpace ( const Teuchos::RCP< const Thyra::VectorSpaceBase< double > > & soln_vs)
private

Set solution vector space.

Definition at line 168 of file Panzer_Response_Functional_impl.hpp.

◆ scatterResponse() [2/4]

void panzer::Response_Functional< panzer::Traits::Jacobian >::scatterResponse ( )
virtual

Prepare the response for access by the user (do global communication)

Implements panzer::ResponseBase.

Definition at line 88 of file Panzer_Response_Functional_impl.hpp.

◆ scatterResponse() [3/4]

void panzer::Response_Functional< panzer::Traits::Hessian >::scatterResponse ( )
virtual

Prepare the response for access by the user (do global communication)

Implements panzer::ResponseBase.

Definition at line 109 of file Panzer_Response_Functional_impl.hpp.

◆ scatterResponse() [4/4]

void panzer::Response_Functional< panzer::Traits::Tangent >::scatterResponse ( )
virtual

Prepare the response for access by the user (do global communication)

Implements panzer::ResponseBase.

Definition at line 130 of file Panzer_Response_Functional_impl.hpp.

◆ setSolnVectorSpace() [2/3]

void panzer::Response_Functional< panzer::Traits::Jacobian >::setSolnVectorSpace ( const Teuchos::RCP< const Thyra::VectorSpaceBase< double > > & soln_vs)
private

Definition at line 173 of file Panzer_Response_Functional_impl.hpp.

◆ setSolnVectorSpace() [3/3]

void panzer::Response_Functional< panzer::Traits::Hessian >::setSolnVectorSpace ( const Teuchos::RCP< const Thyra::VectorSpaceBase< double > > & soln_vs)
private

Definition at line 182 of file Panzer_Response_Functional_impl.hpp.

◆ adjustForDirichletConditions() [2/3]

void panzer::Response_Functional< panzer::Traits::Jacobian >::adjustForDirichletConditions ( const GlobalEvaluationData & localBCRows,
const GlobalEvaluationData & globalBCRows )
virtual

Adjust the container for applied dirichlet conditions. The adjustment considers if a boundary condition was set globally and locally and based on that result adjusts the container so that when the ghost to global operation is correct across processors.

Parameters
[in]localBCRowsLinear object container uses the X vector to indicate locally set dirichlet conditions. The format is if an entry of the vector is nonzero then it was set as a dirichlet condition.
[in]globalBCRowsLinear object container uses the X vector to indicate globally set dirichlet conditions. The format is if an entry of the vector is nonzero then it was set as a dirichlet condition.

Implements panzer::GlobalEvaluationData_BCAdjustment.

Definition at line 196 of file Panzer_Response_Functional_impl.hpp.

◆ adjustForDirichletConditions() [3/3]

void panzer::Response_Functional< panzer::Traits::Hessian >::adjustForDirichletConditions ( const GlobalEvaluationData & localBCRows,
const GlobalEvaluationData & globalBCRows )
virtual

Adjust the container for applied dirichlet conditions. The adjustment considers if a boundary condition was set globally and locally and based on that result adjusts the container so that when the ghost to global operation is correct across processors.

Parameters
[in]localBCRowsLinear object container uses the X vector to indicate locally set dirichlet conditions. The format is if an entry of the vector is nonzero then it was set as a dirichlet condition.
[in]globalBCRowsLinear object container uses the X vector to indicate globally set dirichlet conditions. The format is if an entry of the vector is nonzero then it was set as a dirichlet condition.

Implements panzer::GlobalEvaluationData_BCAdjustment.

Definition at line 207 of file Panzer_Response_Functional_impl.hpp.

Member Data Documentation

◆ value

template<typename EvalT >
ScalarT panzer::Response_Functional< EvalT >::value

provide direct access, this thing is pretty simple

Definition at line 102 of file Panzer_Response_Functional.hpp.

◆ linObjFactory_

template<typename EvalT >
Teuchos::RCP<const panzer::LinearObjFactory<panzer::Traits> > panzer::Response_Functional< EvalT >::linObjFactory_
private

Definition at line 132 of file Panzer_Response_Functional.hpp.

◆ thyraObjFactory_

template<typename EvalT >
Teuchos::RCP<const panzer::ThyraObjFactory<double> > panzer::Response_Functional< EvalT >::thyraObjFactory_
private

Definition at line 133 of file Panzer_Response_Functional.hpp.

◆ uniqueContainer_

template<typename EvalT >
Teuchos::RCP<LinearObjContainer> panzer::Response_Functional< EvalT >::uniqueContainer_
private

Definition at line 135 of file Panzer_Response_Functional.hpp.

◆ ghostedContainer_

template<typename EvalT >
Teuchos::RCP<LinearObjContainer> panzer::Response_Functional< EvalT >::ghostedContainer_
private

Definition at line 136 of file Panzer_Response_Functional.hpp.


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