Bondi Accretion Routine Review
The Bondi accretion routine begins by calculating the Bondi radius of the sink particle's host cell using the following equation:
RB = GM/(cs2+vs2)
This equation gives the sonic surface of infalling gas onto a moving point particle.
Next the routine defines a region around the sink particle (on the finest AMR level) from which gas will be accreted. Within this region, the accuracy of the hydrodynamical solution is lost and so we want to minimize its size. However, we want to accurately-enough resolve inflowing material into this accretion region. To balance these two effects we choose a radius = 4dx. This is called r_acc in the code.
The amount of gas removed from the cells within r_acc is given by the accretion rate * the timestep. This accretion rate should be carefully chosen when the sonic radius lies within r_acc. This is because the accretion rate sets the resultant pressure in the kernel, and so if the accretion rate is too high (the resultant pressure too low) the hydrodynamical solution in cells surrounding the kernel could be degraded in the case of subsonic inflow.
In the other limit: R_BH > R_acc, then too high of an accretion rate shouldn't matter so much. The only issue I can foresee is if the accretion rate is too low, in which case gas would pile up within the kernel and eventually artificially fragment since new sink particles are not created within the accretion region of already existing particles. For this reason it might make most sense to allow sinks to form within the accretion regions of already existing sinks (if R_BH> R_acc) and then immediately merge (within a time-step).
Next the accretion rate is calculated using a semi-analytical expression found by Ruffert & Arnett (1994). See Krumholz 2004, eqn. 11. To calculate rho_inf in that equation, we calculate an average rho within the kernel using assigned weights to each cell within the kernel. These weights depend on the ratio R_BH : r_acc and effectively allow cells with higher inflow speeds to contribute more mass to the accreting sink particle. Correspondingly, these weights are then used to calculate the mass removed by any cell within r_acc during the accretion step.
Now this is all well and good if the gas is not rotating within the kernel. However, If it is rotating then the mass should not be accreted spherically symmetrically from all cells within the kernel. To calculate a correction due to rotation, each cell within the kernel is broken up into 83 sub-cells each with 1/83 the mass, momentum, and energy of the host cell. The minimum distance between the sink particle and these sub-cells is then calculated. If this distance is not less than dx/4, then that sub cell does not contribute to the accreted mass (it has too high an angular momentum to ever fall onto the surface of the sink). Additionally, if any of the cells within the accretion region is unbound, it does not contribute mass to the sink particle. Note, there is a maximum amount of mass any cell can contribute to the sink particle of 25%.
Now with regard to momentum changes to cells within the accretion radius, I was surprised to learn that the Krumholz's model for Bondi accretion reduces the radial momentum only (along a line between cell center and sink particle), in order to preserve the *radial velocity and angular momentum of the gas*. This is because the sink particle is envisioned as being so small in comparison to the grid size that its accreted angular momentum is negligible.
Comments
No comments.