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
|
<!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/PCSetModifySubMatrices.html" />
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>PCSetModifySubMatrices</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<div id="version" align=right><b>petsc-3.4.2 2013-07-02</b></div>
<A NAME="PCSetModifySubMatrices"><H1>PCSetModifySubMatrices</H1></A>
Sets a user-defined routine for modifying the submatrices that arise within certain subdomain-based preconditioners. The basic submatrices are extracted from the preconditioner matrix as usual; the user can then alter these (for example, to set different boundary conditions for each submatrix) before they are used for the local solves.
<H3><FONT COLOR="#CC3333">Synopsis</FONT></H3>
<PRE>
#include "petscksp.h"
PetscErrorCode PCSetModifySubMatrices(PC pc,PetscErrorCode (*func)(PC,PetscInt,const IS[],const IS[],Mat[],void*),void *ctx)
</PRE>
Logically Collective on <A HREF="../PC/PC.html#PC">PC</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>pc </B></TD><TD>- the preconditioner context
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>func </B></TD><TD>- routine for modifying the submatrices
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>ctx </B></TD><TD>- optional user-defined context (may be null)
</TD></TR></TABLE>
<P>
<H3><FONT COLOR="#CC3333">Calling sequence of func</FONT></H3>
<pre>
func (<A HREF="../PC/PC.html#PC">PC</A> pc,<A HREF="../Sys/PetscInt.html#PetscInt">PetscInt</A> nsub,<A HREF="../IS/IS.html#IS">IS</A> *row,<A HREF="../IS/IS.html#IS">IS</A> *col,<A HREF="../Mat/Mat.html#Mat">Mat</A> *submat,void *ctx);
</pre>
<P>
<DT><B>row </B> -an array of index sets that contain the global row numbers
that comprise each local submatrix
<br>
<DT><B>col </B> -an array of index sets that contain the global column numbers
that comprise each local submatrix
<br>
<DT><B>submat </B> -array of local submatrices
<br>
<DT><B>ctx </B> -optional user-defined context for private data for the
user-defined func routine (may be null)
<br>
</TABLE>
<P>
<H3><FONT COLOR="#CC3333">Notes</FONT></H3>
<A HREF="../PC/PCSetModifySubMatrices.html#PCSetModifySubMatrices">PCSetModifySubMatrices</A>() MUST be called before <A HREF="../KSP/KSPSetUp.html#KSPSetUp">KSPSetUp</A>() and
<A HREF="../KSP/KSPSolve.html#KSPSolve">KSPSolve</A>().
<P>
A routine set by <A HREF="../PC/PCSetModifySubMatrices.html#PCSetModifySubMatrices">PCSetModifySubMatrices</A>() is currently called within
the block Jacobi (<A HREF="../PC/PCBJACOBI.html#PCBJACOBI">PCBJACOBI</A>) and additive Schwarz (<A HREF="../PC/PCASM.html#PCASM">PCASM</A>)
preconditioners. All other preconditioners ignore this routine.
<P>
<P>
<H3><FONT COLOR="#CC3333">Keywords</FONT></H3>
<A HREF="../PC/PC.html#PC">PC</A>, set, modify, submatrices
<BR>
<P>
<H3><FONT COLOR="#CC3333">See Also</FONT></H3>
<A HREF="../PC/PCModifySubMatrices.html#PCModifySubMatrices">PCModifySubMatrices</A>(), PCASMGetSubMatrices()
<BR><P><B><P><B><FONT COLOR="#CC3333">Level:</FONT></B>advanced
<BR><FONT COLOR="#CC3333">Location:</FONT></B><A HREF="../../../src/ksp/pc/interface/precon.c.html#PCSetModifySubMatrices">src/ksp/pc/interface/precon.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>
|