Introduction
This is a library of preprocessors for numerical problems, that is, mappings of one numerical problem into another, presumably more simple one, of the same type. For example, scaling a linear system. The SysPro library operates in two modes:
- exhaustive mode: all possibly choices of a preprocessor are explored in sequence; this mode is set by command line options.
- intelligent mode: based on problem properties, a suitable choice for each preprocessor is made.
See Usage modes for more details.
Each preprocessor has the following structure, which is executed in the PreprocessedSolution() routine:
- a global setup is performed. This is a good place for computing problem features with the AnaMod library.
- a specific setup is performed; this can for instance disable certain preprocessor choices based on the computed problem features.
- a selection is made; this can be
- a first choice, if the preprocessor is applied in exhaustive mode
- an intelligent choice, if the exhaustive mode is off, and an intelligent choice routine exists
- some default choice otherwise
In case of exhaustive mode, the following steps are executed inside a loop over all choices for this preprocessor, and possible all numerical option settings:
- the start function transforms the problem into a preprocessed problem
- if a next preprocessor is defined, it is applied; otherwise, the problem solving routine is applied (see Preprocessor declaration).
- the end function backtransforms the solution of the preprocessed problem into that of the original problem.
Topics
Use of the SysPro package
Preprocessor reporting and Tracing the preprocessors
The Linear package for SysPro
The interface to other packages
Command line options handling
- Author:
- Victor Eijkhout
- Version:
- 1.3
- Date:
- unreleased
Change log
1.3 2008/08/20 : DeclarePreprocessor() has an extra argument for global deallocation at the end of a program run. Currently used in the ksp preprocessor.
2008/05/10 : end function now has two NumericalProblem parameters; this is necessary for freeing the recursive problem.
2007 : Accomodated the array length parameter in anamod/nmd