Changes between Version 79 and Version 80 of FluxLimitedDiffusion
- Timestamp:
- 03/27/13 21:45:16 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
FluxLimitedDiffusion
v79 v80 93 93 Krumholz et al. perform Implicit Radiative, Explicit Hydro, Explicit Radiative 94 94 95 Problem with AMR is we need coarse boundary values for E at t=0, and t=dt, and t = 2dt and we would like coarse boundary values at t=2dt to match solution from coarse grid...96 97 But the coarse update involves one implicit and one explicit solve. Is there a way to interpolate the fine grid ghost zones in time without storing two time derivatives? If we store dE_i+dE_e then we could do an explicit radiative update internally (E^n^ -> E*), then an implicit radiative update (E* -> E^n+1^ using the fully updated ghost zones (E^n+1^,,g,, = E^n^,,g,,+dE,,g,,) and then store the new time derivative (dE=E^n+1^-E^n^)98 99 This seems like it would work for the radiative field, but what about the internal energy terms? We have an equation for e^n+1^ that is a function of E^n+1^, e* and E* but we have no way of getting E* in the ghost zones... and the100 101 102 We could store dE_i and dE_e two implicit and two explicit solves... so we need a way to103 104 105 So the solution is perhaps to store the contributions from the implicit update and the non-conservative heating terms that appear in the internal energy equation. Then we can update E in the ghost zones for the implicit and the first explicit term using the time derivative - and then use the new E to update e... Then the conservative explicit RadEnergy term can be calculated after the hydro step as well as the momentum explicit term - and then this flux can be coarsened - to keep the value of E in the coarse cells consistent with the value of E in the fine cells... Since both will have been updated by the same eDot and fluxes...106 107 huh....108 109 95 In AstroBEAR this would look like: 110 96 * Initialization … … 112 98 * Step 1 113 99 * Overlap d, p, e, E and do physical BC's 114 * Do ER which updates e,,0,, and E,,0,, using d,,1,,, e,,1,,, v,,1,, E,,1,,115 100 * Do IR which updates e,,0,,, and E,,0,, using d,,1,,, e,,1,,, E,,1,, 116 101 * Update E,,2*mbc,, using Edot,,2*mbc,, … … 129 114 * Do second EH,,0,, 130 115 * Do ER,,0,, --- Terms with grad E can be done without ghosting since EH did not change E. The del dot vE term needs time centered face centered velocities which can be stored during the hydro update. 116 117 118 However with AMR is we need coarse boundary values for E at t=0, and t=dt, and t = 2dt and we would like coarse boundary values at t=2dt to match solution from coarse grid... 119 120 But the coarse update involves one implicit and one explicit solve. Is there a way to interpolate the fine grid ghost zones in time without storing two time derivatives? If we store dE_i+dE_e then we could do an explicit radiative update internally (E^n^ -> E*), then an implicit radiative update (E* -> E^n+1^ using the fully updated ghost zones (E^n+1^,,g,, = E^n^,,g,,+dE,,g,,) and then store the new time derivative (dE=E^n+1^-E^n^) 121 122 This seems like it would work for the radiative field, but what about the internal energy terms? We have an equation for e^n+1^ that is a function of E^n+1^, e* and E* but we have no way of getting E* in the ghost zones... 123 124 So the solution is perhaps to store the contributions from the implicit update and the non-conservative heating terms that appear in the internal energy equation. Then we can update E in the ghost zones for the implicit and the first explicit term using the time derivative - and then use the new E to update e... Then the conservative explicit RadEnergy term can be calculated after the hydro step as well as the momentum explicit term - and then this flux can be coarsened - to keep the value of E in the coarse cells consistent with the value of E in the fine cells... Since both will have been updated by the same eDot and fluxes... 125 126 in which case we can rewrite the equations as 127 128 [[latex(\frac{\partial }{\partial t} \left ( \rho \mathbf{v} \right ) + \nabla \cdot \left ( \rho \mathbf{vv} \right ) = -\nabla P\color{green}{-\lambda \nabla E})]] 129 [[latex(\frac{\partial e}{\partial t} + \nabla \cdot \left [ \left ( e + P \right ) \mathbf{v} \right ] = \color{red}{-\kappa_{0P}(4 \pi B-cE)} \color{orange}{+\lambda \left ( 2 \frac{\kappa_{0P}}{\kappa_{0R}}-1 \right ) \mathbf{v} \cdot \nabla E} \color{blue}{-\frac{3-R_2}{2}\kappa_{0P}\frac{v^2}{c}E})]] 130 [[latex(\frac{\partial E}{\partial t} \color{red}{ - \nabla \cdot \frac{c\lambda}{\kappa_{0R}} \nabla E} = \color{red}{\kappa_{0P} (4 \pi B-cE)} \color{orange}{-\lambda \left(2\frac{\kappa_{0P}}{\kappa_{0R}}-1 \right )\mathbf{v}\cdot \nabla E} \color{green}{-\nabla \cdot \left ( \frac{3-R_2}{2}\mathbf{v}E \right )} \color{blue}{+\frac{3-R_2}{2}\kappa_{0P}\frac{v^2}{c}E} )]] 131 132 131 133 [[CollapsibleEnd()]] 132 134