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;
100, 25 (Time)
on | off
all | none | manual
Residual factor for segtermonres=auto.
none | segclfcmp | segaacc
iter | tol | itertol
off | on | auto
Mixing parameter when segstabacc = segaacc.
CFL threshold when segstabacc = segcflcmp.
Mixing parameter when segstabacc = segcflcmp.
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.
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.
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