1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD> <link rel="canonical" href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/PC/PCVPBJACOBI.html" />
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>PCVPBJACOBI</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<div id="version" align=right><b>petsc-3.10.3 2018-12-18</b></div>
<div id="bugreport" align=right><a href="mailto:petsc-maint@mcs.anl.gov?subject=Typo or Error in Documentation &body=Please describe the typo or error in the documentation: petsc-3.10.3 v3.10.3 docs/manualpages/PC/PCVPBJACOBI.html "><small>Report Typos and Errors</small></a></div>
<A NAME="PCVPBJACOBI"><H1>PCVPBJACOBI</H1></A>
Variable size point block Jacobi preconditioner
<P>
<H3><FONT COLOR="#CC3333">Notes</FONT></H3>
See <A HREF="../PC/PCJACOBI.html#PCJACOBI">PCJACOBI</A> for point Jacobi preconditioning, <A HREF="../PC/PCPBJACOBI.html#PCPBJACOBI">PCPBJACOBI</A> for fixed point block size, and <A HREF="../PC/PCBJACOBI.html#PCBJACOBI">PCBJACOBI</A> for large size blocks
<P>
This works for AIJ matrices
<P>
Uses dense LU factorization with partial pivoting to invert the blocks; if a zero pivot
is detected a PETSc error is generated.
<P>
One must call <A HREF="../Mat/MatSetVariableBlockSizes.html#MatSetVariableBlockSizes">MatSetVariableBlockSizes</A>() to use this preconditioner
<H3><FONT COLOR="#CC3333">Developer Notes</FONT></H3>
This should support the <A HREF="../PC/PCSetErrorIfFailure.html#PCSetErrorIfFailure">PCSetErrorIfFailure</A>() flag set to <A HREF="../Sys/PETSC_TRUE.html#PETSC_TRUE">PETSC_TRUE</A> to allow
the factorization to continue even after a zero pivot is found resulting in a Nan and hence
terminating <A HREF="../KSP/KSP.html#KSP">KSP</A> with a KSP_DIVERGED_NANORIF allowing
a nonlinear solver/ODE integrator to recover without stopping the program as currently happens.
<P>
Perhaps should provide an option that allows generation of a valid preconditioner
even if a block is singular as the <A HREF="../PC/PCJACOBI.html#PCJACOBI">PCJACOBI</A> does.
<P>
<P>
<P>
<H3><FONT COLOR="#CC3333">See Also</FONT></H3>
<A HREF="../Mat/MatSetVariableBlockSizes.html#MatSetVariableBlockSizes">MatSetVariableBlockSizes</A>(), <A HREF="../PC/PCCreate.html#PCCreate">PCCreate</A>(), <A HREF="../PC/PCSetType.html#PCSetType">PCSetType</A>(), <A HREF="../PC/PCType.html#PCType">PCType</A> (for list of available types), <A HREF="../PC/PC.html#PC">PC</A>, <A HREF="../PC/PCJACOBI.html#PCJACOBI">PCJACOBI</A>
<BR>
<P>
<P><B></B><H3><FONT COLOR="#CC3333">Level</FONT></H3>beginner<BR>
<H3><FONT COLOR="#CC3333">Location</FONT></H3>
</B><A HREF="../../../src/ksp/pc/impls/vpbjacobi/vpbjacobi.c.html#PCVPBJACOBI">src/ksp/pc/impls/vpbjacobi/vpbjacobi.c</A>
<BR><A HREF="./index.html">Index of all PC routines</A>
<BR><A HREF="../../index.html">Table of Contents for all manual pages</A>
<BR><A HREF="../singleindex.html">Index of all manual pages</A>
</BODY></HTML>
|