Xyce
6.1
|
Adaptive step size control strategy More...
#include <N_NLS_LOCA_StepSizeControl.h>
Public Member Functions | |
StepSizeControl () | |
Constructor. More... | |
virtual | ~StepSizeControl () |
Destructor. More... | |
virtual NOX::Abstract::Group::ReturnType | reset (NOX::Parameter::List ¶ms) |
virtual NOX::Abstract::Group::ReturnType | compute (LOCA::Continuation::ExtendedGroup &curGroup, const LOCA::Continuation::ExtendedVector &predictor, const NOX::Solver::Generic &solver, const LOCA::Abstract::Iterator::StepStatus &stepStatus, const LOCA::Stepper &stepper, double &stepSize) |
virtual NOX::Abstract::Group::ReturnType | compute (LOCA::MultiContinuation::AbstractStrategy &curGroup, const LOCA::MultiContinuation::ExtendedVector &predictor, const NOX::Solver::Generic &solver, const LOCA::Abstract::Iterator::StepStatus &stepStatus, const LOCA::NewStepper &stepper, double &stepSize) |
virtual double | getPrevStepSize () const |
virtual double | getStartStepSize () const |
Protected Member Functions | |
virtual NOX::Abstract::Group::ReturnType | clipStepSize (double &stepSize) |
Protected Attributes | |
double | maxStepSize |
Maximum step size. More... | |
double | minStepSize |
Minimum step size. More... | |
double | startStepSize |
Initial step size. More... | |
double | failedFactor |
Factor by which step size is reduced after a failed step. More... | |
double | successFactor |
Factor by which step size is increased after a successful step. More... | |
double | prevStepSize |
Previous step size. More... | |
bool | isFirstStep |
Flag indicating if this is the first step. More... | |
double | agrValue |
Stores the aggressiveness factor ![]() | |
Adaptive step size control strategy
This class implements an adaptive step size control strategy derived from the strategy implemented in the LOCA::StepSize::Constant class. If the previous step was unsucessful, the step size is cut in half as in the constant strategy, but if the step was sucessful this strategy increases the step size based on the number of nonlinear solver iterations required in the previous step. In particular, the new step size is given by
where is an aggressiveness factor,
is the number of nonlinear solver iterations in the previous step, and
is the maximum number of nonlinear solver iterations.
The parameters used by this class supplied in the constructor or reset method are the same as used by the Constant class in addition to:
Definition at line 79 of file N_NLS_LOCA_StepSizeControl.h.
N_NLS_LOCA::StepSizeControl::StepSizeControl | ( | ) |
Constructor.
Definition at line 65 of file N_NLS_LOCA_StepSizeControl.C.
|
virtual |
Destructor.
Definition at line 73 of file N_NLS_LOCA_StepSizeControl.C.
|
protectedvirtual |
Definition at line 218 of file N_NLS_LOCA_StepSizeControl.C.
|
virtual |
Definition at line 93 of file N_NLS_LOCA_StepSizeControl.C.
|
virtual |
Definition at line 155 of file N_NLS_LOCA_StepSizeControl.C.
|
virtual |
Definition at line 245 of file N_NLS_LOCA_StepSizeControl.C.
|
virtual |
Definition at line 250 of file N_NLS_LOCA_StepSizeControl.C.
|
virtual |
Definition at line 78 of file N_NLS_LOCA_StepSizeControl.C.
|
protected |
Stores the aggressiveness factor .
Definition at line 140 of file N_NLS_LOCA_StepSizeControl.h.
|
protected |
Factor by which step size is reduced after a failed step.
Definition at line 128 of file N_NLS_LOCA_StepSizeControl.h.
|
protected |
Flag indicating if this is the first step.
Definition at line 137 of file N_NLS_LOCA_StepSizeControl.h.
|
protected |
Maximum step size.
Definition at line 119 of file N_NLS_LOCA_StepSizeControl.h.
|
protected |
Minimum step size.
Definition at line 122 of file N_NLS_LOCA_StepSizeControl.h.
|
protected |
Previous step size.
Definition at line 134 of file N_NLS_LOCA_StepSizeControl.h.
|
protected |
Initial step size.
Definition at line 125 of file N_NLS_LOCA_StepSizeControl.h.
|
protected |
Factor by which step size is increased after a successful step.
Definition at line 131 of file N_NLS_LOCA_StepSizeControl.h.