Output file¶
gprMax produces an output file that has the same name as the input file but with .out
appended. The output file uses the widely-supported HDF5 (https://www.hdfgroup.org/HDF5/) format which was designed to store and organize large amounts of numerical data.
File structure¶
The output file has the following HDF5 attributes at the root (/
):
Title
is the title of the modelIterations
is the number of iterations for the time window of the modelnx, ny, nz
is a tuple containing the number of cells in each direction of the modeldx, dy, dz
is a tuple containing the spatial discretisation, i.e. \(\Delta x\), \(\Delta y\), \(\Delta z\)dt
is the time step of the model, i.e. \(\Delta t\)srcsteps
is the spatial increment used to move all sources between model runs.rxsteps
is the spatial increment used to move all receivers between model runs.nsrc
is the total number of sources in the model.nrx
is the total number of receievers in the model.
The output file contains HDF5 groups for sources (srcs
), transmission lines (tls
), and receivers (rxs
). Within each group are further groups that correspond to individual sources/transmission lines/receivers, e.g. src1
, src2
etc...
/
rxs/
rx1/
Name [optional]
Position
Ex
Ey
Ez
Hx
Hy
Hz
Ix
Iy
Iz
rx2/
...
srcs/
src1/
Type
Position
src2/
...
tls/
tl1/
Position
Resistance
dl
Vinc
Iinc
Vtotal
Itotal
tl22/
...
Within each individual rx
group are the following attributes:
Name
is optional if a name for the receiver is given in the model.Position
is the x, y, z position (in metres) of the receiver in the model.
Within each individual rx
group can be the following datasets:
Ex
is an array containing the time history (for the model time window) of the values of the x component of the electric field at that receiver position.Ey
is an array containing the time history (for the model time window) of the values of the y component of the electric field at that receiver position.Ez
is an array containing the time history (for the model time window) of the values of the z component of the electric field at that receiver position.Hx
is an array containing the time history (for the model time window) of the values of the x component of the magnetic field at that receiver position.Hy
is an array containing the time history (for the model time window) of the values of the y component of the magnetic field at that receiver position.Hz
is an array containing the time history (for the model time window) of the values of the z component of the magnetic field at that receiver position.Ix
is an array containing the time history (for the model time window) of the values of the x component of current (calculated around a single cell loop) at that receiver position.Iy
is an array containing the time history (for the model time window) of the values of the y component of current (calculated around a single cell loop) at that receiver position.Iz
is an array containing the time history (for the model time window) of the values of the z component of current (calculated around a single cell loop) at that receiver position.
Within each individual src
group are the following attributes:
Type
is the type of source, e.g. Hertzian dipole, voltage source etc...Position
is the x, y, z position (in metres) of the source in the model.
Within each individual tl
group are the following attributes:
Position
is the x, y, z position (in metres) of the source in the model.Resistance
is the resistance of the transmission line.dl
is the spatial discretisation of the transmission line.
Within each individual tl
group are the following datasets:
Vinc
is an array containing the time history (for the model time window) of the values of the incident voltage in the transmission line.Iinc
is an array containing the time history (for the model time window) of the values of the incident current in the transmission line.Vtotal
is an array containing the time history (for the model time window) of the values of the total (field) voltage in the transmission line.Itotal
is an array containing the time history (for the model time window) of the values of the total (field) current in the transmission line.
Viewing output¶
There are a number of free tools available to read HDF5 files. Also MATLAB has high- and low-level functions for reading and writing HDF5 files, i.e. h5info
and h5disp
are useful for returning information and displaying the contents of HDF5 files respectively. gprMax includes some Python modules (in the tools
package) to help you view output data. These are documented in the tools section.