APIs

Public

Types

Functions

Batsrus.convertIDLtoVTKMethod
convertIDLtoVTK(filename; gridType=1, verbose=false)

Convert 3D BATSRUS *.out to VTK. If gridType==1, it converts to the rectilinear grid; if gridType==2, it converts to the structured grid. If filename does not end with "out", it tries to find the ".info" and ".tree" file with the same name tag and generates 3D unstructured VTU file.

Batsrus.convertTECtoVTUFunction
convertTECtoVTU(head, data, connectivity, filename="out")

Convert unstructured Tecplot data to VTK. Note that if using voxel type data in VTK, the connectivity sequence is different from Tecplot: the 3D connectivity sequence in Tecplot is the same as the hexahedron type in VTK, but different with the voxel type. The 2D connectivity sequence is the same as the quad type, but different with the pixel type. For example, in 3D the index conversion is:

# PLT to VTK voxel index_ = [1 2 4 3 5 6 8 7]
for i in 1:2
   connectivity = swaprows!(connectivity, 4*i-1, 4*i)
end
Batsrus.cutdataMethod
cutdata(data, var; plotrange=[-Inf,Inf,-Inf,Inf], dir="x", sequence=1)

Get 2D plane cut in orientation dir for var out of 3D box data within plotrange. The returned 2D data lies in the sequence plane from - to + in dir.

Batsrus.cutplotFunction
cutplot(data, var, ax=nothing; plotrange=[-Inf,Inf,-Inf,Inf], dir="x", sequence=1,
   levels=20)

2D plane cut contourf of 3D box data.

Batsrus.getdata2dFunction
getdata2d(bd::BATLData, var::AbstractString, plotrange=[-Inf, Inf, -Inf, Inf],
   plotinterval=Inf; innermask=false)

Return 2D slices of data var from bd. If plotrange is not set, output data resolution is the same as the original. If innermask==true, then the inner boundary cells are set to NaN.

Batsrus.getvarMethod
getvars(bd::BATLData, var::AbstractString) -> Array

Return variable data from string var. This is also supported via direct indexing,

Examples

bd["rho"]

See also: getvars.

Batsrus.getvarsMethod
getvars(bd::BATLData, Names::Vector) -> Dict

Return variables' data as a dictionary from string vector. See also: getvar.

Batsrus.loadMethod
load(filename; npict=1, verbose=false)

Read BATSRUS output files. Stores the npict snapshot from an ascii or binary data file into the arrays of coordinates x and data w.

Batsrus.plotdataMethod
plotdata(data, func, args, kwargs...)

Plot the variable from SWMF output.

plotdata(data, "p", plotmode="contbar")

plotdata(data, "p", plotmode="grid")

plotdata(data, func, plotmode="trimesh", plotrange=[-1.0, 1.0, -1.0, 1.0], plotinterval=0.2)

Arguments

  • bd::BATLData: BATSRUS data to be visualized.
  • func::String: variables for plotting.

Keywords

  • plotmode::String: type of plotting ["cont","contbar"]...
  • plotrange::Vector: range of plotting.
  • plotinterval: interval for interpolation.
  • levels: levels of contour.
  • innermask: Bool for masking a circle at the inner boundary.
  • dir: 2D cut plane orientation from 3D outputs ["x","y","z"].
  • sequence: sequence of plane from - to + in that direction.
  • multifigure: 1 for multifigure display, 0 for subplots.
  • verbose: display additional information.
  • density: density for streamlines.
  • stride: quiver strides in number of cells.

Right now this can only deal with 2D plots or 3D cuts. Full 3D plots may be supported in the future.

Batsrus.plotlogdataMethod
plotlogdata(data, head, func; plotmode="line")

Plot information from log file.

Input arguments

  • data::Array: output data.
  • head::NamedTuple: header info.
  • func::String: variables for plotting.
  • plotmode::String: type of plotting ["line","scatter"].
Batsrus.readheadMethod

Return header from info file. Currently only designed for 2D and 3D.

Batsrus.readtecdataMethod
readtecdata(file; verbose=false)

Return header, data and connectivity from BATSRUS Tecplot outputs. Both 2D and 3D binary and ASCII formats are supported.

Examples

file = "3d_ascii.dat"
head, data, connectivity = readtecdata(file)
Batsrus.showheadFunction
showhead(file, filehead)

Displaying file header information.

Batsrus.showheadMethod
showhead(data)
showhead(io, data)

Display file information of data.

Batsrus.streamsliceFunction
streamslice(data::BATLData, var, ax=nothing; plotrange=[-Inf,Inf,-Inf,Inf], dir="x",
   sequence=1; kwargs...)

Plot streamlines on 2D slices of 3D box data. Variable names in var string must be separated with ;.

Batsrus.subsurfaceMethod
subsurface(x, y, data, limits)
subsurface(x, y, u, v, limits)

Extract subset of 2D surface dataset in ndgrid format. See also: subvolume.

Batsrus.subvolumeMethod
subvolume(x, y, z, data, limits)
subvolume(x, y, z, u, v, w, limits)

Extract subset of 3D dataset in ndgrid format. See also: subsurface.

PyPlot.contourFunction
contour(data, var, levels=0; ax=nothing, plotrange=[-Inf,Inf,-Inf,Inf],
   plotinterval=0.1, innermask=false, kwargs...)

Wrapper over contour in matplotlib.

PyPlot.contourfFunction
contourf(data, var, levels=0; ax=nothing, plotrange=[-Inf,Inf,-Inf,Inf],
   plotinterval=0.1, innermask=false, kwargs...)

Wrapper over contourf in matplotlib.

PyPlot.pcolormeshFunction
pcolormesh(data, var, levels=0; ax=nothing, plotrange=[-Inf,Inf,-Inf,Inf],
   plotinterval=0.1, innermask=false, kwargs...)

Wrapper over pcolormesh in matplotlib.

PyPlot.plotFunction
plot(data, var, ax=nothing; kwargs...)

Wrapper over plot in matplotlib.

PyPlot.plot_surfaceMethod
plot_surface(data, var; plotrange=[-Inf,Inf,-Inf,Inf], plotinterval=0.1,
   innermask=false, kwargs...)

Wrapper over plot_surface in matplotlib.

PyPlot.plot_trisurfFunction
plot_trisurf(data::BATLData, var::String, ax=nothing; plotrange=[-Inf,Inf,-Inf,Inf],
   kwargs...)

Wrapper over plot_trisurf in matplotlib.

PyPlot.quiverFunction
quiver(data, var, ax=nothing; stride=10, kwargs...)

Wrapper over quiver in matplotlib. Only supports Cartesian grid for now.

PyPlot.scatterFunction
scatter(data, var, ax=nothing; kwargs...)

Wrapper over scatter in matplotlib.

PyPlot.streamplotFunction
streamplot(data, var, ax=nothing; plotrange=[-Inf,Inf,-Inf,Inf], plotinterval=0.1,
   kwargs...)

Wrapper over streamplot in matplotlib .

PyPlot.tricontourfFunction
tricontourf(data, var, ax=nothing; plotrange=[-Inf,Inf,-Inf,Inf], plotinterval=0.1,
   kwargs...)

Wrapper over tricontourf in matplotlib.

PyPlot.tripcolorFunction
tripcolor(data, var, levels=0; ax=nothing, plotrange=[-Inf,Inf,-Inf,Inf],
   plotinterval=0.1, innermask=false, kwargs...)

Wrapper over tripcolor in matplotlib.

Private

Batsrus.HeadType

BATSRUS output standalone header information.

Batsrus.create_pvdMethod
create_pvd(filepattern)

Generate PVD file for a time series collection of VTK data.

Example

create_pvd("*.vtu)
Batsrus.fillCellNeighbors!Method
fillCellNeighbors!(batl, iCell_G, DiLevelNei_III, iNodeNei_III, nBlock_P)

Fill neighbor cell indexes for the given block. The faces, edges, and vertices are ordered from left (-) to right (+) in x-y-z sequentially.

Vertices: Edges: (10,11 ignored)

7 ––- 8 . –4– .

  • . - . 7 . 8 .

5 ––- 6 . . –3– . 12 . . . . . . . . . 3 ––- 4 9 . –2– . . - . - . 5 . 6 1 ––- 2 . –1– .

Only tested for 3D.

Batsrus.find_grid_blockMethod
find_grid_block(batl, xyz_D)

Return processor local block index that contains a point. Input location should be given in Cartesian coordinates.

Batsrus.find_tree_nodeMethod
find_tree_node(batl, Coord_D)

Find the node that contains a point. The point coordinates should be given in generalized coordinates normalized by the domain size.

Batsrus.getfileheadMethod
getfilehead(fileID::IoStream, filelist::FileList) -> NameTuple

Obtain the header information from BATSRUS output file of type linked to fileID.

Input arguments

  • fileID::IOStream: file identifier.
  • filelist::FileList: file information.
Batsrus.ibitsMethod

Logical shifts as the Fortran instrinsic function.

Batsrus.meshgridMethod

Generating consistent 2D arrays for passing to plotting functions.

Batsrus.order_children!Method
order_children!(batl::Batl, iNode, iMorton::Int, iNodeMorton_I::Vector{Int32})

Recursively apply Morton ordering for nodes below a root block. Store result into iNodeMortonI and iMortonNodeA using the iMorton index.

Batsrus.order_treeMethod
order_tree(batl)

Return maximum AMR level in the used block and the Morton curve order. Set iNodeMorton_I indirect index arrays according to

  1. root node order
  2. Morton ordering for each root node
Batsrus.setunitsMethod
setunits(filehead, type; distance=1.0, mp=1.0, me=1.0)

Set the units for the output files. If type is given as "SI", "CGS", "NORMALIZED", "PIC", "PLANETARY", "SOLAR", set typeunit = type, otherwise try to guess from the fileheader. Based on typeunit set units for distance [xSI], time [tSI], density [rhoSI], pressure [pSI], magnetic field [bSI] and current density [jSI] in SI units. Distance unit [rplanet | rstar], ion and electron mass in [amu] can be set with optional distance, mp and me.

Also calculate convenient constants ti0, cs0 ... for typical formulas. This function is currently not used anywhere!