SNESVISetVariableBounds#
Sets the lower and upper bounds for the solution vector. xl <= x <= xu. This allows solving (differential) variable inequalities.
Synopsis#
#include "petscsnes.h"
PetscErrorCode SNESVISetVariableBounds(SNES snes, Vec xl, Vec xu)
Input Parameters#
snes - the
SNES
context.xl - lower bound.
xu - upper bound.
Notes#
If this routine is not called then the lower and upper bounds are set to
PETSC_NINFINITY
and PETSC_INFINITY
respectively during SNESSetUp()
.
Problems with bound constraints can be solved with the reduced space, SNESVINEWTONRSLS
, and semi-smooth SNESVINEWTONSSLS
solvers.
For particular components that have no bounds you can use PETSC_NINFINITY
or PETSC_INFINITY
SNESVISetComputeVariableBounds()
can be used to provide a function that computes the bounds. This should be used if you are using, for example, grid
sequencing and need bounds set for a variety of vectors
See Also#
Variational Inequalities, SNES
, SNESVIGetVariableBounds()
, SNESVISetComputeVariableBounds()
, SNESSetFunctionDomainError()
, SNESSetJacobianDomainError()
, SNESVINEWTONRSLS
, SNESVINEWTONSSLS
, ‘SNESSetType()`
Level#
advanced
Location#
Implementations#
SNESVISetVariableBounds_VI in src/snes/impls/vi/vi.c
Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages