Panzer
Version of the Day
|
#include <Panzer_ModelEvaluator_Epetra.hpp>
Public Member Functions | |
ModelEvaluator_Epetra (const Teuchos::RCP< panzer::FieldManagerBuilder > &fmb, const Teuchos::RCP< panzer::ResponseLibrary< panzer::Traits > > &rLibrary, const Teuchos::RCP< panzer::LinearObjFactory< panzer::Traits > > &lof, const std::vector< Teuchos::RCP< Teuchos::Array< std::string > > > &p_names, const std::vector< Teuchos::RCP< Teuchos::Array< double > > > &p_values, const Teuchos::RCP< panzer::GlobalData > &global_data, bool build_transient_support) | |
ModelEvaluator_Epetra (const Teuchos::RCP< panzer::FieldManagerBuilder > &fmb, const Teuchos::RCP< panzer::ResponseLibrary< panzer::Traits > > &rLibrary, const Teuchos::RCP< panzer::BlockedEpetraLinearObjFactory< panzer::Traits, int > > &lof, const std::vector< Teuchos::RCP< Teuchos::Array< std::string > > > &p_names, const std::vector< Teuchos::RCP< Teuchos::Array< double > > > &p_values, const Teuchos::RCP< panzer::GlobalData > &global_data, bool build_transient_support) | |
void | set_t_init (double t) |
Set initial time value. More... | |
Teuchos::RCP< panzer::ResponseLibrary< panzer::Traits > > | getResponseLibrary () const |
Get the response library used by this evaluator. More... | |
void | setOneTimeDirichletBeta (const double &beta) const |
void | applyDirichletBCs (const Teuchos::RCP< Thyra::VectorBase< double > > &x, const Teuchos::RCP< Thyra::VectorBase< double > > &f) const |
![]() | |
virtual | ~ModelEvaluator () |
virtual Teuchos::ArrayView< const std::string > | get_g_names (int j) const |
virtual Teuchos::RCP< const Epetra_Vector > | get_x_dotdot_init () const |
virtual double | getInfBound () const |
virtual Teuchos::RCP< const Epetra_Vector > | get_x_lower_bounds () const |
virtual Teuchos::RCP< const Epetra_Vector > | get_x_upper_bounds () const |
virtual Teuchos::RCP< const Epetra_Vector > | get_p_lower_bounds (int l) const |
virtual Teuchos::RCP< const Epetra_Vector > | get_p_upper_bounds (int l) const |
virtual double | get_t_lower_bound () const |
virtual double | get_t_upper_bound () const |
virtual Teuchos::RCP< EpetraExt::ModelEvaluator::Preconditioner > | create_WPrec () const |
virtual Teuchos::RCP< Epetra_Operator > | create_DfDp_op (int l) const |
virtual Teuchos::RCP< Epetra_Operator > | create_DgDx_dot_op (int j) const |
virtual Teuchos::RCP< Epetra_Operator > | create_DgDx_dotdot_op (int j) const |
virtual Teuchos::RCP< Epetra_Operator > | create_DgDx_op (int j) const |
virtual Teuchos::RCP< Epetra_Operator > | create_DgDp_op (int j, int l) const |
Private Member Functions | |
void | initializeEpetraObjs (panzer::BlockedEpetraLinearObjFactory< panzer::Traits, int > &lof) |
void | initializeParameterVector (const std::vector< Teuchos::RCP< Teuchos::Array< std::string > > > &p_names, const std::vector< Teuchos::RCP< Teuchos::Array< double > > > &p_values, const Teuchos::RCP< panzer::ParamLib > ¶meter_library) |
void | evalModel_basic (const InArgs &inArgs, const OutArgs &outArgs) const |
for evaluation and handling of normal quantities, x,f,W, etc More... | |
void | evalModel_basic_g (AssemblyEngineInArgs ae_inargs, const InArgs &inArgs, const OutArgs &outArgs) const |
void | evalModel_basic_dgdx (AssemblyEngineInArgs ae_inargs, const InArgs &inArgs, const OutArgs &outArgs) const |
void | evalModel_basic_dfdp (AssemblyEngineInArgs ae_inargs, const InArgs &inArgs, const OutArgs &outArgs) const |
bool | required_basic_g (const OutArgs &outArgs) const |
Are their required responses in the out args? g and DgDx. More... | |
bool | required_basic_dgdx (const OutArgs &outArgs) const |
Are their required responses in the out args? DgDx. More... | |
bool | required_basic_dfdp (const OutArgs &outArgs) const |
Are derivatives of the residual with respect to the parameters in the out args? DfDp. More... | |
void | copyEpetraIntoThyra (const Epetra_MultiVector &x, const Teuchos::Ptr< Thyra::VectorBase< double > > &thyraVec) const |
void | copyThyraIntoEpetra (const Thyra::VectorBase< double > &thyraVec, Epetra_MultiVector &x) const |
Overridden from EpetraExt::ModelEvaluator . | |
Teuchos::RCP< const Epetra_Map > | get_x_map () const |
Teuchos::RCP< const Epetra_Map > | get_f_map () const |
Teuchos::RCP< const Epetra_Vector > | get_x_init () const |
Teuchos::RCP< const Epetra_Vector > | get_x_dot_init () const |
double | get_t_init () const |
Teuchos::RCP< Epetra_Operator > | create_W () const |
Teuchos::RCP< const Epetra_Map > | get_p_map (int l) const |
Teuchos::RCP< const Teuchos::Array< std::string > > | get_p_names (int l) const |
Teuchos::RCP< const Epetra_Vector > | get_p_init (int l) const |
Teuchos::RCP< const Epetra_Map > | get_g_map (int l) const |
InArgs | createInArgs () const |
OutArgs | createOutArgs () const |
void | evalModel (const InArgs &inArgs, const OutArgs &outArgs) const |
Post-Construction methods to add parameters and/or responses | |
int | addDistributedParameter (const std::string name, const Teuchos::RCP< Epetra_Map > &global_map, const Teuchos::RCP< Epetra_Import > &importer, const Teuchos::RCP< Epetra_Vector > &ghosted_vector) |
template<typename ResponseEvaluatorFactory_BuilderT > | |
int | addResponse (const std::string &responseName, const std::vector< WorksetDescriptor > &wkst_desc, const ResponseEvaluatorFactory_BuilderT &builder) |
void | buildResponses (const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks, const panzer::EquationSetFactory &eqset_factory, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &cm_factory, const Teuchos::ParameterList &closure_models, const Teuchos::ParameterList &user_data, const bool write_graphviz_file=false, const std::string &graphviz_file_prefix="") |
void | buildResponses (const std::vector< Teuchos::RCP< panzer::PhysicsBlock > > &physicsBlocks, const panzer::ClosureModelFactory_TemplateManager< panzer::Traits > &cm_factory, const Teuchos::ParameterList &closure_models, const Teuchos::ParameterList &user_data, const bool write_graphviz_file=false, const std::string &graphviz_file_prefix="") |
Definition at line 74 of file Panzer_ModelEvaluator_Epetra.hpp.
panzer::ModelEvaluator_Epetra::ModelEvaluator_Epetra | ( | const Teuchos::RCP< panzer::FieldManagerBuilder > & | fmb, |
const Teuchos::RCP< panzer::ResponseLibrary< panzer::Traits > > & | rLibrary, | ||
const Teuchos::RCP< panzer::LinearObjFactory< panzer::Traits > > & | lof, | ||
const std::vector< Teuchos::RCP< Teuchos::Array< std::string > > > & | p_names, | ||
const std::vector< Teuchos::RCP< Teuchos::Array< double > > > & | p_values, | ||
const Teuchos::RCP< panzer::GlobalData > & | global_data, | ||
bool | build_transient_support | ||
) |
Definition at line 90 of file Panzer_ModelEvaluator_Epetra.cpp.
panzer::ModelEvaluator_Epetra::ModelEvaluator_Epetra | ( | const Teuchos::RCP< panzer::FieldManagerBuilder > & | fmb, |
const Teuchos::RCP< panzer::ResponseLibrary< panzer::Traits > > & | rLibrary, | ||
const Teuchos::RCP< panzer::BlockedEpetraLinearObjFactory< panzer::Traits, int > > & | lof, | ||
const std::vector< Teuchos::RCP< Teuchos::Array< std::string > > > & | p_names, | ||
const std::vector< Teuchos::RCP< Teuchos::Array< double > > > & | p_values, | ||
const Teuchos::RCP< panzer::GlobalData > & | global_data, | ||
bool | build_transient_support | ||
) |
Definition at line 130 of file Panzer_ModelEvaluator_Epetra.cpp.
|
virtual |
Implements EpetraExt::ModelEvaluator.
Definition at line 252 of file Panzer_ModelEvaluator_Epetra.cpp.
|
virtual |
Implements EpetraExt::ModelEvaluator.
Definition at line 258 of file Panzer_ModelEvaluator_Epetra.cpp.
|
virtual |
Reimplemented from EpetraExt::ModelEvaluator.
Definition at line 264 of file Panzer_ModelEvaluator_Epetra.cpp.
|
virtual |
Reimplemented from EpetraExt::ModelEvaluator.
Definition at line 270 of file Panzer_ModelEvaluator_Epetra.cpp.
|
virtual |
Reimplemented from EpetraExt::ModelEvaluator.
Definition at line 276 of file Panzer_ModelEvaluator_Epetra.cpp.
|
virtual |
Reimplemented from EpetraExt::ModelEvaluator.
Definition at line 282 of file Panzer_ModelEvaluator_Epetra.cpp.
|
virtual |
Reimplemented from EpetraExt::ModelEvaluator.
Definition at line 288 of file Panzer_ModelEvaluator_Epetra.cpp.
|
virtual |
Reimplemented from EpetraExt::ModelEvaluator.
Definition at line 294 of file Panzer_ModelEvaluator_Epetra.cpp.
|
virtual |
Reimplemented from EpetraExt::ModelEvaluator.
Definition at line 300 of file Panzer_ModelEvaluator_Epetra.cpp.
|
virtual |
Reimplemented from EpetraExt::ModelEvaluator.
Definition at line 306 of file Panzer_ModelEvaluator_Epetra.cpp.
|
virtual |
Implements EpetraExt::ModelEvaluator.
Definition at line 312 of file Panzer_ModelEvaluator_Epetra.cpp.
|
virtual |
Implements EpetraExt::ModelEvaluator.
Definition at line 329 of file Panzer_ModelEvaluator_Epetra.cpp.
|
virtual |
Implements EpetraExt::ModelEvaluator.
Definition at line 436 of file Panzer_ModelEvaluator_Epetra.cpp.
void panzer::ModelEvaluator_Epetra::set_t_init | ( | double | t | ) |
Set initial time value.
Definition at line 826 of file Panzer_ModelEvaluator_Epetra.cpp.
|
inline |
Get the response library used by this evaluator.
Definition at line 117 of file Panzer_ModelEvaluator_Epetra.hpp.
int panzer::ModelEvaluator_Epetra::addDistributedParameter | ( | const std::string | name, |
const Teuchos::RCP< Epetra_Map > & | global_map, | ||
const Teuchos::RCP< Epetra_Import > & | importer, | ||
const Teuchos::RCP< Epetra_Vector > & | ghosted_vector | ||
) |
Add a distributed parameter to the model evaluator
Distributed parameters are special in that they most likely will require a global to ghost call before being used in the evaluator. This function registers the parameter and any needed machinery to perform the global to ghost call.
NOTE: We can't use the LinearObjFactory and LinearObjContainers here because those objects require a unique global indexer to build. In general, the distributed parameters may NOT be coming from an object that has an associated unique global indexer. An example of this is multiphysics coupling. The parameters will be coming form another code that may not have a PDE discretization. Generalizing this function to hide the linear algebra type may not be possible unless we refactor the linear object support or write new wrapper objects. Also note that Thyra has no concept of an import/export object so we can't use Thyra here to abstract the objects.
[in] | name | Name of the distributed parameter |
[in] | global_map | RCP to Epetra_Map used to construct the global parameter vector. |
[in] | importer | RCP to a Epetra_Import object used for the global to ghost. If set to null, then no global to ghost will be performed. |
[in] | ghosted_vector | RCP to the ghosted vector that is the target of the global to ghost. If set to null, then no global to ghost will be performed. |
Definition at line 219 of file Panzer_ModelEvaluator_Epetra.cpp.
int panzer::ModelEvaluator_Epetra::addResponse | ( | const std::string & | responseName, |
const std::vector< WorksetDescriptor > & | wkst_desc, | ||
const ResponseEvaluatorFactory_BuilderT & | builder | ||
) |
Add a response specified by a list of WorksetDescriptor objects. The specifics of the response are specified by the response factory builder.
NOTE: Response factories must use a response of type ResponseMESupportBase
. This is how the model evaluator parses and puts responses in the right location. If this condition is violated the evalModel
call will fail. Furthermore, this method cannot be called after buildRespones
has been called.
[in] | responseName | Name of the response to be added. |
[in] | wkst_desc | A vector of descriptors describing the types of elements that make up the response. |
[in] | builder | Builder that builds the correct response object. |
Definition at line 330 of file Panzer_ModelEvaluator_Epetra.hpp.
|
inline |
Build all the responses set on the model evaluator. Once this method is called no other responses can be added. An exception is thrown if they are.
Definition at line 178 of file Panzer_ModelEvaluator_Epetra.hpp.
|
inline |
Build all the responses set on the model evaluator. Once this method is called no other responses can be added. An exception is thrown if they are.
Definition at line 191 of file Panzer_ModelEvaluator_Epetra.hpp.
void panzer::ModelEvaluator_Epetra::setOneTimeDirichletBeta | ( | const double & | beta | ) | const |
This function is intended for experts only, it allows for a beta to be set for the dirichlet conditions only. This allows the dirichlet condition to be propagated to the mass matrix. The reason it is one time only is that it breaks encapsulation, and should be only used if absolutely neccessary.
[in] | beta | Value of beta to use. |
Definition at line 940 of file Panzer_ModelEvaluator_Epetra.cpp.
void panzer::ModelEvaluator_Epetra::applyDirichletBCs | ( | const Teuchos::RCP< Thyra::VectorBase< double > > & | x, |
const Teuchos::RCP< Thyra::VectorBase< double > > & | f | ||
) | const |
Apply the dirichlet boundary conditions to the vector "f" using the "x" values as the current solution.
Definition at line 371 of file Panzer_ModelEvaluator_Epetra.cpp.
|
private |
Initialize Epetra linear objects.
Definition at line 160 of file Panzer_ModelEvaluator_Epetra.cpp.
|
private |
Initialize the parameter vector object
Definition at line 194 of file Panzer_ModelEvaluator_Epetra.cpp.
|
private |
for evaluation and handling of normal quantities, x,f,W, etc
Definition at line 445 of file Panzer_ModelEvaluator_Epetra.cpp.
|
private |
handles evaluation of responses g, dgdx
required_basic_g(outArgs)==false
. However, for efficiency this is not checked. Definition at line 653 of file Panzer_ModelEvaluator_Epetra.cpp.
|
private |
handles evaluation of responses dgdx
required_basic_dgdx(outArgs)==false
. However, for efficiency this is not checked. Definition at line 675 of file Panzer_ModelEvaluator_Epetra.cpp.
|
private |
handles evaluation of residual derivatives dfdp
required_basic_dfdp(outArgs)==false
. However, for efficiency this is not checked. Definition at line 703 of file Panzer_ModelEvaluator_Epetra.cpp.
|
private |
Are their required responses in the out args? g and DgDx.
Definition at line 784 of file Panzer_ModelEvaluator_Epetra.cpp.
|
private |
Are their required responses in the out args? DgDx.
Definition at line 794 of file Panzer_ModelEvaluator_Epetra.cpp.
|
private |
Are derivatives of the residual with respect to the parameters in the out args? DfDp.
Definition at line 810 of file Panzer_ModelEvaluator_Epetra.cpp.
|
private |
Definition at line 872 of file Panzer_ModelEvaluator_Epetra.cpp.
|
private |
Definition at line 832 of file Panzer_ModelEvaluator_Epetra.cpp.
|
private |
Definition at line 286 of file Panzer_ModelEvaluator_Epetra.hpp.
|
mutableprivate |
Definition at line 287 of file Panzer_ModelEvaluator_Epetra.hpp.
|
mutableprivate |
Definition at line 290 of file Panzer_ModelEvaluator_Epetra.hpp.
|
private |
Definition at line 291 of file Panzer_ModelEvaluator_Epetra.hpp.
|
private |
Definition at line 292 of file Panzer_ModelEvaluator_Epetra.hpp.
|
private |
Definition at line 295 of file Panzer_ModelEvaluator_Epetra.hpp.
|
private |
Definition at line 296 of file Panzer_ModelEvaluator_Epetra.hpp.
|
private |
Definition at line 298 of file Panzer_ModelEvaluator_Epetra.hpp.
|
mutableprivate |
Definition at line 300 of file Panzer_ModelEvaluator_Epetra.hpp.
|
private |
Definition at line 301 of file Panzer_ModelEvaluator_Epetra.hpp.
|
private |
Definition at line 302 of file Panzer_ModelEvaluator_Epetra.hpp.
|
private |
Returns true if this is a distributed vector and false if it is a locally replicated scalar parameter. This is used to determine when to call a global to ghost method which is required for distributed parameters only.
Definition at line 306 of file Panzer_ModelEvaluator_Epetra.hpp.
|
private |
Vector of tuples that contains objects needed for the global to ghost method for distributed parameters.
Tuple index 0: the string name for the parameter in the model evaluator. Tuple index 1: the integer index for the parameter in the model evaluator. Tuple index 2: an RCP to the linear object factory that performs the global to ghost operation. Tuple index 3: an RCP to the GHOSTED vector that is the target of the global to ghost operation.
Definition at line 315 of file Panzer_ModelEvaluator_Epetra.hpp.
|
private |
Definition at line 318 of file Panzer_ModelEvaluator_Epetra.hpp.
|
mutableprivate |
Definition at line 319 of file Panzer_ModelEvaluator_Epetra.hpp.
|
private |
Definition at line 321 of file Panzer_ModelEvaluator_Epetra.hpp.
|
mutableprivate |
Definition at line 323 of file Panzer_ModelEvaluator_Epetra.hpp.
|
mutableprivate |
Definition at line 324 of file Panzer_ModelEvaluator_Epetra.hpp.