Changes between Version 25 and Version 26 of FluxLimitedDiffusion


Ignore:
Timestamp:
03/20/13 12:22:41 (12 years ago)
Author:
Jonathan
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • FluxLimitedDiffusion

    v25 v26  
    185185
    186186||   [[latex(\left [ 1 + \psi \left( \alpha^n_{i+1/2} + \alpha^n_{i-1/2} + \epsilon^n_i \right ) \right ] E^{n+1}_i - \left ( \psi \alpha^n_{i+1/2} \right ) E^{n+1}_{i+1} - \left ( \psi \alpha^n_{i-1/2} \right ) E^{n+1}_{i-1} =\left [ 1 - \bar{\psi} \left( \alpha^n_{i+1/2} + \alpha^n_{i-1/2} + \epsilon^n_i \right ) \right ] E^n_i+\phi^n_i e^n_i + \theta^n_i)]]   ||
    187 ||   [[latex(\left (1 \right ) e^{n+1}_i = \left ( \psi \epsilon^n_i \right )E^{n+1}_i + \left ( 1 - \phi^n_i \right ) e^n_i + \left ( \bar{\psi} \epsilon^n_i \right ) E^n_i-\theta^i_n )]]   ||
    188 
    189 
    190 
    191 Clearly the second equation is trivial to solve after the first system of equations has been solved.  So if we treat the temperature as being constant we can calculate the local heating/cooling due to radiative emission/absorption
    192 
    193 [[latex(e^{n+1}_i =  e^n_i + \epsilon^n_i \left (  E^{n+1}_i -\frac{4\pi}{c}B \left (T^n_i \right ) \right ))]]
    194 
     187||   [[latex(e^{n+1}_i = e^n_i + \epsilon^n_i  \left [ \left ( \psi E^{n+1}_i + \bar{\psi} E^{n}_i \right ) - \frac{4 \pi}{c} B \left ( T^n_i \right )  \right ] )]]   ||
     188
     189In this case the first equation decouples and can be solved on it's own, and then the solution plugged back into the second equation to solve for the new energy. 
    195190
    196191=== 2D etc... ===
    197192
    198 For 2D the matrix coefficients would be
    199 
    200 || [[latex(1+\alpha^n_{i+1/2,j}+\alpha^n_{i-1/2,j}+\alpha^n_{i,j+1/2}+\alpha^n_{i,j-1/2}+\epsilon^n_i )]] || [[latex(E^{n+1}_{i,j})]] ||
    201 || [[latex(-\alpha^n_{i-1/2,j})]] || [[latex(E^{n+1}_{i-1,j})]] ||
    202 || [[latex(-\alpha^n_{i+1/2,j})]] || [[latex(E^{n+1}_{i+1,j})]] ||
    203 || [[latex(-\alpha^n_{i,j-1/2})]] || [[latex(E^{n+1}_{i,j-1})]] ||
    204 || [[latex(-\alpha^n_{i,j+1/2})]] || [[latex(E^{n+1}_{i,j+1})]] ||
    205 
    206 and the source term would be unchanged from 1D
    207 
    208 ||  [[latex(E^n_i+\frac{4\pi \epsilon^n_i}{c}B \left (T^n_i \right ) )]]
    209 
     193For 2D or 3D we have more connections to add to the matrix elements but it is very straight forward...  There will be additional alpha terms for each  dimension, but everything else stays the same.
     194
     195
     196=== Initial solution vector ===
     197For the initial solution vector, we can just use Edot from the parent update (or last time step if we are on the coarse grid) to guess E, and then we can solve for the new e given our guess at the new E using the same time stepping (Backward Euler, Crank Nicholson, etc...).
     198
     199[[latex(E^{n+1}_i = E^{n}_i+\dot{E}^{n}_i \Delta t)]]
     200[[latex(e^{n+1}_i = \frac{1}{1+\psi \phi^n_i} \left { \left ( \psi \epsilon^n_i \right )E^{n+1}_i + \left ( 1 - \bar{\psi}\phi^n_i \right ) e^n_i + \left ( \bar{\psi} \epsilon^n_i \right ) E^n_i-\theta^i_n \right } )]]
    210201
    211202== Coarse-Fine Boundaries ==
    212203 Since we are doing our implicit solves first, we can use time interpolated solutions for the implicit solve for non-refined ghost zones.  To do this we just need Edot.  The opacities etc... in the ghost zones can be obtained from the hydro terms. 
    213204
    214  What about radiative implicit heating in coarse ghost cells which we will need to do hydro update?  Could do this explicitly using E and Edot
     205 What about radiative implicit heating in coarse ghost cells which we will need to do hydro update?  Could do this implicitly using E and Edot (don't need hypre for this implicit solve though)
    215206
    216207