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

« back to all changes in this revision

Viewing changes to src/ts/interface/tscreate.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:33:56+00:00">
 
6
<meta name="generator" content="c2html 0.9.4">
 
7
<meta name="date" content="2004-02-27T20:03:29+00:00">
8
8
</head>
9
9
 
10
10
<body bgcolor="#FFFFFF">
14
14
 
15
15
<a name="line5"> 5: </a> #include <A href="../../../src/ts/tsimpl.h.html">src/ts/tsimpl.h</A>
16
16
 
17
 
<a name="line7">  7: </a><strong><font color="#4169E1"><a name="TSPublish_Petsc"></a>static int TSPublish_Petsc(<A href="../../../docs/manualpages/Sys/PetscObject.html#PetscObject">PetscObject</A> obj)</font></strong>
18
 
<a name="line8">  8: </a>{
19
 
<a name="line9">  9: </a><font color="#A020F0">#if defined(PETSC_HAVE_AMS)</font>
20
 
<a name="line10"> 10: </a>  <A href="../../../docs/manualpages/TS/TS.html#TS">TS</A>   v = (<A href="../../../docs/manualpages/TS/TS.html#TS">TS</A>) obj;
21
 
<a name="line11"> 11: </a>  int  ierr;
22
 
<a name="line12"> 12: </a><font color="#A020F0">#endif  </font>
23
 
 
24
 
 
25
 
<a name="line16"> 16: </a><font color="#A020F0">#if defined(PETSC_HAVE_AMS)</font>
26
 
<a name="line17"> 17: </a>  <font color="#B22222">/* if it is already published then return */</font>
27
 
<a name="line18"> 18: </a>  <font color="#4169E1">if</font> (v-&gt;amem &gt;=0) <font color="#4169E1">return</font>(0);
28
 
 
29
 
<a name="line20"> 20: </a>  PetscObjectPublishBaseBegin(obj);
30
 
<a name="line21"> 21: </a>  AMS_Memory_add_field((AMS_Memory)v-&gt;amem,<font color="#666666">"Step"</font>,&amp;v-&gt;steps,1,AMS_INT,AMS_READ,
31
 
<a name="line22"> 22: </a>                                AMS_COMMON,AMS_REDUCT_UNDEF);
32
 
<a name="line23"> 23: </a>  AMS_Memory_add_field((AMS_Memory)v-&gt;amem,<font color="#666666">"Time"</font>,&amp;v-&gt;ptime,1,AMS_DOUBLE,AMS_READ,
 
17
<a name="line9">  9: </a><strong><font color="#4169E1"><a name="TSPublish_Petsc"></a>static int TSPublish_Petsc(<A href="../../../docs/manualpages/Sys/PetscObject.html#PetscObject">PetscObject</A> obj)</font></strong>
 
18
<a name="line10"> 10: </a>{
 
19
<a name="line11"> 11: </a><font color="#A020F0">#if defined(PETSC_HAVE_AMS)</font>
 
20
<a name="line12"> 12: </a>  <A href="../../../docs/manualpages/TS/TS.html#TS">TS</A>   v = (<A href="../../../docs/manualpages/TS/TS.html#TS">TS</A>) obj;
 
21
<a name="line13"> 13: </a>  int  ierr;
 
22
<a name="line14"> 14: </a><font color="#A020F0">#endif  </font>
 
23
 
 
24
 
 
25
<a name="line18"> 18: </a><font color="#A020F0">#if defined(PETSC_HAVE_AMS)</font>
 
26
<a name="line19"> 19: </a>  <font color="#B22222">/* if it is already published then return */</font>
 
27
<a name="line20"> 20: </a>  <font color="#4169E1">if</font> (v-&gt;amem &gt;=0) <font color="#4169E1">return</font>(0);
 
28
 
 
29
<a name="line22"> 22: </a>  PetscObjectPublishBaseBegin(obj);
 
30
<a name="line23"> 23: </a>  AMS_Memory_add_field((AMS_Memory)v-&gt;amem,<font color="#666666">"Step"</font>,&amp;v-&gt;steps,1,AMS_INT,AMS_READ,
33
31
<a name="line24"> 24: </a>                                AMS_COMMON,AMS_REDUCT_UNDEF);
34
 
<a name="line25"> 25: </a>  AMS_Memory_add_field((AMS_Memory)v-&gt;amem,<font color="#666666">"CurrentTimeStep"</font>,&amp;v-&gt;time_step,1,
35
 
<a name="line26"> 26: </a>                               AMS_DOUBLE,AMS_READ,AMS_COMMON,AMS_REDUCT_UNDEF);
36
 
<a name="line27"> 27: </a>  PetscObjectPublishBaseEnd(obj);
37
 
<a name="line28"> 28: </a><font color="#A020F0">#endif</font>
38
 
<a name="line29"> 29: </a>  <font color="#4169E1">return</font>(0);
39
 
<a name="line30"> 30: </a>}
40
 
 
41
 
<a name="line32"> 32: </a><font color="#B22222">/*@C</font>
42
 
<a name="line33"> 33: </a><font color="#B22222">  <A href="../../../docs/manualpages/TS/TSCreate.html#TSCreate">TSCreate</A> - This function creates an empty timestepper. The problem type can then be set with <A href="../../../docs/manualpages/TS/TSSetProblemType.html#TSSetProblemType">TSSetProblemType</A>() and the </font>
43
 
<a name="line34"> 34: </a><font color="#B22222">       type of solver can then be set with <A href="../../../docs/manualpages/TS/TSSetType.html#TSSetType">TSSetType</A>().</font>
44
 
 
45
 
<a name="line36"> 36: </a><font color="#B22222">  Collective on MPI_Comm</font>
46
 
 
47
 
<a name="line38"> 38: </a><font color="#B22222">  Input Parameter:</font>
48
 
<a name="line39"> 39: </a><font color="#B22222">. <A href="../../../docs/manualpages/Sys/comm.html#comm">comm</A> - The communicator</font>
49
 
 
50
 
<a name="line41"> 41: </a><font color="#B22222">  Output Parameter:</font>
51
 
<a name="line42"> 42: </a><font color="#B22222">. ts   - The <A href="../../../docs/manualpages/TS/TS.html#TS">TS</A></font>
52
 
 
53
 
<a name="line44"> 44: </a><font color="#B22222">  Level: beginner</font>
54
 
 
55
 
<a name="line46"> 46: </a><font color="#B22222">.keywords: <A href="../../../docs/manualpages/TS/TS.html#TS">TS</A>, create</font>
56
 
<a name="line47"> 47: </a><font color="#B22222">.seealso: <A href="../../../docs/manualpages/TS/TSSetType.html#TSSetType">TSSetType</A>(), <A href="../../../docs/manualpages/TS/TSSetUp.html#TSSetUp">TSSetUp</A>(), <A href="../../../docs/manualpages/TS/TSDestroy.html#TSDestroy">TSDestroy</A>(), <A href="../../../docs/manualpages/Mesh/MeshCreate.html#MeshCreate">MeshCreate</A>(), <A href="../../../docs/manualpages/TS/TSSetProblemType.html#TSSetProblemType">TSSetProblemType</A>()</font>
57
 
<a name="line48"> 48: </a><font color="#B22222">@*/</font>
58
 
<a name="line49"> 49: </a><strong><font color="#4169E1"><a name="TSCreate"></a>int <A href="../../../docs/manualpages/TS/TSCreate.html#TSCreate">TSCreate</A>(MPI_Comm <A href="../../../docs/manualpages/Sys/comm.html#comm">comm</A>, <A href="../../../docs/manualpages/TS/TS.html#TS">TS</A> *ts)</font></strong> {
59
 
<a name="line50"> 50: </a>  <A href="../../../docs/manualpages/TS/TS.html#TS">TS</A>  t;
60
 
 
61
 
<a name="line55"> 55: </a>  *ts = PETSC_NULL;
62
 
<a name="line56"> 56: </a><font color="#A020F0">#ifndef PETSC_USE_DYNAMIC_LIBRARIES</font>
63
 
<a name="line57"> 57: </a>  <A href="../../../docs/manualpages/TS/TSInitializePackage.html#TSInitializePackage">TSInitializePackage</A>(PETSC_NULL);
64
 
<a name="line58"> 58: </a><font color="#A020F0">#endif</font>
65
 
 
66
 
<a name="line60"> 60: </a>  PetscHeaderCreate(t, _p_TS, <font color="#4169E1">struct _TSOps</font>, TS_COOKIE, -1, <font color="#666666">"<A href="../../../docs/manualpages/TS/TS.html#TS">TS</A>"</font>, <A href="../../../docs/manualpages/Sys/comm.html#comm">comm</A>, <A href="../../../docs/manualpages/TS/TSDestroy.html#TSDestroy">TSDestroy</A>, <A href="../../../docs/manualpages/TS/TSView.html#TSView">TSView</A>);
67
 
<a name="line61"> 61: </a>  PetscLogObjectCreate(t);
68
 
<a name="line62"> 62: </a>  PetscLogObjectMemory(t, <font color="#4169E1">sizeof</font>(<font color="#4169E1">struct _p_TS</font>));
69
 
<a name="line63"> 63: </a>  <A href="../../../docs/manualpages/Sys/PetscMemzero.html#PetscMemzero">PetscMemzero</A>(t-&gt;ops, <font color="#4169E1">sizeof</font>(<font color="#4169E1">struct _TSOps</font>));
70
 
<a name="line64"> 64: </a>  t-&gt;bops-&gt;publish    = TSPublish_Petsc;
71
 
<a name="line65"> 65: </a>  t-&gt;type_name        = PETSC_NULL;
72
 
<a name="line66"> 66: </a>  t-&gt;serialize_name   = PETSC_NULL;
73
 
 
74
 
<a name="line68"> 68: </a>  t-&gt;ops-&gt;applymatrixbc = <A href="../../../docs/manualpages/TS/TSDefaultSystemMatrixBC.html#TSDefaultSystemMatrixBC">TSDefaultSystemMatrixBC</A>;
75
 
<a name="line69"> 69: </a>  t-&gt;ops-&gt;applyrhsbc    = <A href="../../../docs/manualpages/TS/TSDefaultRhsBC.html#TSDefaultRhsBC">TSDefaultRhsBC</A>;
76
 
<a name="line70"> 70: </a>  t-&gt;ops-&gt;applysolbc    = <A href="../../../docs/manualpages/TS/TSDefaultSolutionBC.html#TSDefaultSolutionBC">TSDefaultSolutionBC</A>;
77
 
<a name="line71"> 71: </a>  t-&gt;ops-&gt;prestep       = <A href="../../../docs/manualpages/TS/TSDefaultPreStep.html#TSDefaultPreStep">TSDefaultPreStep</A>;
78
 
<a name="line72"> 72: </a>  t-&gt;ops-&gt;update        = <A href="../../../docs/manualpages/TS/TSDefaultUpdate.html#TSDefaultUpdate">TSDefaultUpdate</A>;
79
 
<a name="line73"> 73: </a>  t-&gt;ops-&gt;poststep      = <A href="../../../docs/manualpages/TS/TSDefaultPostStep.html#TSDefaultPostStep">TSDefaultPostStep</A>;
80
 
 
81
 
<a name="line75"> 75: </a>  <font color="#B22222">/* General <A href="../../../docs/manualpages/TS/TS.html#TS">TS</A> description */</font>
82
 
<a name="line76"> 76: </a>  t-&gt;problem_type       = TS_LINEAR;
83
 
<a name="line77"> 77: </a>  t-&gt;vec_sol            = PETSC_NULL;
84
 
<a name="line78"> 78: </a>  t-&gt;vec_sol_always     = PETSC_NULL;
85
 
<a name="line79"> 79: </a>  t-&gt;numbermonitors     = 0;
86
 
<a name="line80"> 80: </a>  t-&gt;isGTS              = PETSC_FALSE;
87
 
<a name="line81"> 81: </a>  t-&gt;isExplicit         = PETSC_NULL;
88
 
<a name="line82"> 82: </a>  t-&gt;Iindex             = PETSC_NULL;
89
 
<a name="line83"> 83: </a>  t-&gt;sles               = PETSC_NULL;
90
 
<a name="line84"> 84: </a>  t-&gt;A                  = PETSC_NULL;
91
 
<a name="line85"> 85: </a>  t-&gt;B                  = PETSC_NULL;
92
 
<a name="line86"> 86: </a>  t-&gt;snes               = PETSC_NULL;
93
 
<a name="line87"> 87: </a>  t-&gt;funP               = PETSC_NULL;
94
 
<a name="line88"> 88: </a>  t-&gt;jacP               = PETSC_NULL;
95
 
<a name="line89"> 89: </a>  t-&gt;setupcalled        = 0;
96
 
<a name="line90"> 90: </a>  t-&gt;data               = PETSC_NULL;
97
 
<a name="line91"> 91: </a>  t-&gt;user               = PETSC_NULL;
98
 
<a name="line92"> 92: </a>  t-&gt;max_steps          = 5000;
99
 
<a name="line93"> 93: </a>  t-&gt;max_time           = 5.0;
100
 
<a name="line94"> 94: </a>  t-&gt;time_step          = .1;
101
 
<a name="line95"> 95: </a>  t-&gt;time_step_old      = t-&gt;time_step;
102
 
<a name="line96"> 96: </a>  t-&gt;initial_time_step  = t-&gt;time_step;
103
 
<a name="line97"> 97: </a>  t-&gt;steps              = 0;
104
 
<a name="line98"> 98: </a>  t-&gt;ptime              = 0.0;
105
 
<a name="line99"> 99: </a>  t-&gt;linear_its         = 0;
106
 
<a name="line100">100: </a>  t-&gt;nonlinear_its      = 0;
107
 
<a name="line101">101: </a>  t-&gt;work               = PETSC_NULL;
108
 
<a name="line102">102: </a>  t-&gt;nwork              = 0;
109
 
 
110
 
<a name="line104">104: </a>  *ts = t;
111
 
<a name="line105">105: </a>  <font color="#4169E1">return</font>(0);
112
 
<a name="line106">106: </a>}
113
 
 
114
 
<a name="line108">108: </a><font color="#B22222">/*@ </font>
115
 
<a name="line109">109: </a><font color="#B22222">  <A href="../../../docs/manualpages/TS/TSSerialize.html#TSSerialize">TSSerialize</A> - This function stores or recreates a timestepper using a viewer for a binary file.</font>
116
 
 
117
 
<a name="line111">111: </a><font color="#B22222">  Collective on MPI_Comm</font>
118
 
 
119
 
<a name="line113">113: </a><font color="#B22222">  Input Parameters:</font>
120
 
<a name="line114">114: </a><font color="#B22222">+ <A href="../../../docs/manualpages/Sys/comm.html#comm">comm</A>   - The communicator for the ts object</font>
121
 
<a name="line115">115: </a><font color="#B22222">. viewer - The viewer context</font>
122
 
<a name="line116">116: </a><font color="#B22222">- store  - This flag is PETSC_TRUE is data is being written, otherwise it will be read</font>
123
 
 
124
 
<a name="line118">118: </a><font color="#B22222">  Output Parameter:</font>
125
 
<a name="line119">119: </a><font color="#B22222">. ts     - The ts</font>
126
 
 
127
 
<a name="line121">121: </a><font color="#B22222">  Level: beginner</font>
128
 
 
129
 
<a name="line123">123: </a><font color="#B22222">.keywords: <A href="../../../docs/manualpages/TS/TS.html#TS">TS</A>, serialize</font>
130
 
<a name="line124">124: </a><font color="#B22222">.seealso: <A href="../../../docs/manualpages/Mesh/PartitionSerialize.html#PartitionSerialize">PartitionSerialize</A>(), <A href="../../../docs/manualpages/TS/TSSerialize.html#TSSerialize">TSSerialize</A>()</font>
131
 
<a name="line125">125: </a><font color="#B22222">@*/</font>
132
 
<a name="line126">126: </a><strong><font color="#4169E1"><a name="TSSerialize"></a>int <A href="../../../docs/manualpages/TS/TSSerialize.html#TSSerialize">TSSerialize</A>(MPI_Comm <A href="../../../docs/manualpages/Sys/comm.html#comm">comm</A>, <A href="../../../docs/manualpages/TS/TS.html#TS">TS</A> *ts, <A href="../../../docs/manualpages/Viewer/PetscViewer.html#PetscViewer">PetscViewer</A> viewer, <A href="../../../docs/manualpages/Sys/PetscTruth.html#PetscTruth">PetscTruth</A> store)</font></strong>
133
 
<a name="line127">127: </a>{
134
 
<a name="line128">128: </a>  int      (*serialize)(MPI_Comm, <A href="../../../docs/manualpages/TS/TS.html#TS">TS</A> *, <A href="../../../docs/manualpages/Viewer/PetscViewer.html#PetscViewer">PetscViewer</A>, <A href="../../../docs/manualpages/Sys/PetscTruth.html#PetscTruth">PetscTruth</A>);
135
 
<a name="line129">129: </a>  int        fd, len;
136
 
<a name="line130">130: </a>  char      *name;
137
 
<a name="line131">131: </a>  <A href="../../../docs/manualpages/Sys/PetscTruth.html#PetscTruth">PetscTruth</A> match;
138
 
<a name="line132">132: </a>  int        ierr;
139
 
 
140
 
 
141
 
<a name="line138">138: </a>  <A href="../../../docs/manualpages/Sys/PetscTypeCompare.html#PetscTypeCompare">PetscTypeCompare</A>((<A href="../../../docs/manualpages/Sys/PetscObject.html#PetscObject">PetscObject</A>) viewer, PETSC_VIEWER_BINARY, &amp;match);
142
 
<a name="line139">139: </a>  <font color="#4169E1">if</font> (match == PETSC_FALSE) <A href="../../../docs/manualpages/Sys/SETERRQ.html#SETERRQ">SETERRQ</A>(PETSC_ERR_ARG_WRONG, <font color="#666666">"Must be binary viewer"</font>);
143
 
<a name="line140">140: </a>  <A href="../../../docs/manualpages/Viewer/PetscViewerBinaryGetDescriptor.html#PetscViewerBinaryGetDescriptor">PetscViewerBinaryGetDescriptor</A>(viewer, &amp;fd);
144
 
 
145
 
<a name="line142">142: </a>  <font color="#4169E1">if</font> (!TSSerializeRegisterAllCalled) {
146
 
<a name="line143">143: </a>    <A href="../../../docs/manualpages/TS/TSSerializeRegisterAll.html#TSSerializeRegisterAll">TSSerializeRegisterAll</A>(PETSC_NULL);
147
 
<a name="line144">144: </a>  }
148
 
<a name="line145">145: </a>  <font color="#4169E1">if</font> (!TSSerializeList) <A href="../../../docs/manualpages/Sys/SETERRQ.html#SETERRQ">SETERRQ</A>(PETSC_ERR_ARG_CORRUPT, <font color="#666666">"Could not find table of methods"</font>);
149
 
 
150
 
<a name="line147">147: </a>  <font color="#4169E1">if</font> (store) {
151
 
<a name="line149">149: </a>    <A href="../../../docs/manualpages/Sys/PetscStrlen.html#PetscStrlen">PetscStrlen</A>((*ts)-&gt;class_name, &amp;len);
152
 
<a name="line150">150: </a>    <A href="../../../docs/manualpages/Sys/PetscBinaryWrite.html#PetscBinaryWrite">PetscBinaryWrite</A>(fd, &amp;len,                   1,   PETSC_INT,  0);
153
 
<a name="line151">151: </a>    <A href="../../../docs/manualpages/Sys/PetscBinaryWrite.html#PetscBinaryWrite">PetscBinaryWrite</A>(fd,  (*ts)-&gt;class_name,     len, PETSC_CHAR, 0);
154
 
<a name="line152">152: </a>    <A href="../../../docs/manualpages/Sys/PetscStrlen.html#PetscStrlen">PetscStrlen</A>((*ts)-&gt;serialize_name, &amp;len);
155
 
<a name="line153">153: </a>    <A href="../../../docs/manualpages/Sys/PetscBinaryWrite.html#PetscBinaryWrite">PetscBinaryWrite</A>(fd, &amp;len,                   1,   PETSC_INT,  0);
156
 
<a name="line154">154: </a>    <A href="../../../docs/manualpages/Sys/PetscBinaryWrite.html#PetscBinaryWrite">PetscBinaryWrite</A>(fd,  (*ts)-&gt;serialize_name, len, PETSC_CHAR, 0);
157
 
<a name="line155">155: </a>    <A href="../../../docs/manualpages/Sys/PetscFListFind.html#PetscFListFind">PetscFListFind</A>(<A href="../../../docs/manualpages/Sys/comm.html#comm">comm</A>, TSSerializeList, (*ts)-&gt;serialize_name, (void (**)(void)) &amp;serialize);
158
 
<a name="line156">156: </a>    <font color="#4169E1">if</font> (!serialize) <A href="../../../docs/manualpages/Sys/SETERRQ.html#SETERRQ">SETERRQ</A>(PETSC_ERR_ARG_WRONG, <font color="#666666">"Type cannot be serialized"</font>);
159
 
<a name="line157">157: </a>    (*serialize)(<A href="../../../docs/manualpages/Sys/comm.html#comm">comm</A>, ts, viewer, store);
160
 
<a name="line158">158: </a>  } <font color="#4169E1">else</font> {
161
 
<a name="line159">159: </a>    <A href="../../../docs/manualpages/Sys/PetscBinaryRead.html#PetscBinaryRead">PetscBinaryRead</A>(fd, &amp;len,    1,   PETSC_INT);
162
 
<a name="line160">160: </a>    <A href="../../../docs/manualpages/Sys/PetscMalloc.html#PetscMalloc">PetscMalloc</A>((len+1) * <font color="#4169E1">sizeof</font>(char), &amp;name);
163
 
<a name="line161">161: </a>    name[len] = 0;
164
 
<a name="line162">162: </a>    <A href="../../../docs/manualpages/Sys/PetscBinaryRead.html#PetscBinaryRead">PetscBinaryRead</A>(fd,  name,   len, PETSC_CHAR);
165
 
<a name="line163">163: </a>    <A href="../../../docs/manualpages/Sys/PetscStrcmp.html#PetscStrcmp">PetscStrcmp</A>(name, <font color="#666666">"<A href="../../../docs/manualpages/TS/TS.html#TS">TS</A>"</font>, &amp;match);
166
 
<a name="line164">164: </a>    <A href="../../../docs/manualpages/Sys/PetscFree.html#PetscFree">PetscFree</A>(name);
167
 
<a name="line165">165: </a>    <font color="#4169E1">if</font> (match == PETSC_FALSE) <A href="../../../docs/manualpages/Sys/SETERRQ.html#SETERRQ">SETERRQ</A>(PETSC_ERR_ARG_WRONG, <font color="#666666">"Non-ts object"</font>);
168
 
<a name="line166">166: </a>    <font color="#B22222">/* Dispatch to the correct routine */</font>
169
 
<a name="line167">167: </a>    <A href="../../../docs/manualpages/Sys/PetscBinaryRead.html#PetscBinaryRead">PetscBinaryRead</A>(fd, &amp;len,    1,   PETSC_INT);
170
 
<a name="line168">168: </a>    <A href="../../../docs/manualpages/Sys/PetscMalloc.html#PetscMalloc">PetscMalloc</A>((len+1) * <font color="#4169E1">sizeof</font>(char), &amp;name);
171
 
<a name="line169">169: </a>    name[len] = 0;
172
 
<a name="line170">170: </a>    <A href="../../../docs/manualpages/Sys/PetscBinaryRead.html#PetscBinaryRead">PetscBinaryRead</A>(fd,  name,   len, PETSC_CHAR);
173
 
<a name="line171">171: </a>    <A href="../../../docs/manualpages/Sys/PetscFListFind.html#PetscFListFind">PetscFListFind</A>(<A href="../../../docs/manualpages/Sys/comm.html#comm">comm</A>, TSSerializeList, name, (void (**)(void)) &amp;serialize);
174
 
<a name="line172">172: </a>    <font color="#4169E1">if</font> (!serialize) <A href="../../../docs/manualpages/Sys/SETERRQ.html#SETERRQ">SETERRQ</A>(PETSC_ERR_ARG_WRONG, <font color="#666666">"Type cannot be serialized"</font>);
175
 
<a name="line173">173: </a>    (*serialize)(<A href="../../../docs/manualpages/Sys/comm.html#comm">comm</A>, ts, viewer, store);
176
 
<a name="line174">174: </a>    PetscStrfree((*ts)-&gt;serialize_name);
177
 
<a name="line175">175: </a>    (*ts)-&gt;serialize_name = name;
178
 
<a name="line176">176: </a>  }
179
 
 
180
 
<a name="line178">178: </a>  <font color="#4169E1">return</font>(0);
181
 
<a name="line179">179: </a>}
 
32
<a name="line25"> 25: </a>  AMS_Memory_add_field((AMS_Memory)v-&gt;amem,<font color="#666666">"Time"</font>,&amp;v-&gt;ptime,1,AMS_DOUBLE,AMS_READ,
 
33
<a name="line26"> 26: </a>                                AMS_COMMON,AMS_REDUCT_UNDEF);
 
34
<a name="line27"> 27: </a>  AMS_Memory_add_field((AMS_Memory)v-&gt;amem,<font color="#666666">"CurrentTimeStep"</font>,&amp;v-&gt;time_step,1,
 
35
<a name="line28"> 28: </a>                               AMS_DOUBLE,AMS_READ,AMS_COMMON,AMS_REDUCT_UNDEF);
 
36
<a name="line29"> 29: </a>  PetscObjectPublishBaseEnd(obj);
 
37
<a name="line30"> 30: </a><font color="#A020F0">#endif</font>
 
38
<a name="line31"> 31: </a>  <font color="#4169E1">return</font>(0);
 
39
<a name="line32"> 32: </a>}
 
40
 
 
41
<a name="line34"> 34: </a><strong><font color="#228B22">#undef  __FUNCT__</font></strong>
 
42
<a name="line36"> 36: </a><font color="#B22222">/*@C</font>
 
43
<a name="line37"> 37: </a><font color="#B22222">  <A href="../../../docs/manualpages/TS/TSCreate.html#TSCreate">TSCreate</A> - This function creates an empty timestepper. The problem type can then be set with <A href="../../../docs/manualpages/TS/TSSetProblemType.html#TSSetProblemType">TSSetProblemType</A>() and the </font>
 
44
<a name="line38"> 38: </a><font color="#B22222">       type of solver can then be set with <A href="../../../docs/manualpages/TS/TSSetType.html#TSSetType">TSSetType</A>().</font>
 
45
 
 
46
<a name="line40"> 40: </a><font color="#B22222">  Collective on <A href="../../../docs/manualpages/Sys/MPI_Comm.html#MPI_Comm">MPI_Comm</A></font>
 
47
 
 
48
<a name="line42"> 42: </a><font color="#B22222">  Input Parameter:</font>
 
49
<a name="line43"> 43: </a><font color="#B22222">. <A href="../../../docs/manualpages/Sys/comm.html#comm">comm</A> - The communicator</font>
 
50
 
 
51
<a name="line45"> 45: </a><font color="#B22222">  Output Parameter:</font>
 
52
<a name="line46"> 46: </a><font color="#B22222">. ts   - The <A href="../../../docs/manualpages/TS/TS.html#TS">TS</A></font>
 
53
 
 
54
<a name="line48"> 48: </a><font color="#B22222">  Level: beginner</font>
 
55
 
 
56
<a name="line50"> 50: </a><font color="#B22222">.keywords: <A href="../../../docs/manualpages/TS/TS.html#TS">TS</A>, create</font>
 
57
<a name="line51"> 51: </a><font color="#B22222">.seealso: <A href="../../../docs/manualpages/TS/TSSetType.html#TSSetType">TSSetType</A>(), <A href="../../../docs/manualpages/TS/TSSetUp.html#TSSetUp">TSSetUp</A>(), <A href="../../../docs/manualpages/TS/TSDestroy.html#TSDestroy">TSDestroy</A>(), MeshCreate(), <A href="../../../docs/manualpages/TS/TSSetProblemType.html#TSSetProblemType">TSSetProblemType</A>()</font>
 
58
<a name="line52"> 52: </a><font color="#B22222">@*/</font>
 
59
<a name="line53"> 53: </a><strong><font color="#4169E1"><a name="TSCreate"></a>int <A href="../../../docs/manualpages/TS/TSCreate.html#TSCreate">TSCreate</A>(<A href="../../../docs/manualpages/Sys/MPI_Comm.html#MPI_Comm">MPI_Comm</A> <A href="../../../docs/manualpages/Sys/comm.html#comm">comm</A>, <A href="../../../docs/manualpages/TS/TS.html#TS">TS</A> *ts)</font></strong> {
 
60
<a name="line54"> 54: </a>  <A href="../../../docs/manualpages/TS/TS.html#TS">TS</A>  t;
 
61
 
 
62
<a name="line59"> 59: </a>  *ts = <A href="../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>;
 
63
<a name="line60"> 60: </a><font color="#A020F0">#ifndef PETSC_USE_DYNAMIC_LIBRARIES</font>
 
64
<a name="line61"> 61: </a>  <A href="../../../docs/manualpages/TS/TSInitializePackage.html#TSInitializePackage">TSInitializePackage</A>(<A href="../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>);
 
65
<a name="line62"> 62: </a><font color="#A020F0">#endif</font>
 
66
 
 
67
<a name="line64"> 64: </a>  PetscHeaderCreate(t, _p_TS, <font color="#4169E1">struct _TSOps</font>, TS_COOKIE, -1, <font color="#666666">"<A href="../../../docs/manualpages/TS/TS.html#TS">TS</A>"</font>, <A href="../../../docs/manualpages/Sys/comm.html#comm">comm</A>, <A href="../../../docs/manualpages/TS/TSDestroy.html#TSDestroy">TSDestroy</A>, <A href="../../../docs/manualpages/TS/TSView.html#TSView">TSView</A>);
 
68
<a name="line65"> 65: </a>  PetscLogObjectCreate(t);
 
69
<a name="line66"> 66: </a>  PetscLogObjectMemory(t, <font color="#4169E1">sizeof</font>(<font color="#4169E1">struct _p_TS</font>));
 
70
<a name="line67"> 67: </a>  <A href="../../../docs/manualpages/Sys/PetscMemzero.html#PetscMemzero">PetscMemzero</A>(t-&gt;ops, <font color="#4169E1">sizeof</font>(<font color="#4169E1">struct _TSOps</font>));
 
71
<a name="line68"> 68: </a>  t-&gt;bops-&gt;publish    = TSPublish_Petsc;
 
72
<a name="line69"> 69: </a>  t-&gt;type_name        = <A href="../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>;
 
73
 
 
74
<a name="line71"> 71: </a>  t-&gt;ops-&gt;applymatrixbc = <A href="../../../docs/manualpages/TS/TSDefaultSystemMatrixBC.html#TSDefaultSystemMatrixBC">TSDefaultSystemMatrixBC</A>;
 
75
<a name="line72"> 72: </a>  t-&gt;ops-&gt;applyrhsbc    = <A href="../../../docs/manualpages/TS/TSDefaultRhsBC.html#TSDefaultRhsBC">TSDefaultRhsBC</A>;
 
76
<a name="line73"> 73: </a>  t-&gt;ops-&gt;applysolbc    = <A href="../../../docs/manualpages/TS/TSDefaultSolutionBC.html#TSDefaultSolutionBC">TSDefaultSolutionBC</A>;
 
77
<a name="line74"> 74: </a>  t-&gt;ops-&gt;prestep       = <A href="../../../docs/manualpages/TS/TSDefaultPreStep.html#TSDefaultPreStep">TSDefaultPreStep</A>;
 
78
<a name="line75"> 75: </a>  t-&gt;ops-&gt;update        = <A href="../../../docs/manualpages/TS/TSDefaultUpdate.html#TSDefaultUpdate">TSDefaultUpdate</A>;
 
79
<a name="line76"> 76: </a>  t-&gt;ops-&gt;poststep      = <A href="../../../docs/manualpages/TS/TSDefaultPostStep.html#TSDefaultPostStep">TSDefaultPostStep</A>;
 
80
 
 
81
<a name="line78"> 78: </a>  <font color="#B22222">/* General <A href="../../../docs/manualpages/TS/TS.html#TS">TS</A> description */</font>
 
82
<a name="line79"> 79: </a>  t-&gt;problem_type       = TS_LINEAR;
 
83
<a name="line80"> 80: </a>  t-&gt;vec_sol            = <A href="../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>;
 
84
<a name="line81"> 81: </a>  t-&gt;vec_sol_always     = <A href="../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>;
 
85
<a name="line82"> 82: </a>  t-&gt;numbermonitors     = 0;
 
86
<a name="line83"> 83: </a>  t-&gt;isGTS              = PETSC_FALSE;
 
87
<a name="line84"> 84: </a>  t-&gt;isExplicit         = <A href="../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>;
 
88
<a name="line85"> 85: </a>  t-&gt;Iindex             = <A href="../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>;
 
89
<a name="line86"> 86: </a>  t-&gt;ksp               = <A href="../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>;
 
90
<a name="line87"> 87: </a>  t-&gt;A                  = <A href="../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>;
 
91
<a name="line88"> 88: </a>  t-&gt;B                  = <A href="../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>;
 
92
<a name="line89"> 89: </a>  t-&gt;snes               = <A href="../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>;
 
93
<a name="line90"> 90: </a>  t-&gt;funP               = <A href="../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>;
 
94
<a name="line91"> 91: </a>  t-&gt;jacP               = <A href="../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>;
 
95
<a name="line92"> 92: </a>  t-&gt;setupcalled        = 0;
 
96
<a name="line93"> 93: </a>  t-&gt;data               = <A href="../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>;
 
97
<a name="line94"> 94: </a>  t-&gt;user               = <A href="../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>;
 
98
<a name="line95"> 95: </a>  t-&gt;max_steps          = 5000;
 
99
<a name="line96"> 96: </a>  t-&gt;max_time           = 5.0;
 
100
<a name="line97"> 97: </a>  t-&gt;time_step          = .1;
 
101
<a name="line98"> 98: </a>  t-&gt;time_step_old      = t-&gt;time_step;
 
102
<a name="line99"> 99: </a>  t-&gt;initial_time_step  = t-&gt;time_step;
 
103
<a name="line100">100: </a>  t-&gt;steps              = 0;
 
104
<a name="line101">101: </a>  t-&gt;ptime              = 0.0;
 
105
<a name="line102">102: </a>  t-&gt;linear_its         = 0;
 
106
<a name="line103">103: </a>  t-&gt;nonlinear_its      = 0;
 
107
<a name="line104">104: </a>  t-&gt;work               = <A href="../../../docs/manualpages/Sys/PETSC_NULL.html#PETSC_NULL">PETSC_NULL</A>;
 
108
<a name="line105">105: </a>  t-&gt;nwork              = 0;
 
109
 
 
110
<a name="line107">107: </a>  *ts = t;
 
111
<a name="line108">108: </a>  <font color="#4169E1">return</font>(0);
 
112
<a name="line109">109: </a>}
 
113
 
182
114
</pre>
183
115
</body>
184
116