Version 7 (modified by 12 years ago) ( diff ) | ,
---|
rt.betti
Description
Description as of 9/12/08:
The rt.betti problem module uses the ablative rayleigh-taylor setup provided to us by Riccardo Betti at the LLE. It is not a simple RT problem, but rather one based off laboratory data in which the interface is supported against gravity by mass ablation. The lower fluid is less dense and hotter than the upper fluid, implying a heat flux upwards. With heat conduction, this leads to mass ablation off the interface. The rocket effect, therefore, keeps the interface itself from falling.
The problem module reads in data from rhoInit.dat, vyInit.dat, vxInit.dat, and pInit.dat, which are the data files provided by Betti. These data are interpolated to the grid size being used. The provided data have a single-mode perturbation seeded in velocity on the interface. See attached document for more details.
(This module doesn't use much in physics.data. Since the Betti parameters are in SI units, it's easier to put mCentral in SI units (used in the gravity source term) rather than convert the parameters to CGS, or frequently convert q from CGS to SI and back.)
System: | hydro |
Dimension: | 2D |
Sources: | uniform gravity |
Linsolve: | yes, heat conduction |
Parallel: | yes |
Aux fields: | yes, for linsolve |
Code revision: | 337 |
Location
Modules used
Subroutines
- ScaleRT — read in data files
- qinitRT — initialize environment from data files
- b4stepRT — (stub)
- bcRT bcRT — set problem-specific boundary conditions on top and bottom of domain
- rtErrFlag — (stub)
- linsolveRT — interface problem with LinSolve
ScaleRT
- Read in values from rt.data. These are mostly from Betti's setup (attached) or related to linsolve.
- Read in the initial density, x- and y-velocity, and pressure values from Betti's data files.
qinitRT
- The data files have tabulated values for a grid of a certain resolution (58x2005). Interpolate these values for the grid size being used.
CONTAINS: GetIndex — The subroutine which does the interpolation.
b4stepRT
Stub, kept for compatibility when using other RT modules.
bcRT
- Manually set up boundary conditions on top and bottom. (Left and right BCs are reflecting.) The top boundary uses a combination of extrapolation (zeroth-order), hydrostatic equilibrium,
\frac{d P}{dy} = \rho g
and the isentropic condition ($p=const. \rho^\gamma$
).
- The bottom boundary is critical. The heat flux which is specified here is the main determinant in whether the boundary will remain static or start to move. This is achieved via a combination of nonzero-order extrapolation and "hydrodynamic" equilibrium,
\frac{d(P + \rho v^2)}{dy} = \rho g
See Betti's writeup for more details.
rtErrFlag
Stub, kept for compatibility when using other RT modules.
LinsolveRT
Used to respond to requests from LinSolve.
This version of the RT module uses the linsolve operator LinSolve_System_CrankNicolsonKirchhoff — the version of the variable coefficient Crank Nicolson system which uses a Kirchhoff-transformed variable. Basically, the equation we want to solve is highly nonlinear,
\frac{d T}{d t} = \nabla\cdot\left(\kappa_0 T^n \nabla T\right)
where for this case n is 2.5. Using the Kirchhoff Transformation, we may transform to a (quasi?) linear equation in a variable theta which is a function of temperature T. Doing this allows us to use the Crank Nicolson solver (which is appropriate for linear or weakly-nonlinear systems).
The general structure of the requests is
- Choose which linsolve operator to use
- Set up some linsolve-related parameters
- Calculate theta and put theta into q(4)
- Use Newton iteration to find the correct bottom BC on theta. This uses the heat flux specified in rt.data
- Populate the aux array with a linearized form of the RHS of the above equation
- At the end, transform theta back to T and recompute q(4)
Attachments (1)
-
RBetti.doc
(31.5 KB
) - added by 16 years ago.
Original document from Prof. Betti describing the problem.
Download all attachments as: .zip