File: MatSetValues.html

package info (click to toggle)
petsc 3.10.3%2Bdfsg1-5
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 209,064 kB
  • sloc: ansic: 587,333; python: 29,696; makefile: 12,445; fortran: 11,626; f90: 9,677; cpp: 8,768; sh: 1,027; xml: 621; objc: 445; csh: 194; java: 13
file content (102 lines) | stat: -rw-r--r-- 9,448 bytes parent folder | download
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
95
96
97
98
99
100
101
102
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD> <link rel="canonical" href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatSetValues.html" />
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MatSetValues</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/Mat/MatSetValues.html "><small>Report Typos and Errors</small></a></div>
<A NAME="MatSetValues"><H1>MatSetValues</H1></A>
Inserts or adds a block of values into a matrix. These values may be cached, so <A HREF="../Mat/MatAssemblyBegin.html#MatAssemblyBegin">MatAssemblyBegin</A>() and <A HREF="../Mat/MatAssemblyEnd.html#MatAssemblyEnd">MatAssemblyEnd</A>() MUST be called after all calls to <A HREF="../Mat/MatSetValues.html#MatSetValues">MatSetValues</A>() have been completed. 
<H3><FONT COLOR="#CC3333">Synopsis</FONT></H3>
<PRE>
#include "petscmat.h" 
<A HREF="../Sys/PetscErrorCode.html#PetscErrorCode">PetscErrorCode</A> <A HREF="../Mat/MatSetValues.html#MatSetValues">MatSetValues</A>(<A HREF="../Mat/Mat.html#Mat">Mat</A> mat,<A HREF="../Sys/PetscInt.html#PetscInt">PetscInt</A> m,const <A HREF="../Sys/PetscInt.html#PetscInt">PetscInt</A> idxm[],<A HREF="../Sys/PetscInt.html#PetscInt">PetscInt</A> n,const <A HREF="../Sys/PetscInt.html#PetscInt">PetscInt</A> idxn[],const <A HREF="../Sys/PetscScalar.html#PetscScalar">PetscScalar</A> v[],<A HREF="../Sys/InsertMode.html#InsertMode">InsertMode</A> addv)
</PRE>
Not Collective
<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>mat </B></TD><TD>- the matrix
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>v </B></TD><TD>- a logically two-dimensional array of values
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>m, idxm </B></TD><TD>- the number of rows and their global indices
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>n, idxn </B></TD><TD>- the number of columns and their global indices
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>addv </B></TD><TD>- either <A HREF="../Sys/ADD_VALUES.html#ADD_VALUES">ADD_VALUES</A> or <A HREF="../Sys/INSERT_VALUES.html#INSERT_VALUES">INSERT_VALUES</A>, where
<A HREF="../Sys/ADD_VALUES.html#ADD_VALUES">ADD_VALUES</A> adds values to any existing entries, and
<A HREF="../Sys/INSERT_VALUES.html#INSERT_VALUES">INSERT_VALUES</A> replaces existing entries with new values
</TD></TR></TABLE>
<P>
<H3><FONT COLOR="#CC3333">Notes</FONT></H3>
If you create the matrix yourself (that is not with a call to <A HREF="../DM/DMCreateMatrix.html#DMCreateMatrix">DMCreateMatrix</A>()) then you MUST call MatXXXXSetPreallocation() or
<A HREF="../Mat/MatSetUp.html#MatSetUp">MatSetUp</A>() before using this routine
<P>
By default the values, v, are row-oriented. See <A HREF="../Mat/MatSetOption.html#MatSetOption">MatSetOption</A>() for other options.
<P>
Calls to <A HREF="../Mat/MatSetValues.html#MatSetValues">MatSetValues</A>() with the <A HREF="../Sys/INSERT_VALUES.html#INSERT_VALUES">INSERT_VALUES</A> and <A HREF="../Sys/ADD_VALUES.html#ADD_VALUES">ADD_VALUES</A>
options cannot be mixed without intervening calls to the assembly
routines.
<P>
<A HREF="../Mat/MatSetValues.html#MatSetValues">MatSetValues</A>() uses 0-based row and column numbers in Fortran
as well as in C.
<P>
Negative indices may be passed in idxm and idxn, these rows and columns are
simply ignored. This allows easily inserting element stiffness matrices
with homogeneous Dirchlet boundary conditions that you don't want represented
in the matrix.
<P>
<H3><FONT COLOR="#CC3333">Efficiency Alert</FONT></H3>
The routine <A HREF="../Mat/MatSetValuesBlocked.html#MatSetValuesBlocked">MatSetValuesBlocked</A>() may offer much better efficiency
for users of block sparse formats (<A HREF="../Mat/MATSEQBAIJ.html#MATSEQBAIJ">MATSEQBAIJ</A> and <A HREF="../Mat/MATMPIBAIJ.html#MATMPIBAIJ">MATMPIBAIJ</A>).
<P>

<P>
<H3><FONT COLOR="#CC3333">Developer Notes</FONT></H3>
This is labeled with C so does not automatically generate Fortran stubs and interfaces
because it requires multiple Fortran interfaces depending on which arguments are scalar or arrays.
<P>
<P>
<H3><FONT COLOR="#CC3333">See Also</FONT></H3>
 <A HREF="../Mat/MatSetOption.html#MatSetOption">MatSetOption</A>(), <A HREF="../Mat/MatAssemblyBegin.html#MatAssemblyBegin">MatAssemblyBegin</A>(), <A HREF="../Mat/MatAssemblyEnd.html#MatAssemblyEnd">MatAssemblyEnd</A>(), <A HREF="../Mat/MatSetValuesBlocked.html#MatSetValuesBlocked">MatSetValuesBlocked</A>(), <A HREF="../Mat/MatSetValuesLocal.html#MatSetValuesLocal">MatSetValuesLocal</A>(),
<BR><A HREF="../Sys/InsertMode.html#InsertMode">InsertMode</A>, <A HREF="../Sys/INSERT_VALUES.html#INSERT_VALUES">INSERT_VALUES</A>, <A HREF="../Sys/ADD_VALUES.html#ADD_VALUES">ADD_VALUES</A>
<P><B></B><H3><FONT COLOR="#CC3333">Level</FONT></H3>beginner<BR>
<H3><FONT COLOR="#CC3333">Location</FONT></H3>
</B><A HREF="../../../src/mat/interface/matrix.c.html#MatSetValues">src/mat/interface/matrix.c</A>
<P><H3><FONT COLOR="#CC3333">Examples</FONT></H3>
<A HREF="../../../src/mat/examples/tutorials/ex2.c.html">src/mat/examples/tutorials/ex2.c.html</A><BR>
<A HREF="../../../src/mat/examples/tutorials/ex5.c.html">src/mat/examples/tutorials/ex5.c.html</A><BR>
<A HREF="../../../src/mat/examples/tutorials/ex8.c.html">src/mat/examples/tutorials/ex8.c.html</A><BR>
<A HREF="../../../src/mat/examples/tutorials/ex12.c.html">src/mat/examples/tutorials/ex12.c.html</A><BR>
<A HREF="../../../src/mat/examples/tutorials/ex15.c.html">src/mat/examples/tutorials/ex15.c.html</A><BR>
<A HREF="../../../src/mat/examples/tutorials/ex16.c.html">src/mat/examples/tutorials/ex16.c.html</A><BR>
<A HREF="../../../src/mat/examples/tutorials/ex17.c.html">src/mat/examples/tutorials/ex17.c.html</A><BR>
<A HREF="../../../src/ksp/pc/examples/tutorials/ex1.c.html">src/ksp/pc/examples/tutorials/ex1.c.html</A><BR>
<A HREF="../../../src/ksp/pc/examples/tutorials/ex2.c.html">src/ksp/pc/examples/tutorials/ex2.c.html</A><BR>
<A HREF="../../../src/ksp/pc/examples/tutorials/ex3.c.html">src/ksp/pc/examples/tutorials/ex3.c.html</A><BR>
<A HREF="../../../src/ksp/ksp/examples/tutorials/ex1.c.html">src/ksp/ksp/examples/tutorials/ex1.c.html</A><BR>
<P><H3><FONT COLOR="CC3333">Implementations</FONT></H3><A HREF="../../../src/mat/impls/aij/mpi/mpiaij.c.html#MatSetValues_MPIAIJ">MatSetValues_MPIAIJ in src/mat/impls/aij/mpi/mpiaij.c</A><BR>
<A HREF="../../../src/mat/impls/aij/mpi/mpiaij.c.html#MatSetValues_MPIAIJ_CopyFromCSRFormat_Symbolic">MatSetValues_MPIAIJ_CopyFromCSRFormat_Symbolic in src/mat/impls/aij/mpi/mpiaij.c</A><BR>
<A HREF="../../../src/mat/impls/aij/mpi/mpiaij.c.html#MatSetValues_MPIAIJ_CopyFromCSRFormat">MatSetValues_MPIAIJ_CopyFromCSRFormat in src/mat/impls/aij/mpi/mpiaij.c</A><BR>
<A HREF="../../../src/mat/impls/aij/seq/aij.c.html#MatSetValues_SeqAIJ">MatSetValues_SeqAIJ in src/mat/impls/aij/seq/aij.c</A><BR>
<A HREF="../../../src/mat/impls/baij/mpi/mpibaij.c.html#MatSetValues_MPIBAIJ">MatSetValues_MPIBAIJ in src/mat/impls/baij/mpi/mpibaij.c</A><BR>
<A HREF="../../../src/mat/impls/baij/mpi/mpibaij.c.html#MatSetValues_MPIBAIJ_HT">MatSetValues_MPIBAIJ_HT in src/mat/impls/baij/mpi/mpibaij.c</A><BR>
<A HREF="../../../src/mat/impls/baij/seq/baij.c.html#MatSetValues_SeqBAIJ">MatSetValues_SeqBAIJ in src/mat/impls/baij/seq/baij.c</A><BR>
<A HREF="../../../src/mat/impls/blockmat/seq/blockmat.c.html#MatSetValues_BlockMat">MatSetValues_BlockMat in src/mat/impls/blockmat/seq/blockmat.c</A><BR>
<A HREF="../../../src/mat/impls/dense/mpi/mpidense.c.html#MatSetValues_MPIDense">MatSetValues_MPIDense in src/mat/impls/dense/mpi/mpidense.c</A><BR>
<A HREF="../../../src/mat/impls/dense/seq/dense.c.html#MatSetValues_SeqDense">MatSetValues_SeqDense in src/mat/impls/dense/seq/dense.c</A><BR>
<A HREF="../../../src/mat/impls/elemental/matelem.cxx.html#MatSetValues_Elemental">MatSetValues_Elemental in src/mat/impls/elemental/matelem.cxx</A><BR>
<A HREF="../../../src/mat/impls/hypre/mhypre.c.html#MatSetValues_HYPRE">MatSetValues_HYPRE in src/mat/impls/hypre/mhypre.c</A><BR>
<A HREF="../../../src/mat/impls/is/matis.c.html#MatSetValues_IS">MatSetValues_IS in src/mat/impls/is/matis.c</A><BR>
<A HREF="../../../src/mat/impls/preallocator/matpreallocator.c.html#MatSetValues_Preallocator">MatSetValues_Preallocator in src/mat/impls/preallocator/matpreallocator.c</A><BR>
<A HREF="../../../src/mat/impls/sbaij/mpi/mpisbaij.c.html#MatSetValues_MPISBAIJ">MatSetValues_MPISBAIJ in src/mat/impls/sbaij/mpi/mpisbaij.c</A><BR>
<A HREF="../../../src/mat/impls/sbaij/seq/sbaij.c.html#MatSetValues_SeqSBAIJ">MatSetValues_SeqSBAIJ in src/mat/impls/sbaij/seq/sbaij.c</A><BR>
<A HREF="../../../src/mat/impls/sell/mpi/mpisell.c.html#MatSetValues_MPISELL">MatSetValues_MPISELL in src/mat/impls/sell/mpi/mpisell.c</A><BR>
<A HREF="../../../src/mat/impls/sell/seq/sell.c.html#MatSetValues_SeqSELL">MatSetValues_SeqSELL in src/mat/impls/sell/seq/sell.c</A><BR>
<BR><A HREF="./index.html">Index of all Mat 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>