~ubuntu-branches/ubuntu/warty/petsc/warty

« back to all changes in this revision

Viewing changes to src/vec/examples/tutorials/ex10.c.html

  • Committer: Bazaar Package Importer
  • Author(s): Adam C. Powell, IV
  • Date: 2004-06-07 13:41:43 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20040607134143-92p586zrauvie0le
Tags: 2.2.0-2
* Upstream patch level 2.
* New PETSC_BOPT_EXTRA option for different BOPT and lib names, with _c++
  symlinks only for plain and single (closes: #249617).
* New DEBIAN_DIST=contrib option to link with hypre, parmetis (closes:
  #249619).
* Combined petsc-c and petsc-fortran substvars into petsc-compilers.
* Extra quote in -dev prerm eliminates "too many arguments" problem.

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
<html>
4
4
<head>
5
5
<title></title>
6
 
<meta name="generator" content="c2html 0.9.1">
7
 
<meta name="date" content="2002-05-31T16:05:35+00:00">
 
6
<meta name="generator" content="c2html 0.9.4">
 
7
<meta name="date" content="2004-02-27T19:58:08+00:00">
8
8
</head>
9
9
 
10
10
<body bgcolor="#FFFFFF">
12
12
 
13
13
<a name="line3">  3: </a><font color="#B22222">/* Program usage:  <A href="http://www.mcs.anl.gov/mpi/www/www1/mpirun.html#mpirun">mpirun</A> ex1 [-help] [all PETSc options] */</font>
14
14
 
15
 
<a name="line5">  5: </a>static char help[] = <font color="#666666">"Demonstrates the AMS Memory Snooper viewing.nn"</font>;
 
15
<a name="line5">  5: </a>static char help[] = <font color="#666666">"Demonstrates the AMS Memory Snooper viewing.\n\n"</font>;
16
16
 
17
17
<a name="line7">  7: </a><font color="#B22222">/*T</font>
18
18
<a name="line8">  8: </a><font color="#B22222">   Concepts: vectors^basic routines;</font>
28
28
 
29
29
<a name="line19"> 19: </a> #include <A href="../../../../include/petscvec.h.html">petscvec.h</A>
30
30
 
31
 
<a name="line21"> 21: </a><strong><font color="#4169E1"><a name="main"></a>int main(int argc,char **argv)</font></strong>
32
 
<a name="line22"> 22: </a>{
33
 
<a name="line23"> 23: </a>  <A href="../../../../docs/manualpages/Vec/Vec.html#Vec">Vec</A>      x,y;
34
 
<a name="line24"> 24: </a>  int      n = 20,ierr,i,row;
35
 
<a name="line25"> 25: </a>  <A href="../../../../docs/manualpages/Sys/PetscScalar.html#PetscScalar">PetscScalar</A>   value;
36
 
 
37
 
<a name="line27"> 27: </a>  <A href="../../../../docs/manualpages/Sys/PetscInitialize.html#PetscInitialize">PetscInitialize</A>(&amp;argc,&amp;argv,(char*)0,help);
38
 
<a name="line28"> 28: </a>  <A href="../../../../docs/manualpages/Sys/PetscOptionsGetInt.html#PetscOptionsGetInt">PetscOptionsGetInt</A>(PETSC_NULL,<font color="#666666">"-n"</font>,&amp;n,PETSC_NULL);
39
 
 
40
 
<a name="line30"> 30: </a>  <font color="#B22222">/* </font>
41
 
<a name="line31"> 31: </a><font color="#B22222">     Create a vector, specifying only its global dimension.</font>
42
 
<a name="line32"> 32: </a><font color="#B22222">     When using <A href="../../../../docs/manualpages/Vec/VecCreate.html#VecCreate">VecCreate</A>(), <A href="../../../../docs/manualpages/Vec/VecSetSizes.html#VecSetSizes">VecSetSizes</A>() and <A href="../../../../docs/manualpages/Vec/VecSetFromOptions.html#VecSetFromOptions">VecSetFromOptions</A>(), </font>
43
 
<a name="line33"> 33: </a><font color="#B22222">     the vector format (currently parallel,</font>
44
 
<a name="line34"> 34: </a><font color="#B22222">     shared, or sequential) is determined at runtime.  Also, the parallel</font>
45
 
<a name="line35"> 35: </a><font color="#B22222">     partitioning of the vector is determined by PETSc at runtime.</font>
46
 
 
47
 
<a name="line37"> 37: </a><font color="#B22222">     Routines for creating particular vector types directly are:</font>
48
 
<a name="line38"> 38: </a><font color="#B22222">        <A href="../../../../docs/manualpages/Vec/VecCreateSeq.html#VecCreateSeq">VecCreateSeq</A>() - uniprocessor vector</font>
49
 
<a name="line39"> 39: </a><font color="#B22222">        <A href="../../../../docs/manualpages/Vec/VecCreateMPI.html#VecCreateMPI">VecCreateMPI</A>() - distributed vector, where the user can</font>
50
 
<a name="line40"> 40: </a><font color="#B22222">                         determine the parallel partitioning</font>
51
 
<a name="line41"> 41: </a><font color="#B22222">        <A href="../../../../docs/manualpages/Vec/VecCreateShared.html#VecCreateShared">VecCreateShared</A>() - parallel vector that uses shared memory</font>
52
 
<a name="line42"> 42: </a><font color="#B22222">                            (available only on the SGI); otherwise,</font>
53
 
<a name="line43"> 43: </a><font color="#B22222">                            is the same as <A href="../../../../docs/manualpages/Vec/VecCreateMPI.html#VecCreateMPI">VecCreateMPI</A>()</font>
54
 
 
55
 
<a name="line45"> 45: </a><font color="#B22222">     With <A href="../../../../docs/manualpages/Vec/VecCreate.html#VecCreate">VecCreate</A>(), <A href="../../../../docs/manualpages/Vec/VecSetSizes.html#VecSetSizes">VecSetSizes</A>() and <A href="../../../../docs/manualpages/Vec/VecSetFromOptions.html#VecSetFromOptions">VecSetFromOptions</A>() the option </font>
56
 
<a name="line46"> 46: </a><font color="#B22222">     -vec_type mpi or -vec_type shared causes the </font>
57
 
<a name="line47"> 47: </a><font color="#B22222">     particular type of vector to be formed.</font>
58
 
 
59
 
<a name="line49"> 49: </a><font color="#B22222">  */</font>
60
 
<a name="line50"> 50: </a>  <A href="../../../../docs/manualpages/Vec/VecCreate.html#VecCreate">VecCreate</A>(PETSC_COMM_WORLD,&amp;x);
61
 
<a name="line51"> 51: </a>  <A href="../../../../docs/manualpages/Vec/VecSetSizes.html#VecSetSizes">VecSetSizes</A>(x,PETSC_DECIDE,n);
62
 
<a name="line52"> 52: </a>  <A href="../../../../docs/manualpages/Vec/VecSetFromOptions.html#VecSetFromOptions">VecSetFromOptions</A>(x);
63
 
 
64
 
<a name="line54"> 54: </a>  <font color="#B22222">/*</font>
65
 
<a name="line55"> 55: </a><font color="#B22222">     Duplicate some work vector (of the same format and</font>
66
 
<a name="line56"> 56: </a><font color="#B22222">     partitioning as the initial vector).</font>
67
 
<a name="line57"> 57: </a><font color="#B22222">  */</font>
68
 
<a name="line58"> 58: </a>  <A href="../../../../docs/manualpages/Vec/VecDuplicate.html#VecDuplicate">VecDuplicate</A>(x,&amp;y);
69
 
 
70
 
<a name="line60"> 60: </a>  <A href="../../../../docs/manualpages/Sys/PetscObjectPublish.html#PetscObjectPublish">PetscObjectPublish</A>((<A href="../../../../docs/manualpages/Sys/PetscObject.html#PetscObject">PetscObject</A>)x);
71
 
 
72
 
<a name="line62"> 62: </a>  <font color="#4169E1">for</font> (i=0; i&lt;1000; i++) {
73
 
 
74
 
<a name="line64"> 64: </a>    <font color="#B22222">/*</font>
75
 
<a name="line65"> 65: </a><font color="#B22222">       Set the vectors to entries to a constant value.</font>
76
 
<a name="line66"> 66: </a><font color="#B22222">    */</font>
77
 
<a name="line67"> 67: </a>    value = 1;
78
 
<a name="line68"> 68: </a>    row   = i % n;
79
 
<a name="line69"> 69: </a>    <A href="../../../../docs/manualpages/Vec/VecSetValues.html#VecSetValues">VecSetValues</A>(x,1,&amp;row,&amp;value,ADD_VALUES);
80
 
<a name="line70"> 70: </a>    <A href="../../../../docs/manualpages/Vec/VecAssemblyBegin.html#VecAssemblyBegin">VecAssemblyBegin</A>(x);
81
 
<a name="line71"> 71: </a>    <A href="../../../../docs/manualpages/Vec/VecAssemblyEnd.html#VecAssemblyEnd">VecAssemblyEnd</A>(x);
82
 
 
83
 
 
84
 
<a name="line74"> 74: </a>    <A href="../../../../docs/manualpages/Sys/PetscSleep.html#PetscSleep">PetscSleep</A>(5);
85
 
<a name="line75"> 75: </a>  }
86
 
 
87
 
 
88
 
<a name="line78"> 78: </a>  <font color="#B22222">/* </font>
89
 
<a name="line79"> 79: </a><font color="#B22222">     Free work space.  All PETSc objects should be destroyed when they</font>
90
 
<a name="line80"> 80: </a><font color="#B22222">     are no longer needed.</font>
91
 
<a name="line81"> 81: </a><font color="#B22222">  */</font>
92
 
<a name="line82"> 82: </a>  <A href="../../../../docs/manualpages/Vec/VecDestroy.html#VecDestroy">VecDestroy</A>(x);
93
 
<a name="line83"> 83: </a>  <A href="../../../../docs/manualpages/Vec/VecDestroy.html#VecDestroy">VecDestroy</A>(y);
94
 
<a name="line84"> 84: </a>  <A href="../../../../docs/manualpages/Sys/PetscFinalize.html#PetscFinalize">PetscFinalize</A>();
95
 
<a name="line85"> 85: </a>  <font color="#4169E1">return</font> 0;
96
 
<a name="line86"> 86: </a>}
97
 
<a name="line87"> 87: </a>
 
31
<a name="line23"> 23: </a><strong><font color="#4169E1"><a name="main"></a>int main(int argc,char **argv)</font></strong>
 
32
<a name="line24"> 24: </a>{
 
33
<a name="line25"> 25: </a>  <A href="../../../../docs/manualpages/Vec/Vec.html#Vec">Vec</A>      x,y;
 
34
<a name="line26"> 26: </a>  int      n = 20,ierr,i,row;
 
35
<a name="line27"> 27: </a>  <A href="../../../../docs/manualpages/Sys/PetscScalar.html#PetscScalar">PetscScalar</A>   value;
 
36
 
 
37
<a name="line29"> 29: </a>  <A href="../../../../docs/manualpages/Sys/PetscInitialize.html#PetscInitialize">PetscInitialize</A>(&amp;argc,&amp;argv,(char*)0,help);
 
38
<a name="line30"> 30: </a>  <A href="../../../../docs/manualpages/Sys/PetscOptionsGetInt.html#PetscOptionsGetInt">PetscOptionsGetInt</A>(<A href="../../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>,<font color="#666666">"-n"</font>,&amp;n,<A href="../../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>);
 
39
 
 
40
<a name="line32"> 32: </a>  <font color="#B22222">/* </font>
 
41
<a name="line33"> 33: </a><font color="#B22222">     Create a vector, specifying only its global dimension.</font>
 
42
<a name="line34"> 34: </a><font color="#B22222">     When using <A href="../../../../docs/manualpages/Vec/VecCreate.html#VecCreate">VecCreate</A>(), <A href="../../../../docs/manualpages/Vec/VecSetSizes.html#VecSetSizes">VecSetSizes</A>() and <A href="../../../../docs/manualpages/Vec/VecSetFromOptions.html#VecSetFromOptions">VecSetFromOptions</A>(), </font>
 
43
<a name="line35"> 35: </a><font color="#B22222">     the vector format (currently parallel,</font>
 
44
<a name="line36"> 36: </a><font color="#B22222">     shared, or sequential) is determined at runtime.  Also, the parallel</font>
 
45
<a name="line37"> 37: </a><font color="#B22222">     partitioning of the vector is determined by PETSc at runtime.</font>
 
46
 
 
47
<a name="line39"> 39: </a><font color="#B22222">     Routines for creating particular vector types directly are:</font>
 
48
<a name="line40"> 40: </a><font color="#B22222">        <A href="../../../../docs/manualpages/Vec/VecCreateSeq.html#VecCreateSeq">VecCreateSeq</A>() - uniprocessor vector</font>
 
49
<a name="line41"> 41: </a><font color="#B22222">        <A href="../../../../docs/manualpages/Vec/VecCreateMPI.html#VecCreateMPI">VecCreateMPI</A>() - distributed vector, where the user can</font>
 
50
<a name="line42"> 42: </a><font color="#B22222">                         determine the parallel partitioning</font>
 
51
<a name="line43"> 43: </a><font color="#B22222">        <A href="../../../../docs/manualpages/Vec/VecCreateShared.html#VecCreateShared">VecCreateShared</A>() - parallel vector that uses shared memory</font>
 
52
<a name="line44"> 44: </a><font color="#B22222">                            (available only on the SGI); otherwise,</font>
 
53
<a name="line45"> 45: </a><font color="#B22222">                            is the same as <A href="../../../../docs/manualpages/Vec/VecCreateMPI.html#VecCreateMPI">VecCreateMPI</A>()</font>
 
54
 
 
55
<a name="line47"> 47: </a><font color="#B22222">     With <A href="../../../../docs/manualpages/Vec/VecCreate.html#VecCreate">VecCreate</A>(), <A href="../../../../docs/manualpages/Vec/VecSetSizes.html#VecSetSizes">VecSetSizes</A>() and <A href="../../../../docs/manualpages/Vec/VecSetFromOptions.html#VecSetFromOptions">VecSetFromOptions</A>() the option </font>
 
56
<a name="line48"> 48: </a><font color="#B22222">     -vec_type mpi or -vec_type shared causes the </font>
 
57
<a name="line49"> 49: </a><font color="#B22222">     particular type of vector to be formed.</font>
 
58
 
 
59
<a name="line51"> 51: </a><font color="#B22222">  */</font>
 
60
<a name="line52"> 52: </a>  <A href="../../../../docs/manualpages/Vec/VecCreate.html#VecCreate">VecCreate</A>(<A href="../../../../docs/manualpages/Sys/PETSC_COMM_WORLD.html#PETSC_COMM_WORLD">PETSC_COMM_WORLD</A>,&amp;x);
 
61
<a name="line53"> 53: </a>  <A href="../../../../docs/manualpages/Vec/VecSetSizes.html#VecSetSizes">VecSetSizes</A>(x,<A href="../../../../docs/manualpages/Sys/PETSC_DECIDE.html#PETSC_DECIDE">PETSC_DECIDE</A>,n);
 
62
<a name="line54"> 54: </a>  <A href="../../../../docs/manualpages/Vec/VecSetFromOptions.html#VecSetFromOptions">VecSetFromOptions</A>(x);
 
63
 
 
64
<a name="line56"> 56: </a>  <font color="#B22222">/*</font>
 
65
<a name="line57"> 57: </a><font color="#B22222">     Duplicate some work vector (of the same format and</font>
 
66
<a name="line58"> 58: </a><font color="#B22222">     partitioning as the initial vector).</font>
 
67
<a name="line59"> 59: </a><font color="#B22222">  */</font>
 
68
<a name="line60"> 60: </a>  <A href="../../../../docs/manualpages/Vec/VecDuplicate.html#VecDuplicate">VecDuplicate</A>(x,&amp;y);
 
69
 
 
70
<a name="line62"> 62: </a>  <A href="../../../../docs/manualpages/Sys/PetscObjectPublish.html#PetscObjectPublish">PetscObjectPublish</A>((<A href="../../../../docs/manualpages/Sys/PetscObject.html#PetscObject">PetscObject</A>)x);
 
71
 
 
72
<a name="line64"> 64: </a>  <font color="#4169E1">for</font> (i=0; i&lt;1000; i++) {
 
73
 
 
74
<a name="line66"> 66: </a>    <font color="#B22222">/*</font>
 
75
<a name="line67"> 67: </a><font color="#B22222">       Set the vectors to entries to a constant value.</font>
 
76
<a name="line68"> 68: </a><font color="#B22222">    */</font>
 
77
<a name="line69"> 69: </a>    value = 1;
 
78
<a name="line70"> 70: </a>    row   = i % n;
 
79
<a name="line71"> 71: </a>    <A href="../../../../docs/manualpages/Vec/VecSetValues.html#VecSetValues">VecSetValues</A>(x,1,&amp;row,&amp;value,ADD_VALUES);
 
80
<a name="line72"> 72: </a>    <A href="../../../../docs/manualpages/Vec/VecAssemblyBegin.html#VecAssemblyBegin">VecAssemblyBegin</A>(x);
 
81
<a name="line73"> 73: </a>    <A href="../../../../docs/manualpages/Vec/VecAssemblyEnd.html#VecAssemblyEnd">VecAssemblyEnd</A>(x);
 
82
 
 
83
 
 
84
<a name="line76"> 76: </a>    <A href="../../../../docs/manualpages/Sys/PetscSleep.html#PetscSleep">PetscSleep</A>(5);
 
85
<a name="line77"> 77: </a>  }
 
86
 
 
87
 
 
88
<a name="line80"> 80: </a>  <font color="#B22222">/* </font>
 
89
<a name="line81"> 81: </a><font color="#B22222">     Free work space.  All PETSc objects should be destroyed when they</font>
 
90
<a name="line82"> 82: </a><font color="#B22222">     are no longer needed.</font>
 
91
<a name="line83"> 83: </a><font color="#B22222">  */</font>
 
92
<a name="line84"> 84: </a>  <A href="../../../../docs/manualpages/Vec/VecDestroy.html#VecDestroy">VecDestroy</A>(x);
 
93
<a name="line85"> 85: </a>  <A href="../../../../docs/manualpages/Vec/VecDestroy.html#VecDestroy">VecDestroy</A>(y);
 
94
<a name="line86"> 86: </a>  <A href="../../../../docs/manualpages/Sys/PetscFinalize.html#PetscFinalize">PetscFinalize</A>();
 
95
<a name="line87"> 87: </a>  <font color="#4169E1">return</font> 0;
 
96
<a name="line88"> 88: </a>}
 
97
<a name="line89"> 89: </a>
98
98
</pre>
99
99
</body>
100
100