Version 38 (modified by 12 years ago) ( diff ) | ,
---|
physics.data
Explained
The physics.data
file contains the physics parameters used by AstroBEAR. In addition to common physical constants like , physics.data
also contains the scaling coefficients for AstroBEAR's data.
This contains only one namelist: PhysicsData
.
A Note On Extraneous PhysicsData
Members
Some of the parameters in the PhysicsData
namelist do not currently serve any purpose. Most of these physical parameters were originally used in features that we have not yet ported over from AstroBEAR 1.0. They were left in PhysicsData
against the day that we do get all those features moved over, but do not currently have any effect on the code.
This page deals with parameters that have an effect on AstroBEAR 2.0; as such, we won't bother discussing extraneous namelist members. If a parameter in physics.data
is not covered here, then assume it has no impact on your simulation. The page author is not infallible, however, so if you do discover an important parameter that isn't covered here, please update this page.
General Physical Parameters
gamma:
The constant ideal gas value of . AstroBEAR generally assumes that the gases within the problem domain are monatomic, so should be1.6667
for non-isothermal problems. For isothermal problems we use1.001
. Normally , but a of exactly 1 is hard for our solvers to process, so we just get as close to 1 as we can.
Xmu:
The mean molecular weight of the gas. This is sometimes used in conjunction with the mass of a hydrogen atom to determine the number density and temperature scales. A value of 1.0 is usually used for atomic hydrogen, or 0.5 for molecular hydrogen.
MinTemp:
Sets a minimum temperature within the domain. This should be set to 0.0 if there is no cooling. If there is cooling, then start by setting it to something low, in the 10-10 to 10-6 range. If this parameter is set too high, then it could wind up injecting extra thermal energy into the system.
MinDensity:
Sets a minimum density within the domain. This does not need to be a large value; the default is 10-30, and 10-10 is most common value in the data files. Be wary of using largeMinDensity
values, which can undermine conservation laws by injecting extra matter into the system. Under no circumstances shouldMinDensity
ever be less than 0.
InterpOpts:
A multi-integer array that sets the interpolation options for cell-centered variables. The size of this array is equal to the number of physical variables (NrPhysicalVars
). The interpolation options are actually flux limiters that prevent spurious numerical oscillations. The options are as follows:0 -- Constant:
A constant limiter function.1 -- Min-Mod:
Uses the minimum absolute value of the fluxes. This is the most diffusive of our flux limiters.2 -- Superbee:
The Superbee flux limiter. This option is less diffusive than the other options, and is best for high-resolution problems with no strong shocks.3 -- VanLeer:
Uses the Van Leer limiter from the original MUSCL scheme.4 -- MC:
A monotone-centered flux limiter.
These limiters are defined in the
data/slopelim.f90
file. For most variables, min-mod (option1
) is a good default choice; however, variables withaux
counterparts such as Bx, By, and Bz are exceptions to this rule. These variables should always use a constant limiter (option0
).
lSelfGravity:
A boolean flag that turns self-gravity on or off. If your problem needs self-gravity, then this should be set to.true.
and the PoissonData namelist needs to be properly assembled inglobal.data
. If your problem does not use self-gravity, then leavelSelfGravity
set to.false.
iEOS:
Selects the equation of state for the simulation to use. AstroBEAR currently has two options for the equation of state:0 -- ideal gas:
Use the ideal gas EOS: .4 -- isothermal:
Use the isothermal equation of state: .
Verbosity:
A three-integer array that controls the verbosity of the numerical output. Each element of the array controls a different element of numerical integration:- Controls the verbosity of protection errors.
- Controls the verbosity of the source term calculations.
- Controls the verbosity of the Riemann solver output.
All three options use the same scale:
0
(no output),1
(minimal output),2
(all messages).
Scaling Parameters
These parameters control the scaling of the variable data. Many calculations are done in scaled physical quantities to minimize truncation error, and so variable data is typically stored in scaled or dimensionless form. These values are applied when the data needs to be restored to its proper scaling and units.
Note that some of these options are closely related. For instance, we have scaling options for mass density and number density. AstroBEAR only requires one of these quantities to be set in the data file—it will use the specified quantity to derive the unspecified one. This allows users greater flexibility in setting up their problems (for instance, if they know the temperature scale of their domain but not the pressure scale).
rScale:
The density scale in [g/cc]. IfrScale
is set,nScale is ignored
. IfrScale is 0.0
, thennScale
is used to calculaterScale
.rScale
andnScale
should not both be set to 0.0.
nScale:
The number density scale in [particles/cc].nScale
is only used ifrScale
is set to 0.0; otherwise it is derived fromrScale
. Again,rScale
andnScale
should not both be 0.
TempScale:
The temperature scale in [Kelvin]. IfTempScale
is set to 0.0, then it will be derived frompScale
.TempScale
andpScale
should not both be set to 0.0.
pScale:
The pressure scale [dynes/cm2].pScale
is only used ifTempScale
is set to 0.0; otherwise it is derived frompScale
. Again,TempScale
andpScale
should not both be 0.
lScale:
The length scale in [cm]. This defines 1 computational unit (the units used in global.data to define the size of the domain).
For more information see the following pdf
MHD Variables
lMHD:
Logical switch used to turn MHD on or off. MHD requires the face-centeredaux
array, so if you turn MHD on, be sure to setMaintainAuxArrays
in global.data toT
.
Tracer Settings
Tracer variables are used to track the movement of specific quantities of matter within your simulation. If, for instance, you had one or more clumps suspended in an ambient medium and wanted to track the way the clump matter moves through the domain, you would use a tracer.
Note: Certain aspects of tracer behavior are controlled by the iTracerParameter
in solver.data. However, the parameter below is used to activate tracers in the simulation.
NrTracerVars:
Indicates the number of tracer variables to use in this problem. IfNrTracerVars
is0
, then tracers will not be active. Tracking tracer variables costs memory and CPU cycles, so it's best to leave this switched off if you don't anticipate needing them. Under no circumstances shouldNrTracerVars
be less than 0.
Non-Solver Variables
AstroBEAR supports the creation of specialized variables that are not handled by the solver. These variables are useful for debugging, but they are derived from AstroBEAR's operations rather than being calculated by the solver. These variables do not necessarily add much to the calculation cost per cell, but they do increase the memory load of AstroBEAR. As such, it's best to turn them off if you are not actively using them to debug your code.
NrUserDiagnosticVars:
The number of non-solver variables created solely so that the user can track some problem-specific quantity. These will not be considered physical variables, even if they are derived from a physical quantity.
AstroBEAR's Non-Solver Variables
The boolean flags below activate some common non-solver variables. Note that these variables do not count against the total for NrUserDiagnosticVars
lCheckDivergence:
Stores the divergence of the magnetic field. Ideally, this quantity should be 0, but when dealing with numerical approximations this is not always guaranteed. Nevertheless, high divergence values indicate serious problems with either the solver or the problem setup.
lOutputErrFlag:
Stores the error flags for a grid. This is useful when debugging unusual refinement patterns in your problem.
lMPI_ID:
Stores the MPI ID of a grid. It may seem redundant (since a grid can have only one MPI ID), but outputting it as a variable allows us to use visualization tools to see how AstroBEAR is distributing the grids.
Cylindrical Coordinates with Axial Symmetry (2.5D)
This section gives some brief details on how you can take advantage of cylindrical coordinates with axial symmetry if your problem has such symmetry.
iCylindrical:
Controls whether astrobear is to use cylindrical coordinates with axial symmetry. The default is 0 which leaves everything in Cartesian, 1 is for no angular momentum, and 2 is for with angular momentum.
Basically when iCylindrical is not 0, astrobear changes the differential operators and how each axis is treated. In other words, astrobear switches to a cylindrical coordinate system with axial symmetry (no phi dependence). The x-axis becomes the radial axis, the y-axis becomes the cylindrical z-axis, and the z-axis is nothing since this is only makes sense when ndim = 2.
Furthermore, if your problem has rotation then iCylindrical should be set to 2. This will change the ivz component to the angular momentum component (phi). This does not mean that there is phi dependence, only that there is motion in the phi direction. Otherwise, if iCylindrical=1 then there is only ivx (radial) and ivy (cylindrical z).
One other important thing to note…if iCylindrical is not 0, then mydim (a global parameter in physics declarations) will be set to 3, otherwise it is set to ndim.