The domain.data file
The most important of AstroBEAR's data files, domain.data
controls the boundaries of the system and the computational methods used to evolve it. The file is split into a series of namelists as follows:
- GlobalData (Contains global parameters related to the run like the number of dimensions, number of subdomains, length of simulation etc…)
- EllipticData (Contains global parameters related to any elliptic equations that need to be solved)
- DomainData (Contains information about the first subdomain like the physical location, number of refinement levels, type of hydro scheme etc…)
- MUSCLData (Contains method flags for domains that use the MUSCL hydro scheme. Only necessary if the previous subdomain is using the MUSCL scheme)
- SweepData (Same as above, but for the Sweep Scheme)
- WaveData (Same as above, but for the Wave Scheme)
- DomainData (Contains information about the second subdomain if necessary…)
- MUSCLData
- SweepData
- WaveData
- DomainData (for the third subdomain and so on…)
- …
See a sample domain.data file
contrib/astro/sample_data_files/domain.data
GlobalData == Contains global parameters for the entire simulation domain including the number of sub-domains.
nDomains:
! number of distinct sub-domains
nDim:
The number of dimensions in the grid (for AstroBEAR, this means the number of dimensions for the problem). This value should be between1
and4
.
Restart:
Set toT
if the simulation is to be restarted from an existing frame, andF
if it is to start from scratch.
RestartFromBOV:
Set toT
if the simulation is to be restarted from a fixed grid brick of values (BOV), andF
otherwise.
RestartRevision:
The code SVN revision which you are restarting from. Code revisions which change the size of the Info structure need this to be set in order to correctly read in the Info*.bin files.
NewMinLevel:
Integer that sets the level of minimum refinement. AstroBear will stop updating grids withlevel < NewMinLevel
. See NewMinLevel.
CoarsenRatio:
The coarsening ratios used by each level of refinement. There should be at leastMaxLevel
elements in this array; any elements beyondMaxLevel
are ignored.
LogOpt:
Run Log options - It is recommended that you not tamper with these unless the number of elements in this array is less thanMaxLevel
, at which point you should just add as many000
elements as necessary.
MinimumGridPoints:
Only the firstnDim
of these values matter; they indicate the minimum number of points in a given dimension that the grids should have. *Side note* Something extra special about our code: There must be at leastMaxLevel
-1 of these values for the simulation to run.
MaxCFLRetry
Maximum number of times to reducedt
such thatCFL <= cflv(1)
before giving up.
out_style
As of version r439: Set = 0 for Chombo HDF5 output, or = 1 for BOV (brick of values) output.
out_frames:
The number of frames that the simulation should produce. This should be an integer greater than 0.
TimeStepMethod:
Set this parameter to 0 if you want the timestep to be fixed, and to 1 if you want it to be variable. As of r433, for new AMR, set = 2 for fixed timestep and = 3 for variable timestep
StartTime:
The initial time. We always set it to0.
FinalTime:
The final time ( = # years / RunTimeSc(in yrs) )
LevelEqSets:
Set toT
if different equations are solved on each level, andF
otherwise. This is always set toF
for us.
LevelMethods:
Set toT
if different integration schemes are used on each level, andF
otherwise. This is always set toF
for us.
RestartFrame:
Sets the frame from which the simulation will restart (assumingRestart
is set toT
). IfRestartFrame
is set to0
, then the simulation will restart from the last completed frame.
WriteFrameAtSpecifiedTime:
When set toT
, this forces AstroBEAR to generate an output file at a specific time. This can throw the CFL number out of whack, though, as the timestep is adjusted to finish the step by the output time. Setting this parameter toF
disables forced outputs at specific times.
MaintainAuxArrays:
It is currently read in as theMaintainAuxArrays
flag. When set toT
, this instructs AstroBEAR to keep track of edge-valued magnetic fields in theaux
array.
lSink_Particles:
This tag enables the code that tracks and maintains sink particles in AstroBEAR. If you are not using sink particles, you will want this to be false as sink particles carry some overhead with them.
NrTracerVars:
Number of Tracer Variables to be used. Normally set to 0 unless you want to track a particular part of the fluid.
dtv(1):
Initial dt (used in all steps if method(1) = 0)dtv(2):
Max allowable dt
cflv(1):
A floating point value representing the maximum allowable CFL number. This generally should not exceed 1.0.cflv(2):
A floating point value representing the desired CFL number. AstroBEAR uses this value when deciding by how much to adjust the timestep.cflv(3):
A floating point value representing the CFL relaxation parameter. AstroBEAR uses this value to control the rate at which a grid's current CFL number approaches the desired value (cflv(2)
).
lRootGridAdapt:
Logical flag that enables the root grids to change size to try and balance the root grid distribution more evenly.
lDistribute:
Logical flag that allows child grids to be moved off of their parents processor. Should be true for most situations.
DistributeMethod:
Integer flag that determines how grids are distributed between processors. 0 redistrubutes somewhat blindly, just trying to balance the total work load on each processor. 1 tries to balance the work load as well, but also tries to minimize communication - more likely to keep data from a physical location on the same processor. 2 is the same as 1, but if there are multiple sub-domains, each sub-domain redistributes only within processors assigned to that sub-domain. (1 and 2 are somewhat experimental but seem to improve performance)
EllipticData
NrEllipticVars
An integer giving the number of elliptic variables — actually, the number of non-hyperbolic step, non-protecting, non-source integration variables. If nonzero, these will be the last integers in q, starting at nEllipticLO and going to NrVars (where NrVars=NrHydroVars+NrEllipticVars).
EllipticMethod:
Method to use for elliptic solves. 1 = Hypre self-gravity (can be periodic or non-periodic, but reflecting is not considered), 5 = FFTW self-gravity (always a periodic calculation of gravity. NOTE: ONLY WORKS WITH SWEEP METHOD - iScheme=1)
DomainData
MaxLevel
Indicates the maximum level of AMR refinement to use.MaxLevel = 2
andMaxLevel = 3
are good starting points if you're not sure how much refinement you'll need.
iBuffer:
The size in cells of the buffer zones to be created around each refinement area. This array should always have at leastnDim
elements.
InterpOpt:
An integer array representing the interpolation option used to derivedq
on each level. There should be at leastMaxLevel
elements in this array. The options are as follows:-1 = centered:
Takes the average ofdq
backward
anddq
forward
.0 = constant:
Uses a constant option fordq
.1 = minimod:
Takes the minimum between a forward-stepdq
and a backward-stepdq
.2 = superbee:
Uses a constant option fordq
.3 = vanleer:
Always uses the backward-stepdq
.4 = monotonized-centered:
Always uses the forward-stepdq
.
Also see InterpOpt.
ErrorFlagOpt:
An array of two-digit numbers indicating which error flag method to use for each level. See NodeInfoGlobal.f90 for more details on the values that go here. Make sure that there are at leastMaxLevel
entries here, as there needs to be an option for each level.
DesiredFillRatios:
DesiredFillRatios in determining a new subgrid. Should be MaxLevel of these. (should probably be .9 or .99)
qTolerance:
An array of tolerance values for the field variables. There should never be less thanMaxLevel
values in this array.
xTolerance:
These values are intended for problems that change the shape of the cells themselves; as such, we don't typically touch them. Just make sure that there's at leastMaxLevel
values in this array.
DomainDecomposition:
The number of subdomains into which each dimension should be decomposed. This integer array should have between 1 and 4 elements, and the number of elements should always be at leastnDim
.
Xlower:
Lower physical coordinates of this subdomain (1:nDim)
Xupper:
Upper physical coordinates of this subdomain (1:nDim)
mX:
Number of cells in this subdomain (1:nDim)
mthbc(n):
There will be twomthbc
records for each dimension, with each one containing an integer flag indicating the kind of boundary conditions along that edge of the grid (1
= extrapolated boundary conditions,2
= periodic boundary conditions,3
= reflecting (solid wall) boundary conditions. By version r433,3
is for magnetic fields forced to be parallel to the boundary, and option4
has been added for a reflecting boundary with magnetic fields forced to be normal to the boundary. A value of999
= internal boundary conditions). These values will be read into the root node and propagated to the child [Node nodes] as they are created.mthbc(1):
type of boundary conditions at leftmthbc(2):
type of boundary conditions at rightmthbc(3):
type of boundary conditions at bottommthbc(4):
type of boundary conditions at topmthbc(5):
type of boundary conditions at frontmthbc(6):
type of boundary conditions at back
decomposeMethod:
Integer flag that determines how root grids are decomposed. 0 does an ordered decomposition given by the decomposition below. 1 decomposes the problem domain into the same number of root grids as there are processors by a bisection method.
decomposition:
Number of sections to decompose the domain into in each direction. There should be nDim of these and normally product(decomposition) = # of processors
iScheme:
Integer flag that determines which hydro engine to use. 0 selects MUSCLbear which performs updates on a 1D array at a time. 1 selects SWEEPBear which performs updates on the entire grid at a time (able to do multidimensional stencils like CTU). 2 is WaveBEAR but is not yet supported
MUSCLdata === (Only needed if iScheme is 0)
method(1):
Unused
method(2):
Selects the spatial interpolation scheme to use. A detailed description of of AstroBEAR integrations can be found here. Options are:0:
First order Gudonov method.1:
MUSCL primitive interpolation.2:
MUSCL wave-by-wave interpolation.3:
Piecewise Parabolic Method (PPM). If you choose this option, make sure thatmethod(4) == 3
4:
Piecewise Hyperbolic Method (PHM).
method(3):
Setting this flag to1
enables direction splitting (see the integration scheme page for further details), while setting the flag to0
disables it.
method(4):
Selects the temporal interpolation scheme. A detailed description of of AstroBEAR integrations can be found here. Options are:0:
First order Gudonov method. (Not mentioned in current incarnation of bear.data)1:
MUSCL-Hancock predictor-corrector method.2:
TVD-preserving Runge-Kutta method.3:
Piecewise Parabolic Method (PPM).4:
Linear characteristic tracing.
method(5):
Controls whether or not to use Strang splitting. Options are:0:
No source terms.1:
Use the full time step.2:
Use Strang splitting.
method(6):
Selects the flux handling method. Again, a more detailed description can be found here. Options are:0:
Roe Flux.1:
Adapted Marquina Flux.2:
Marquina Flux (hydro-only).3:
HLLD Riemann solver (MHD only).
method(7):
This option is not typically used in an AstroBEAR simulation and should remain set to0
.
WAVEdata
SWEEPdata
method(1):
Unused
method(2):
Selects the spatial interpolation scheme to use. A detailed description of of AstroBEAR integrations can be found here. Options are:0:
First order Gudonov method.1:
Piecewise Parabolic Method (PPM)
method(3):
Unused
method(4):
Selects the temporal interpolation scheme. A detailed description of of AstroBEAR integrations can be found here. Options are:0:
First order Gudonov method. (Not mentioned in current incarnation of bear.data)1:
Piecewise Parabolic Method (PPM).
method(5):
Controls whether or not to use Strang splitting. Options are:0:
No source terms.2:
Use Strang splitting.
method(6):
Selects the flux handling method. Again, a more detailed description can be found here. Options are:0:
Use the appropriate HLLC solver for Hydro/MHD and isothermal/ideal EOS.1:
Exact Riemann Solver2:
HLLC (ideal hydro only)3:
HLL (ideal hydro only)4:
HLLC_ISO (isothermal hydro only)6:
HLLD (ideal MHD only)8:
HLLD_ISO (isothermal MHD only)
method(7):
Unused
Last modified
12 years ago
Last modified on 07/10/13 11:09:01
Note:
See TracWiki
for help on using the wiki.