|
ROL
|
#include <example_02.hpp>
Inheritance diagram for DiffusionConstraint< Real >:Public Member Functions | |
| DiffusionConstraint (const ROL::Ptr< FEM< Real > > &FEM) | |
| int | getNumSolves (void) const |
| void | value (ROL::Vector< Real > &c, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol) |
| void | solve (ROL::Vector< Real > &c, ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol) |
| void | applyJacobian_1 (ROL::Vector< Real > &jv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol) |
| void | applyJacobian_2 (ROL::Vector< Real > &jv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol) |
| void | applyInverseJacobian_1 (ROL::Vector< Real > &jv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol) |
| void | applyAdjointJacobian_1 (ROL::Vector< Real > &jv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol) |
| void | applyAdjointJacobian_2 (ROL::Vector< Real > &jv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol) |
| void | applyInverseAdjointJacobian_1 (ROL::Vector< Real > &jv, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol) |
| void | applyAdjointHessian_11 (ROL::Vector< Real > &ahwv, const ROL::Vector< Real > &w, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol) |
| void | applyAdjointHessian_12 (ROL::Vector< Real > &ahwv, const ROL::Vector< Real > &w, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol) |
| void | applyAdjointHessian_21 (ROL::Vector< Real > &ahwv, const ROL::Vector< Real > &w, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol) |
| void | applyAdjointHessian_22 (ROL::Vector< Real > &ahwv, const ROL::Vector< Real > &w, const ROL::Vector< Real > &v, const ROL::Vector< Real > &u, const ROL::Vector< Real > &z, Real &tol) |
Public Member Functions inherited from Constraint_SimOpt< Real > | |
| Constraint_SimOpt () | |
| virtual void | update (const Vector< Real > &u, const Vector< Real > &z, bool flag=true, int iter=-1) |
| Update constraint functions. x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count. | |
| virtual void | update (const Vector< Real > &u, const Vector< Real > &z, UpdateType type, int iter=-1) |
| virtual void | update (const Vector< Real > &x, bool flag=true, int iter=-1) |
| Update constraint functions. x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count. | |
| virtual void | update (const Vector< Real > &x, UpdateType type, int iter=-1) |
| virtual void | update_1 (const Vector< Real > &u, bool flag=true, int iter=-1) |
| Update constraint functions with respect to Sim variable. x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count. | |
| virtual void | update_1 (const Vector< Real > &u, UpdateType type, int iter=-1) |
| virtual void | update_2 (const Vector< Real > &z, bool flag=true, int iter=-1) |
| Update constraint functions with respect to Opt variable. x is the optimization variable, flag = true if optimization variable is changed, iter is the outer algorithm iterations count. | |
| virtual void | update_2 (const Vector< Real > &z, UpdateType type, int iter=-1) |
| virtual void | solve_update (const Vector< Real > &u, const Vector< Real > &z, UpdateType type, int iter=-1) |
| Update SimOpt constraint during solve (disconnected from optimization updates). | |
| virtual void | value (Vector< Real > &c, const Vector< Real > &u, const Vector< Real > &z, Real &tol)=0 |
| Evaluate the constraint operator \(c:\mathcal{U}\times\mathcal{Z} \rightarrow \mathcal{C}\) at \((u,z)\). | |
| virtual void | value (Vector< Real > &c, const Vector< Real > &x, Real &tol) |
| virtual void | solve (Vector< Real > &c, Vector< Real > &u, const Vector< Real > &z, Real &tol) |
| Given \(z\), solve \(c(u,z)=0\) for \(u\). | |
| virtual void | setSolveParameters (ParameterList &parlist) |
| Set solve parameters. | |
| virtual void | applyJacobian_1 (Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) |
| Apply the partial constraint Jacobian at \((u,z)\), \(c_u(u,z) \in L(\mathcal{U}, \mathcal{C})\), to the vector \(v\). | |
| virtual void | applyJacobian_2 (Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) |
| Apply the partial constraint Jacobian at \((u,z)\), \(c_z(u,z) \in L(\mathcal{Z}, \mathcal{C})\), to the vector \(v\). | |
| virtual void | applyInverseJacobian_1 (Vector< Real > &ijv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) |
| Apply the inverse partial constraint Jacobian at \((u,z)\), \(c_u(u,z)^{-1} \in L(\mathcal{C}, \mathcal{U})\), to the vector \(v\). | |
| virtual void | applyAdjointJacobian_1 (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) |
| Apply the adjoint of the partial constraint Jacobian at \((u,z)\), \(c_u(u,z)^* \in L(\mathcal{C}^*, \mathcal{U}^*)\), to the vector \(v\). This is the primary interface. | |
| virtual void | applyAdjointJacobian_1 (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &dualv, Real &tol) |
| Apply the adjoint of the partial constraint Jacobian at \((u,z)\), \(c_u(u,z)^* \in L(\mathcal{C}^*, \mathcal{U}^*)\), to the vector \(v\). This is the secondary interface, for use with dual spaces where the user does not define the dual() operation. | |
| virtual void | applyAdjointJacobian_2 (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) |
| Apply the adjoint of the partial constraint Jacobian at \((u,z)\), \(c_z(u,z)^* \in L(\mathcal{C}^*, \mathcal{Z}^*)\), to vector \(v\). This is the primary interface. | |
| virtual void | applyAdjointJacobian_2 (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &dualv, Real &tol) |
| Apply the adjoint of the partial constraint Jacobian at \((u,z)\), \(c_z(u,z)^* \in L(\mathcal{C}^*, \mathcal{Z}^*)\), to vector \(v\). This is the secondary interface, for use with dual spaces where the user does not define the dual() operation. | |
| virtual void | applyInverseAdjointJacobian_1 (Vector< Real > &iajv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) |
| Apply the inverse of the adjoint of the partial constraint Jacobian at \((u,z)\), \(c_u(u,z)^{-*} \in L(\mathcal{U}^*, \mathcal{C}^*)\), to the vector \(v\). | |
| virtual void | applyAdjointHessian_11 (Vector< Real > &ahwv, const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) |
| Apply the simulation-space derivative of the adjoint of the constraint simulation-space Jacobian at \((u,z)\) to the vector \(w\) in the direction \(v\), according to \(v\mapsto c_{uu}(u,z)(v,\cdot)^*w\). | |
| virtual void | applyAdjointHessian_12 (Vector< Real > &ahwv, const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) |
| Apply the optimization-space derivative of the adjoint of the constraint simulation-space Jacobian at \((u,z)\) to the vector \(w\) in the direction \(v\), according to \(v\mapsto c_{uz}(u,z)(v,\cdot)^*w\). | |
| virtual void | applyAdjointHessian_21 (Vector< Real > &ahwv, const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) |
| Apply the simulation-space derivative of the adjoint of the constraint optimization-space Jacobian at \((u,z)\) to the vector \(w\) in the direction \(v\), according to \(v\mapsto c_{zu}(u,z)(v,\cdot)^*w\). | |
| virtual void | applyAdjointHessian_22 (Vector< Real > &ahwv, const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, Real &tol) |
| Apply the optimization-space derivative of the adjoint of the constraint optimization-space Jacobian at \((u,z)\) to the vector \(w\) in the direction \(v\), according to \(v\mapsto c_{zz}(u,z)(v,\cdot)^*w\). | |
| virtual std::vector< Real > | solveAugmentedSystem (Vector< Real > &v1, Vector< Real > &v2, const Vector< Real > &b1, const Vector< Real > &b2, const Vector< Real > &x, Real &tol) |
| Approximately solves the augmented system | |
| virtual void | applyPreconditioner (Vector< Real > &pv, const Vector< Real > &v, const Vector< Real > &x, const Vector< Real > &g, Real &tol) |
| Apply a constraint preconditioner at \(x\), \(P(x) \in L(\mathcal{C}, \mathcal{C})\), to vector \(v\). In general, this preconditioner satisfies the following relationship: | |
| virtual void | applyJacobian (Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) |
| virtual void | applyAdjointJacobian (Vector< Real > &ajv, const Vector< Real > &v, const Vector< Real > &x, Real &tol) |
| virtual void | applyAdjointHessian (Vector< Real > &ahwv, const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &x, Real &tol) |
| virtual Real | checkSolve (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &c, const bool printToStream=true, std::ostream &outStream=std::cout) |
| virtual Real | checkAdjointConsistencyJacobian_1 (const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const bool printToStream=true, std::ostream &outStream=std::cout) |
| Check the consistency of the Jacobian and its adjoint. This is the primary interface. | |
| virtual Real | checkAdjointConsistencyJacobian_1 (const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &dualw, const Vector< Real > &dualv, const bool printToStream=true, std::ostream &outStream=std::cout) |
| Check the consistency of the Jacobian and its adjoint. This is the secondary interface, for use with dual spaces where the user does not define the dual() operation. | |
| virtual Real | checkAdjointConsistencyJacobian_2 (const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const bool printToStream=true, std::ostream &outStream=std::cout) |
| Check the consistency of the Jacobian and its adjoint. This is the primary interface. | |
| virtual Real | checkAdjointConsistencyJacobian_2 (const Vector< Real > &w, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &dualw, const Vector< Real > &dualv, const bool printToStream=true, std::ostream &outStream=std::cout) |
| Check the consistency of the Jacobian and its adjoint. This is the secondary interface, for use with dual spaces where the user does not define the dual() operation. | |
| virtual Real | checkInverseJacobian_1 (const Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const bool printToStream=true, std::ostream &outStream=std::cout) |
| virtual Real | checkInverseAdjointJacobian_1 (const Vector< Real > &jv, const Vector< Real > &v, const Vector< Real > &u, const Vector< Real > &z, const bool printToStream=true, std::ostream &outStream=std::cout) |
| std::vector< std::vector< Real > > | checkApplyJacobian_1 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const Vector< Real > &jv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
| std::vector< std::vector< Real > > | checkApplyJacobian_1 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const Vector< Real > &jv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
| std::vector< std::vector< Real > > | checkApplyJacobian_2 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const Vector< Real > &jv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
| std::vector< std::vector< Real > > | checkApplyJacobian_2 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &v, const Vector< Real > &jv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
| std::vector< std::vector< Real > > | checkApplyAdjointHessian_11 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
| std::vector< std::vector< Real > > | checkApplyAdjointHessian_11 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
| std::vector< std::vector< Real > > | checkApplyAdjointHessian_21 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
| \( u\in U \), \( z\in Z \), \( p\in C^\ast \), \( v \in U \), \( hv \in U^\ast \) | |
| std::vector< std::vector< Real > > | checkApplyAdjointHessian_21 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
| \( u\in U \), \( z\in Z \), \( p\in C^\ast \), \( v \in U \), \( hv \in U^\ast \) | |
| std::vector< std::vector< Real > > | checkApplyAdjointHessian_12 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
| \( u\in U \), \( z\in Z \), \( p\in C^\ast \), \( v \in U \), \( hv \in U^\ast \) | |
| std::vector< std::vector< Real > > | checkApplyAdjointHessian_12 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
| std::vector< std::vector< Real > > | checkApplyAdjointHessian_22 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const bool printToStream=true, std::ostream &outStream=std::cout, const int numSteps=ROL_NUM_CHECKDERIV_STEPS, const int order=1) |
| std::vector< std::vector< Real > > | checkApplyAdjointHessian_22 (const Vector< Real > &u, const Vector< Real > &z, const Vector< Real > &p, const Vector< Real > &v, const Vector< Real > &hv, const std::vector< Real > &steps, const bool printToStream=true, std::ostream &outStream=std::cout, const int order=1) |
Private Member Functions | |
| void | plus (std::vector< Real > &u, const std::vector< Real > &s, const Real alpha=1.0) |
| void | scale (std::vector< Real > &u, const Real alpha=0.0) |
Private Attributes | |
| const ROL::Ptr< FEM< Real > > | FEM_ |
| int | num_solves_ |
Additional Inherited Members | |
Protected Attributes inherited from Constraint_SimOpt< Real > | |
| Real | atol_ |
| Real | rtol_ |
| Real | stol_ |
| Real | factor_ |
| Real | decr_ |
| int | maxit_ |
| bool | print_ |
| bool | zero_ |
| int | solverType_ |
| bool | firstSolve_ |
Definition at line 403 of file poisson-control/example_02.hpp.
|
inline |
Definition at line 432 of file poisson-control/example_02.hpp.
|
inlineprivate |
Definition at line 413 of file poisson-control/example_02.hpp.
Referenced by DiffusionConstraint< Real >::solve(), and DiffusionConstraint< Real >::value().
|
inlineprivate |
Definition at line 421 of file poisson-control/example_02.hpp.
Referenced by DiffusionConstraint< Real >::applyAdjointJacobian_2(), and DiffusionConstraint< Real >::applyJacobian_2().
|
inline |
Definition at line 434 of file poisson-control/example_02.hpp.
References DiffusionConstraint< Real >::num_solves_.
|
inline |
Definition at line 438 of file poisson-control/example_02.hpp.
References DiffusionConstraint< Real >::FEM_, and DiffusionConstraint< Real >::plus().
|
inline |
Definition at line 454 of file poisson-control/example_02.hpp.
References DiffusionConstraint< Real >::FEM_, DiffusionConstraint< Real >::num_solves_, DiffusionConstraint< Real >::plus(), and value.
|
inline |
Definition at line 476 of file poisson-control/example_02.hpp.
References DiffusionConstraint< Real >::FEM_.
Referenced by DiffusionConstraint< Real >::applyAdjointJacobian_1().
|
inline |
Definition at line 483 of file poisson-control/example_02.hpp.
References DiffusionConstraint< Real >::FEM_, and DiffusionConstraint< Real >::scale().
|
inline |
Definition at line 491 of file poisson-control/example_02.hpp.
References DiffusionConstraint< Real >::FEM_, and DiffusionConstraint< Real >::num_solves_.
Referenced by DiffusionConstraint< Real >::applyInverseAdjointJacobian_1().
|
inline |
Definition at line 505 of file poisson-control/example_02.hpp.
References DiffusionConstraint< Real >::applyJacobian_1().
|
inline |
Definition at line 510 of file poisson-control/example_02.hpp.
References DiffusionConstraint< Real >::FEM_, and DiffusionConstraint< Real >::scale().
|
inline |
Definition at line 518 of file poisson-control/example_02.hpp.
References DiffusionConstraint< Real >::applyInverseJacobian_1().
|
inline |
Definition at line 523 of file poisson-control/example_02.hpp.
References ROL::Vector< Real >::zero().
|
inline |
Definition at line 528 of file poisson-control/example_02.hpp.
References ROL::Vector< Real >::zero().
|
inline |
Definition at line 533 of file poisson-control/example_02.hpp.
References ROL::Vector< Real >::zero().
|
inline |
Definition at line 538 of file poisson-control/example_02.hpp.
References ROL::Vector< Real >::zero().
|
private |
Definition at line 405 of file poisson-control/example_02.hpp.
Referenced by DiffusionConstraint< Real >::applyAdjointJacobian_2(), DiffusionConstraint< Real >::applyInverseJacobian_1(), DiffusionConstraint< Real >::applyJacobian_1(), DiffusionConstraint< Real >::applyJacobian_2(), DiffusionConstraint< Real >::solve(), and DiffusionConstraint< Real >::value().
|
private |
Definition at line 406 of file poisson-control/example_02.hpp.
Referenced by DiffusionConstraint< Real >::applyInverseJacobian_1(), DiffusionConstraint< Real >::getNumSolves(), and DiffusionConstraint< Real >::solve().