Version 17 (modified by 9 years ago) ( diff ) | ,
---|
Radiation feedback from sink particles
The amount of thermal radiation produced in the grid is a function of temperature. Since sinks are a subgrid model they themselves do not have temperature (we are not sure how big the forming star is, how fast it is growing by contraction, etc., so there isn't an easy way of assigning the sub-grid object a 'temperature'). Thus, we are left to estimate the amount of radiation produced by the sink. We envision the sink particle as a protostar, and not yet producing radiation through fusion. Thus, the radiation our sinks produce comes from accretion.
Accretion Luminosity
For spherical symmetry, a gas parcel starting from rest and freely falling to the star from infinity will have its kinetic and gravitational energy balance at the stellar surface:
As material passes through the accretion shocks at the surface of the star, its kinetic energy is converted into heat that is then radiated away. For an accretion rate
, the rate at which this heat is produced, or the luminosity L, is given by:
Since we do not track energy accretion onto the sink, we are left to assume gas that is accreted from the surrounding zones contribute to this accretion luminosity directly. Thus, the best we can do for tracking the energy released from infall is to calculate the RHS of this equation in the code and use it as an estimate of the true accretion luminosity. (By the way, this form of the accretion luminosity was shown to be a good approximation for our purposes here).
The accretion energy (
) will then be distributed smoothly in a kernel surrounding the sink every time step. From there it will diffuse away from the sink via FLD radiative transfer. In this way, sinks will act as additional sources of radiation within the grid.Tracking accretion luminosity in the code
At each time-step i, the luminosity is computed as:
where
is the mass of the sink particle at i, is the total accreted mass for that time-step, is the gravitational constant in computational units, is the radius of the star, taken to be 1 solar radius by default, but modifiable by the user at run-time, and is the hydro time-step.Kernel
To ensure that the sum of the differential energies over the kernel (i.e. volume of cells that we will be injecting the accretion energy into) equals the total accretion energy calculated, we have the following equation:
where
is the accretion energy from the time step, is the differential amount of E to be distributed in the ith cell, and is the volume of the ith cell. As of now, the units don't balance in this equation. We then need to find a normalization constant that has units of 1/volume, which we will do next.We want the amount of E in each cell to drop off smoothly with radius away from the sink. For this we choose a decaying exponential. Let,
where
is a scaling factor. In the code the exponential function used is such that it falls smoothly to zero at the boundary of the kernel, and covers 4 e-foldings. Now, to solve for the normalization constant, we insert (2) into (1):
and solve for k:
While the set of equations for the kernel is arbitrary, as we will see in the next section, this normalization constant allows us to easily feed into the source function a specific accretion energy (i.e. E/V), which is necessary for the code's solvers.
Work arrays and feeding L into the radiative source function
There is a subroutine in the code that is called by the radiative transfer module, 'apply kernel to work array'. This goes through and populates the work array index for each cell's accretion energy as:
This is an average luminosity over the hydro step. This is then fed into the source function as,
where we now enter the total specific (recall k has units of 1/volume) accretion energy into the source function averaged over a radiative timestep. And now, we are ready to begin testing.