Version 18 (modified by 7 years ago) ( diff ) | ,
---|
The Outflow Feedback Module in AstroBEAR
The outflow module injects a fraction of accreted mass, momentum and angular momentum back into the grid following each accretion time step and between hydro advances.
Brief Accretion Module Review
Before we discuss the details of this routine, let us briefly recall the accretion prescription here. The feedback module is currently configured to work with the Bondi accretion routine in the code (aka Krumholz accretion). This routine establishes a mass cut-off of gravitationally unstable material around the sink particle (in a control volume of radius = 4dx). Any mass greater than this cut off is removed from the ith cell in this volume (i.e. is accreted) and placed into the sink particle. The total accreted mass is then given by:
Simply removing this mass from the cells contained within the kernel leads to an overall decrease in the momenta in the grid over the accretion step. To correct for this, the `missing' momentum is placed into the sink particle, i.e. momentum is conserved between the grid (gas) and the sink particle. For example, the components of the accreted momentum vector is:
The same is so with Energy:
Now, jets are launched from rotating protostellar systems, so it makes sense to assign a 'spin' to the sink particle, induced from accreting angular momentum from the surrounding gas. While we do not explicitly conserve angular momentum in the code, angular momentum would be reduced in the grid due to the accretion step, and so to be conservative between the gas and sink particle, we assign a total accreted angular momentum to the sink as follows:
Note, this accreted angular momentum is the sink's spin angular momentum, rather than its orbital angular momentum. This is because in addition to enforcing mass, momentum, and energy conservation between the gas and the sink particle, we also conserve the COM of the system.
Question — Why do we conserve the center of mass (COM) of the system — is it the location of the sink particle (if so, doesn't that coincide with the gravitational potential minimum?).
Question — What is the spin angular momentum of the sink and how do we calculate it?
So to recap, mass, energy, linear and angular momentum, and the COM is conserved between the gas and the sink particle in AstroBEAR's accretion module.
Now we must transition to thinking about injecting some fraction of these conservatively accreted quantities back into the grid. How is this modeled in Astrobear (i.e. what quantities do we use at the sub-grid scale/SGS) and how are these quantities distributed in a conservative fashion throughout the kernel?
Feedback Kernel Equations
First off, injected mass will only flow back *out* into the grid (after placed into the kernel) if the injected outward directed momentum in the ith cell is greater than 2x the momentum of the ith cell (right?).. This immediately implies the need for a high injection speed of the material. So, how is this speed modeled at the SGS?
If this at first seems unphysical to you because the speed is potentially greater than the flow speed of accreted material (and should be in order to get outflow), remember this is a SGS model and we envision the gas as accelerating due to gravity as it approaches the surface of the star.
Question - how is the Bondi speed used in the accretion module? - If we can estimate the infall speed of the material around the sink as approaching the Bondi limit (is this simply pressureless collapse?), then when does
> ~ , where is the fraction of accreted mass to be injected in outflow. Related question - are there any quantities that are stepped on each timestep in the kernel, or are quantities only summed/subtracted during injection/accretion steps…? Thinking how does the flow change over time such that the kernel switches from infall to outflow.Angular momentum injection
Some preliminary thoughts here — should jet spin up or down the encompassing cloud around a star? (Likewise, it is supposed to spin down the star right, so does this imply a counter rotating jet, or a jet that spins different directions on its top or bottom?).
Current Prescription
Gets mass and momentum injection exact, but then guesses at angular momentum injection. At this step it can then mess up the linear momentum injection, which causes an iteration for the L again. This happens back and forth until some small error is achieved. Question — under what circumstance does this fail? Something about discretization error in the routine, because the kernel is only 4 zones across?
Is the amount of "push" in the outflow subject to resolution?
Some old research notes on running some test cases →
Oct 13, 2015
Am working with isotropic turbulence module to generate a turbulent sphere, which will then have collapse to a sink and produce radiation feedback.
Offner et al. 2014 (attached to this page) says she seeds a uniform sphere with kmax = 2 waves. Here is an image of the initial condition:
This looks like much smaller modes than Kmax = 2..
Setting Kmax = 2 in the isotropic turbulence module and looking at KE, mass, Vmag, Vx, Vy, Vz in projection (and 3D) shows:
Seems like the module is working fairly well. Going to continue learning a bit more how the seeding is generated this week and then will define a spherical volume inside of the mesh. The initial condition for the sphere needs to be fleshed out a bit more.. I.e. put it in quiescent ambient? Low density ambient? etc…
AMR? Clump object, then forcing, to apply the seeding everywhere in the grid?
October 8, 2015
Learned today a bit about the way Astrobear generates a forcing function to perturb the grid in turbulence simulations. The grid is transformed into Fourier space so that each cell in Fourier space is given a wave vector. The wave vectors (with corresponding amplitude and phase information) will be summed to give a forcing function. The amplitudes are semi random in that they are weighted against the spectral index of the power spectrum one wishes to achieve (the amplitude is always orthogonal to the k vector, but how it is orthogonal is random). The phases are random. Once this spectrum is generated in Fourier space it is transformed back into physical space and saved into a variable for the forcing function. This forcing function (really an acceleration function) is then multiplied to every zone of the box for a specified fluid variable (by default the velocity). The forcing function is normalized so that it it produces purely solenoidal perturbations (i.e. the amplitude vector is perpendicular to the k vector). At each time step the velocity is shifted so that the average velocity is 0.
The forcing function goes something like:
where
is a random complex vector subject to
for
and
We also want
to be real, so
However, in the code - it looks like both are chosen randomly, and then the real part of the transform is taken. I have to think about the implications of this…
where
Now when we combine the
terms, we get
Attachments (6)
- offnerIC.png (38.4 KB ) - added by 9 years ago.
- kmax2.png (102.5 KB ) - added by 9 years ago.
- kmax22.png (92.5 KB ) - added by 9 years ago.
- 3dkmax2.png (207.2 KB ) - added by 9 years ago.
- 3dkmax22.png (231.1 KB ) - added by 9 years ago.
- Offner2014.pdf (2.6 MB ) - added by 9 years ago.