Computing the Jeans Length

The first step in setting up this problem was to consider the Jeans Length for a given ambient density and temperature. Recall,

I used the ambient density and temperature of the BP case for the Bonnor Ebert runs. This gave

Using the isothermal sound speed of,

where Kb is the boltzmann constant and mH is the mass of hydrogen, I calculated

Determining the form of the perturbation function

Recall, in our linear perturbative analysis on the gravito-hydrodynamic equations, we had:

This led to a 2nd order ODE in the density perturbation which had the following solution:

In addition to specifying the sound speed and ambient density for this perturbation (implicit to the Jeans length), we need to specify the wave length of the perturbation. With the desire to keep the ratio small, I chose

Using this, we can set the initial (t=0) density inside of the mesh as:

To get the form of the corresponding velocity perturbation, we use the linearized continuity equation:


where is the growth rate given by

(cf. growth rate)

and so,

Thus, we have the form of the initial (t=0) velocity perturbation:

Finally, to get the form of the pressure perturbation for an isothermal simulation, we use the Ideal Gas Equation:

which gives

Thus, we now have the form of all perturbations of the fluid variables.

Setting up the problem domain

I decided on a 1D grid (a string of cells in x) that was much greater than the Jeans length:

The Jeans Length needed to be resolved to prevent artificial fragmentation, so

Choosing 1750 cells in the x direction (small computational cost given 1D sim) satisfies this by having

so there are about 35 cells/ Jeans length.

Given the simulation is 1D, I set the ylower/yupper and zlower/zupper bounds to 0 in, and set the number of cells in y = 1 and z = 1.

Problem Scales


A meaningful simulation time seemed to be the e-folding time for the perturbation function. That is,

In order to calculate this in computational units, I first ran astrobear to get the output file, which lists timescale.

After computing

It was easy to solve for tfinal,

The code

The following is for a 1D isothermal sim of the Jeans Instability.

In ProblemModuleInit, I read in ambient density and temperature. These are used to uniformly set a corresponding Ambient Object.

In ProblemGridInit, I loop over the cells in x (indexed by i) adding the following density perturbation:

I am not 100% sure, but I think if I wanted to place the analytical function in astrobear, I would then add to ProblemBeforeStep a loop over cells in i that continues to perturb the density function in time t:

Thus we should see the characteristic growth rate of .

For further info, you can download the Mathematica calculations here

and the code here


Analytic function -

Here is the plotted analytical function for the initial density perturbation and the perturbation after an e-folding time in Mathematica. The e-folding time in physical units is ~6 Myr, and in computational units corresponds to t = 0.0016.



Numerical result -

These next plots show AstroBEAR's output using density, velocity, and pressure perturbations described earlier:


Vx is in red, rho is in green. The density peaks at the zero's of Cos(kx). E.g., a local max is at 1. The vx perturbation is a Sin(x) function, and it has minima that corresponds with the density maxima. This produces converging flows at the max in density, as you would expect you need to develop the Jeans instability.


By the end of the sim, the density perturbation has grown a little, but velocity has grown a lot.

(These are using periodic physical and elliptical BCs, and an ideal EOS with gamma = 1.0001).

Now, a query-over-time of rho at r = (1,0,0) produces the following output when compared to the analytical result:

Pretty tight fit!

A copy of the spreadsheet calcs can be found attached to this page.

Last modified 11 years ago Last modified on 09/12/13 12:23:11

Attachments (13)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.