MOOCHO (Single Doxygen Collection)
Version of the Day
|
Checks for descent in the decomposed equality constraints with respect to the range space step Ypy
using finite differences.
More...
#include <MoochoPack_CheckDescentQuasiNormalStep_Step.hpp>
Public Member Functions | |
STANDARD_COMPOSITION_MEMBERS (CalcFiniteDiffProd, calc_fd_prod) | |
Set the object that will compute the finite difference products. More... | |
CheckDescentQuasiNormalStep_Step (const calc_fd_prod_ptr_t &calc_fd_prod) | |
Constructor. More... | |
Public Member Functions inherited from IterationPack::AlgorithmStep | |
virtual | ~AlgorithmStep () |
virtual void | initialize_step (Algorithm &algo, poss_type step_poss, EDoStepType type, poss_type assoc_step_poss) |
Called by Algorithm just before the algorithm is run. More... | |
virtual void | inform_updated (Algorithm &algo, poss_type step_poss, EDoStepType type, poss_type assoc_step_poss) |
Called by Algorithm to inform when a runtime configuration change is finihed. More... | |
virtual void | finalize_step (Algorithm &algo, poss_type step_poss, EDoStepType type, poss_type assoc_step_poss) |
Called by Algorithm just after an algorithm is terminiated. More... | |
Overridden from AlgorithmStep | |
bool | do_step (Algorithm &algo, poss_type step_poss, IterationPack::EDoStepType type, poss_type assoc_step_poss) |
void | print_step (const Algorithm &algo, poss_type step_poss, IterationPack::EDoStepType type, poss_type assoc_step_poss, std::ostream &out, const std::string &leading_str) const |
Additional Inherited Members | |
Public Types inherited from IterationPack::AlgorithmStep | |
typedef size_t | poss_type |
Checks for descent in the decomposed equality constraints with respect to the range space step Ypy
using finite differences.
This step class checks for descent in the feasibility measure q(x) = 1/2 * cd(x)'*cd(x) <: REAL
of the decomposed equality constraints cd(x) = c(equ_decomp)(x)
with respect to the range space step Ypy_k
. The gradient of this feasibility measure is:
grad(q(x),x) = grad(cd(x),x) * cd(x)
Therefore, we can determine if we have descent by checking grad(q(x),x)'*Ypy_k = cd(x)'*grad(cd(x),x)'*Ypy_k< 0
. The product grad(c(x),x)'*Ypy_k
is approximated with finite differences using the class MoochoPack::CalcFiniteDiffProd
.
Definition at line 66 of file MoochoPack_CheckDescentQuasiNormalStep_Step.hpp.
MoochoPack::CheckDescentQuasiNormalStep_Step::CheckDescentQuasiNormalStep_Step | ( | const calc_fd_prod_ptr_t & | calc_fd_prod | ) |
Constructor.
Definition at line 58 of file MoochoPack_CheckDescentQuasiNormalStep_Step.cpp.
MoochoPack::CheckDescentQuasiNormalStep_Step::STANDARD_COMPOSITION_MEMBERS | ( | CalcFiniteDiffProd | , |
calc_fd_prod | |||
) |
Set the object that will compute the finite difference products.
|
virtual |
Implements IterationPack::AlgorithmStep.
Definition at line 64 of file MoochoPack_CheckDescentQuasiNormalStep_Step.cpp.
|
virtual |
Reimplemented from IterationPack::AlgorithmStep.
Definition at line 152 of file MoochoPack_CheckDescentQuasiNormalStep_Step.cpp.