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.

NewtonALCorrectionType

SNESNEWTONAL correction type.

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.

getFASCoarseCorrectionLineSearch(level)

Return the line search for coarse correction in the FAS cycle.

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.

getLineSearch()

Return the linesearch object associated with this SNES.

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.

getNewtonALLoadParameter()

Return the load parameter for SNESNEWTONAL.

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.

getVariableBounds()

Get the vectors for the variable bounds.

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.

setFASUseCoarseCorrectionLineSearch([use])

Set if to use a line search for the coarse corrections in FAS.

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.

setLineSearch(linesearch)

Set the linesearch object to be used by this SNES.

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.

setNewtonALCorrectionType(corrtype)

Set the correction type for SNESNEWTONAL.

setNewtonALFunction(function[, args, kargs])

Set the callback to compute the tangent load vector for SNESNEWTONAL.

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.

linesearch

The linesearch object associated with this SNES.

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:246

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:1376

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:1077

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:1096

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:1182

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:1119

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:1406

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:164

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:2235

destroy()#

Destroy the solver.

Collective.

See also

SNESDestroy

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

Return type:

Self

getApplicationContext()#

Return the application context.

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

Return type:

Any

getCompositeNumber()#

Return the number of solvers in the composite.

Not collective.

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

Return type:

int

getCompositeSNES(n)#

Return the n-th solver in the composite.

Not collective.

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

Parameters:

n (int)

Return type:

SNES

getConvergedReason()#

Return the termination flag.

Not collective.

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

Return type:

ConvergedReason

getConvergenceHistory()#

Return the convergence history.

Not collective.

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

Return type:

tuple[ArrayReal, ArrayInt]

getConvergenceTest()#

Return the callback to used as convergence test.

Not collective.

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

Return type:

tuple[SNESConvergedFunction, tuple[Any, …], dict[str, Any]] | None

getDM()#

Return the DM associated with the solver.

Not collective.

See also

setDM, SNESGetDM

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

Return type:

DM

getDivergenceTolerance()#

Get the divergence tolerance parameter used in the convergence tests.

Not collective.

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

Return type:

float

getErrorIfNotConverged()#

Return the flag indicating error on divergence.

Not collective.

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

Return type:

bool

getFASCoarseCorrectionLineSearch(level)#

Return the line search for coarse correction in the FAS cycle.

Not collective.

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

Parameters:

level (int)

Return type:

SNESLineSearch | None

getFASCoarseSolve()#

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

Not collective.

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

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:592

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:515

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:455

Parameters:

level (int)

Return type:

Mat

getFASLevels()#

Return the number of levels used.

Not collective.

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

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:485

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:656

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:673

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:690

Parameters:

level (int)

Return type:

SNES

getFunction()#

Return the callback to compute the nonlinear function.

Not collective.

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

Return type:

tuple[Vec, tuple[SNESFunction, tuple[Any, …], dict[str, Any]] | None]

getFunctionEvaluations()#

Return the current number of function evaluations.

Not collective.

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

Return type:

int

getFunctionNorm()#

Return the function norm.

Not collective.

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

Return type:

float

getInitialGuess()#

Return the callback to compute the initial guess.

Not collective.

See also

setInitialGuess

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

Return type:

tuple[SNESGuessFunction, tuple[Any, …], dict[str, Any]] | None

getIterationNumber()#

Return the current iteration number.

Not collective.

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

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:1006

getKSP()#

Return the linear solver used by the nonlinear solver.

Not collective.

See also

setKSP, SNESGetKSP

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

Return type:

KSP

getKSPFailures()#

Return the current number of linear solve failures.

Not collective.

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

Return type:

int

getLineSearch()#

Return the linesearch object associated with this SNES.

Not collective.

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

Return type:

SNESLineSearch

getLinearSolveIterations()#

Return the total number of linear iterations.

Not collective.

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

Return type:

int

getMaxFunctionEvaluations()#

Return the maximum allowed number of function evaluations.

Not collective.

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

Return type:

int

getMaxKSPFailures()#

Return the maximum allowed number of linear solve failures.

Not collective.

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

Return type:

int

getMaxStepFailures()#

Return the maximum allowed number of step failures.

Not collective.

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

Return type:

int

getMonitor()#

Return the callback used to monitor solver convergence.

Not collective.

See also

setMonitor

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

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:2368

Return type:

int

getNASMSNES(n)#

Return the n-th solver in NASM.

Not collective.

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

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:1170

Return type:

tuple[SNESNGSFunction, tuple[Any, …], dict[str, Any]] | None

getNPC()#

Return the nonlinear preconditioner associated with the solver.

Not collective.

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

Return type:

SNES

getNPCSide()#

Return the nonlinear preconditioning side.

Not collective.

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

Return type:

Side

getNewtonALLoadParameter()#

Return the load parameter for SNESNEWTONAL.

Not collective.

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

Return type:

float

getNormSchedule()#

Return the norm schedule.

Not collective.

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

Return type:

NormSchedule

getObjective()#

Return the objective callback tuple.

Not collective.

See also

setObjective

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

Return type:

tuple[SNESObjFunction, tuple[Any, …], dict[str, Any]] | None

getOptionsPrefix()#

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

Not collective.

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

Return type:

str

getParamsEW()#

Get the parameters of the Eisenstat and Walker trick.

Not collective.

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

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:2272

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:2302

Return type:

str

getRhs()#

Return the vector holding the right-hand side.

Not collective.

See also

SNESGetRhs

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

Return type:

Vec

getSolution()#

Return the vector holding the solution.

Not collective.

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

Return type:

Vec

getSolutionUpdate()#

Return the vector holding the solution update.

Not collective.

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

Return type:

Vec

getStepFailures()#

Return the current number of step failures.

Not collective.

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

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:352

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:411

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:1244

getType()#

Return the type of the solver.

Not collective.

See also

setType, SNESGetType

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

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:953

Return type:

tuple[SNESUpdateFunction, tuple[Any, …], dict[str, Any]] | None

getUseEW()#

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

Not collective.

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

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:2175

Return type:

bool

getUseKSP()#

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

Not collective.

See also

setUseKSP

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

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:2148

Return type:

bool

getVIInactiveSet()#

Return the index set for the inactive set.

Not collective.

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

Return type:

IS

getVariableBounds()#

Get the vectors for the variable bounds.

Collective.

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

Return type:

tuple[Vec, Vec]

hasNPC()#

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

Not collective.

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

Return type:

bool

logConvergenceHistory(norm, linear_its=0)#

Log residual norm and linear iterations.

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

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:1554

monitorCancel()#

Cancel all the monitors of the solver.

Logically collective.

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

Return type:

None

reset()#

Reset the solver.

Collective.

See also

SNESReset

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

Return type:

None

setApplicationContext(appctx)#

Set the application context.

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

Parameters:

appctx (Any)

Return type:

None

setConvergedReason(reason)#

Set the termination flag.

Collective.

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

Parameters:

reason (ConvergedReason)

Return type:

None

setConvergenceHistory(length=None, reset=False)#

Set the convergence history.

Logically collective.

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

Return type:

None

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

Set the callback to use as convergence test.

Logically collective.

Parameters:
Return type:

None

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

setDM(dm)#

Associate a DM with the solver.

Not collective.

See also

getDM, SNESSetDM

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

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:1271

setErrorIfNotConverged(flag=True)#

Immediately generate an error if the solver has not converged.

Collective.

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

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:501

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:441

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:544

setFASRScale(level, vec)#

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

Collective.

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

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:471

Parameters:
Return type:

None

setFASUseCoarseCorrectionLineSearch(use=True)#

Set if to use a line search for the coarse corrections in FAS.

Logically collective.

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

Parameters:

use (bool)

Return type:

None

setForceIteration(force=True)#

Force solve to take at least one iteration.

Collective.

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

Parameters:

force (bool)

Return type:

None

setFromOptions()#

Configure the solver from the options database.

Collective.

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

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:855

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:1863

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:812

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:1821

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:965

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:1965

Parameters:

ksp (KSP)

Return type:

None

setLineSearch(linesearch)#

Set the linesearch object to be used by this SNES.

Logically collective.

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

Parameters:

linesearch (SNESLineSearch)

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:778

setMaxFunctionEvaluations(max_funcs)#

Set the maximum allowed number of function evaluations.

Collective.

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

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:1663

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:1622

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:1496

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:1138

setNPC(snes)#

Set the nonlinear preconditioner.

Logically collective.

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

Parameters:

snes (SNES)

Return type:

None

setNPCSide(side)#

Set the nonlinear preconditioning side.

Collective.

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

Parameters:

side (Side)

Return type:

None

setNewtonALCorrectionType(corrtype)#

Set the correction type for SNESNEWTONAL.

Logically collective.

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

Parameters:

corrtype (NewtonALCorrectionType)

Return type:

None

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

Set the callback to compute the tangent load vector for SNESNEWTONAL.

Logically collective.

Parameters:
  • function (SNESFunction | None) – The 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:2681

setNormSchedule(normsched)#

Set the norm schedule.

Collective.

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

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:1033

setOptionsPrefix(prefix)#

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

Logically collective.

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

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:
Return type:

None

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

setPatchCellNumbering(sec)#

Set cell patch numbering.

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

Parameters:

sec (Section)

Return type:

None

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

Set patch compute function.

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

Return type:

None

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

Set patch compute operator.

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

Return type:

None

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

Set patch construct type.

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

Return type:

None

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

Set patch discretisation information.

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

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:2260

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:2287

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:1481

Parameters:

reset (bool)

Return type:

None

setSolution(vec)#

Set the vector used to store the solution.

Collective.

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

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 | None) – The minimum allowed trust region size. Defaults to CURRENT.

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

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

Return type:

None

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

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

Set the update parameters used for the trust region.

Logically collective.

Parameters:
Return type:

None

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

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 | None) – The relative norm of the residual, or DETERMINE to use the value when the object’s type was set. Defaults to CURRENT.

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

  • stol (float | None) – 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 | None) – 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:1205

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:185

setUp()#

Set up the internal data structures for using the solver.

Collective.

See also

SNESSetUp

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

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:1718

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:922

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:1992

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:2162

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:2106

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:2135

Return type:

None

setVariableBounds(xl, xu)#

Set the vector for the variable bounds.

Collective.

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

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:1744

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:132

Attributes Documentation

appctx#

Application context.

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

atol#

Absolute residual tolerance.

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

dm#

DM.

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

history#

Convergence history.

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

is_converged#

Boolean indicating if the solver has converged.

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

is_diverged#

Boolean indicating if the solver has failed.

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

is_iterating#

Boolean indicating if the solver has not converged yet.

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

its#

Number of iterations.

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

ksp#

Linear solver.

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

linesearch#

The linesearch object associated with this SNES.

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

max_funcs#

Maximum number of function evaluations.

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

max_it#

Maximum number of iterations.

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

norm#

Function norm.

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

npc#

Nonlinear preconditioner.

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

reason#

Converged reason.

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

rtol#

Relative residual tolerance.

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

stol#

Solution update tolerance.

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

use_ew#

Use the Eisenstat-Walker trick.

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

use_fd#

Boolean indicating if the solver uses coloring finite-differencing.

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

use_ksp#

Boolean indicating if the solver uses a linear solver.

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

use_mf#

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

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

vec_rhs#

Right-hand side vector.

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

vec_sol#

Solution vector.

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

vec_upd#

Update vector.

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