openPMD.jl

openPMD.AccessType
@enum Access begin
    ACCESS_READ_ONLY
    ACCESS_READ_WRITE
    ACCESS_CREATE
end
source
openPMD.DatasetType
mutable struct Dataset
    ...
end
Dataset(::Type{<:OpenPMDType}, extent::Extent, options::AbstractString="{}")
Dataset(extent::Extent)

Datasets only describe a dataset, they do not hold any data. Datasets are value objects that can be copied.

source
openPMD.DatatypeType
@enum Datatype begin
    CHAR => CxxChar
    UCHAR => CxxUChar
    SHORT => CxxShort
    INT => CxxInt
    LONG => CxxLong,
    LONGLONG => CxxLongLong
    USHORT => CxxUShort
    UINT => CxxUInt
    ULONG => CxxULong,
    ULONGLONG => CxxULongLong
    FLOAT => CxxFloat
    DOUBLE => CxxDouble,
    CFLOAT => Complex{CxxFloat}
    CDOUBLE => Complex{CxxDouble}
    STRING => String,
    VEC_CHAR => Vector{CxxChar}
    VEC_UCHAR => Vector{CxxUChar}
    VEC_SHORT => Vector{CxxShort},
    VEC_INT => Vector{CxxInt}
    VEC_LONG => Vector{CxxLong}
    VEC_LONGLONG => Vector{CxxLongLong},
    VEC_USHORT => Vector{CxxUShort}
    VEC_UINT => Vector{CxxUInt}
    VEC_ULONG => Vector{CxxULong},
    VEC_ULONGLONG => Vector{CxxULongLong}
    VEC_FLOAT => Vector{CxxFloat},
    VEC_DOUBLE => Vector{CxxDouble}
    VEC_CFLOAT => Vector{Complex{CxxFloat}},
    VEC_CDOUBLE => Vector{Complex{CxxDouble}}
    VEC_STRING => Vector{String}
    BOOL => CxxBool,
    ARR_DBL_7 => SVector{7,CxxDouble})
end
source
openPMD.FormatType
@enum Format begin
    FORMAT_HDF5
    FORMAT_ADIOS2_BP
    FORMAT_ADIOS2_BP4
    FORMAT_ADIOS2_BP5
    FORMAT_ADIOS2_SST
    FORMAT_ADIOS2_SSC
    FORMAT_JSON
    FORMAT_DUMMY
end
source
openPMD.GeometryType
@enum Geometry begin
    GEOMETRY_cartesian
    GEOMETRY_theta_mode
    GEOMETRY_cylindrical
    GEOMETRY_spherical
    GEOMETRY_other
end
source
openPMD.OffsetType
const Offset = NTuple{D,Int}

Offset describes the location of a dataset in the containing mesh's index space. See Extent.

source
openPMD.SeriesType
mutable struct Series <: Attributable
    ...
end
Series()
Series(filepath::AbstractString, access::Access, comm::MPI.Comm, options::AbstractString="{}")
Series(filepath::AbstractString, access::Access, options::AbstractString="{}")
source
openPMD.UnitDimensionType
@enum UnitDimension begin
    UNITDIMENSION_L    # length
    UNITDIMENSION_M    # mass
    UNITDIMENSION_T    # time
    UNITDIMENSION_I    # electric current
    UNITDIMENSION_θ    # thermodynamic temperature
    UNITDIMENSION_N    # amount of substance
    UNITDIMENSION_J    # luminous intensity
end
source
Base.eltypeMethod
eltype(::Type{Iterations})::Type
eltype(::Iterations)::Type
source
Base.flushFunction
flush(series::Series, backendConfig::AbstractString="{}")::Nothing
source
Base.getindexFunction
getindex(iters::WriteIterations, key)::Iteration
iters[key]::Iteration

This function inserts a new Iteration into the WriteIterations object if they key does not yet exist. This is the proper way to create a new Iteration.

There is no corresponding setindex! method since Iteration objects cannot exist independent of a Series.

source
Base.getindexMethod
getindex(iters::Iterations, n::Integer)::IterationsRecordComponent
iters[n]
source
Base.getindexMethod
getindex(mesh::Mesh, name::AbstractString)::MeshRecordComponent
mesh[name]
source
Base.getindexMethod
getindex(meshes::Meshes, name::AbstractString)::MeshesRecordComponent
meshes[name]
source
Base.inMethod
in(name::AbstractString, meshes::Meshes)::Bool
name in mesh
source
Base.inMethod
in(name::AbstractString, mesh::Mesh)::Bool
name in mesh
source
Base.inMethod
in(n::Integer, iters::Iterations)::Bool
n in iters
source
Base.keysMethod
keys(meshes::Meshes)::AbstractVector{<:AbstractString}
source
Base.keysMethod
keys(mesh::Mesh)::AbstractVector{<:AbstractString}
source
Base.keytypeMethod
keytype(::Type{Iterations})::Type
keytype(::Iterations)::Type
source
Base.setindex!Method
setindex!(iters::Iterations, iter::Iteration, n::Integer)
iters[n] = iter
source
Base.setindex!Method
setindex!(mesh::Mesh, comp::MeshRecordComponent, name::AbstractString)
mesh[name] = comp
source
Base.setindex!Method
setindex!(meshes::Meshes, comp::MeshesRecordComponent, name::AbstractString)
meshes[name] = mesh
source
openPMD.is_integerMethod
is_integer(::Type)::Tuple{Bool,Bool}

Whether the type is an integer (first tuple element), and if so, whether it is signed (second tuple element).

source
openPMD.load_chunkFunction
TODO: update
data = load_chunk(comp::RecordComponent, offset::Offset, extent::Extent)
source
openPMD.set_position!Method
set_position!(comp::MeshRecordComponent, newpos::Union{NTuple{D,CxxDouble}, AbstractVector{CxxDouble}})
source
openPMD.store_chunkFunction
TODO: update
store_chunk(comp::RecordComponent, data::AbstractArray, offset::Offset, extent::Extent)
source