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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD> <link rel="canonical" href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/SNES/SNESComputeJacobian.html" />
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>SNESComputeJacobian</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/SNES/SNESComputeJacobian.html "><small>Report Typos and Errors</small></a></div>
<A NAME="SNESComputeJacobian"><H1>SNESComputeJacobian</H1></A>
Computes the Jacobian matrix that has been set with <A HREF="../SNES/SNESSetJacobian.html#SNESSetJacobian">SNESSetJacobian</A>().
<H3><FONT COLOR="#CC3333">Synopsis</FONT></H3>
<PRE>
#include "petscsnes.h"
<A HREF="../Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> <A HREF="../SNES/SNESComputeJacobian.html#SNESComputeJacobian">SNESComputeJacobian</A>(<A HREF="../SNES/SNES.html#SNES">SNES</A> snes,<A HREF="../Vec/Vec.html#Vec">Vec</A> X,<A HREF="../Mat/Mat.html#Mat">Mat</A> A,<A HREF="../Mat/Mat.html#Mat">Mat</A> B)
</PRE>
Collective on <A HREF="../SNES/SNES.html#SNES">SNES</A> and <A HREF="../Mat/Mat.html#Mat">Mat</A>
<P>
<H3><FONT COLOR="#CC3333">Input Parameters</FONT></H3>
<TABLE border="0" cellpadding="0" cellspacing="0">
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>snes </B></TD><TD>- the <A HREF="../SNES/SNES.html#SNES">SNES</A> context
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>x </B></TD><TD>- input vector
</TD></TR></TABLE>
<P>
<H3><FONT COLOR="#CC3333">Output Parameters</FONT></H3>
<TABLE border="0" cellpadding="0" cellspacing="0">
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>A </B></TD><TD>- Jacobian matrix
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>B </B></TD><TD>- optional preconditioning matrix
</TD></TR></TABLE>
<P>
<H3><FONT COLOR="#CC3333">Options Database Keys</FONT></H3>
<TABLE border="0" cellpadding="0" cellspacing="0">
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-snes_lag_preconditioner <lag></B></TD><TD>- . -snes_lag_jacobian <lag>
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-snes_test_jacobian </B></TD><TD>- compare the user provided Jacobian with one compute via finite differences to check for errors
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-snes_test_jacobian_display </B></TD><TD>- display the user provided Jacobian, the finite difference Jacobian and the difference between them to help users detect the location of errors in the user provided Jacobian
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-snes_test_jacobian_display_threshold <numerical value> </B></TD><TD>- display entries in the difference between the user provided Jacobian and finite difference Jacobian that are greater than a certain value to help users detect errors
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-snes_compare_explicit </B></TD><TD>- Compare the computed Jacobian to the finite difference Jacobian and output the differences
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-snes_compare_explicit_draw </B></TD><TD>- Compare the computed Jacobian to the finite difference Jacobian and draw the result
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-snes_compare_explicit_contour </B></TD><TD>- Compare the computed Jacobian to the finite difference Jacobian and draw a contour plot with the result
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-snes_compare_operator </B></TD><TD>- Make the comparison options above use the operator instead of the preconditioning matrix
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-snes_compare_coloring </B></TD><TD>- Compute the finite difference Jacobian using coloring and display norms of difference
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-snes_compare_coloring_display </B></TD><TD>- Compute the finite differece Jacobian using coloring and display verbose differences
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-snes_compare_coloring_threshold </B></TD><TD>- Display only those matrix entries that differ by more than a given threshold
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-snes_compare_coloring_threshold_atol </B></TD><TD>- Absolute tolerance for difference in matrix entries to be displayed by -snes_compare_coloring_threshold
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-snes_compare_coloring_threshold_rtol </B></TD><TD>- Relative tolerance for difference in matrix entries to be displayed by -snes_compare_coloring_threshold
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-snes_compare_coloring_draw </B></TD><TD>- Compute the finite differece Jacobian using coloring and draw differences
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-snes_compare_coloring_draw_contour </B></TD><TD>- Compute the finite differece Jacobian using coloring and show contours of matrices and differences
</TD></TR></TABLE>
<P>
<P>
<H3><FONT COLOR="#CC3333">Notes</FONT></H3>
Most users should not need to explicitly call this routine, as it
is used internally within the nonlinear solvers.
<P>
<H3><FONT COLOR="#CC3333">Developer Notes</FONT></H3>
This has duplicative ways of checking the accuracy of the user provided Jacobian (see the options above). This is for historical reasons, the routine SNESTestJacobian() use to used
for with the <A HREF="../SNES/SNESType.html#SNESType">SNESType</A> of test that has been removed.
<P>
<P>
<H3><FONT COLOR="#CC3333">Keywords</FONT></H3>
<A HREF="../SNES/SNES.html#SNES">SNES</A>, compute, Jacobian, matrix
<BR>
<P>
<H3><FONT COLOR="#CC3333">See Also</FONT></H3>
<A HREF="../SNES/SNESSetJacobian.html#SNESSetJacobian">SNESSetJacobian</A>(), <A HREF="../KSP/KSPSetOperators.html#KSPSetOperators">KSPSetOperators</A>(), <A HREF="../Mat/MatStructure.html#MatStructure">MatStructure</A>, <A HREF="../SNES/SNESSetLagPreconditioner.html#SNESSetLagPreconditioner">SNESSetLagPreconditioner</A>(), <A HREF="../SNES/SNESSetLagJacobian.html#SNESSetLagJacobian">SNESSetLagJacobian</A>()
<BR><P><B></B><H3><FONT COLOR="#CC3333">Level</FONT></H3>developer<BR>
<H3><FONT COLOR="#CC3333">Location</FONT></H3>
</B><A HREF="../../../src/snes/interface/snes.c.html#SNESComputeJacobian">src/snes/interface/snes.c</A>
<P><H3><FONT COLOR="#CC3333">Examples</FONT></H3>
<A HREF="../../../src/snes/examples/tutorials/ex12.c.html">src/snes/examples/tutorials/ex12.c.html</A><BR>
<A HREF="../../../src/snes/examples/tutorials/ex62.c.html">src/snes/examples/tutorials/ex62.c.html</A><BR>
<A HREF="../../../src/snes/examples/tutorials/ex77.c.html">src/snes/examples/tutorials/ex77.c.html</A><BR>
<A HREF="../../../src/ts/examples/tutorials/ex48.c.html">src/ts/examples/tutorials/ex48.c.html</A><BR>
<BR><A HREF="./index.html">Index of all SNES 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>
|