@@ -5,10 +5,10 @@ Spectral Deferred Corrections
5
5
Introduction
6
6
============
7
7
8
- The Simplified-SDC method provides a means to more strongly couple the
9
- reactions to the hydrodynamics by evolving the reactions together with
10
- an approximation of the advection over the timestep . The full details
11
- of the algorithm are presented in :cite: ` castro_simple_sdc ` .
8
+ Spectral deferred correction (SDC) methods strongly couple reactions
9
+ and hydrodynamics, eliminating the splitting error that arises with
10
+ Strang (operator) splitting . Microphysics supports two different
11
+ SDC formulations .
12
12
13
13
We want to solve the coupled equations:
14
14
@@ -33,14 +33,100 @@ hydrodynamical sources),
33
33
and :math: `\Rb (\Uc )`
34
34
is the reaction source term.
35
35
36
+
37
+ .. note ::
38
+
39
+ Application codes can set the make variables ``USE_TRUE_SDC `` or
40
+ ``USE_SIMPLIFIED_SDC ``. But in Microphysics, both SDC formulations
41
+ are supported by the same integrators, and both of these options
42
+ will set the ``SDC `` preprocessor flag.
43
+
44
+ "True" SDC
45
+ ----------
46
+
47
+ The true SDC implementation is described in :cite: `castro_sdc `. It divides
48
+ the timestep into temporal nodes and uses low-order approximations to update
49
+ from one temporal node to the next. Iteration is used to increase the order of accuracy.
50
+
51
+ The update from one temporal node, $m$, to the next, $m$, for iteration
52
+ $k+1$ appears as:
53
+
54
+ .. math ::
55
+
56
+ \begin {align*}
57
+ \Uc ^{m+1 ,(k+1 )} = \Uc ^{m,(k+1 )}
58
+ &+ \delta t_m\left [\Advs {\Uc ^{m,(k+1 )}} - \Advs {\Uc ^{m,(k)}}\right ] +\\
59
+ &+ \delta t_m\left [\Rbs {\Uc ^{m+1 ,(k+1 )}} - \Rbs {\Uc ^{m+1 ,(k)}}\right ]\\
60
+ &+ \int _{t^m}^{t^{m+1 }}\Advs {\Uc ^{(k)}} + \Rbs {\Uc ^{(k)}}d\tau .
61
+ \end {align*}
62
+
63
+ Solving this requires a nonlinear solve of:
64
+
65
+ .. math ::
66
+
67
+ \Uc ^{m+1 ,(k+1 )} - \delta t_m \Rbs {\Uc }^{m+1 ,(k+1 )} = \Uc ^{m,(k+1 )} + \delta t_m {\bf C}
68
+
69
+ where the right-hand side is constructed only from known states, and we
70
+ define ${\b f C}$ for convenience as:
71
+
72
+ .. math ::
73
+
74
+ \begin {align}
75
+ {\bf C} &= \left [ {\Advs {\Uc }}^{m,(k+1 )} - {\Advs {\Uc }}^{m,(k)} \right ]
76
+ - {\Rbs {\Uc }}^{{m+1 },(k)} \nonumber \\
77
+ &+ \frac {1 }{\delta t_m} \int _{t^m}^{t^{m+1 }} \left ( {\Advs {\Uc }}^{(k)} + {\Rbs {\Uc }}^{(k)}\right ) d\tau
78
+ \end {align}
79
+
80
+ This can be cast as an ODE system as:
81
+
82
+ .. math ::
83
+
84
+ \frac {d\Uc }{dt} \approx \frac {\Uc ^{m+1 } - \Uc ^m}{\delta t_m} = \Rbs {\Uc } + {\bf C}
85
+
86
+ Simplified SDC
87
+ --------------
88
+
89
+ The Simplified-SDC method uses the ideas of the SDC method above, but instead
90
+ of dividing time into discrete temporary notes, it uses a piecewise-constant-in-time
91
+ approximation to the advection update over the timestep (for instance, computed by the CTU PPM method) and solves the ODE system:
92
+
93
+ .. math ::
94
+
95
+ \frac {\partial \Uc }{\partial t} = [\Advs {\Uc }]^{n+1 /2 } + \Rb (\Uc )
96
+
97
+ and uses iteration to improve the advective term based on the
98
+ reactions. The full details of the algorithm are presented in
99
+ :cite: `castro_simple_sdc `.
100
+
101
+ Common ground
102
+ -------------
103
+
104
+ Both SDC formulations result in an ODE system of the form:
105
+
106
+ .. math ::
107
+
108
+ \frac {d\Uc }{dt} = \Rb (\Uc ) + \mbox {advective terms}
109
+
110
+ where $\U c$ is only
111
+
112
+ .. math ::
113
+
114
+ \Uc = \left ( \begin {array}{c} \rho X_k \\ \rho e \end {array} \right )
115
+
116
+ since those are the only components with reactive sources.
117
+ The ``SDC `` burner includes storage for the advective terms.
118
+
36
119
Interface and Data Structures
37
120
=============================
38
121
39
- burn_t
40
- ------
122
+ For concreteness, we use the simplified-SDC formulation in the description below,
123
+ but the true-SDC version is directly analogous.
124
+
125
+ ``burn_t ``
126
+ ----------
41
127
42
128
To accommodate the increased information required to evolve the
43
- coupled system, the `burn_t ` used for Strang integration is extended
129
+ coupled system, the `` burn_t ` ` used for Strang integration is extended
44
130
to include the conserved state and the advective sources. This is
45
131
used to pass information to/from the integration routine from the
46
132
hydrodynamics code.
@@ -128,8 +214,8 @@ system we are integrating, including the advective terms.
128
214
:math: `\dot {Y}_k` and the nuclear energy release, :math: `\dot {S}`.
129
215
130
216
#. Convert back to the integrator’s internal representation via ``rhs_to_int ``
131
- This converts the ``ydot``s to mass fractions and adds the advective terms
132
- to all ``ydots ``.
217
+ This converts the ``ydot `` to mass fractions and adds the advective terms
218
+ to `` ydot ``.
133
219
134
220
Jacobian
135
221
--------
@@ -147,3 +233,9 @@ the Jacobian as:
147
233
where :math: `{\bf w} = (X_k, T)^\intercal ` are the more natural variables
148
234
for a reaction network.
149
235
236
+ .. note ::
237
+
238
+ In the original "true SDC" paper :cite: `castro_sdc `, the matrix
239
+ system was more complicated, and we included density in ${\b f w}$.
240
+ This is not needed, and we use the Jacobian defined in
241
+ :cite: `castro_simple_sdc ` instead.
0 commit comments