File: TSGL.html

package info (click to toggle)
petsc 3.4.2.dfsg1-8.1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 129,104 kB
  • ctags: 516,422
  • sloc: ansic: 395,939; cpp: 47,201; python: 34,788; makefile: 17,193; fortran: 16,251; f90: 1,592; objc: 954; sh: 822; xml: 621; java: 381; lisp: 293; csh: 241
file content (121 lines) | stat: -rw-r--r-- 5,427 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD> <link rel="canonical" href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/TS/TSGL.html" />
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>TSGL</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
   <div id="version" align=right><b>petsc-3.4.2 2013-07-02</b></div>
<A NAME="TSGL"><H1>TSGL</H1></A>
DAE solver using implicit General Linear methods These methods contain Runge-Kutta and multistep schemes as special cases.  These special cases have some fundamental
limitations.  For example, diagonally implicit Runge-Kutta cannot have stage order greater than 1 which limits their
applicability to very stiff systems.  Meanwhile, multistep methods cannot be A-stable for order greater than 2 and BDF
are not 0-stable for order greater than 6.  GL methods can be A- and L-stable with arbitrarily high stage order and
reliable error estimates for both 1 and 2 orders higher to facilitate adaptive step sizes and adaptive order schemes.
All this is possible while preserving a singly diagonally implicit structure.
<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>-ts_gl_type &lt;type&gt; </B></TD><TD>- the class of general linear method (irks)
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ts_gl_rtol &lt;tol&gt;  </B></TD><TD>- relative error
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ts_gl_atol &lt;tol&gt;  </B></TD><TD>- absolute error
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ts_gl_min_order &lt;p&gt; </B></TD><TD>- minimum order method to consider (default=1)
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ts_gl_max_order &lt;p&gt; </B></TD><TD>- maximum order method to consider (default=3)
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ts_gl_start_order &lt;p&gt; </B></TD><TD>- order of starting method (default=1)
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ts_gl_complete &lt;method&gt; </B></TD><TD>- method to use for completing the step (rescale-and-modify or rescale)
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>-ts_adapt_type &lt;method&gt; </B></TD><TD>- adaptive controller to use (none step both)
</TD></TR></TABLE>
<P>
<H3><FONT COLOR="#CC3333">Notes</FONT></H3>
This integrator can be applied to DAE.
<P>
Diagonally implicit general linear (DIGL) methods are a generalization of diagonally implicit Runge-Kutta (DIRK).
They are represented by the tableau
<P>
<PRE>
  A  |  U
  -------
  B  |  V
</PRE>

<P>
combined with a vector c of abscissa.  "Diagonally implicit" means that A is lower triangular.
A step of the general method reads
<P>
<PRE>
  [ Y ] = [A  U] [  Y'   ]
  [X^k] = [B  V] [X^{k-1}]
</PRE>

<P>
where Y is the multivector of stage values, Y' is the multivector of stage derivatives, X^k is the Nordsieck vector of
the solution at step k.  The Nordsieck vector consists of the first r moments of the solution, given by
<P>
<PRE>
  X = [x_0,x_1,...,x_{r-1}] = [x, h x', h^2 x'', ..., h^{r-1} x^{(r-1)} ]
</PRE>

<P>
If A is lower triangular, we can solve the stages (Y,Y') sequentially
<P>
<PRE>
  y_i = h sum_{j=0}^{s-1} (a_ij y'_j) + sum_{j=0}^{r-1} u_ij x_j,    i=0,...,{s-1}
</PRE>

<P>
and then construct the pieces to carry to the next step
<P>
<PRE>
  xx_i = h sum_{j=0}^{s-1} b_ij y'_j  + sum_{j=0}^{r-1} v_ij x_j,    i=0,...,{r-1}
</PRE>

<P>
Note that when the equations are cast in implicit form, we are using the stage equation to define y'_i
in terms of y_i and known stuff (y_j for j&lt;i and x_j for all j).
<P>
<P>
Error estimation
<P>
At present, the most attractive GL methods for stiff problems are singly diagonally implicit schemes which posses
Inherent Runge-Kutta Stability (IRKS).  These methods have r=s, the number of items passed between steps is equal to
the number of stages.  The order and stage-order are one less than the number of stages.  We use the error estimates
in the 2007 paper which provide the following estimates
<P>
<PRE>
  h^{p+1} X^{(p+1)}          = phi_0^T Y' + [0 psi_0^T] Xold
  h^{p+2} X^{(p+2)}          = phi_1^T Y' + [0 psi_1^T] Xold
  h^{p+2} (dx'/dx) X^{(p+1)} = phi_2^T Y' + [0 psi_2^T] Xold
</PRE>

<P>
These estimates are accurate to O(h^{p+3}).
<P>
Changing the step size
<P>
We use the generalized "rescale and modify" scheme, see equation (4.5) of the 2007 paper.
<P>

<P>
<H3><FONT COLOR="#CC3333">References</FONT></H3>
John Butcher and Z. Jackieweicz and W. Wright, On error propagation in general linear methods for
ordinary differential equations, Journal of Complexity, Vol 23 (4-6), 2007.
<P>
John Butcher, Numerical methods for ordinary differential equations, second edition, Wiley, 2009.
<P>
<H3><FONT COLOR="#CC3333">See Also</FONT></H3>
  <A HREF="../TS/TSCreate.html#TSCreate">TSCreate</A>(), <A HREF="../TS/TS.html#TS">TS</A>, <A HREF="../TS/TSSetType.html#TSSetType">TSSetType</A>()
<BR>
<P>
<P><B><P><B><FONT COLOR="#CC3333">Level:</FONT></B>beginner
<BR><FONT COLOR="#CC3333">Location:</FONT></B><A HREF="../../../src/ts/impls/implicit/gl/gl.c.html#TSGL">src/ts/impls/implicit/gl/gl.c</A>
<BR><A HREF="./index.html">Index of all TS 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>