The AWE solver computes expansions of an underlying problem around certain parameter values. In the first step the largest and smallest values of plist are used as expansion points. Using these expansions, the values of one or more functions at intermediate parameter values are computed. If the two expansions give similar enough functional values at these internal points, the interval is accepted and no subdivisions of that particular interval are deemed necessary.
The property awefunc is used to specify the functionals of interest and the property
expeval determines at which internal points these functionals are to be evaluated. The values for
expeval are given relative the interval. That is, a value of 0.5 means that the functionals are evaluated at the midpoint of each interval. When the functional-values from the two expansions are compared, a check is performed to see if they fulfill the specified tolerances
atol and
rtol. If neither of the tolerances are fulfilled, the interval is bisected and the process is repeated for each subinterval. Before a bisection is performed a check is made to make sure that the new intervals are not shorter than the shortest allowed. By default the shortest allowed interval is given by the relative tolerance times the length of the interval defined by
plist (when
minintactive is set to
off). If
minintactive has been set to
on the value of
minint is the shortest interval allowed. If
minint has been specified, the value of
minintactive is
on by default. The property
acceptshort determines how to handle too short intervals. If
acceptshort is set to
off and a short interval is detected, the solver is interrupted with an error/warning. If
acceptshort is set to
on and a short interval is detected, the solver accepts the interval even if the tolerances have not been fulfilled.
In AWE several matrices are needed to compute each expansion. There are two options when it comes to assembling these matrices: With aweassemble set to
all everything is assembled in a single call to the
Xmesh. With
aweassemble set to
one, the matrices are assembled one at a time. The first option is faster but requires more memory.