petsc4py.PETSc.SNES#

class petsc4py.PETSc.SNES#

Bases: Object

Nonlinear equations solver.

SNES is described in the PETSc manual.

See also

SNES

Enumerations

ConvergedReason

SNES solver termination reason.

NormSchedule

SNES norm schedule.

Type

SNES solver type.

Methods Summary

appendOptionsPrefix(prefix)

Append to the prefix used for searching for options in the database.

callConvergenceTest(its, xnorm, ynorm, fnorm)

Compute the convergence test.

computeFunction(x, f)

Compute the function.

computeJacobian(x, J[, P])

Compute the Jacobian.

computeNGS(x[, b])

Compute a nonlinear Gauss-Seidel step.

computeObjective(x)

Compute the value of the objective function.

converged(its, xnorm, ynorm, fnorm)

Compute the convergence test and update the solver converged reason.

create([comm])

Create a SNES solver.

createPython([context, comm])

Create a nonlinear solver of Python type.

destroy()

Destroy the solver.

getApplicationContext()

Return the application context.

getCompositeNumber()

Return the number of solvers in the composite.

getCompositeSNES(n)

Return the n-th solver in the composite.

getConvergedReason()

Return the termination flag.

getConvergenceHistory()

Return the convergence history.

getConvergenceTest()

Return the callback to used as convergence test.

getDM()

Return the DM associated with the solver.

getDivergenceTolerance()

Get the divergence tolerance parameter used in the convergence tests.

getErrorIfNotConverged()

Return the flag indicating error on divergence.

getFASCoarseSolve()

Return the SNES used at the coarsest level of the FAS hierarchy.

getFASCycleSNES(level)

Return the SNES corresponding to a particular level of the FAS hierarchy.

getFASInjection(level)

Return the Mat used to apply the injection from level-1 to level.

getFASInterpolation(level)

Return the Mat used to apply the interpolation from level-1 to level.

getFASLevels()

Return the number of levels used.

getFASRestriction(level)

Return the Mat used to apply the restriction from level-1 to level.

getFASSmoother(level)

Return the smoother used at a given level of the FAS hierarchy.

getFASSmootherDown(level)

Return the downsmoother used at a given level of the FAS hierarchy.

getFASSmootherUp(level)

Return the upsmoother used at a given level of the FAS hierarchy.

getFunction()

Return the callback to compute the nonlinear function.

getFunctionEvaluations()

Return the current number of function evaluations.

getFunctionNorm()

Return the function norm.

getInitialGuess()

Return the callback to compute the initial guess.

getIterationNumber()

Return the current iteration number.

getJacobian()

Return the matrices used to compute the Jacobian and the callback tuple.

getKSP()

Return the linear solver used by the nonlinear solver.

getKSPFailures()

Return the current number of linear solve failures.

getLinearSolveIterations()

Return the total number of linear iterations.

getMaxFunctionEvaluations()

Return the maximum allowed number of function evaluations.

getMaxKSPFailures()

Return the maximum allowed number of linear solve failures.

getMaxStepFailures()

Return the maximum allowed number of step failures.

getMonitor()

Return the callback used to monitor solver convergence.

getNASMNumber()

Return the number of solvers in NASM.

getNASMSNES(n)

Return the n-th solver in NASM.

getNGS()

Return the nonlinear Gauss-Seidel callback tuple.

getNPC()

Return the nonlinear preconditioner associated with the solver.

getNPCSide()

Return the nonlinear preconditioning side.

getNormSchedule()

Return the norm schedule.

getObjective()

Return the objective callback tuple.

getOptionsPrefix()

Return the prefix used for searching for options in the database.

getParamsEW()

Get the parameters of the Eisenstat and Walker trick.

getPythonContext()

Return the instance of the class implementing the required Python methods.

getPythonType()

Return the fully qualified Python name of the class used by the solver.

getRhs()

Return the vector holding the right-hand side.

getSolution()

Return the vector holding the solution.

getSolutionUpdate()

Return the vector holding the solution update.

getStepFailures()

Return the current number of step failures.

getTRTolerances()

Return the tolerance parameters used for the trust region.

getTRUpdateParameters()

Return the update parameters used for the trust region.

getTolerances()

Return the tolerance parameters used in the solver convergence tests.

getType()

Return the type of the solver.

getUpdate()

Return the callback to compute the update at the beginning of each step.

getUseEW()

Return the flag indicating if the solver uses the Eisenstat-Walker trick.

getUseFD()

Return true if the solver uses color finite-differencing for the Jacobian.

getUseKSP()

Return the flag indicating if the solver uses a linear solver.

getUseMF()

Return the flag indicating if the solver uses matrix-free finite-differencing.

getVIInactiveSet()

Return the index set for the inactive set.

hasNPC()

Return a boolean indicating whether the solver has a nonlinear preconditioner.

logConvergenceHistory(norm[, linear_its])

Log residual norm and linear iterations.

monitor(its, rnorm)

Monitor the solver.

monitorCancel()

Cancel all the monitors of the solver.

reset()

Reset the solver.

setApplicationContext(appctx)

Set the application context.

setConvergedReason(reason)

Set the termination flag.

setConvergenceHistory([length, reset])

Set the convergence history.

setConvergenceTest(converged[, args, kargs])

Set the callback to use as convergence test.

setDM(dm)

Associate a DM with the solver.

setDivergenceTolerance(dtol)

Set the divergence tolerance parameter used in the convergence tests.

setErrorIfNotConverged(flag)

Immediately generate an error if the solver has not converged.

setFASInjection(level, mat)

Set the Mat to be used to apply the injection from level-1 to level.

setFASInterpolation(level, mat)

Set the Mat to be used to apply the interpolation from level-1 to level.

setFASLevels(levels[, comms])

Set the number of levels to use with FAS.

setFASRScale(level, vec)

Set the scaling factor of the restriction operator from level to level-1.

setFASRestriction(level, mat)

Set the Mat to be used to apply the restriction from level-1 to level.

setForceIteration(force)

Force solve to take at least one iteration.

setFromOptions()

Configure the solver from the options database.

setFunction(function[, f, args, kargs])

Set the callback to compute the nonlinear function.

setFunctionNorm(norm)

Set the function norm value.

setInitialGuess(initialguess[, args, kargs])

Set the callback to compute the initial guess.

setIterationNumber(its)

Set the current iteration number.

setJacobian(jacobian[, J, P, args, kargs])

Set the callback to compute the Jacobian.

setKSP(ksp)

Set the linear solver that will be used by the nonlinear solver.

setLineSearchPreCheck(precheck[, args, kargs])

Set the callback that will be called before applying the linesearch.

setMaxFunctionEvaluations(max_funcs)

Set the maximum allowed number of function evaluations.

setMaxKSPFailures(max_fails)

Set the maximum allowed number of linear solve failures.

setMaxStepFailures(max_fails)

Set the maximum allowed number of step failures.

setMonitor(monitor[, args, kargs])

Set the callback used to monitor solver convergence.

setNGS(ngs[, args, kargs])

Set the callback to compute nonlinear Gauss-Seidel.

setNPC(snes)

Set the nonlinear preconditioner.

setNPCSide(side)

Set the nonlinear preconditioning side.

setNormSchedule(normsched)

Set the norm schedule.

setObjective(objective[, args, kargs])

Set the callback to compute the objective function.

setOptionsPrefix(prefix)

Set the prefix used for searching for options in the database.

setParamsEW([version, rtol_0, rtol_max, ...])

Set the parameters for the Eisenstat and Walker trick.

setPatchCellNumbering(sec)

Set cell patch numbering.

setPatchComputeFunction(function[, args, kargs])

Set patch compute function.

setPatchComputeOperator(operator[, args, kargs])

Set patch compute operator.

setPatchConstructType(typ[, operator, args, ...])

Set patch construct type.

setPatchDiscretisationInfo(dms, bs, ...)

Set patch discretisation information.

setPythonContext(context)

Set the instance of the class implementing the required Python methods.

setPythonType(py_type)

Set the fully qualified Python name of the class to be used.

setResetCounters([reset])

Set the flag to reset the counters.

setSolution(vec)

Set the vector used to store the solution.

setTRTolerances([delta_min, delta_max, delta_0])

Set the tolerance parameters used for the trust region.

setTRUpdateParameters([eta1, eta2, eta3, t1, t2])

Set the update parameters used for the trust region.

setTolerances([rtol, atol, stol, max_it])

Set the tolerance parameters used in the solver convergence tests.

setType(snes_type)

Set the type of the solver.

setUp()

Set up the internal data structures for using the solver.

setUpMatrices()

Ensures that matrices are available for Newton-like methods.

setUpdate(update[, args, kargs])

Set the callback to compute update at the beginning of each step.

setUseEW([flag])

Tell the solver to use the Eisenstat-Walker trick.

setUseFD([flag])

Set the boolean flag to use coloring finite-differencing for Jacobian assembly.

setUseKSP([flag])

Set the boolean flag indicating to use a linear solver.

setUseMF([flag])

Set the boolean flag indicating to use matrix-free finite-differencing.

setVariableBounds(xl, xu)

Set the vector for the variable bounds.

solve([b, x])

Solve the nonlinear equations.

view([viewer])

View the solver.

Attributes Summary

appctx

Application context.

atol

Absolute residual tolerance.

dm

DM.

history

Convergence history.

is_converged

Boolean indicating if the solver has converged.

is_diverged

Boolean indicating if the solver has failed.

is_iterating

Boolean indicating if the solver has not converged yet.

its

Number of iterations.

ksp

Linear solver.

max_funcs

Maximum number of function evaluations.

max_it

Maximum number of iterations.

norm

Function norm.

npc

Nonlinear preconditioner.

reason

Converged reason.

rtol

Relative residual tolerance.

stol

Solution update tolerance.

use_ew

Use the Eisenstat-Walker trick.

use_fd

Boolean indicating if the solver uses coloring finite-differencing.

use_ksp

Boolean indicating if the solver uses a linear solver.

use_mf

Boolean indicating if the solver uses matrix-free finite-differencing.

vec_rhs

Right-hand side vector.

vec_sol

Solution vector.

vec_upd

Update vector.

Methods Documentation

appendOptionsPrefix(prefix)#

Append to the prefix used for searching for options in the database.

Logically collective.

Source code at petsc4py/PETSc/SNES.pyx:227

Parameters:

prefix (str | None)

Return type:

None

callConvergenceTest(its, xnorm, ynorm, fnorm)#

Compute the convergence test.

Collective.

Parameters:
  • its (int) – Iteration number.

  • xnorm (float) – Solution norm.

  • ynorm (float) – Update norm.

  • fnorm (float) – Function norm.

Return type:

ConvergedReason

Source code at petsc4py/PETSc/SNES.pyx:1326

computeFunction(x, f)#

Compute the function.

Collective.

Parameters:
  • x (Vec) – The input state vector.

  • f (Vec) – The output vector.

Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:1027

computeJacobian(x, J, P=None)#

Compute the Jacobian.

Collective.

Parameters:
  • x (Vec) – The input state vector.

  • J (Mat) – The output Jacobian matrix.

  • P (Mat | None) – The output Jacobian matrix used to construct the preconditioner.

Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:1046

computeNGS(x, b=None)#

Compute a nonlinear Gauss-Seidel step.

Collective.

Parameters:
  • x (Vec) – The input/output state vector.

  • b (Vec | None) – The input right-hand side vector.

Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:1133

computeObjective(x)#

Compute the value of the objective function.

Collective.

Parameters:

x (Vec) – The input state vector.

Return type:

float

Source code at petsc4py/PETSc/SNES.pyx:1069

converged(its, xnorm, ynorm, fnorm)#

Compute the convergence test and update the solver converged reason.

Collective.

Parameters:
  • its (int) – Iteration number.

  • xnorm (float) – Solution norm.

  • ynorm (float) – Update norm.

  • fnorm (float) – Function norm.

Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:1356

create(comm=None)#

Create a SNES solver.

Collective.

Parameters:

comm (Comm | None) – MPI communicator, defaults to Sys.getDefaultComm.

Return type:

Self

Source code at petsc4py/PETSc/SNES.pyx:145

createPython(context=None, comm=None)#

Create a nonlinear solver of Python type.

Collective.

Parameters:
  • context (Any) – An instance of the Python class implementing the required methods.

  • comm (Comm | None) – MPI communicator, defaults to Sys.getDefaultComm.

Return type:

Self

Source code at petsc4py/PETSc/SNES.pyx:2179

destroy()#

Destroy the solver.

Collective.

See also

SNESDestroy

Source code at petsc4py/PETSc/SNES.pyx:132

Return type:

Self

getApplicationContext()#

Return the application context.

Source code at petsc4py/PETSc/SNES.pyx:264

Return type:

Any

getCompositeNumber()#

Return the number of solvers in the composite.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:2280

Return type:

int

getCompositeSNES(n)#

Return the n-th solver in the composite.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:2263

Parameters:

n (int)

Return type:

SNES

getConvergedReason()#

Return the termination flag.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:1739

Return type:

ConvergedReason

getConvergenceHistory()#

Return the convergence history.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:1407

Return type:

tuple[ArrayReal, ArrayInt]

getConvergenceTest()#

Return the callback to used as convergence test.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:1314

Return type:

SNESConvergedFunction

getDM()#

Return the DM associated with the solver.

Not collective.

See also

setDM, SNESGetDM

Source code at petsc4py/PETSc/SNES.pyx:279

Return type:

DM

getDivergenceTolerance()#

Get the divergence tolerance parameter used in the convergence tests.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:1239

Return type:

float

getErrorIfNotConverged()#

Return the flag indicating error on divergence.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:1766

Return type:

bool

getFASCoarseSolve()#

Return the SNES used at the coarsest level of the FAS hierarchy.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:594

Return type:

SNES

getFASCycleSNES(level)#

Return the SNES corresponding to a particular level of the FAS hierarchy.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:577

Parameters:

level (int)

Return type:

SNES

getFASInjection(level)#

Return the Mat used to apply the injection from level-1 to level.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:500

Parameters:

level (int)

Return type:

Mat

getFASInterpolation(level)#

Return the Mat used to apply the interpolation from level-1 to level.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:440

Parameters:

level (int)

Return type:

Mat

getFASLevels()#

Return the number of levels used.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:563

Return type:

int

getFASRestriction(level)#

Return the Mat used to apply the restriction from level-1 to level.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:470

Parameters:

level (int)

Return type:

Mat

getFASSmoother(level)#

Return the smoother used at a given level of the FAS hierarchy.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:609

Parameters:

level (int)

Return type:

SNES

getFASSmootherDown(level)#

Return the downsmoother used at a given level of the FAS hierarchy.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:626

Parameters:

level (int)

Return type:

SNES

getFASSmootherUp(level)#

Return the upsmoother used at a given level of the FAS hierarchy.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:643

Parameters:

level (int)

Return type:

SNES

getFunction()#

Return the callback to compute the nonlinear function.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:843

Return type:

SNESFunction

getFunctionEvaluations()#

Return the current number of function evaluations.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:1560

Return type:

int

getFunctionNorm()#

Return the function norm.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:1837

Return type:

float

getInitialGuess()#

Return the callback to compute the initial guess.

Not collective.

See also

setInitialGuess

Source code at petsc4py/PETSc/SNES.pyx:796

Return type:

SNESGuessFunction

getIterationNumber()#

Return the current iteration number.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:1795

Return type:

int

getJacobian()#

Return the matrices used to compute the Jacobian and the callback tuple.

Not collective.

Returns:

  • J (Mat) – The matrix to store the Jacobian.

  • P (Mat) – The matrix to construct the preconditioner.

  • callback (SNESJacobianFunction) – callback, positional and keyword arguments.

Return type:

tuple[Mat, Mat, SNESJacobianFunction]

Source code at petsc4py/PETSc/SNES.pyx:955

getKSP()#

Return the linear solver used by the nonlinear solver.

Not collective.

See also

setKSP, SNESGetKSP

Source code at petsc4py/PETSc/SNES.pyx:1936

Return type:

KSP

getKSPFailures()#

Return the current number of linear solve failures.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:1642

Return type:

int

getLinearSolveIterations()#

Return the total number of linear iterations.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:1851

Return type:

int

getMaxFunctionEvaluations()#

Return the maximum allowed number of function evaluations.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:1544

Return type:

int

getMaxKSPFailures()#

Return the maximum allowed number of linear solve failures.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:1628

Return type:

int

getMaxStepFailures()#

Return the maximum allowed number of step failures.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:1587

Return type:

int

getMonitor()#

Return the callback used to monitor solver convergence.

Not collective.

See also

setMonitor

Source code at petsc4py/PETSc/SNES.pyx:1479

Return type:

list[tuple[SNESMonitorFunction, tuple[Any, …], dict[str, Any]]]

getNASMNumber()#

Return the number of solvers in NASM.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:2312

Return type:

int

getNASMSNES(n)#

Return the n-th solver in NASM.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:2296

Parameters:

n (int)

Return type:

SNES

getNGS()#

Return the nonlinear Gauss-Seidel callback tuple.

Not collective.

See also

setNGS, computeNGS

Source code at petsc4py/PETSc/SNES.pyx:1119

Return type:

SNESNGSFunction

getNPC()#

Return the nonlinear preconditioner associated with the solver.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:662

Return type:

SNES

getNPCSide()#

Return the nonlinear preconditioning side.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:715

Return type:

Side

getNormSchedule()#

Return the norm schedule.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:1265

Return type:

NormSchedule

getObjective()#

Return the objective callback tuple.

Not collective.

See also

setObjective

Source code at petsc4py/PETSc/SNES.pyx:1013

Return type:

SNESObjFunction

getOptionsPrefix()#

Return the prefix used for searching for options in the database.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:213

Return type:

str

getParamsEW()#

Get the parameters of the Eisenstat and Walker trick.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:2040

Return type:

dict[str, int | float]

getPythonContext()#

Return the instance of the class implementing the required Python methods.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:2216

Return type:

Any

getPythonType()#

Return the fully qualified Python name of the class used by the solver.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:2246

Return type:

str

getRhs()#

Return the vector holding the right-hand side.

Not collective.

See also

SNESGetRhs

Source code at petsc4py/PETSc/SNES.pyx:1865

Return type:

Vec

getSolution()#

Return the vector holding the solution.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:1880

Return type:

Vec

getSolutionUpdate()#

Return the vector holding the solution update.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:1907

Return type:

Vec

getStepFailures()#

Return the current number of step failures.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:1601

Return type:

int

getTRTolerances()#

Return the tolerance parameters used for the trust region.

Not collective.

Returns:

  • delta_min (float) – The minimum allowed trust region size.

  • delta_max (float) – The maximum allowed trust region size.

  • delta_0 (float) – The initial trust region size.

Return type:

tuple[float, float, float]

Source code at petsc4py/PETSc/SNES.pyx:337

getTRUpdateParameters()#

Return the update parameters used for the trust region.

Not collective.

Returns:

  • eta1 (float) – The step acceptance tolerance.

  • eta2 (float) – The shrinking tolerance.

  • eta3 (float) – The enlarging tolerance.

  • t1 (float) – The shrinking factor.

  • t2 (float) – The enlarging factor.

Return type:

tuple[float, float, float, float, float]

Source code at petsc4py/PETSc/SNES.pyx:396

getTolerances()#

Return the tolerance parameters used in the solver convergence tests.

Not collective.

Returns:

  • rtol (float) – The relative norm of the residual.

  • atol (float) – The absolute norm of the residual.

  • stol (float) – The absolute norm of the step.

  • max_it (int) – The maximum allowed number of iterations.

Return type:

tuple[float, float, float, int]

Source code at petsc4py/PETSc/SNES.pyx:1195

getType()#

Return the type of the solver.

Not collective.

See also

setType, SNESGetType

Source code at petsc4py/PETSc/SNES.pyx:185

Return type:

str

getUpdate()#

Return the callback to compute the update at the beginning of each step.

Not collective.

See also

setUpdate

Source code at petsc4py/PETSc/SNES.pyx:904

Return type:

SNESUpdateFunction

getUseEW()#

Return the flag indicating if the solver uses the Eisenstat-Walker trick.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:1974

Return type:

bool

getUseFD()#

Return true if the solver uses color finite-differencing for the Jacobian.

Not collective.

See also

setUseFD

Source code at petsc4py/PETSc/SNES.pyx:2134

Return type:

False

getUseKSP()#

Return the flag indicating if the solver uses a linear solver.

Not collective.

See also

setUseKSP

Source code at petsc4py/PETSc/SNES.pyx:2078

Return type:

bool

getUseMF()#

Return the flag indicating if the solver uses matrix-free finite-differencing.

Not collective.

See also

setUseMF

Source code at petsc4py/PETSc/SNES.pyx:2107

Return type:

bool

getVIInactiveSet()#

Return the index set for the inactive set.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:2162

Return type:

IS

hasNPC()#

Return a boolean indicating whether the solver has a nonlinear preconditioner.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:677

Return type:

bool

logConvergenceHistory(norm, linear_its=0)#

Log residual norm and linear iterations.

Source code at petsc4py/PETSc/SNES.pyx:1425

Parameters:
Return type:

None

monitor(its, rnorm)#

Monitor the solver.

Collective.

Parameters:
  • its – Current number of iterations.

  • rnorm – Current value of the residual norm.

Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:1506

monitorCancel()#

Cancel all the monitors of the solver.

Logically collective.

Source code at petsc4py/PETSc/SNES.pyx:1491

Return type:

None

reset()#

Reset the solver.

Collective.

See also

SNESReset

Source code at petsc4py/PETSc/SNES.pyx:1691

Return type:

None

setApplicationContext(appctx)#

Set the application context.

Source code at petsc4py/PETSc/SNES.pyx:255

Parameters:

appctx (Any)

Return type:

None

setConvergedReason(reason)#

Set the termination flag.

Collective.

Source code at petsc4py/PETSc/SNES.pyx:1726

Parameters:

reason (ConvergedReason)

Return type:

None

setConvergenceHistory(length=None, reset=False)#

Set the convergence history.

Logically collective.

Source code at petsc4py/PETSc/SNES.pyx:1383

Return type:

None

setConvergenceTest(converged, args=None, kargs=None)#

Set the callback to use as convergence test.

Logically collective.

Parameters:
  • converged (SNESConvergedFunction | Literal['skip', 'default']) – The convergence testing callback.

  • args (tuple[Any, ...] | None) – Positional arguments for the callback.

  • kargs (dict[str, Any] | None) – Keyword arguments for the callback.

Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:1279

setDM(dm)#

Associate a DM with the solver.

Not collective.

See also

getDM, SNESSetDM

Source code at petsc4py/PETSc/SNES.pyx:296

Parameters:

dm (DM)

Return type:

None

setDivergenceTolerance(dtol)#

Set the divergence tolerance parameter used in the convergence tests.

Logically collective.

Parameters:

dtol (float) – The divergence tolerance.

Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:1222

setErrorIfNotConverged(flag)#

Immediately generate an error if the solver has not converged.

Collective.

Source code at petsc4py/PETSc/SNES.pyx:1753

Parameters:

flag (bool)

Return type:

None

setFASInjection(level, mat)#

Set the Mat to be used to apply the injection from level-1 to level.

Collective.

Source code at petsc4py/PETSc/SNES.pyx:486

Parameters:
Return type:

None

setFASInterpolation(level, mat)#

Set the Mat to be used to apply the interpolation from level-1 to level.

Collective.

Source code at petsc4py/PETSc/SNES.pyx:426

Parameters:
Return type:

None

setFASLevels(levels, comms=None)#

Set the number of levels to use with FAS.

Collective.

Parameters:
Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:529

setFASRScale(level, vec)#

Set the scaling factor of the restriction operator from level to level-1.

Collective.

Source code at petsc4py/PETSc/SNES.pyx:516

Parameters:
Return type:

None

setFASRestriction(level, mat)#

Set the Mat to be used to apply the restriction from level-1 to level.

Collective.

Source code at petsc4py/PETSc/SNES.pyx:456

Parameters:
Return type:

None

setForceIteration(force)#

Force solve to take at least one iteration.

Collective.

Source code at petsc4py/PETSc/SNES.pyx:1809

Parameters:

force (bool)

Return type:

None

setFromOptions()#

Configure the solver from the options database.

Collective.

Source code at petsc4py/PETSc/SNES.pyx:241

Return type:

None

setFunction(function, f=None, args=None, kargs=None)#

Set the callback to compute the nonlinear function.

Logically collective.

Parameters:
  • function (SNESFunction | None) – The callback.

  • f (Vec | None) – An optional vector to store the result.

  • args (tuple[Any, ...] | None) – Positional arguments for the callback.

  • kargs (dict[str, Any] | None) – Keyword arguments for the callback.

Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:808

setFunctionNorm(norm)#

Set the function norm value.

Collective.

This is only of use to implementers of custom SNES types.

Source code at petsc4py/PETSc/SNES.pyx:1822

Parameters:

norm (float)

Return type:

None

setInitialGuess(initialguess, args=None, kargs=None)#

Set the callback to compute the initial guess.

Logically collective.

Parameters:
Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:765

setIterationNumber(its)#

Set the current iteration number.

Collective.

This is only of use to implementers of custom SNES types.

Source code at petsc4py/PETSc/SNES.pyx:1780

Parameters:

its (int)

Return type:

None

setJacobian(jacobian, J=None, P=None, args=None, kargs=None)#

Set the callback to compute the Jacobian.

Logically collective.

Parameters:
  • jacobian (SNESJacobianFunction | None) – The Jacobian callback.

  • J (Mat | None) – The matrix to store the Jacobian.

  • P (Mat | None) – The matrix to construct the preconditioner.

  • args (tuple[Any, ...] | None) – Positional arguments for the callback.

  • kargs (dict[str, Any] | None) – Keyword arguments for the callback.

Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:916

setKSP(ksp)#

Set the linear solver that will be used by the nonlinear solver.

Logically collective.

See also

getKSP, SNESSetKSP

Source code at petsc4py/PETSc/SNES.pyx:1924

Parameters:

ksp (KSP)

Return type:

None

setLineSearchPreCheck(precheck, args=None, kargs=None)#

Set the callback that will be called before applying the linesearch.

Logically collective.

Parameters:
Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:731

setMaxFunctionEvaluations(max_funcs)#

Set the maximum allowed number of function evaluations.

Collective.

Source code at petsc4py/PETSc/SNES.pyx:1529

Parameters:

max_funcs (int)

Return type:

None

setMaxKSPFailures(max_fails)#

Set the maximum allowed number of linear solve failures.

Collective.

Source code at petsc4py/PETSc/SNES.pyx:1615

Parameters:

max_fails (int)

Return type:

None

setMaxStepFailures(max_fails)#

Set the maximum allowed number of step failures.

Collective.

Source code at petsc4py/PETSc/SNES.pyx:1574

Parameters:

max_fails (int)

Return type:

None

setMonitor(monitor, args=None, kargs=None)#

Set the callback used to monitor solver convergence.

Logically collective.

Parameters:
Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:1446

setNGS(ngs, args=None, kargs=None)#

Set the callback to compute nonlinear Gauss-Seidel.

Logically collective.

Parameters:
  • ngs (SNESNGSFunction | None) – The nonlinear Gauss-Seidel callback.

  • args (tuple[Any, ...] | None) – Positional arguments for the callback.

  • kargs (dict[str, Any] | None) – Keyword arguments for the callback.

Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:1088

setNPC(snes)#

Set the nonlinear preconditioner.

Logically collective.

Source code at petsc4py/PETSc/SNES.pyx:691

Parameters:

snes (SNES)

Return type:

None

setNPCSide(side)#

Set the nonlinear preconditioning side.

Collective.

Source code at petsc4py/PETSc/SNES.pyx:703

Parameters:

side (Side)

Return type:

None

setNormSchedule(normsched)#

Set the norm schedule.

Collective.

Source code at petsc4py/PETSc/SNES.pyx:1253

Parameters:

normsched (NormSchedule)

Return type:

None

setObjective(objective, args=None, kargs=None)#

Set the callback to compute the objective function.

Logically collective.

Parameters:
  • objective (SNESObjFunction | None) – The Jacobian callback.

  • args (tuple[Any, ...] | None) – Positional arguments for the callback.

  • kargs (dict[str, Any] | None) – Keyword arguments for the callback.

Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:982

setOptionsPrefix(prefix)#

Set the prefix used for searching for options in the database.

Logically collective.

Source code at petsc4py/PETSc/SNES.pyx:199

Parameters:

prefix (str | None)

Return type:

None

setParamsEW(version=None, rtol_0=None, rtol_max=None, gamma=None, alpha=None, alpha2=None, threshold=None)#

Set the parameters for the Eisenstat and Walker trick.

Logically collective.

Parameters:
  • version (int) – The version of the algorithm. Defaults to CURRENT.

  • rtol_0 (float) – The initial relative residual norm. Defaults to CURRENT.

  • rtol_max (float) – The maximum relative residual norm. Defaults to CURRENT.

  • gamma (float) – Parameter. Defaults to CURRENT.

  • alpha (float) – Parameter. Defaults to CURRENT.

  • alpha2 (float) – Parameter. Defaults to CURRENT.

  • threshold (float) – Parameter. Defaults to CURRENT.

Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:1988

setPatchCellNumbering(sec)#

Set cell patch numbering.

Source code at petsc4py/PETSc/SNES.pyx:2328

Parameters:

sec (Section)

Return type:

None

setPatchComputeFunction(function, args=None, kargs=None)#

Set patch compute function.

Source code at petsc4py/PETSc/SNES.pyx:2381

Return type:

None

setPatchComputeOperator(operator, args=None, kargs=None)#

Set patch compute operator.

Source code at petsc4py/PETSc/SNES.pyx:2373

Return type:

None

setPatchConstructType(typ, operator=None, args=None, kargs=None)#

Set patch construct type.

Source code at petsc4py/PETSc/SNES.pyx:2389

Return type:

None

setPatchDiscretisationInfo(dms, bs, cellNodeMaps, subspaceOffsets, ghostBcNodes, globalBcNodes)#

Set patch discretisation information.

Source code at petsc4py/PETSc/SNES.pyx:2332

Return type:

None

setPythonContext(context)#

Set the instance of the class implementing the required Python methods.

Not collective.

Source code at petsc4py/PETSc/SNES.pyx:2204

Parameters:

context (Any)

Return type:

None

setPythonType(py_type)#

Set the fully qualified Python name of the class to be used.

Collective.

Source code at petsc4py/PETSc/SNES.pyx:2231

Parameters:

py_type (str)

Return type:

None

setResetCounters(reset=True)#

Set the flag to reset the counters.

Collective.

Source code at petsc4py/PETSc/SNES.pyx:1431

Parameters:

reset (bool)

Return type:

None

setSolution(vec)#

Set the vector used to store the solution.

Collective.

Source code at petsc4py/PETSc/SNES.pyx:1895

Parameters:

vec (Vec)

Return type:

None

setTRTolerances(delta_min=None, delta_max=None, delta_0=None)#

Set the tolerance parameters used for the trust region.

Logically collective.

Parameters:
  • delta_min (float) – The minimum allowed trust region size. Defaults to CURRENT.

  • delta_max (float) – The maximum allowed trust region size. Defaults to CURRENT.

  • delta_0 (float) – The initial trust region size. Defaults to CURRENT.

Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:310

setTRUpdateParameters(eta1=None, eta2=None, eta3=None, t1=None, t2=None)#

Set the update parameters used for the trust region.

Logically collective.

Parameters:
  • eta1 (float) – The step acceptance tolerance. Defaults to CURRENT.

  • eta2 (float) – The shrinking tolerance. Defaults to CURRENT.

  • eta3 (float) – The enlarging tolerance. Defaults to CURRENT.

  • t1 (float) – The shrinking factor. Defaults to CURRENT.

  • t2 (float) – The enlarging factor. Defaults to CURRENT.

Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:361

setTolerances(rtol=None, atol=None, stol=None, max_it=None)#

Set the tolerance parameters used in the solver convergence tests.

Logically collective.

Parameters:
  • rtol (float) – The relative norm of the residual, or DETERMINE to use the value when the object’s type was set. Defaults to CURRENT.

  • atol (float) – The absolute norm of the residual, or DETERMINE to use the value when the object’s type was set. Defaults to CURRENT.

  • stol (float) – The absolute norm of the step, or DETERMINE to use the value when the object’s type was set. Defaults to CURRENT.

  • max_it (int) – The maximum allowed number of iterations, or DETERMINE to use the value when the object’s type was set. Defaults to CURRENT. Use UNLIMITED to have no maximum.

Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:1156

setType(snes_type)#

Set the type of the solver.

Logically collective.

Parameters:

snes_type (Type | str) – The type of the solver.

Return type:

None

See also

getType, SNESSetType

Source code at petsc4py/PETSc/SNES.pyx:166

setUp()#

Set up the internal data structures for using the solver.

Collective.

See also

SNESSetUp

Source code at petsc4py/PETSc/SNES.pyx:1665

Return type:

None

setUpMatrices()#

Ensures that matrices are available for Newton-like methods.

Collective.

This is only of use to implementers of custom SNES types.

Source code at petsc4py/PETSc/SNES.pyx:1677

Return type:

None

setUpdate(update, args=None, kargs=None)#

Set the callback to compute update at the beginning of each step.

Logically collective.

Parameters:
Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:873

setUseEW(flag=True, *targs, **kargs)#

Tell the solver to use the Eisenstat-Walker trick.

Logically collective.

Parameters:
  • flag (bool) – Whether or not to use the Eisenstat-Walker trick.

  • *targs (Any) – Positional arguments for setParamsEW.

  • **kargs (Any) – Keyword arguments for setParamsEW.

Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:1951

setUseFD(flag=True)#

Set the boolean flag to use coloring finite-differencing for Jacobian assembly.

Logically collective.

See also

getUseFD

Source code at petsc4py/PETSc/SNES.pyx:2121

Return type:

None

setUseKSP(flag=True)#

Set the boolean flag indicating to use a linear solver.

Logically collective.

See also

getUseKSP

Source code at petsc4py/PETSc/SNES.pyx:2065

Return type:

None

setUseMF(flag=True)#

Set the boolean flag indicating to use matrix-free finite-differencing.

Logically collective.

See also

getUseMF

Source code at petsc4py/PETSc/SNES.pyx:2094

Return type:

None

setVariableBounds(xl, xu)#

Set the vector for the variable bounds.

Collective.

Source code at petsc4py/PETSc/SNES.pyx:2150

Parameters:
Return type:

None

solve(b=None, x=None)#

Solve the nonlinear equations.

Collective.

Parameters:
  • b (Vec | None) – The affine right-hand side or None to use zero.

  • x (Vec | None) – The starting vector or None to use the vector stored internally.

Return type:

None

Source code at petsc4py/PETSc/SNES.pyx:1703

view(viewer=None)#

View the solver.

Collective.

Parameters:

viewer (Viewer | None) – A Viewer instance or None for the default viewer.

Return type:

None

See also

SNESView

Source code at petsc4py/PETSc/SNES.pyx:113

Attributes Documentation

appctx#

Application context.

Source code at petsc4py/PETSc/SNES.pyx:2405

atol#

Absolute residual tolerance.

Source code at petsc4py/PETSc/SNES.pyx:2486

dm#

DM.

Source code at petsc4py/PETSc/SNES.pyx:2415

history#

Convergence history.

Source code at petsc4py/PETSc/SNES.pyx:2538

is_converged#

Boolean indicating if the solver has converged.

Source code at petsc4py/PETSc/SNES.pyx:2558

is_diverged#

Boolean indicating if the solver has failed.

Source code at petsc4py/PETSc/SNES.pyx:2563

is_iterating#

Boolean indicating if the solver has not converged yet.

Source code at petsc4py/PETSc/SNES.pyx:2553

its#

Number of iterations.

Source code at petsc4py/PETSc/SNES.pyx:2522

ksp#

Linear solver.

Source code at petsc4py/PETSc/SNES.pyx:2452

max_funcs#

Maximum number of function evaluations.

Source code at petsc4py/PETSc/SNES.pyx:2512

max_it#

Maximum number of iterations.

Source code at petsc4py/PETSc/SNES.pyx:2502

norm#

Function norm.

Source code at petsc4py/PETSc/SNES.pyx:2530

npc#

Nonlinear preconditioner.

Source code at petsc4py/PETSc/SNES.pyx:2425

reason#

Converged reason.

Source code at petsc4py/PETSc/SNES.pyx:2545

rtol#

Relative residual tolerance.

Source code at petsc4py/PETSc/SNES.pyx:2478

stol#

Solution update tolerance.

Source code at petsc4py/PETSc/SNES.pyx:2494

use_ew#

Use the Eisenstat-Walker trick.

Source code at petsc4py/PETSc/SNES.pyx:2468

use_fd#

Boolean indicating if the solver uses coloring finite-differencing.

Source code at petsc4py/PETSc/SNES.pyx:2578

use_ksp#

Boolean indicating if the solver uses a linear solver.

Source code at petsc4py/PETSc/SNES.pyx:2460

use_mf#

Boolean indicating if the solver uses matrix-free finite-differencing.

Source code at petsc4py/PETSc/SNES.pyx:2570

vec_rhs#

Right-hand side vector.

Source code at petsc4py/PETSc/SNES.pyx:2445

vec_sol#

Solution vector.

Source code at petsc4py/PETSc/SNES.pyx:2435

vec_upd#

Update vector.

Source code at petsc4py/PETSc/SNES.pyx:2440