Library
The following is the exhaustive list of the API available to users, accompanied by explanations.
Module Index
GilaElectromagnetics.GlaExtInfGilaElectromagnetics.GlaExtInfGilaElectromagnetics.GlaKerOptGilaElectromagnetics.GlaKerOptGilaElectromagnetics.GlaOprGilaElectromagnetics.GlaOprGilaElectromagnetics.GlaOprGilaElectromagnetics.GlaOprMemGilaElectromagnetics.GlaOprMemGilaElectromagnetics.GlaVolGilaElectromagnetics.GlaVolGilaElectromagnetics.egoOpr!GilaElectromagnetics.glaSzeGilaElectromagnetics.glaSzeGilaElectromagnetics.isadjointGilaElectromagnetics.isexternaloperatorGilaElectromagnetics.isselfoperator
Detailed API
In the following type and function list, there will be mentions of the type AbstractArray{T}. This T is described as :
T<:Union{ComplexF64,ComplexF32}For every function signature that includes T, it is specified as such.
GilaElectromagnetics.GlaExtInf — TypeGlaExtInfInformation for mapping between general source and target volumes.
Fields
minScl::NTuple{3,Rational}: Common minimum cell size (in units of wavelength).trgDiv::NTuple{3,Integer}: Divisions in each cartesian index of source volume.srcDiv::NTuple{3,Integer}: Divisions in each cartesian index of target volume.trgCel::NTuple{3,Integer}: Cells in a target partition.srcCel::NTuple{3,Integer}: Cells in a source partition.trgPar::CartesianIndices: Identification of volume partition with grid offsets in target volume.srcPar::CartesianIndices: Identification of volume partition with grid offsets in source volume.
GilaElectromagnetics.GlaExtInf — MethodGlaExtInf(trgVol::GlaVol, srcVol::GlaVol)::GlaExtInfConstructor for `GlaExtInf, a memory structure for translating between distinct grid layouts. Treats grid mismatch.
Arguments
trgVol::GlaVol: Target volume definition, seeGlaVol.srcVol::GlaVol: Source volume definition, seeGlaVol.
GilaElectromagnetics.GlaKerOpt — TypeGlaKerOptGreen function operator assembly and kernel operation options.
Fields
frqPhz::Number: Multiplicative scaling factor allowing for complex frequencies.intOrd::Integer: Gauss-Legendre integration order for cells in contact.adjMod::Bool: Flip between operator and operator adjoint.devMod::Union{Bool,Array{<:Bool,1}}: Boolean vector representing activation of GPUsnumTrd::Union{Tuple{},NTuple{3,Integer}}: Number of threads to use when running GPU kernels.numBlk::Union{Tuple{},NTuple{3,Integer}}: Number of threads to use when running GPU kernels.
GilaElectromagnetics.GlaKerOpt — MethodGlaKerOpt(devStt::Bool)Simplified GlaKerOpt constructor where default parameters are given depending on the GPU activation.
Arguments
devStt::Bool: Whether to activate the GPU (true) or CPU (false).
GilaElectromagnetics.GlaOpr — TypeGlaOpr(cel::NTuple{3, Int}, scl::NTuple{3, Rational},
org::NTuple{3, Rational}=(0//1, 0//1, 0//1);
useGpu::Bool=false, setTyp::DataType=ComplexF64)::GlaOprConstruct a self Green operator.
Arguments
cel::NTuple{3, Int}: The number of cells in each dimension.scl::NTuple{3, Rational}: The size of each cell in each dimension (in units of wavelength).org::NTuple{3, Rational}=(0//1, 0//1, 0//1): The origin of the volume in each dimension (in units of wavelength).useGpu::Bool=false: Whether to use the GPU (true) or CPU (false).setTyp::DataType=ComplexF64: The element type of the operator. Must be a subtype ofComplex.
GilaElectromagnetics.GlaOpr — TypeGlaOprAbstraction wrapper for GlaOprMem.
Fields
mem::GlaOprMem: Data to process the Green function, seeGlaOprMem.
GilaElectromagnetics.GlaOpr — MethodGlaOpr(celSrc::NTuple{3, Int}, sclSrc::NTuple{3, Rational},
orgSrc::NTuple{3, Rational}, celTrg::NTuple{3, Int},
sclTrg::NTuple{3, Rational}, orgTrg::NTuple{3, Rational};
useGpu::Bool=false, setTyp::DataType=ComplexF64)::GlaOprConstruct an external Green's operator.
Arguments
celSrc::NTuple{3, Int}: The number of cells in each dimension of the source volume.sclSrc::NTuple{3, Rational}: The size of each cell in each dimension of the source volume (in units of wavelength).orgSrc::NTuple{3, Rational}: The origin of the source volume in each dimension (in units of wavelength).celTrg::NTuple{3, Int}: The number of cells in each dimension of the target volume.sclTrg::NTuple{3, Rational}: The size of each cell in each dimension of the target volume (in units of wavelength).orgTrg::NTuple{3, Rational}: The origin of the target volume in each dimension (in units of wavelength).useGpu::Bool=false: Whether to use the GPU (true) or CPU (false).setTyp::DataType=ComplexF64: The element type of the operator. Must be a subtype ofComplex.
GilaElectromagnetics.GlaOprMem — TypeGlaOprMemStorage structure for a Green's function operator.
Fields
cmpInf::GlaKerOpt: Computation information, settings and kernel options, seeGlaKerOpt.trgVol::GlaVol: Target volume of Green function.srcVol::GlaVol: Source volume of Green function.mixInf::GlaExtInf: Information for matching source and target grids, seeGlaExtInf.dimInf::NTuple{3,Integer}: Dimension information for Green function volumes, host side.egoFur::AbstractArray{<:AbstractArray{T},1}: Unique Fourier transform data for circulant Green function.fftPlnFwd::AbstractArray{<:AbstractFFTs.Plan,1}: Forward Fourier transform plans.fftPlnRev::AbstractArray{<:AbstractFFTs.ScaledPlan,1}: Reverse Fourier transform plans.phzInf::AbstractArray{<:AbstractArray{T},1}: Phase vector for splitting Fourier transforms.
GilaElectromagnetics.GlaOprMem — Method GlaOprMem(cmpInf::GlaKerOpt, trgVol::GlaVol,
srcVol::Union{GlaVol,Nothing}=nothing,
egoFur::Union{AbstractArray{<:AbstractArray{T}},
Nothing}=nothing)::GlaOprMemPrepare memory for Green's function operator. When called with a single GlaVol, or identical source and target volumes, yields the self construction.
Arguments
cmpInf::GlaKerOpt: Computation information, settings and kernel options, seeGlaKerOpt.trgVol::GlaVol: Target volume or self volume definition.srcVol::Union{GlaVol,Nothing}=nothing: Source volume for external construction.egoFur::Union{AbstractArray{<:AbstractArray{T}},Nothing}=nothing): Unique Fourier transform data for Green's function.
GilaElectromagnetics.GlaVol — Type GlaVol(cel::Array{<:Integer,1}, celScl::NTuple{3,Rational},
org::NTuple{3,Rational}, grdScl::NTuple{3,Rational}=celScl)::GlaVolConstructor for Gila Volumes.
Arguments
cel::Array{<:Integer,1}: Array of the number of cells in each dimension of the volume.celScl::NTuple{3,Rational}: The size of each cell in each dimensions of the volume (in units of wavelength).org::NTuple{3,Rational}: The origin of the volume in each dimension (in units of wavelength).grdScl::NTuple{3,Rational}=celScl: Spatial location of the center of each cell contained in the volume.
GilaElectromagnetics.GlaVol — TypeGlaVolBasic spatial memory structure for a volume.
Fields
cel::NTuple{3,Integer}: Tuple of cells in rectangular prism.scl::NTuple{3,Rational}: Relative side length of a cuboid voxel (cell) compared to the wavelength.org::NTuple{3,Rational}: Center position of the domain.grd::Array{<:StepRange,1}: Spatial location of the center of each cell contained in the volume.
GilaElectromagnetics.egoOpr! — Method egoOpr!(egoMem::GlaOprMem,
actVec::AbstractArray{T})::AbstractArray{T}Applies the electric Green function to actVec (polarisation current density), returning the output vector field. actVec is internally modified by egoOpr! to reduce needed allocation.
Arguments
egoMem::GlaOprMem- The memory for Green's function operator.actVec::AbstractArray{T}The tensor representing the polarisation current density, where the first three indices represent 3D coordinates, and the fourth the density at the given coordinate.
GilaElectromagnetics.glaSze — MethodglaSze(op::GlaOpr, dim::Int)Returns the size of the input/output arrays for a GlaOpr in tensor form in a specified dimension.
Arguments
op::GlaOpr: The operator to check.dim::Int: The index of the dimension to check.
GilaElectromagnetics.glaSze — MethodglaSze(opr::GlaOpr)Returns the size of the input/output arrays for a GlaOpr in tensor form.
Arguments
op::GlaOpr: The operator to check.
GilaElectromagnetics.isadjoint — Methodisadjoint(opr::GlaOpr)Checks if the operator is the adjoint of the Green's operator.
Arguments
opr::GlaOpr: The operator to check.
Returns
trueif the operator is the adjoint,falseotherwise.
GilaElectromagnetics.isexternaloperator — Method isexternaloperator(opr::GlaOpr)Checks if the operator is an external Green's operator.
Arguments
opr::GlaOpr: The operator to check.
Returns
trueif the operator is an external Green's operator,falseotherwise.
GilaElectromagnetics.isselfoperator — Methodisselfoperator(opr::GlaOpr)Checks if the operator is a self Green's operator.
Arguments
opr::GlaOpr: The operator to check.
Returns
trueif the operator is a self Green's operator,falseotherwise.