Changes between Version 7 and Version 8 of SinkParticlesDevel


Ignore:
Timestamp:
02/09/12 14:12:24 (13 years ago)
Author:
Jonathan
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • SinkParticlesDevel

    v7 v8  
    11 = Sink Particles =
    22
    3 The Sink Particle algorithm is more or less taken from [http://adsabs.harvard.edu/abs/2010ApJ...713..269F Federrath et al].
     3The Sink Particle algorithm is more or less taken from [http://adsabs.harvard.edu/abs/2010ApJ...713..269F Federrath et al] although Bondi type accretion is also implemented from [http://arxiv.org/pdf/astro-ph/0312612.pdf Krumholz et al.]
     4
    45
    56Before each step after overlaps have been applied - each processor searches through each info structure looking for new particles.  This requires data out to 4 ghost cells.  The processors then gather all of the new particles and the moments of the surrounding cells.  Then each processor updates all of its grids by accreting material onto the sink particles.  Then the change in particle mass from each processor is accumulated and the particles new properties (mass, mom, etc...) are then updated.  The sink particles are then advanced redundantly using a leap-frog integration on every processor.
     
    6465}}}
    6566
     67== Accretion ==
     68Federrath accretion removes just enough density from cells within 4 zones of the particle to keep them below the truelove limit.
     69
     70Bondi accretions is a bit more involved.
     71The host cell of the particle first estimates [[latex($c_{\infty}$)]] and [[latex($v_{\infty}$)]] using the host cell and calculates the bondi radius from the particles mass.  It then calculates the surrounding mean density using [[latex($\bar{\rho}=\frac{\sum{\rho  wdV}}{\sum{wdV}}$)]], and estimates [[latex($\rho_{\infty}$)]] using the solution to bondi accretion [[latex($\rho_{\infty}=\frac{\bar{\rho}}{\alpha(1.2\Delta x/r_{BH})}$)]].  It then calculates the accretion rate as
     72
     73[[latex($\dot{M}=4\pi\rho_{\infty}r_{BH}^2 \left ( \lambda^2 c_{\infty}^2 +v_{\infty}^2 \right )^{1/2}$)]]
     74
     75The accretion rate can be written as [[latex($\dot{M}=\frac{4\pi r_{BH}^2}{\alpha(1.2\Delta x/r_{BH})} \left ( \lambda^2 c_{\infty}^2 +v_{\infty}^2 \right )^{1/2}\frac{\sum{\rho  wdV}}{\sum{wdV}}=\sum{d\rho dV}$)]].  The Krumohlz paper suggests the amount of accreted material from each cell should be proportional to the weight factor [[latex($d \rho \propto w$)]] but it makes more sense to make it proportional to the density times the weight factor [[latex($d \rho = A \rho w$)]] .  If [[latex($d\rho \propto \rho w$)]] then [[latex($\sum{d\rho dV}= \sum{A \rho wdV} = A \sum{\rho wdV}$)]] which then gives [[latex($A=\frac{4\pi r_{BH}^2}{\alpha(1.2\Delta x/r_{BH})\sum{wdV}} \left ( \lambda^2 c_{\infty}^2 +v_{\infty}^2 \right )^{1/2}$)]]
     76
     77This makes implementation easier since each processor only needs to calculate A for local particles and then share them with other processors.  This quantity is stored in {{{particle%AccretionRate}}}
     78
    6679
    6780For reference on another way astrobear has implemented sinks in the past, see SinkParticle