The lowest level of functionality provided by LOCA is that for continuation. The LOCA::MultiContinuation::AbstractGroup provides the interface required for single and multiple parameter continuation and is derived from the NOX::Abstract::Group. The additional methods provided primarily consist of setting/retrieving parameter values and computing the derivative for a given parameter . For application codes that cannot provide this derivative directly, the LOCA::MultiContinuation::FiniteDifferenceGroup provides a generic implementation using finite differencing.
Multiple continuation algorithms have been implemented, including:
The continuation groups implement the extended set of nonlinear equations to be solved at each continuation step.
LOCA can locate and track several codimension 1 bifurcations:
For each bifurcation, the ExtendedGroup for that bifurcation implements a set of nonlinear equations representing that bifurcation. Each of these groups provide a complete implementation of the LOCA::MultiContinuation::AbstractGroup and therefore can be used in continuation to track the bifurcation in a second parameter. The interfaces for these bifurcation groups are encapsulated in the following abstract groups:
See the relevant class documentation for more details on the additional interfaces provided by these abstract classes.
The final component of LOCA consists of several parameter stepping classes. These consist of the LOCA::Stepper which drives a NOX nonlinear solver at each parameter step, and several support classes that compute predictors (classes belonging to the LOCA::MultiPredictor namespace) and encapsulate various step size control strategies (classes in the LOCA::StepSize namespace). These classes use a strategy/factory design concept, allowing users to provide their own predictors, step-size control algorithms, etc... Please look at the New LOCA Framework page for more information on these classes.