[P]arallel [Hi]gh-order [Li]brary for [P]DEs  Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
PHiLiP::ROLObjectiveSimOpt< dim, nstate > Class Template Reference

Interface between the ROL::Objective_SimOpt PHiLiP::Functional. More...

#include <rol_objective.hpp>

Inheritance diagram for PHiLiP::ROLObjectiveSimOpt< dim, nstate >:
Collaboration diagram for PHiLiP::ROLObjectiveSimOpt< dim, nstate >:

Public Member Functions

 ROLObjectiveSimOpt (Functional< dim, nstate, double > &_functional, std::shared_ptr< BaseParameterization< dim >> _design_parameterization, std::shared_ptr< dealii::TrilinosWrappers::SparseMatrix > precomputed_dXvdXp=nullptr)
 Constructor.
 
void update (const ROL::Vector< double > &des_var_sim, const ROL::Vector< double > &des_var_ctl, bool flag=true, int iter=-1) override
 Update the simulation and control variables.
 
double value (const ROL::Vector< double > &des_var_sim, const ROL::Vector< double > &des_var_ctl, double &) override
 Returns the value of the Functional object.
 
void gradient_1 (ROL::Vector< double > &g, const ROL::Vector< double > &des_var_sim, const ROL::Vector< double > &des_var_ctl, double &) override
 Returns the gradient w. r. t. the simulation variables of the Functional object.
 
void gradient_2 (ROL::Vector< double > &g, const ROL::Vector< double > &des_var_sim, const ROL::Vector< double > &des_var_ctl, double &) override
 Returns the gradient w. r. t. the control variables of the Functional object.
 
void hessVec_11 (ROL::Vector< double > &output_vector, const ROL::Vector< double > &input_vector, const ROL::Vector< double > &des_var_sim, const ROL::Vector< double > &des_var_ctl, double &) override
 Applies the functional Hessian w. r. t. the simulation variables onto a vector. More...
 
void hessVec_12 (ROL::Vector< double > &output_vector, const ROL::Vector< double > &input_vector, const ROL::Vector< double > &des_var_sim, const ROL::Vector< double > &des_var_ctl, double &) override
 Applies the functional Hessian w. r. t. the simulation and control variables onto a vector. More...
 
void hessVec_21 (ROL::Vector< double > &output_vector, const ROL::Vector< double > &input_vector, const ROL::Vector< double > &des_var_sim, const ROL::Vector< double > &des_var_ctl, double &) override
 Applies the functional Hessian w. r. t. the control and simulation variables onto a vector. More...
 
void hessVec_22 (ROL::Vector< double > &output_vector, const ROL::Vector< double > &input_vector, const ROL::Vector< double > &des_var_sim, const ROL::Vector< double > &des_var_ctl, double &) override
 Applies the functional Hessian w. r. t. the control variables onto a vector. More...
 

Public Attributes

dealii::TrilinosWrappers::SparseMatrix dXvdXp
 Stored mesh sensitivity evaluated at initialization.
 

Private Attributes

Functional< dim, nstate, double > & functional
 Functional to be evaluated.
 
std::shared_ptr< BaseParameterization< dim > > design_parameterization
 Design parameterization to link design variables with volume nodes.
 
dealii::LinearAlgebra::distributed::Vector< double > design_var
 Design variables.
 

Detailed Description

template<int dim, int nstate>
class PHiLiP::ROLObjectiveSimOpt< dim, nstate >

Interface between the ROL::Objective_SimOpt PHiLiP::Functional.

Uses FFD to parametrize the geometry. An update on the simulation variables updates the DGBase object within the Functional and an update on the control variables updates the FreeFormDeformation object, which in turn, updates the DGBase.HighOrderGrid.volume_nodes.

Definition at line 23 of file rol_objective.hpp.

Member Function Documentation

◆ hessVec_11()

template<int dim, int nstate>
void PHiLiP::ROLObjectiveSimOpt< dim, nstate >::hessVec_11 ( ROL::Vector< double > &  output_vector,
const ROL::Vector< double > &  input_vector,
const ROL::Vector< double > &  des_var_sim,
const ROL::Vector< double > &  des_var_ctl,
double &   
)
override

Applies the functional Hessian w. r. t. the simulation variables onto a vector.

More specifically,

\[ \mathbf{v}_{output} = \left( \frac{\partial^2 \mathcal{I}}{\partial w \partial w} \right)^T \mathbf{v}_{input} \]

Definition at line 123 of file rol_objective.cpp.

◆ hessVec_12()

template<int dim, int nstate>
void PHiLiP::ROLObjectiveSimOpt< dim, nstate >::hessVec_12 ( ROL::Vector< double > &  output_vector,
const ROL::Vector< double > &  input_vector,
const ROL::Vector< double > &  des_var_sim,
const ROL::Vector< double > &  des_var_ctl,
double &   
)
override

Applies the functional Hessian w. r. t. the simulation and control variables onto a vector.

More specifically,

\[ \mathbf{v}_{output} = \left( \frac{\partial^2 \mathcal{I}}{\partial w \partial x} \right)^T \mathbf{v}_{input} \]

Definition at line 146 of file rol_objective.cpp.

◆ hessVec_21()

template<int dim, int nstate>
void PHiLiP::ROLObjectiveSimOpt< dim, nstate >::hessVec_21 ( ROL::Vector< double > &  output_vector,
const ROL::Vector< double > &  input_vector,
const ROL::Vector< double > &  des_var_sim,
const ROL::Vector< double > &  des_var_ctl,
double &   
)
override

Applies the functional Hessian w. r. t. the control and simulation variables onto a vector.

More specifically,

\[ \mathbf{v}_{output} = \left( \frac{\partial^2 \mathcal{I}}{\partial x \partial w} \right)^T \mathbf{v}_{input} \]

Definition at line 198 of file rol_objective.cpp.

◆ hessVec_22()

template<int dim, int nstate>
void PHiLiP::ROLObjectiveSimOpt< dim, nstate >::hessVec_22 ( ROL::Vector< double > &  output_vector,
const ROL::Vector< double > &  input_vector,
const ROL::Vector< double > &  des_var_sim,
const ROL::Vector< double > &  des_var_ctl,
double &   
)
override

Applies the functional Hessian w. r. t. the control variables onto a vector.

More specifically,

\[ \mathbf{v}_{output} = \left( \frac{\partial^2 \mathcal{I}}{\partial x \partial x} \right)^T \mathbf{v}_{input} \]

Definition at line 243 of file rol_objective.cpp.


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