Library
The following is the exhaustive list of the API available to users, accompanied by explanations.
Module Index
GilaElectromagnetics.GlaExtInf
GilaElectromagnetics.GlaExtInf
GilaElectromagnetics.GlaKerOpt
GilaElectromagnetics.GlaKerOpt
GilaElectromagnetics.GlaOpr
GilaElectromagnetics.GlaOpr
GilaElectromagnetics.GlaOpr
GilaElectromagnetics.GlaOprMem
GilaElectromagnetics.GlaOprMem
GilaElectromagnetics.GlaVol
GilaElectromagnetics.GlaVol
GilaElectromagnetics.egoOpr!
GilaElectromagnetics.glaSze
GilaElectromagnetics.glaSze
GilaElectromagnetics.isadjoint
GilaElectromagnetics.isexternaloperator
GilaElectromagnetics.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
— TypeGlaExtInf
Information 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)::GlaExtInf
Constructor 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
— TypeGlaKerOpt
Green 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)::GlaOpr
Construct 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
— TypeGlaOpr
Abstraction 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)::GlaOpr
Construct 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
— TypeGlaOprMem
Storage 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)::GlaOprMem
Prepare 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)::GlaVol
Constructor 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
— TypeGlaVol
Basic 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
true
if the operator is the adjoint,false
otherwise.
GilaElectromagnetics.isexternaloperator
— Method isexternaloperator(opr::GlaOpr)
Checks if the operator is an external Green's operator.
Arguments
opr::GlaOpr
: The operator to check.
Returns
true
if the operator is an external Green's operator,false
otherwise.
GilaElectromagnetics.isselfoperator
— Methodisselfoperator(opr::GlaOpr)
Checks if the operator is a self Green's operator.
Arguments
opr::GlaOpr
: The operator to check.
Returns
true
if the operator is a self Green's operator,false
otherwise.