Segregated
Handle the segregated solution approach.
Syntax
model.sol(sname).feature(solv).create(fname,"Segregated")
model.sol(sname).feature(solv).feature(fname).set(pname,value)
model.sol(sname).feature(solv).feature(fname).feature(fname2).set(pname,value)
Description
This feature can be used as an attribute for the Time and Stationary features. The approach taken is nonlinear Uzawa iterations in which user-defined groups of variables are solved for separately (a segregated step) while other variables are held fixed. The segregated steps for the segregated solver is handled by subattributes of the sort of SegregatedStep, LumpedStep, LowerLimit, and UpperLimit.
The Segregated attribute supports the following properties;
fullerrorest | partialerrorest | nonlinresidual
The error estimation method to use if adapttol is set to true: a full error estimate, a partial error estimate, or a nonlinear residual.
Damping exponent, if atolchoice is set to nonlinresidual.
Damping factor, if atolchoice is set to nonlinresidual.
Maximal tolerance, if adapttol is set to true.
Initial tolerance, if adapttol is set to true.
100, 25 (Time)
on | off
all | none | manual
Residual factor when segtermonres is set to auto or both (for stationary solvers).
none | segclfcmp | segaacc
iter | tol | itertol
off | on | auto | both
auto/off
Mixing parameter when segstabacc = segaacc.
CFL threshold when segstabacc = segcflcmp.
Mixing parameter when segstabacc = segcflcmp.
pid | lock
true | false
onfirst | minimal
Jacobian update on first iteration or minimal when segstabacc = segcflcmp and segcfljtech = true.
CFL threshold for Jacobian update when segstabacc = segcflcmp and segcfljtech = true.
false (Time)
on | off
off, on (Time)
Termination of the segregated solver is controlled by the property segterm. The default setting is tol, in which case the segregated iterations are terminated when, for each group, the estimated error is below the corresponding tolerance set by the main tolerance for the parent solver multiplied with the nonlinear tolerance factor ntolfact. However, a maximum number of allowed segregated iterations is chosen through the property maxsegiter; if the maximum is reached, the iterations are terminated and an error message is displayed. Termination after a fixed number of segregated iterations is achieved by instead choosing iter. The number of segregated iterations is controlled by the property segiter. The third available option for segterm is itertol, which is a combination of the other two options; the segregated iterations are terminated when one of the two convergence criteria of tol and iter is met. The property maxsegiter is only supported when tol is used for termination. For both the settings iter and itertol, the number of iterations is controlled by the property segiter.
The nonlinear solver uses an adaptive tolerance for termination of iterative linear system solvers. This adaptive tolerance is based on the maximum of ntol and itol. During the nonlinear iterations, it can, however, be larger or smaller than this number. The segregated solver uses the same tolerance as the linear solver when constant damping is used. However, when automatically adjusted damping is used, the adaptive tolerance of the nonlinear solver is used. The parametric solver uses the same tolerance as the corresponding stationary solver.
The property segstabacc enables or disables pseudo time stepping (for stationary problems) or Anderson acceleration. When enabled the pseudo time stepping is controlled by the scalar-valued controller parameters subcfltol, subinitcfl, subkdpid, subkipid, and subkppid. For the Anderson acceleration, the parameter segaaccdim specifies the dimension of the Anderson iteration space.
The property segtermonres controls the termination criterion for stationary problems when segterm is not iter. When segtermonres=off the estimated error is solution based, with segtermonres=on it is based on a relative residual and for segtermonres=auto the estimated error is the minimum of the solution and residual based errors. For segtermonres=auto the property segreserrfact is a scalar factor multiplying the relative residual error. For subtermonres=both, both methods are used.
Compatibility
The property subusecflcmp from earlier versions of COMSOL Multiphysics is not used in version 5.0 and later versions. Use the property segstabacc instead.
See Also
LowerLimit, LumpedStep, SegregatedStep, UpperLimit