Changes between Version 3 and Version 4 of LineTransfer


Ignore:
Timestamp:
01/12/17 17:05:20 (8 years ago)
Author:
Jonathan
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • LineTransfer

    v3 v4  
    1 == Data structures ==
    2 There are two primary data structures used by the linetransfer routines in AstroBEAR
     1== Line Transfer ==
    32
    4 1.  !PatchDef - This stores information about patches needed to do the ray tracing
    5 1.  !RayGroupDef - This stores information about a particular group of parallel rays
     3Astrobear currently supports 1D Line Transfer of ionizing radiation in the +x direction.  To enable this you will need to use the !MultiSpecies EOS, turn on Hydrogen Tracking, set iLineTransfer=1 and !LineTransferFlux to whatever value you would like (in units of cm^-2^ s^-1^)
     4
     5* iEOS=1
     6* lTrackHydrogen=T
     7* iLineTransfer = 1
     8* !LineTransferFlux=2e13
     9
     10This will turn on photo-ionization of hydrogen, ionization heating, recombination, recombination cooling, and Lyman alpha cooling.
     11
     12== Photo Ionization ==
     13Photoionization of neutral hydrogen is given by
     14
     15$I_{ph}=F e^{-\tau} \sigma n_H$
     16
     17with
     18
     19$\sigma= 6.3\times 10^{-18} cm^2$
     20
     21$\tau=\int \sigma n_H dx$
     22
     23and
     24
     25$F$ is the value set in physics.data for !LineTransferFlux and
     26
     27== Photo Ionization Heating ==
     28
     29$\frac{de}{dt}=e_\gamma I_{ph}$
     30
     31with $e_\gamma=2.4 eV$
     32
     33== Recombination ==
     34
     35The recombination rate is
     36
     37$R=\alpha n_e n_{H+}$
     38
     39with $\alpha = 2.59\times 10^{-13}(T/10^4 K)^{-0.7} cm^3 s^{-1}$
    640
    741
    8 The basic algorithm to calculate optical depths is as follows:
     42== Recombination Cooling ==
     43Recombination cooling is given by
     44$\frac{de}{dt}= -\Lambda_{rec} n_e n_{H+}$
    945
    10 ==  Get Local Depths ==
    11 Integrate across each patch and store the local (patch) contribution to the optical depth at each cell center as well as the total optical depth across the patch.
     46with
    1247
    13 == Collect Patches ==
    14 For each patch, build a list of shadow-patches and send/receive the optical depth across each shadow patch.
     48$\Lambda_{rec}=6.11 \times 10^{-10} cm^3 s^{-1}  k_BT \left(T/K\right)^{-.89} $
    1549
    16 == Add Shadows ==
    17 For each patch, sort the shadow patches by their earliest 'z-value'
    18 Then accumulate shadows for each patch
     50== Lyman alpha cooling ==
    1951
     52Lyman alpha cooling is given by
    2053
    21 Currently the code just calculates the optical depth to each zone.
     54$\frac{de}{dt}=-\Lambda_{\alpha} n_e n_H$
    2255
    23 The Krumholz et al scheme, calculates ionization rates as well as optical depths when it traverses the tree.
     56with
    2457
    25 1.  Modify tree traversal scheme to also calculate the ionization rate in addition to the optical depth
    26 2.  Add routines to take ionization rate and calculate heating/cooling rates and calculate CFL
    27 3.  Add routine to update energy and ionization values
    28 4.  Add sub-cycling
    29 5.  Will need to store ionization & heating/cooling rates in addition to optical depths at patch boundaries for AMR to work with sub-cycling so we can update ghost zones
    30 6.  Implement healpix tree traversal scheme.
     58$\Lambda_{\alpha} = 7.5 \times 10^{-19} \mbox{erg cm}^{3} \mbox{s}^{-1} e^{-118348 K/T}$
    3159
     60== Time Stepping ==
     61
     62Currently this only works in fixed grid so !MaxLevel needs to be set to 0 in global.data
     63
     64The linetransfer step happens after the hydro update and it sub-cycles as many times as necessary to prevent the number densities of neutral or ionized hydrogen as well as the internal energy from changing by more than 10%.  It currently does not constrain the hydro time step.