|
ROL
|
Poisson material inversion. More...
#include <ROL_PoissonInversion.hpp>
Inheritance diagram for ROL::ZOO::Objective_PoissonInversion< Real >:Public Member Functions | |
| Objective_PoissonInversion (uint nz=32, Real alpha=1.e-4) | |
| Real | reg_value (const Vector< Real > &z) |
| void | reg_gradient (Vector< Real > &g, const Vector< Real > &z) |
| void | reg_hessVec (Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &z) |
| void | apply_mass (Vector< Real > &Mf, const Vector< Real > &f) |
| void | solve_poisson (Vector< Real > &u, const Vector< Real > &z, Vector< Real > &b) |
| Real | evaluate_target (Real x) |
| void | apply_linearized_control_operator (Vector< Real > &Bd, const Vector< Real > &z, const Vector< Real > &d, const Vector< Real > &u) |
| void | apply_transposed_linearized_control_operator (Vector< Real > &Bd, const Vector< Real > &z, const Vector< Real > &d, const Vector< Real > &u) |
| void | apply_transposed_linearized_control_operator_2 (Vector< Real > &Bd, const Vector< Real > &z, const Vector< Real > &v, const Vector< Real > &d, const Vector< Real > &u) |
| void | solve_state_equation (Vector< Real > &u, const Vector< Real > &z) |
| void | solve_adjoint_equation (Vector< Real > &p, const Vector< Real > &u, const Vector< Real > &z) |
| void | solve_state_sensitivity_equation (Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z) |
| void | solve_adjoint_sensitivity_equation (Vector< Real > &q, const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &p, const Vector< Real > &u, const Vector< Real > &z) |
| Real | value (const Vector< Real > &z, Real &tol) |
| void | gradient (Vector< Real > &g, const Vector< Real > &z, Real &tol) |
| void | invHessVec (Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) |
Public Member Functions inherited from ROL::ROL::Objective< Real > | |
| virtual | ~Objective () |
| Objective () | |
| virtual void | update (const Vector< Real > &x, UpdateType type, int iter=-1) |
| Update objective function. | |
| virtual void | update (const Vector< Real > &x, bool flag=true, int iter=-1) |
| Update objective function. | |
| virtual Real | value (const Vector< Real > &x, Real &tol)=0 |
| Compute value. | |
| virtual void | gradient (Vector< Real > &g, const Vector< Real > &x, Real &tol) |
| Compute gradient. | |
| virtual Real | dirDeriv (const Vector< Real > &x, const Vector< Real > &d, Real &tol) |
| Compute directional derivative. | |
| virtual void | hessVec (Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) |
| Apply Hessian approximation to vector. | |
| virtual void | invHessVec (Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) |
| Apply inverse Hessian approximation to vector. | |
| virtual void | precond (Vector< Real > &Pv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) |
| Apply preconditioner to vector. | |
| virtual std::vector< std::vector< Real > > | checkGradient (const Vector< Real > &x, const Vector< Real > &d, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
| Finite-difference gradient check. | |
| virtual std::vector< std::vector< Real > > | checkGradient (const Vector< Real > &x, const Vector< Real > &g, const Vector< Real > &d, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
| Finite-difference gradient check. | |
| virtual std::vector< std::vector< Real > > | checkGradient (const Vector< Real > &x, const Vector< Real > &d, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
| Finite-difference gradient check with specified step sizes. | |
| virtual std::vector< std::vector< Real > > | checkGradient (const Vector< Real > &x, const Vector< Real > &g, const Vector< Real > &d, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
| Finite-difference gradient check with specified step sizes. | |
| virtual std::vector< std::vector< Real > > | checkHessVec (const Vector< Real > &x, const Vector< Real > &v, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
| Finite-difference Hessian-applied-to-vector check. | |
| virtual std::vector< std::vector< Real > > | checkHessVec (const Vector< Real > &x, const Vector< Real > &hv, const Vector< Real > &v, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
| Finite-difference Hessian-applied-to-vector check. | |
| virtual std::vector< std::vector< Real > > | checkHessVec (const Vector< Real > &x, const Vector< Real > &v, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
| Finite-difference Hessian-applied-to-vector check with specified step sizes. | |
| virtual std::vector< std::vector< Real > > | checkHessVec (const Vector< Real > &x, const Vector< Real > &hv, const Vector< Real > &v, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
| Finite-difference Hessian-applied-to-vector check with specified step sizes. | |
| virtual std::vector< Real > | checkHessSym (const Vector< Real > &x, const Vector< Real > &v, const Vector< Real > &w, const bool printToStream=true, std::ostream &outStream=std::cout) |
| Hessian symmetry check. | |
| virtual std::vector< Real > | checkHessSym (const Vector< Real > &x, const Vector< Real > &hv, const Vector< Real > &v, const Vector< Real > &w, const bool printToStream=true, std::ostream &outStream=std::cout) |
| Hessian symmetry check. | |
| virtual void | setParameter (const std::vector< Real > ¶m) |
Private Types | |
| typedef std::vector< Real > | vector |
| typedef Vector< Real > | V |
| typedef StdVector< Real > | SV |
| typedef vector::size_type | uint |
Private Member Functions | |
| ROL::Ptr< const vector > | getVector (const V &x) |
| ROL::Ptr< vector > | getVector (V &x) |
Private Attributes | |
| uint | nu_ |
| uint | nz_ |
| Real | hu_ |
| Real | hz_ |
| Real | alpha_ |
| Real | eps_ |
| int | reg_type_ |
Additional Inherited Members | |
Protected Member Functions inherited from ROL::ROL::Objective< Real > | |
| const std::vector< Real > | getParameter (void) const |
Poisson material inversion.
Definition at line 68 of file ROL_PoissonInversion.hpp.
|
private |
Definition at line 70 of file ROL_PoissonInversion.hpp.
|
private |
Definition at line 71 of file ROL_PoissonInversion.hpp.
|
private |
Definition at line 72 of file ROL_PoissonInversion.hpp.
|
private |
Definition at line 74 of file ROL_PoissonInversion.hpp.
|
inline |
Definition at line 101 of file ROL_PoissonInversion.hpp.
References alpha_, eps_, hu_, hz_, nu_, nz_, and reg_type_.
Referenced by invHessVec().
|
inlineprivate |
Definition at line 88 of file ROL_PoissonInversion.hpp.
References getVector().
Referenced by apply_linearized_control_operator(), apply_mass(), apply_transposed_linearized_control_operator(), apply_transposed_linearized_control_operator_2(), getVector(), getVector(), invHessVec(), reg_gradient(), reg_hessVec(), reg_value(), solve_adjoint_equation(), and solve_poisson().
|
inlineprivate |
Definition at line 93 of file ROL_PoissonInversion.hpp.
References getVector().
|
inline |
Definition at line 106 of file ROL_PoissonInversion.hpp.
References alpha_, eps_, getVector(), hz_, nz_, and reg_type_.
Referenced by value().
|
inline |
Definition at line 128 of file ROL_PoissonInversion.hpp.
References alpha_, eps_, getVector(), hz_, nz_, reg_type_, ROL::Vector< Real >::scale(), and ROL::Vector< Real >::set().
Referenced by gradient().
|
inline |
Definition at line 167 of file ROL_PoissonInversion.hpp.
References alpha_, eps_, getVector(), hz_, nz_, reg_type_, ROL::Vector< Real >::scale(), and ROL::Vector< Real >::set().
|
inline |
Definition at line 214 of file ROL_PoissonInversion.hpp.
References getVector(), hu_, and nu_.
Referenced by solve_adjoint_equation(), solve_adjoint_sensitivity_equation(), and value().
|
inline |
Definition at line 233 of file ROL_PoissonInversion.hpp.
References getVector(), hu_, nu_, and ROL::Vector< Real >::set().
Referenced by solve_adjoint_equation(), solve_adjoint_sensitivity_equation(), solve_state_equation(), and solve_state_sensitivity_equation().
|
inline |
Definition at line 260 of file ROL_PoissonInversion.hpp.
Referenced by solve_adjoint_equation(), and value().
|
inline |
Definition at line 264 of file ROL_PoissonInversion.hpp.
References getVector(), hu_, and nu_.
Referenced by solve_adjoint_sensitivity_equation(), and solve_state_sensitivity_equation().
|
inline |
Definition at line 290 of file ROL_PoissonInversion.hpp.
References getVector(), hu_, and nz_.
Referenced by gradient().
|
inline |
Definition at line 312 of file ROL_PoissonInversion.hpp.
References getVector(), hu_, and nz_.
|
inline |
Definition at line 335 of file ROL_PoissonInversion.hpp.
References hu_, nu_, ROL::ROL_EPSILON(), and solve_poisson().
Referenced by gradient(), and value().
|
inline |
Definition at line 361 of file ROL_PoissonInversion.hpp.
References apply_mass(), evaluate_target(), getVector(), hu_, nu_, and solve_poisson().
Referenced by gradient().
|
inline |
Definition at line 378 of file ROL_PoissonInversion.hpp.
References apply_linearized_control_operator(), nu_, and solve_poisson().
|
inline |
Definition at line 387 of file ROL_PoissonInversion.hpp.
References apply_linearized_control_operator(), apply_mass(), ROL::StdVector< Real, Element >::axpy(), nu_, and solve_poisson().
|
inline |
Definition at line 401 of file ROL_PoissonInversion.hpp.
References apply_mass(), ROL::StdVector< Real, Element >::clone(), evaluate_target(), hu_, nu_, reg_value(), and solve_state_equation().
|
inline |
Definition at line 425 of file ROL_PoissonInversion.hpp.
References apply_transposed_linearized_control_operator(), nu_, nz_, ROL::Vector< Real >::plus(), reg_gradient(), solve_adjoint_equation(), and solve_state_equation().
|
inline |
Definition at line 490 of file ROL_PoissonInversion.hpp.
References ROL::computeDenseHessian(), ROL::computeEigenvalues(), ROL::computeInverse(), dim, getVector(), and Objective_PoissonInversion().
|
private |
Definition at line 77 of file ROL_PoissonInversion.hpp.
Referenced by apply_linearized_control_operator(), apply_mass(), gradient(), Objective_PoissonInversion(), solve_adjoint_equation(), solve_adjoint_sensitivity_equation(), solve_poisson(), solve_state_equation(), solve_state_sensitivity_equation(), and value().
|
private |
Definition at line 78 of file ROL_PoissonInversion.hpp.
Referenced by apply_transposed_linearized_control_operator(), apply_transposed_linearized_control_operator_2(), gradient(), Objective_PoissonInversion(), reg_gradient(), reg_hessVec(), and reg_value().
|
private |
Definition at line 80 of file ROL_PoissonInversion.hpp.
Referenced by apply_linearized_control_operator(), apply_mass(), apply_transposed_linearized_control_operator(), apply_transposed_linearized_control_operator_2(), Objective_PoissonInversion(), solve_adjoint_equation(), solve_poisson(), solve_state_equation(), and value().
|
private |
Definition at line 81 of file ROL_PoissonInversion.hpp.
Referenced by Objective_PoissonInversion(), reg_gradient(), reg_hessVec(), and reg_value().
|
private |
Definition at line 83 of file ROL_PoissonInversion.hpp.
Referenced by Objective_PoissonInversion(), reg_gradient(), reg_hessVec(), and reg_value().
|
private |
Definition at line 85 of file ROL_PoissonInversion.hpp.
Referenced by Objective_PoissonInversion(), reg_gradient(), reg_hessVec(), and reg_value().
|
private |
Definition at line 86 of file ROL_PoissonInversion.hpp.
Referenced by Objective_PoissonInversion(), reg_gradient(), reg_hessVec(), and reg_value().