|
ROL
|
Poisson material inversion. More...
#include <ROL_PoissonInversion.hpp>
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 void | prox (Vector< Real > &Pv, const Vector< Real > &v, Real t, Real &tol) |
| Compute the proximity operator. | |
| virtual void | proxJacVec (Vector< Real > &Jv, const Vector< Real > &v, const Vector< Real > &x, Real t, Real &tol) |
| Apply the Jacobian of the proximity operator. | |
| 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 std::vector< std::vector< Real > > | checkProxJacVec (const Vector< Real > &x, const Vector< Real > &v, Real t=Real(1), bool printToStream=true, std::ostream &outStream=std::cout, int numSteps=ROL_NUM_CHECKDERIV_STEPS) |
| Finite-difference proximity operator Jacobian-applied-to-vector 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 34 of file ROL_PoissonInversion.hpp.
|
private |
Definition at line 36 of file ROL_PoissonInversion.hpp.
|
private |
Definition at line 37 of file ROL_PoissonInversion.hpp.
|
private |
Definition at line 38 of file ROL_PoissonInversion.hpp.
|
private |
Definition at line 40 of file ROL_PoissonInversion.hpp.
|
inline |
Definition at line 67 of file ROL_PoissonInversion.hpp.
References alpha_, eps_, hu_, hz_, nu_, nz_, and reg_type_.
Referenced by invHessVec().
|
inlineprivate |
Definition at line 54 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 59 of file ROL_PoissonInversion.hpp.
References getVector().
|
inline |
Definition at line 72 of file ROL_PoissonInversion.hpp.
References alpha_, eps_, getVector(), hz_, nz_, and reg_type_.
Referenced by value().
|
inline |
Definition at line 94 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 133 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 180 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 199 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 226 of file ROL_PoissonInversion.hpp.
Referenced by solve_adjoint_equation(), and value().
|
inline |
Definition at line 230 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 256 of file ROL_PoissonInversion.hpp.
References getVector(), hu_, and nz_.
Referenced by gradient().
|
inline |
Definition at line 278 of file ROL_PoissonInversion.hpp.
References getVector(), hu_, and nz_.
|
inline |
Definition at line 301 of file ROL_PoissonInversion.hpp.
References hu_, nu_, ROL::ROL_EPSILON(), and solve_poisson().
Referenced by gradient(), and value().
|
inline |
Definition at line 327 of file ROL_PoissonInversion.hpp.
References apply_mass(), evaluate_target(), getVector(), hu_, nu_, and solve_poisson().
Referenced by gradient().
|
inline |
Definition at line 344 of file ROL_PoissonInversion.hpp.
References apply_linearized_control_operator(), nu_, and solve_poisson().
|
inline |
Definition at line 353 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 367 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 391 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 456 of file ROL_PoissonInversion.hpp.
References ROL::computeDenseHessian(), ROL::computeEigenvalues(), ROL::computeInverse(), dim, getVector(), and Objective_PoissonInversion().
|
private |
Definition at line 43 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 44 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 46 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 47 of file ROL_PoissonInversion.hpp.
Referenced by Objective_PoissonInversion(), reg_gradient(), reg_hessVec(), and reg_value().
|
private |
Definition at line 49 of file ROL_PoissonInversion.hpp.
Referenced by Objective_PoissonInversion(), reg_gradient(), reg_hessVec(), and reg_value().
|
private |
Definition at line 51 of file ROL_PoissonInversion.hpp.
Referenced by Objective_PoissonInversion(), reg_gradient(), reg_hessVec(), and reg_value().
|
private |
Definition at line 52 of file ROL_PoissonInversion.hpp.
Referenced by Objective_PoissonInversion(), reg_gradient(), reg_hessVec(), and reg_value().