ug4
|
Table based solver creation. More...
Functions | |
function util solver | CondAbort (condition, message) |
function util solver | CreateConvCheck (convCheckDesc, solverutil) |
function util solver | CreateLinearSolver (solverDesc, solverutil) |
function util solver | CreateLineSearch (lineSearchDesc) |
function util solver | CreateMGStats (mgStatsDesc) |
function util solver | CreateOrdering (orderingDesc, solverutil) |
function util solver | CreatePreconditioner (precondDesc, solverutil) |
function util solver | CreateSolver (solverDesc, solverutil) |
function util solver | CreateTransfer (transferDesc, solverutil) |
function util solver | PrepareSolverUtil (solverDesc, solverutil) |
function util solver | PrepareStep (desc, nestedStep, timeStep) |
function util solver | SetDebugWriter (obj, desc, defaults, solverutil) |
function util solver | SolveLinearProblem (domainDisc, solverDesc, outFilePrefix, startValueCB) |
function util solver | SolveLinearTimeProblem (domDisc, solverDesc, timeDesc, outDesc, startValueCB) |
function util solver | SolveNonLinearTimeProblem (domDisc, solverDesc, timeDesc, outDesc, startValueCB) |
Table based solver creation.
Given a (possibly nested) solver description, e.g.,
a call e.g. to util.solver.CreateSolver(solver) creates and returns the requested solver.
All components may either be specified through a string-id or through a descriptor. You only have to specify those components which deviate from the defaults (solver.util.defaults), the rest will be ammended.
To use a geometric multigrid preconditioner, you either have to specify an approxSpace entry in its descriptor or set 'util.solver.defaults.approxSpace' before calling any 'util.solver.Create...' method.
Several examples follow:
here someApproxSpace points to a previously created approximation space
You may also provide instances of preconditioners instead of descriptor tables:
For conveniance, all the methods will add an 'instance' entry to their respective descriptor tables, assigning the created solver component. If you thus setup a solver, e.g.
you may later access 'solver.instance' and 'solver.precond.instance'. Note that this is only possible if you specified a component through a descriptor. If you use the short form, e.g.
you will still be able to access 'solver.instance', but you can't access 'solver.precond.instance'.
The following listing gives an overview over available non-linear solvers and their default parameters. Pass the descriptor of a non-linear solver to
to obtain the described solved.
linSolver can be any linear solver listed in the Linear Solvers section.
convCheck can be any convergence check listed in the Convergence Checks section.
lineSearch can be any line search method listed in the Line Search section.
Currently only the Newton method is available as non-linear solver.
The following listing gives an overview over available linear-solvers and their default parameters. Pass the descriptor of a linear solver to
to obtain the described solved.
precond can be any preconditioner listed in the Preconditioners section.
convCheck can be any convergence check listed in the Convergence Checks section.
The following listing gives an overview over available preconditioners and their default parameters.
The following listing gives an overview over available convergence checks and their default parameters.
The following listing gives an overview over available transfer operators and their default parameters.
The following listing gives an overview over available line search methods and their default parameters.
The following listing gives an overview over available MGStats objects. MGStats objects are used to record statistics on individual multigrid cycles. They add some overhead, so one should only use them for debugging.
function util solver CondAbort | ( | condition | , |
message | |||
) |
function util solver CreateConvCheck | ( | convCheckDesc | , |
solverutil | |||
) |
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / solver_util.lua :962-1011
function util solver CreateLinearSolver | ( | solverDesc | , |
solverutil | |||
) |
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / solver_util.lua :638-721
function util solver CreateLineSearch | ( | lineSearchDesc | ) |
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / solver_util.lua :1013-1042
function util solver CreateMGStats | ( | mgStatsDesc | ) |
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / solver_util.lua :1045-1076
function util solver CreateOrdering | ( | orderingDesc | , |
solverutil | |||
) |
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / solver_util.lua :749-787
function util solver CreatePreconditioner | ( | precondDesc | , |
solverutil | |||
) |
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / solver_util.lua :791-959
function util solver CreateSolver | ( | solverDesc | , |
solverutil | |||
) |
Creates a solver.
solverutil | You may OPTIONALLY pass a table solverutil in which solver related information will be stored. If solverDesc is a table, you may also acacess this information through solverDesc.solverutil (even if the parameter solverutil == nil). |
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / solver_util.lua :601-636
function util solver CreateTransfer | ( | transferDesc | , |
solverutil | |||
) |
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / solver_util.lua :723-747
function util solver PrepareSolverUtil | ( | solverDesc | , |
solverutil | |||
) |
if solverDesc is a table, solverDesc.solverutil will be set to solverutil or initialized as an empty table. The method will then return solverDesc.solverutil. If solverDesc is not a table, the method returns solverutil or {}, if solverutil == nil.
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / solver_util.lua :587-594
function util solver PrepareStep | ( | desc | , |
nestedStep | , | ||
timeStep | |||
) |
Prepares a solution step, e.g. during nested iterations.
desc | a solver-desc which was used during solver-creation in one of the solver_util methods or a solverutil table, which is was also created in one of the solver_util methods or simply a table which holds a bunch of Convergence-Check descriptor tables. |
nestedStep | (optional) the step of the nested iteration (default: 1) |
timeStep | (optional) the current time step (default: 1) |
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / solver_util.lua :1147-1172
function util solver SetDebugWriter | ( | obj | , |
desc | , | ||
defaults | , | ||
solverutil | |||
) |
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / solver_util.lua :1078-1135
function util solver SolveLinearProblem | ( | domainDisc | , |
solverDesc | , | ||
outFilePrefix | , | ||
startValueCB | |||
) |
Solves a linear problem given as a domain discretization
domDisc | the domain discretization object |
solverDesc | a valid solver descriptor or solver object |
outFilePrefix | (optional) .vtk and .vec files of the solution are stored. |
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / solver_util.lua :1181-1209
function util solver SolveLinearTimeProblem | ( | domDisc | , |
solverDesc | , | ||
timeDesc | , | ||
outDesc | , | ||
startValueCB | |||
) |
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / solver_util.lua :1212-1249
function util solver SolveNonLinearTimeProblem | ( | domDisc | , |
solverDesc | , | ||
timeDesc | , | ||
outDesc | , | ||
startValueCB | |||
) |
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / solver_util.lua :1252-1289