API
Index
MoM_Basics.GaussQuadrature4GeoMoM_Basics.EDGEVmINTriVsIDMoM_Basics.EDGEVpINTriVsIDMoM_Basics.GQ1DID2GQ3DIDVectorMoM_Basics.GQPNQuadMoM_Basics.GQPNQuad1DMoM_Basics.GQPNQuad1DSSglrMoM_Basics.GQPNQuad1DSglrMoM_Basics.GQPNQuadSSglrMoM_Basics.GQPNQuadSglrMoM_Basics.ParamsMoM_Basics.PrecisionMoM_Basics.QuadGQInfoMoM_Basics.QuadGQInfoSSglrMoM_Basics.QuadGQInfoSglrMoM_Basics.SimulationParamsMoM_Basics.VSBFTypesMoM_Basics.Vec3IdxCircleMoM_Basics.facen2OppositeIDMoM_Basics.facesVertIDsMoM_Basics.memoryMoM_Basics.oppFacesVertIDsMoM_Basics.timerMoM_Basics.uv2FreeVnsDictMoM_Basics.AbstractAntennaArrayMoM_Basics.AntennaArrayMoM_Basics.AntennaArrayMoM_Basics.AntennaTypeMoM_Basics.BasisFunctionTypeMoM_Basics.ConstBasisFunctionMoM_Basics.ExcitingSourceMoM_Basics.ExcitingSourcesMoM_Basics.GaussQuadrature4Geo.GaussQuadratureInfoStructMoM_Basics.HexahedraInfoMoM_Basics.HexahedraInfoMoM_Basics.HexahedraMeshMoM_Basics.LinearBasisFunctionMoM_Basics.MagneticDipoleMoM_Basics.MagneticDipoleMoM_Basics.MagneticDipoleMoM_Basics.MeshDataTypeMoM_Basics.MeshFormatMoM_Basics.MeshNodeTriTetraHexaMoM_Basics.NasMeshMoM_Basics.PWCMoM_Basics.PWCMoM_Basics.ParamsTypeMoM_Basics.ParamsTypeMoM_Basics.PlaneWaveMoM_Basics.PlaneWaveMoM_Basics.PrecisionTMoM_Basics.Quads4HexaMoM_Basics.Quads4HexaMoM_Basics.Quads4HexaMoM_Basics.RBFMoM_Basics.RBFMoM_Basics.RWGMoM_Basics.RWGMoM_Basics.SWGMoM_Basics.SWGMoM_Basics.SimulationParamsTypeMoM_Basics.SimulationParamsTypeMoM_Basics.SurfaceCellTypeMoM_Basics.TetrahedraInfoMoM_Basics.TetrahedraInfoMoM_Basics.TetrahedraMeshMoM_Basics.TriangleInfoMoM_Basics.TriangleInfoMoM_Basics.TriangleMeshMoM_Basics.Tris4TetraMoM_Basics.Tris4TetraMoM_Basics.VSBFTstructMoM_Basics.VSCellTypeMoM_Basics.VecCart2SphereMatMoM_Basics.VecCart2SphereMatMoM_Basics.VolumeCellTypeMoM_Basics.r̂θϕInfoMoM_Basics.r̂θϕInfoMoM_Basics.r̂θϕInfoMoM_Basics.θϕInfoMoM_Basics.θϕInfoMoM_Basics.θϕInfoMoM_Basics.∠InfoBase.:*MoM_Basics.GaussQuadrature4Geo.GaussQuadratureInfoMoM_Basics.GaussQuadrature4Geo.gaussQuadratureHexaMoM_Basics.GaussQuadrature4Geo.gaussQuadratureQuadMoM_Basics.GaussQuadrature4Geo.gaussQuadratureTetraMoM_Basics.GaussQuadrature4Geo.gaussQuadratureTriMoM_Basics.TaylorWins.calculateFmMoM_Basics.TaylorWins.taylorwinMoM_Basics._nastran_string_to_floatMoM_Basics.acrossbcrosscMoM_Basics.add_phase!MoM_Basics.antennaArrayMoM_Basics.areaMoM_Basics.areaMoM_Basics.boundaryRBFMoM_Basics.byte2otherMoM_Basics.cart2sphereMoM_Basics.cart2sphereMatMoM_Basics.constructFloat2IndexDictMoM_Basics.constructGQ1DID2GQ3DIDVectorMoM_Basics.distMoM_Basics.eulerRMat2αβγMoM_Basics.eulerRotationMatMoM_Basics.eulerRotationMatMoM_Basics.eulerRotationMatMoM_Basics.eulerZunitMoM_Basics.getBFTfromCellTMoM_Basics.getBFsFromMeshDataMoM_Basics.getCellsBFsMoM_Basics.getCellsBFsFromFileNameMoM_Basics.getCellsFromFileNameMoM_Basics.getConnectionMatrixMoM_Basics.getFreeVIDFromGQ3DIDMoM_Basics.getFreeVIDFromGQ3DIDSSglrMoM_Basics.getFreeVIDFromGQ3DIDSglrMoM_Basics.getFreeVnsMoM_Basics.getFreeVnsSSglrMoM_Basics.getFreeVnsSglrMoM_Basics.getGQPHexaMoM_Basics.getGQPHexaSSglrMoM_Basics.getGQPHexaSglrMoM_Basics.getGQPQuadMoM_Basics.getGQPQuadSSglrMoM_Basics.getGQPQuadSglrMoM_Basics.getGQPTetraMoM_Basics.getGQPTetraSglrMoM_Basics.getGQPTriMoM_Basics.getGQPTriMoM_Basics.getGQPTriSglrMoM_Basics.getGQPTriSglrMoM_Basics.getHexasInfoMoM_Basics.getMeshDataMoM_Basics.getNodeElemsMoM_Basics.getNodeElemsMoM_Basics.getNodeElemsMoM_Basics.getTetrasInfoMoM_Basics.getTriangleInfoMoM_Basics.globalObs2LocalObsMoM_Basics.globalrvec2LocalMoM_Basics.globalrvec2LocalMoM_Basics.globalrvec2LocalMoM_Basics.globalrvec2LocalMoM_Basics.greenfuncMoM_Basics.initialize_time_and_memMoM_Basics.inputBasicParametersMoM_Basics.localObs2GlobalObsMoM_Basics.localrvec2GlobalMoM_Basics.localrvec2GlobalMoM_Basics.localrvec2GlobalMoM_Basics.localrvec2GlobalMoM_Basics.modiParams!MoM_Basics.modiSimulationParams!MoM_Basics.nodes2PolesMoM_Basics.radiationDirectionCoeffMoM_Basics.radiationIntegralL0MoM_Basics.radiationIntensityU_mMoM_Basics.radiationPowerMoM_Basics.random_rhatMoM_Basics.record_BFsInfoMoM_Basics.record_CellInfoMoM_Basics.rwgbfConstructerTrianglesInfoModifiers!MoM_Basics.rwgbfnohalfConstructerTrianglesInfoModifiers!MoM_Basics.saveSimulationParamsMoM_Basics.second_to_otherMoM_Basics.selectFreeVnIDMoM_Basics.selectFreeVnSSglrIDMoM_Basics.selectFreeVnSglrIDMoM_Basics.setGeosPermittivity!MoM_Basics.setGeosPermittivity!MoM_Basics.setHexaCoor!MoM_Basics.setHexaParam!MoM_Basics.setPrecision!MoM_Basics.setQuad4Hexas!MoM_Basics.setQuad4Hexas!MoM_Basics.setRecordMem!MoM_Basics.setTetraCoor!MoM_Basics.setTetraParam!MoM_Basics.setTriParam!MoM_Basics.setTriangles4Tetras!MoM_Basics.setTriangles4Tetras!MoM_Basics.setTricoor!MoM_Basics.setdiffArray!MoM_Basics.setδκ!MoM_Basics.setδκ!MoM_Basics.show_memory_timeMoM_Basics.sincmathMoM_Basics.sourceEfieldMoM_Basics.sourceEfieldMoM_Basics.sourceEfieldMoM_Basics.sourceEfieldMoM_Basics.sourceFarEfieldMoM_Basics.sourceFarEfieldMoM_Basics.sourceFarEfieldMoM_Basics.sourceHfieldMoM_Basics.sourceLocalEfieldMoM_Basics.sourceLocalEfieldMoM_Basics.sourceLocalFarEfieldMoM_Basics.sourceLocalFarEfieldMoM_Basics.sphere2cartMoM_Basics.updateVSBFTParams!MoM_Basics.updateVSBFTypes!MoM_Basics.update_orient!MoM_Basics.update_orient!MoM_Basics.update_phase!MoM_Basics.update_phase!MoM_Basics.volumeMoM_Basics.volumeMoM_Basics.θϕInfofromCartMoM_Basics.@clock
Docs
MoM_Basics.EDGEVmINTriVsID — Constant三角形在构建时构成第i个边的两个点为三角形中的除了第i个点的两个点,以下为索引构成第i个边的第一个点(计算边向量被 - 掉)时采用的对应点
MoM_Basics.EDGEVpINTriVsID — Constant三角形在构建时构成第i个边的两个点为三角形中的除了第i个点的两个点,以下为索引构成第i个边的第二个点(计算边向量时用于减去第二个点 掉)时采用的对应点
MoM_Basics.ExcitingSources — Type复合激励类
MoM_Basics.GQ1DID2GQ3DIDVector — Constant构建从六面体的 高斯求积线性索引 映射到 三维索引的数组
MoM_Basics.GQPNQuad — Constant六面体边界四边形正常处理高斯求积时高斯求积点数。
MoM_Basics.GQPNQuad1D — Constant六面体边界四边形 1 维度高斯求积点数。
MoM_Basics.GQPNQuad1DSSglr — Constant处理超奇异性时六面体边界四边形 1 维度高斯求积点数。
MoM_Basics.GQPNQuad1DSglr — Constant处理奇异性时六面体边界四边形 1 维度高斯求积点数。
MoM_Basics.GQPNQuadSSglr — Constant六面体边界四边形处理超奇异性时高斯求积点数。
MoM_Basics.GQPNQuadSglr — Constant六面体边界四边形处理奇异性时高斯求积点数。
MoM_Basics.Params — Constant保存仿真参数的实例。
MoM_Basics.Precision — Constant创建实例控制精度
MoM_Basics.QuadGQInfo — Constant六面体边界四边形正常处理高斯求积信息。
MoM_Basics.QuadGQInfoSSglr — Constant六面体边界四边形处理超奇异性高斯求积信息。
MoM_Basics.QuadGQInfoSglr — Constant六面体边界四边形处理奇异性高斯求积信息。
MoM_Basics.SimulationParams — Constant非数值仿真参数实例
MoM_Basics.VSBFTypes — Constant创建常数实例保存仿真时的面、体基函数类型。
MoM_Basics.Vec3IdxCircle — Constant1-3 的循环
MoM_Basics.facen2OppositeID — Constant六面体的六个面的对面
MoM_Basics.facesVertIDs — Constant六面体的六个面的端点
MoM_Basics.memory — Constant程序内存记录字典
MoM_Basics.oppFacesVertIDs — Constant六面体的六个面的 对面的 端点
MoM_Basics.timer — Constant程序计时器字典
MoM_Basics.uv2FreeVnsDict — Constant从四边形的 $uv$ 坐标映射到 自由端的 id
MoM_Basics.AbstractAntennaArray — Type阵列天线抽象类
MoM_Basics.AntennaArray — TypeAntennaArray{FT<:Real, AT, N} <: AbstractAntennaArray机扫阵列天线 (mechanically scanned array, MSA)、相控阵 (Phased Array)阵列天线 orient 采用的是欧拉角,参考eulerRotationMat 注意阵列初始指向由提供的天线单元合成,作为阵列只提供指向旋转。
MoM_Basics.AntennaArray — MethodAntennaArray(antennas::AbstractArray{AT, N}; center = zero(MVec3D{Precison.FT}), orient = (0., 0., 0.)) where {AT, N}初始化阵列天线,默认为方阵。
MoM_Basics.AntennaType — Type天线抽象类
MoM_Basics.BasisFunctionType — Type基函数抽象类型
MoM_Basics.ConstBasisFunction — Type常数基抽象类
MoM_Basics.ExcitingSource — Type激励源抽象类
MoM_Basics.HexahedraInfo — TypeHexahedraInfo{IT<: Integer, FT<:AbstractFloat, CT<:Complex} <: VolumeCellType{IT, FT, CT}六面体信息结构体:
hexaID ::IT 编号
volume ::FT 体积
ε ::CT 相对介电常数
κ ::CT 介质对比度
center ::MVec3D{FT} 中心坐标
verticesID ::MVector{8, IT} 所在节点id
vertices ::MMatrix{3, 8, FT,24} 六面体4个角点坐标,每列为一个点
facesn̂ ::MMatrix{3, 8, FT,24} 四个面的外法向量
facesvid ::MMatrix{3, 8, IT,24} 四个面包含的四个id
facesArea ::MVector{6, FT} 四个面的面积(根据为unitri正负部分赋予正负号)
faces ::Vector{Quads4Hexa{IT, FT}} 四个面的具体信息
inBfsID ::Vector{IT} 六面体所在的基函数的IDMoM_Basics.HexahedraInfo — MethodHexahedraInfo{IT, FT, CT}(hexaID::IT = zero(IT)) where {IT <: Integer, FT<:AbstractFloat, CT<:Complex}HexahedraInfo 的默认构造函数,除了输入的编号 hexaID 外所有元素置零。
MoM_Basics.HexahedraMesh — TypeHexahedraMesh{IT, FT} <: MeshDataType六面体网格文件,包括六面体数 hexnum、节点 node、构成六面体的节点 id 数组 hexahedras 等信息。
MoM_Basics.LinearBasisFunction — Type线性基抽象类
MoM_Basics.MagneticDipole — TypeMagneticDipole(id = 0; Iml = 0., phase = 0., orient = zero(MVec3D{Float32}), centerlc = zero(MVec3D{Float32}), centergb = zero(MVec3D{Float32}))精度可变的 MagneticDipole 构造函数
MoM_Basics.MagneticDipole — TypeMagneticDipole{FT<: Real}<:AntennaType磁偶极子天线类型。
id ::Integer 编号
Iml ::Complex{FT} 磁流线值
V ::FT 磁流线幅值
phase ::FT 相位
orient ::MVec3D{FT} 指向欧拉角
centerlc::MVec3D{FT} 局部坐标下的中心位置
centergb::MVec3D{FT} 全局坐标下的中心位置
l2gRot ::MMatrix{3, 3, FT, 9} 局部坐标到全局坐标的旋转变换矩阵MoM_Basics.MagneticDipole — Method MagneticDipole{FT}(
id ::Int32 = zero(Int32); # 编号
Iml ::CT = zero(CT), # 磁流线值
phase ::FT = zero(FT), # 相位(输入弧度(rad)单位)
orient ::MVec3D{FT} = zero(MVec3D{FT}), # 指向欧拉角
centerlc::MVec3D{FT} = zero(MVec3D{FT}), # 局部坐标下的中心位置
centergb::MVec3D{FT} = zero(MVec3D{FT}), # 全局坐标下的中心位置
I0S ::FT = zero(FT), # 电流环幅值
unit = :rad )
where{FT <: Real, CT <: Complex{FT}}MoM_Basics.MeshDataType — Type网格数据抽象类型
MoM_Basics.MeshFormat — Type网格文件抽象类型
MoM_Basics.MeshNodeTriTetraHexa — TypeMeshNodeTriTetraHexa{IT, FT} <: MeshDataType三角形、四面体、六面体混合网格数据类型:
geonum ::Int 包含的所有网格元的数量
meshT ::DataType 网格类型 单一的以其网格类型表示,混合以 VSCellType 表示
trinum ::Int 包含的三角形数量
tetranum ::Int 包含的四面体数量
hexanum ::Int 包含的六面体数量
node ::Array{FT, 2} 节点坐标数组(3*nodenum)
triangles ::Array{IT, 2} 三角形包含的nodeid数组:(3*trinum)
tetrahedras ::Array{IT, 2} 四面体包含的nodeid数组:(4*tetranum)
hexahedras ::Array{IT, 2} 六面体包含的nodeid数组:(6*hexanum)MoM_Basics.NasMesh — Type.nas 网格文件类型。
MoM_Basics.PWC — TypePWC{IT<:Integer , FT<:AbstractFloat} <: ConstBasisFunctionPWC 基函数复合类型:
bfID ::IT 基函数编号
inGeo ::IT 基函数所在两个四面体编号
center ::MVec3D{FT} 基函数中心,用于八叉树分组MoM_Basics.PWC — MethodPWC{IT, FT}() where {IT <: Integer, FT<:AbstractFloat}PWC 的默认构造函数,所有元素置零。
MoM_Basics.ParamsType — TypeParamsType{FT<:AbstractFloat, CT<:Complex{FT}}
创建参数类型以方便保存仿真参数并控制精度:
frequency ::FT 频率
ω_0 ::FT 角频率
K_0 ::FT 波数
λ_0 ::CT 波长
Jη_0divK ::CT 常数
JK_0 ::CT 常数
k² ::FT 常数
divJω ::CT 常数
mk²div9 ::FT 常数
mJη_0div4πK ::CT 常数
C4divk² ::FT 常数
JKηdiv16π ::CT 常数
div9Jω ::CT 常数
Rsglr ::FT 处理奇异性的相对距离阈值
resultDir ::String 存放结果的位置MoM_Basics.ParamsType — MethodParamsType{FT, CT}(frequency::FT) where{FT<:AbstractFloat, CT<:Complex{FT}}
ParamsType(frequency::FT) where {FT<:AbstractFloat}
ParamsType{FT}(frequency) where {FT<:AbstractFloat}输入频率创建仿真参数实例。
MoM_Basics.PlaneWave — TypePlaneWave{FT<:Real}<:ExcitingSource平面波源:
θ ::FT 球坐标角度θ
ϕ ::FT 球坐标角度ϕ
α ::FT 波极化方向相对于 θhat_source 绕K̂_v旋转的角度
f ::FT 波频率
V ::FT 波激励幅度
E_v ::SVec3D{FT} 入射波电场极化矢量
k̂ ::SVec3D{FT} 入射波波矢向量默认构造函数:
PlaneWave{FT}(θ::FT, ϕ::FT, α::FT, V::FT = one(FT))MoM_Basics.PlaneWave — MethodPlaneWave{FT}(θ, ϕ, α, V = one(FT)) where {FT}类型自动转换的 PlaneWave 构造函数。
MoM_Basics.PrecisionT — Type创建类型用于控制程序精度
MoM_Basics.Quads4Hexa — TypeQuads4Hexa{IT<: Integer, FT<:AbstractFloat} <: SurfaceCellType{IT, FT}单个构成六面体的四边形信息:
isbd ::Bool 是否在体区域边界,
δκ ::Complex{FT} 介质对比度变化量,
vertices ::MMatrix{3, 4, FT, 12} 四边形 4 个角点坐标,每列为一个点,
edgel ::MVector{4, FT} 四个边长,
edgev̂ ::MMatrix{3, 4, FT, 12} 四个边的单位指向向量,
edgen̂ ::MMatrix{3, 4, FT, 12} 四个边的单位外法向量。合理安排位置后,四个基函数的自由端即为四边形四个点的顺序。
MoM_Basics.Quads4Hexa — Method(q::Quads4Hexa)(u::FT, v::FT) where {FT}计算六面体边界四边形在局部坐标 (u, v) 下的点。
MoM_Basics.Quads4Hexa — MethodQuads4Hexa{IT, FT}() where {IT <: Integer, FT<:AbstractFloat}Quads4Hexa的默认构造函数,默认为边界,其它所有元素置零。
MoM_Basics.RBF — TypeRBF{IT<:Integer , FT<:AbstractFloat} <: LinearBasisFunction屋顶基函数 (Rooftop basis function, RBF) 基函数复合类型:
isbd ::Bool 是否为边界元即半基函数,布尔类型
bfID ::IT 基函数编号,整形
inGeo ::MVector{2, IT} 基函数所在两个六面体编号(半基函数为1个,赋值成一样的两个),长度为2的向量数组
inGeoID ::MVector{2, IT} 基函数在两个六面体中的局部编号(半基函数为1个,赋值成一样的两个),取值1:4,长度为2的向量数组
center ::MVec3D{FT} 基函数中心,用于八叉树分组MoM_Basics.RBF — MethodRBF{IT, FT}() where {IT <: Integer, FT<:AbstractFloat}RBF 的默认构造函数,所有元素置零。
MoM_Basics.RWG — TypeRWG{IT<:Integer , FT<:AbstractFloat} <: LinearBasisFunctionRWG基函数复合类型:
isbd ::Bool 是否为边界元即半基函数,布尔类型
bfID ::IT 基函数编号,整形
edgel ::FT 基函数边长,浮点型
inGeo ::MVector{2, IT} 基函数所在两个三角形编号(半基函数为1个,赋值成一样的两个),长度为2的向量数组
inGeoID ::MVector{2, IT} 基函数在两个上面三角形中的局部编号(半基函数为1个,赋值成一样的两个),取值1:3,长度为2的向量数组
center ::MVec3D{FT} 基函数中心,用于八叉树分组MoM_Basics.RWG — MethodRWG{IT, FT}()where {IT <: Integer, FT<:AbstractFloat}RWG 的默认构造函数,默认非面的边界,所有元素置零。
MoM_Basics.SWG — TypeSWG 基函数复合类型参数解释:
isbd ::Bool 是否为边界元即半基函数
bfID ::IT 基函数编号,整形
inGeo ::MVector{2, IT} 基函数所在两个四面体编号(半基函数为1个,赋值成一样的两个),长度为2的向量数组
inGeoID ::MVector{2, IT} 基函数在两个四面体中的局部编号(半基函数为1个,赋值成一样的两个),取值1:4,长度为2的向量数组
center ::MVec3D{FT} 基函数公共面中心,用于八叉树分组MoM_Basics.SWG — MethodSWG{IT, FT}() where {IT <: Integer, FT<:AbstractFloat}SWG 的默认构造函数,所有元素置零。
MoM_Basics.SimulationParamsType — TypeSimulationParamsType非数值仿真参数信息:
resultDir ::String 结果文件夹路径
ieT ::Symbol 积分方程类型,包括 EFIE, MFIE, CFIE等
meshfilename::String 网格文件名称
meshunit ::Symbol 网格文件单位
SHOWIMAGE ::Bool 根是否要在前端显示图片
discreteVar ::String 离散的体未知量类型,支持位移电流 `"D"` 或等效电流 `"J"`
sbfT ::Symbol 面基函数类型,目前仅支持 `:RWG`
vbfT ::Symbol 体基函数类型,目前支持 `:SWG, :RBF, :PWC`
recordMem ::Bool 是否记录内存信息MoM_Basics.SimulationParamsType — MethodSimulationParamsType(;ieT::Symbol=:EFIE, meshfilename::String = "", meshunit::Symbol = :mm,
SHOWIMAGE = true, discreteVar = "D", sbfT = :RWG, vbfT = :nothing)SimulationParamsType 的默认构造函数。
MoM_Basics.SurfaceCellType — Type面元
MoM_Basics.TetrahedraInfo — TypeTetrahedraInfo{IT<: Integer, FT<:AbstractFloat, CT<:Complex} <: VolumeCellType{IT, FT, CT}四面体信息结构体:
tetraID ::IT 编号
volume ::FT 体积
ε ::CT 相对介电常数
κ ::CT 介质对比度
center ::MVec3D{FT} 中心坐标
verticesID ::MVector{4, IT} 所在节点id
vertices ::MMatrix{3, 4, FT, 12} 四面体4个角点坐标,每列为一个点
facesn̂ ::MMatrix{3, 4, FT, 12} 四个面的外法向量
facesvid ::MMatrix{3, 4, IT, 12} 四个面包含的三个id
facesArea ::MVector{4, FT} 四个面的面积(根据为unitri正负部分赋予正负号)
faces ::Vector{Tris4Tetra{IT, FT}} 四个面的具体信息
inBfsID ::Vector{IT} 四面体所在的基函数的IDMoM_Basics.TetrahedraInfo — MethodTetrahedraInfo{IT, FT, CT}(hexaID::IT = zero(IT)) where {IT <: Integer, FT<:AbstractFloat, CT<:Complex}TetrahedraInfo 的默认构造函数,除了输入的编号 tetraID 外所有元素置零。
MoM_Basics.TetrahedraMesh — TypeHexahedraMesh{IT, FT} <: MeshDataType四面体网格文件,包括四面体数 tetranum、节点 node、构成四面体的节点 id 数组 tetrahedras 等信息。
MoM_Basics.TriangleInfo — TypeTriangleInfo{IT<: Integer, FT<:AbstractFloat} <: SurfaceCellType{IT, FT}三角形信息结构体:
triID ::IT 编号
area ::FT 面积
verticesID ::MVector{3, IT} 所在节点id
vertices ::MMatrix{3, 3, FT, 9} 三角形3个角点坐标,每列为一个点
center ::MVec3D{FT} 中心坐标
facen̂ ::MVec3D{FT} 面的外法向量
edgel ::MVec3D 三边长
edgev̂ ::MMatrix{3, 3, FT, 9} 三个边的指向向量
edgen̂ ::MMatrix{3, 3, FT, 9} 三个边的外法向量
inBfsID ::MVector{3, IT} 三角形所在的三个基函数的ID合理安排位置后,三个基函数的自由端即为三角形三个点的顺序。
MoM_Basics.TriangleInfo — MethodTriangleInfo{IT, FT}(triID::IT = zero(IT)) where {IT <: Integer, FT<:AbstractFloat}TriangleInfo 的默认构造函数,除了输入的编号 triID 外所有元素置零。
MoM_Basics.TriangleMesh — TypeTriangleMesh{IT, FT} <: MeshDataType三角形网格文件,包括三角形数 trinum、节点 node、构成三角形的节点 id 数组 triangles 等信息。
MoM_Basics.Tris4Tetra — TypeTriangleInfo{IT<: Integer, FT<:AbstractFloat} <: SurfaceCellType{IT, FT}构成四面体的三角形信息结构体:
isbd ::Bool 是否在边界上
δκ ::Complex{FT} 面两侧介质对比度差值
vertices ::MMatrix{3, 3, FT, 9} 三角形3个角点坐标,每列为一个点
edgel ::MVec3D{FT} 三边长
edgev̂ ::MMatrix{3, 3, FT, 9} 三个边的指向向量
edgen̂ ::MMatrix{3, 3, FT, 9} 三个边的外法向量合理安排位置后,三个基函数的自由端即为三角形三个点的顺序。
MoM_Basics.Tris4Tetra — MethodTris4Tetra{IT, FT}() where {IT <: Integer, FT<:AbstractFloat}Tris4Tetra 的默认构造函数,默认在边界上,其它所有元素置零。
MoM_Basics.VSBFTstruct — Type创建结构体保存面、体基函数类型。
MoM_Basics.VSCellType — Type网格体、面元
MoM_Basics.VecCart2SphereMat — TypeVecCart2SphereMat{T} <: FieldVector{3, Vec3D{T}}矢量坐标系(直角 → 球)转换矩阵
r_hat :: Vec3DCart{T} r 方向的单位向量
θ_hat :: Vec3DCart{T} θ 方向的单位向量
ϕ_hat :: Vec3DCart{T} ϕ 方向的单位向量MoM_Basics.VecCart2SphereMat — MethodVecCart2SphereMat{FT}(θϕ::θϕInfo{FT}) where{FT<:AbstractFloat}VecCart2SphereMat在给定方向 θϕ 的构造函数。
MoM_Basics.VolumeCellType — Type体元
MoM_Basics.r̂θϕInfo — Typer̂θϕInfo{FT<:Real}r̂ θ ϕ 空间角度信息类型,保存以避免大量重复计算
MoM_Basics.r̂θϕInfo — Methodr̂θϕInfo{FT}(rvec::AbstractVector{FT}) where {FT<:Real}输入直角坐标角度 rvec 构造 r̂θϕInfo 实例。
MoM_Basics.r̂θϕInfo — Methodr̂θϕInfo(θ::FT = zero(FT), ϕ::FT = zero(FT)) where {FT<:Real}
r̂θϕInfo(θ::∠Info{FT}, ϕ::∠Info{FT}) where {FT<:Real}
r̂θϕInfo(θ::FT, ϕ::∠Info{FT}) where {FT<:Real}
r̂θϕInfo(θ::∠Info{FT}, ϕ::FT) where {FT<:Real}r̂θϕInfo 的构造函数 输入角度 θ 和 ϕ 构造 r̂θϕInfo 实例。
MoM_Basics.θϕInfo — TypeθϕInfo{FT<:Real}θ ϕ 空间角度信息类型,保存以避免大量重复计算。
MoM_Basics.θϕInfo — MethodθϕInfo{FT}(rvec::AbstractVector{FT}) where {FT<:Real}输入直角坐标角度 rvec 构造 θϕInfo 实例。
MoM_Basics.θϕInfo — MethodθϕInfo{FT}(θ::FT = zero(FT), ϕ::FT = zero(FT)) where {FT<:Real}
θϕInfo(θ::FT, ϕ::FT) where {FT<:Real}
θϕInfo{FT}(θ::∠Info{FT}, ϕ::∠Info{FT}) where {FT<:Real}
θϕInfo{FT}(θ::FT, ϕ::∠Info{FT}) where {FT<:Real}
θϕInfo{FT}(θ::∠Info{FT}, ϕ::FT) where {FT<:Real}输入角度 θ 和 ϕ 构造 θϕInfo 实例。
MoM_Basics.∠Info — Type∠Info{FT<:Real}∠ 空间角度信息类型,保存以避免大量重复计算。
Base.:* — MethodBase.:*(c2smat::VecCart2SphereMat{FT}, vec3D::Vec3D{T}) where {T<:Number, FT<:AbstractFloat}重载 * 函数以计算向量在球坐标下的各个分量
MoM_Basics._nastran_string_to_float — Method_nastran_string_to_float(string)解析 .nas 文件中的字符串。
MoM_Basics.acrossbcrossc — Methodacrossbcrossc(a, b, c)更高效地计算矢量连续叉乘:$a × b × c = (c⋅a)b - (c⋅b)a$
MoM_Basics.add_phase! — Methodadd_phase!(md::MagneticDipole{FT}, phase) where {FT <: Real}为磁偶极 md 附加相位 phase。
MoM_Basics.antennaArray — FunctionantennaArray(arysize, aryorient, dgap = Tuple(fill(Params.λ_0/2, length(arysize)));
sourceConstructer, sourceT, sourceorientlc[, orientunit=:rad, coefftype = :uniform, arycenter = zero(MVec3D{Precision.FT})])提供快捷的阵列构建函数。注意此处输入的阵列、单元指向必须为指定的欧拉角 (ZXZ) eulerRotationMat。
MoM_Basics.area — Methodarea(vertices::Vararg{T, 3}) where {T}计算三个点vertices组成的三角形面积。
MoM_Basics.area — Methodarea(vertices::Vararg{T, 3}) where {T}计算四个点vertices组成的四边形面积。
MoM_Basics.boundaryRBF — MethodboundaryRBF(h::vertices::Vararg{T, 8}) where {T}重载面的提取顺序以匹配屋顶基函数 (RBF) 在六面体中的面按
\[u=1, u=0, v = 1, v = 0, w = 1, w = 0 \]
的顺序排列。
MoM_Basics.byte2other — Methodbyte2other(v, mem_unit)将以字节为单位的内存数据 v 转换为其它单位 mem_unit。
MoM_Basics.cart2sphere — Methodcart2sphere(xyz::Vararg{T, 3}) where {T}将直角坐标 xyz 转换到球坐标。
MoM_Basics.cart2sphereMat — Methodcart2sphereMat(θϕ::θϕInfo{FT}) where{FT<:Real}
cart2sphereMat(θ::FT, ϕ::FT) where{FT<:Real}计算矢量坐标系(直角 → 球)转换矩阵。
MoM_Basics.constructFloat2IndexDict — MethodconstructFloat2IndexDict(floats::AbstractVector{FT}) where {FT<:AbstractFloat}构建有序(从小到大)浮点数为键,值为该组数构成的的二重字典,字典值为键的二维数组的线性坐标
MoM_Basics.constructGQ1DID2GQ3DIDVector — MethodconstructGQ1DID2GQ3DIDVector(gqInfo)构建从六面体体高斯求积点线性索引到三维索引的数组。
MoM_Basics.dist — Methoddist(pa::AbstractVector{FT}, pb::AbstractVector{FT})::FT where {FT<:AbstractFloat}
dist(pa::Vec3D{FT}, pb::Vec3D{FT})::FT where {FT<:AbstractFloat}
dist(pa::Vec3D{FT})::FT where {FT<:AbstractFloat}计算两点之间距离,比使用norm函数更高效。
MoM_Basics.eulerRMat2αβγ — MethodeulerRMat2αβγ(l2gMat)通过局部坐标到全局坐标的旋转矩阵 l2gMat 计算欧拉角。 旋转矩阵按绕 “z轴” → “x轴” → “z轴”的顺序,分别旋转 α, β, γ 度得到,本函数计算对应的三个角度 α, β, γ。
MoM_Basics.eulerRotationMat — MethodeulerRotationMat(α::FT, β::FT, γ::FT, unit::Symbol) where{FT<:Real}根据坐标旋转的欧拉角计算旋转矩阵, 定义旋转顺序为: “滚动” → “俯仰” → “偏航”, 即按绕 “z轴” → “x轴” → “z轴”的顺序,分别旋转 α, β, γ 度 Wikipedia-Euler_angles 输入: α, β, γ, 旋转角度信息 unit: 输入角度值单位,默认为 :rad,可选 :deg 输出: rotMat :: SMatrix{3, 3, FT}, 坐标旋转矩阵 rotMat * vec 将 vec 从局部坐标转换回全局坐标
MoM_Basics.eulerRotationMat — MethodeulerRotationMat(θ::FT, ϕ::FT, unit::Symbol) where{FT<:AbstractFloat}计算转到给定指向 θ, ϕ 处的旋转矩阵,旋转一步到位,不发生自旋。
MoM_Basics.eulerRotationMat — MethodeulerRotationMat(axis::Vec3D{FT}, θ::FT, unit::Symbol) where{FT<:Real}计算天线阵按给定任意轴 axis, 旋转 θ` 角度的旋转矩阵。
MoM_Basics.eulerZunit — MethodeulerZunit(α::FT, β::FT, γ::FT, unit::Symbol) where{FT<:Real}计算给定欧拉角局部坐标 z 轴在全局坐标中的位置单位向量。
MoM_Basics.getBFTfromCellT — Method根据网格元(如三角形、四边形、四面体、六面体等)获取基函数信息用于快速计算当前单元采用的基函数
MoM_Basics.getBFsFromMeshData — MethodgetBFsFromMeshData(meshData; sbfT = :nothing, vbfT = :nothing)通过网格信息 meshData 创建基函数信息。
MoM_Basics.getCellsBFs — MethodgetCellsBFs(meshData, vbfT)根据读取的网格数据生成网格元 + 基函数信息。
MoM_Basics.getCellsBFsFromFileName — MethodgetCellsBFsFromFileName(meshFileName; meshUnit = MeshUnit, sbfT = :RWG, vbfT = :nothing)通过文件名 meshFileName 直接读取网格元、创建基函数信息。
MoM_Basics.getCellsFromFileName — MethodgetCellsFromFileName(meshFileName; meshUnit = MeshUnit, sbfT = :RWG, vbfT = :nothing)通过文件名 meshFileName 直接读取网格元。
MoM_Basics.getConnectionMatrix — MethodgetConnectionMatrix(meshData)通过 meshData 获取节点与网格元之间的连接稀疏矩阵。
MoM_Basics.getFreeVIDFromGQ3DID — MethodgetFreeVIDFromGQ3DID(GQ3DID::NTuple{3, Int}, i::Integer)得到第 i 个面所在的基函数的 正常高斯求积 下,三维坐标为 GQ3DID 的高斯求积点的 “自由端$r₀$” 的序号。
MoM_Basics.getFreeVIDFromGQ3DIDSSglr — MethodgetFreeVIDFromGQ3DIDSSglr(GQ3DID::NTuple{3, Int}, i::Integer)得到第 i 个面所在的基函数的 处理超奇异性时,三维坐标为 GQ3DID 的高斯求积点的 “自由端$r₀$” 的序号。
MoM_Basics.getFreeVIDFromGQ3DIDSglr — MethodgetFreeVIDFromGQ3DIDSglr(GQ3DID::NTuple{3, Int}, i::Integer)得到第 i 个面所在的基函数的 处理奇异性时,三维坐标为 GQ3DID 的高斯求积点的 “自由端$r₀$” 的序号。
MoM_Basics.getFreeVns — MethodgetFreeVns(hexa::HexahedraInfo, i::Integer)得到六面体 hexa 第 i 个所在的基函数的 所有自由端( $r₀$ )。 该面定义为 $uvw$ 坐标中某值为 $1(0)$ 的面, 自由端应定义为在该面的 $uvw$ 坐标中,将该值赋值为 $0(1)$ 时计算得到的点 如 $u = 1$ 的面为六面体的第 $(2,6,7,3)$ 个点构成的面,$r₀$ 为 $uvw$ 坐标为 $(0, v, w)$ 的点,此点等同于 $u = 0$ 的面的四边形的参数坐标为 (v, w) 的点 在构造 RBF 时面按照 按 $u=1, u=0, v = 1, v = 0, w = 1, w = 0$ 的顺序排列, 因此函数根据输入的面的序号进行计算。
MoM_Basics.getFreeVnsSSglr — MethodgetFreeVnsSSglr(hexa::HexahedraInfo, i::Integer)得到六面体 hexa 处理超奇异性时第 i 个所在的基函数的 所有自由端( $r₀$ )。 定义详见getFreeVns
MoM_Basics.getFreeVnsSglr — MethodgetFreeVns(hexa::HexahedraInfo, i::Integer)得到六面体 hexa 处理奇异性时第 i 个所在的基函数的 所有自由端( $r₀$ )。 定义详见getFreeVns
MoM_Basics.getGQPHexa — MethodgetGQPHexa(hexa::HexahedraInfo, ii::IT) where {IT <: Integer}
getGQPHexa(hexa::HexahedraInfo)计算 hexa 正常求积的第 i 个或所有高斯求积坐标。
MoM_Basics.getGQPHexaSSglr — MethodgetGQPHexaSSglr(hexa::HexahedraInfo, ii::IT) where {IT <: Integer}
getGQPHexaSSglr(hexa::HexahedraInfo)计算 hexa 处理超奇异性求积的第 i 个或所有高斯求积坐标。
MoM_Basics.getGQPHexaSglr — MethodgetGQPHexaSglr(hexa::HexahedraInfo, ii::IT) where {IT <: Integer}
getGQPHexaSglr(hexa::HexahedraInfo)计算 hexa 处理奇异性求积的第 i 个或所有高斯求积坐标。
MoM_Basics.getGQPQuad — MethodgetGQPQuad(quad::Quads4Hexa, ii::IT) where {IT <: Integer}
getGQPQuad(quad::Quads4Hexa)计算 quad 正常求积的第 i 个或所有高斯求积坐标。
MoM_Basics.getGQPQuadSSglr — MethodgetGQPQuadSSglr(quad::Quads4Hexa, ii::IT) where {IT <: Integer}
getGQPQuadSSglr(quad::Quads4Hexa)计算 quad 处理超奇异性的第 i 个或所有高斯求积坐标。
MoM_Basics.getGQPQuadSglr — MethodgetGQPQuadSglr(quad::Quads4Hexa, ii::IT) where {IT <: Integer}
getGQPQuadSglr(quad::Quads4Hexa)计算 quad 处理奇异性的第 i 个或所有高斯求积坐标。
MoM_Basics.getGQPTetra — MethodgetGQPTetra(tetra::TetrahedraInfo, i::IT) where {IT <: Integer}
getGQPTetra(tetra::TetrahedraInfo)计算 tetra 正常求积的第 i 个或所有高斯求积坐标。
MoM_Basics.getGQPTetraSglr — MethodgetGQPTetraSglr(tetra::TetrahedraInfo, i::IT) where {IT <: Integer}
getGQPTetraSglr(tetra::TetrahedraInfo)计算 tetra 处理奇异性求积的第 i 个或所有高斯求积坐标。
MoM_Basics.getGQPTri — MethodgetGQPTri(tri::TriangleInfo, i::IT) where {IT <: Integer}
getGQPTri(tri::TriangleInfo)计算 tri 正常求积的第 i 个或所有高斯求积坐标。
MoM_Basics.getGQPTri — MethodgetGQPTri(tri::Tris4Tetra, i::IT) where {IT <: Integer}
getGQPTri(tri::Tris4Tetra)计算 tri 正常求积的第 i 个或所有高斯求积坐标。
MoM_Basics.getGQPTriSglr — MethodgetGQPTriSglr(tri::TriangleInfo, i::IT) where {IT <: Integer}
getGQPTriSglr(tri::TriangleInfo)计算 tri 处理奇异性求积的第 i 个或所有高斯求积坐标。
MoM_Basics.getGQPTriSglr — MethodgetGQPTriSglr(tri::Tris4Tetra, i::IT) where {IT <: Integer}
getGQPTriSglr(tri::Tris4Tetra)计算 tri 处理奇异性求积的第 i 个或所有高斯求积坐标。
MoM_Basics.getHexasInfo — MethodgetHexasInfo(hexameshData::HexahedraMesh{IT, FT}, VolumeBFType::Symbol) where{IT, FT}根据六面体网格信息 hexameshData 和体基函数类型 VolumeBFType 生成网格信息向量 hexasInfo 和基函数信息向量 bfsInfo 。
MoM_Basics.getMeshData — MethodgetMeshData(meshFileName::String; meshUnit=:mm)读取文件中的节点坐标、三角形点、四面体点、六面体点
MoM_Basics.getNodeElems — MethodgetNodeElems(::Val{:DAT}, pathname::ST; FT::Type{T}=Precision.FT, meshUnit = :m) where {ST <: AbstractString,T<:AbstractFloat}读取 .dat 格式的自定义项目文件。
MoM_Basics.getNodeElems — MethodgetNodeElems(::Val{:NAS}, pathname::ST; FT::Type{T}=Precision.FT, meshUnit = :mm) where {ST <: AbstractString,T<:AbstractFloat}读取 .nas 文件中的节点坐标、三角形点、四面体点、六面体点。
MoM_Basics.getNodeElems — MethodgetNodeTriTetraHexaVtk(pathname::ST; FT::Type{T}=Precision.FT, meshUnit = :m) where {ST <: AbstractString,T<:AbstractFloat}读取 .vtk 文件中的节点坐标、三角形点、四面体点、六面体点(目前不支持六面体)。
MoM_Basics.getTetrasInfo — MethodgetTetrasInfo(tetrameshData::TetrahedraMesh{IT, FT}, VolumeBFType::Symbol) where{IT, FT}根据四面体网格信息 tetrameshData 和体基函数类型 VolumeBFType 生成网格信息向量 tetrasInfo 和基函数信息向量 bfsInfo 。
MoM_Basics.getTriangleInfo — MethodgetTriangleInfo(trianglemeshData::TriangleMesh{IT, FT}) where{IT, FT}根据网格信息 trianglemeshData 生成三角形信息 trianglesInfo 、RWG基函数信息 rwgsInfo。
MoM_Basics.globalObs2LocalObs — MethodglobalObs2LocalObs(r̂θϕs_obs::Matrix{r̂θϕInfo{FT}}, l2gRot::StaticMatrix{3,3, FT}) where {FT}根据全局观测空间角度信息 r̂θϕs_obs 计算给定局部至全局坐标旋转矩阵 l2gRot 下局部坐标的观测空间角度信息。
MoM_Basics.globalrvec2Local — Methodglobalrvec2Local(rvecglobal::Vec3D{T}, l2gRot::StaticMatrix{3,3, FT}, r0InGlobal::Vec3D{FT}) where {T<:Number, FT<:Real}计算全局向量 rvecglobal 在给定局部至全局坐标旋转矩阵 l2gRot 下的局部坐标,局部坐标的原点在全局坐标的 r0InGlobal 处。
MoM_Basics.globalrvec2Local — Methodglobalrvec2Local(rvecglobal::Vec3D{T}, l2gRot::StaticMatrix{3,3, FT}) where {T<:Number, FT<:Real}计算全局向量 rvecglobal 在给定局部至全局坐标旋转矩阵 l2gRot 下的局部坐标。
MoM_Basics.globalrvec2Local — Methodglobalrvec2Local(rvecsglobal::Matrix{T}, l2gRot::StaticMatrix{3,3, FT}, r0InGlobal::Vec3D{FT}) where {T<:Number, FT<:Real}计算全局向量组成的矩阵 rvecsglobal 在给定局部至全局坐标旋转矩阵 l2gRot 下的局部坐标,局部坐标的原点在全局坐标的 r0InGlobal 处。
MoM_Basics.globalrvec2Local — Methodglobalrvec2Local(rvecsglobal::Matrix{T}, l2gRot::StaticMatrix{3,3, FT}) where {T<:Number, FT<:Real}计算全局向量组成的矩阵 rvecsglobal 在给定局部至全局坐标旋转矩阵 l2gRot 下的局部坐标。
MoM_Basics.greenfunc — Methodgreenfunc(R::T) where {T<:AbstractFloat}
greenfunc(pa::Vec3D{T}, pb::Vec3D{T}) where {T<:AbstractFloat}
greenfunc(pa::AbstractVector{T}, pb::AbstractVector{T}) where {T<:AbstractFloat}
greenfunc(R::T, k::T) where {T<:AbstractFloat}
greenfunc(pa::Vec3D{T}, pb::Vec3D{T}, k::T) where {T<:AbstractFloat}计算归一化自由空间格林函数 $g(R) = exp^{-1im*K_0*R}/R$
MoM_Basics.initialize_time_and_mem — Methodinitialize_time_and_mem()初始化计时器 timer 和内存记录 memory。
MoM_Basics.inputBasicParameters — MethodinputBasicParameters(;frequency::FT = 1e8, ieT::Symbol = :EFIE, CFIEα::FT = 0.6,
meshfilename::String = SimulationParams.meshfilename) where {FT<:AbstractFloat}输入频率参数 frequency,修改其它仿真参数的函数; 积分方程类型参数 ieT,修改计算过程中采用的积分方程; CFIE混合系数 CFIEα、网格文件名 meshfilename。
MoM_Basics.localObs2GlobalObs — MethodlocalObs2GlobalObs(r̂θϕs_obs::Matrix{r̂θϕInfo{FT}}, l2gRot::StaticMatrix{3,3, FT}) where {FT}根据局部观测空间角度信息 r̂θϕs_obs 计算给定局部至全局坐标旋转矩阵 l2gRot 下全局坐标的观测空间角度信息。
MoM_Basics.localrvec2Global — Methodlocalrvec2Global(rvecslocal::Vec3D{T}, l2gRot::StaticMatrix{3,3, FT}, r0InGlobal::Vec3D{FT}) where {T<:Number, FT<:Real}计算局部向量 rveclocal 在给定局部至全局坐标旋转矩阵 l2gRot 下的全局坐标,局部坐标的原点在全局坐标的 r0InGlobal 处。
MoM_Basics.localrvec2Global — Methodlocalrvec2Global(rvecslocal::Vec3D{T}, l2gRot::StaticMatrix{3,3, FT}) where {T<:Number, FT<:Real}计算局部向量 rveclocal 在给定局部至全局坐标旋转矩阵 l2gRot 下的全局坐标。
MoM_Basics.localrvec2Global — Methodlocalrvec2Global(rvecslocal::Matrix{T}, l2gRot::StaticMatrix{3,3, FT}, r0InGlobal::Vec3D{FT}) where {T<:Number, FT<:Real}计算局部向量组成的矩阵 rvecslocal 在给定局部至全局坐标旋转矩阵 l2gRot 下的全局坐标,局部坐标的原点在全局坐标的 r0InGlobal 处。
MoM_Basics.localrvec2Global — Methodlocalrvec2Global(rvecslocal::Matrix{T}, l2gRot::StaticMatrix{3,3, FT}) where {T<:Number, FT<:Real}计算局部向量组成的矩阵 rvecslocal 在给定局部至全局坐标旋转矩阵 l2gRot 下的全局坐标。
MoM_Basics.modiParams! — MethodmodiParams!( frequency, ω_0, K_0, λ_0, JKη_0, Jη_0divK, JK_0,
k², divJω, mk²div9, mJη_0div4πK,
C4divk², JKηdiv16π, div9Jω, Rsglr, CFIEα)输入所有参数修改仿真参数的实例。
MoM_Basics.modiSimulationParams! — MethodmodiSimulationParams!(;ieT::Symbol=SimulationParams.ieT,
meshfilename::String = SimulationParams.meshfilename,
meshunit = SimulationParams.meshunit,
SHOWIMAGE = SimulationParams.SHOWIMAGE,
discreteVar = SimulationParams.discreteVar
)ieT ::Symbol, 积分方程类型,包括 EFIE, MFIE, CFIE等
MoM_Basics.nodes2Poles — Methodnodes2Poles(nodes::Matrix{FT}) where {FT}将球面散点 nodes 转化为角度信息实例 r̂θϕInfo 数组。
MoM_Basics.radiationDirectionCoeff — MethodradiationDirectionCoeff(md::MagneticDipole{FT}, θϕ::θϕInfo{FT}) where {FT<:Real}
计算方向性系数:$D_m(θ, ϕ) = 4π U_m(θ, ϕ)/P_{rad}$。
MoM_Basics.radiationIntegralL0 — MethodradiationIntegralL0(md::MagneticDipole, θϕ::θϕInfo{FT}) where {FT<:Real}磁偶极子的远场辐射积分计算函数,注意 θϕ 为偶极子的局部坐标。
MoM_Basics.radiationIntensityU_m — MethodradiationIntensityU_m(md::MagneticDipole{FT}, θϕ::θϕInfo{FT}) where {FT<:Real}计算磁流源的辐射强度函数 $U_m(θ, ϕ) = \frac{Y_0}{8λ_0²}(|L_θ|² + |L_ϕ|²)$。
MoM_Basics.radiationPower — MethodradiationPower(md::MagneticDipole{FT}) where {FT<:Real}计算辐射功率。 $P_{rad} = ∫∫ U(θ, ϕ)sinθ dθdϕ$ 对磁偶极子可直接在源缝表面积分: $P_{rad} = ∫∫ |E(r)|²/(2η₀) dxdy$
MoM_Basics.random_rhat — Methodrandom_rhat(; FT = Precision.FT)随机生成单位向量。
MoM_Basics.record_BFsInfo — Methodrecord_BFsInfo(bfT::Symbol, nbf::Int; io::IO = Core.stdout)在 io 中记录基函数类型 bfT 和数量 nbf。
MoM_Basics.record_CellInfo — Functionrecord_CellInfo(io::IO = Core.stdout; ntri = 0, ntetra = 0, nhexa = 0)
record_CellInfo(meshData; io::IO = Core.stdout)在 io 中记录网格单元数量 ntri, ntetra, nhexa。
MoM_Basics.rwgbfConstructerTrianglesInfoModifiers! — MethodrwgbfConstructerTrianglesInfoModifiers!(trianglemeshData::TriangleMesh, trianglesInfo::Vector{TriangleInfo{IT, FT}}) where {IT<:Integer, FT<:AbstractFloat}此函数采用排序算法,将每个边的两个点、在三角形中的对点、三角形、基函数等属性信息放在一个大数组中, 通过对不同的属性排序(如按边所在点随数组排序即可将边相同的点放在一起),即可得到基函数分组信息,以此可构造RWG基函数。 函数完成以下功能:
- 构造基函数类型实例数组(类似结构化数组)rwgsInfo记录基函数相关信息,并作为返回值;
- 写入三角形类型实例数组trianglesInfo中关于基函数的信息。
MoM_Basics.rwgbfnohalfConstructerTrianglesInfoModifiers! — MethodrwgbfnohalfConstructerTrianglesInfoModifiers!(trianglemeshData::TriangleMesh, trianglesInfo::Vector{TriangleInfo{IT, FT}}) where {IT<:Integer, FT<:AbstractFloat}此函数与rwgbfConstructerTrianglesInfoModifiers!基本一致,不同在于不生成半基函数。
MoM_Basics.saveSimulationParams — MethodsaveSimulationParams(;meshfilename::String = SimulationParams.meshfilename,
sbfT::Symbol = SimulationParams.sbfT, vbfT::Symbol = SimulationParams.vbfT)保存仿真参数到结果文件中。
MoM_Basics.second_to_other — Methodsecond_to_other(v, time_unit)将以秒为单位的时间数据 v 转换为其它单位 time_unit。
MoM_Basics.selectFreeVnID — MethodselectFreeVnID(uvw::AbstractVector{FT}, i::Integer) where {FT}根据 $uvw$ 计算得到第 i 个面所在的基函数的 正常高斯求积 时 “自由端( $r₀$ )” 的序号。
MoM_Basics.selectFreeVnSSglrID — MethodselectFreeVnSSglrID(uvw::AbstractVector{FT}, i::Integer) where {FT}根据 $uvw$ 得到第 i 个面所在的基函数的 处理超奇异性 求积时 “自由端( $r₀$ )” 的序号。
MoM_Basics.selectFreeVnSglrID — MethodselectFreeVnSglrID(uvw::AbstractVector{FT}, i::Integer) where {FT}根据 $uvw$ 得到第 i 个面所在的基函数的 处理奇异性 求积时 “自由端( $r₀$ )” 的序号。
MoM_Basics.setGeosPermittivity! — MethodsetGeosPermittivity!(geosInfo::AbstractVector{VT}, εᵣ::CT = 1.0(1+0im)) where {VT<:TriangleInfo, CT<:Complex}设置三角形网格介电常数,目前为空派发以方便体面积分方程计算中的多重派发。
MoM_Basics.setGeosPermittivity! — MethodsetGeosPermittivity!(geosInfo::AbstractVector{VT}, εᵣ::CT = 1.0(1+0im)) where {VT<:VSCellType, CT<:Complex}
setGeosPermittivity!(geosInfo::AbstractVector{VT}, εᵣs::T) where {VT<:VSCellType, T<:AbstractVector}
setGeosPermittivity!(geosInfo::AbstractVector{VT}, εᵣ::CT = 1.0(1+0im)) where {VT<:AbstractVector, CT<:Complex}设置四面体、六面体的介电常数 εᵣ ,并同时设置介质对比度,修改此函数以得到对应的数据。
MoM_Basics.setHexaCoor! — MethodsetHexaCoor!( hexasInfo::Vector{HexahedraInfo{IT, FT, CT}}, hexaMeshData::HexahedraMesh{IT, FT}) where {IT<:Integer, FT<:AbstractFloat, CT<:Complex}在预分配好的六面体数组 hexasInfo 里写入 hexaMeshData 中对应的六面体编号、点坐标、中心位置数据。
MoM_Basics.setHexaParam! — MethodsetHexaParam!(hexasInfo::Vector{HexahedraInfo{IT, FT, CT}}) where {IT<:Integer, FT<:AbstractFloat, CT<:Complex}计算六面体体积、面外法向量、面积,并写入 hexasInfo 。
MoM_Basics.setPrecision! — MethodsetPrecision!(FT::Type{T}) where {T<:Union{Float32, Float64}}设置仿真精度为 FT。
MoM_Basics.setQuad4Hexas! — MethodsetQuad4Hexas!(hexameshData::HexahedraMesh{IT, FT}, hexasInfo::Vector{HexahedraInfo{IT, FT, CT}}, ::Val{:PWC}) where {IT, FT, CT}计算构成六面体的所有四边形,并将这些信息写入六面体 hexasInfo,给分片常数 (PWC) 基函数赋值。
MoM_Basics.setQuad4Hexas! — MethodsetQuad4Hexas!(hexameshData::HexahedraMesh{IT, FT}, hexasInfo::Vector{HexahedraInfo{IT, FT, CT}}, ::Val{:RBF}) where {IT, FT, CT}计算构成六面体的所有四边形,并写入六面体 hexasInfo,给屋顶基函数 (RBF) 基函数赋值。
MoM_Basics.setRecordMem! — Function设置是否开启内存记录MoM_Basics.setTetraCoor! — MethodsetHexaCoor!( tetrasInfo::Vector{TetrahedraInfo{IT, FT, CT}}, tetraMeshData::TetrahedraMesh{IT, FT}) where {IT<:Integer, FT<:AbstractFloat, CT<:Complex}在预分配好的四面体数组 tetrasInfo 里写入 tetraMeshData 中对应的四面体编号、点坐标、中心位置数据。
MoM_Basics.setTetraParam! — MethodsetTetraParam!(tetrasInfo::Vector{TetrahedraInfo{IT, FT, CT}}) where {IT<:Integer, FT<:AbstractFloat, CT<:Complex}计算四面体体积、面外法向量、面积,并写入 tetrasInfo 。
MoM_Basics.setTriParam! — MethodsetTriParam!(triangleInfo::TriangleInfo)计算三角形边长、边外法向量、面法向量、面积,直接写入 triangleInfo 。
MoM_Basics.setTriangles4Tetras! — MethodsetTriangles4Tetras!(tetrameshData::TetrahedraMesh{IT, FT}, tetrasInfo::Vector{TetrahedraInfo{IT, FT, CT}}, ::Val{:PWC}) where {IT, FT, CT}计算构成四面体的所有三角形,并将这些信息写入四面体 tetrasInfo,给分片常数 (PWC) 基函数赋值。
MoM_Basics.setTriangles4Tetras! — MethodsetTriangles4Tetras!(tetrameshData::TetrahedraMesh{IT, FT}, tetrasInfo::Vector{TetrahedraInfo{IT, FT, CT}}, ::Val{:SWG}) where {IT, FT, CT}计算构成四面体的所有三角形,并将这些信息写入四面体 tetrasInfo,给 SWG 基函数赋值。
MoM_Basics.setTricoor! — MethodsetTricoor!( trianglesInfo::Vector{TriangleInfo{IT, FT}}, TriangleMeshData::TriangleMesh{IT, FT}) where {IT<:Integer, FT<:AbstractFloat}在预分配好的三角形数组 trianglesInfo 里写入 TriangleMeshData 中对应的三角形编号、点坐标、中心位置数据。
MoM_Basics.setdiffArray! — FunctionsetdiffArray!(ary[, dim = 1])将阵列天线 ary 在 dim 方向一半单元设置为反相位,从而实现差方向图。
MoM_Basics.setδκ! — Methodsetδκ!(hexasInfo::AbstractVector{HexahedraInfo{IT, FT, CT}}) where {IT<:Integer, FT<:Real, CT<:Complex{FT}}设置六面体网格信息 hexasInfo 中每个面上的介质对比度差值。
MoM_Basics.setδκ! — Methodsetδκ!(geosInfo::AbstractVector{VT}) where {VT<:VolumeCellType}设置体网格信息 geosInfo 中每个面上的介质对比度差值。
MoM_Basics.show_memory_time — Functionshow_memory_time(io::IO=Core.stdout; mem_unit = :MB, time_unit = :s)展示时间内存消耗数据记录。
MoM_Basics.sincmath — Methodsincmath(x::T) where{T<:Number}Julia 自带 [sinc] 函数计算的是归一化辛格函数:
$sinc(x) = sin(πx)/(πx)$
此处借用 sinc,定义数学领域的非归一化 sinc 函数,即计算:
$sin(x)/x$
MoM_Basics.sourceEfield — MethodsourceEfield(plw::PlaneWave, r)计算平面波 plw 在全局坐标下给定位置 r 处的电场。
MoM_Basics.sourceEfield — MethodsourceEfield(ary::AT, rvec::AbstractVector{FT}) where {FT<:Real, AT<:AbstractAntennaArray}计算天线阵列 ary 在全局坐标下给定位置 rvec 处的电场。
MoM_Basics.sourceEfield — MethodsourceEfield(md::MagneticDipole{FT}, r_observe::Vec3D{FT}; r_coortype::Symbol=:C) where {FT<:Real}计算磁偶极 md 在全局坐标下给定位置 rvec 处的电场。
MoM_Basics.sourceEfield — MethodsourceEfield(sources::Vector{ST}, rvec::AbstractVector{FT}) where {FT<:Real, ST<:ExcitingSource}计算源向量 sources 在全局坐标下给定位置 rvec 处的远场电场。
MoM_Basics.sourceFarEfield — MethodsourceFarEfield(ary::AT, r̂θϕ::r̂θϕInfo{FT}) where {FT<:Real, AT<:AbstractAntennaArray}计算天线阵列 ary 在全局坐标下给定方向 r̂θϕ 的远场电场。
MoM_Basics.sourceFarEfield — MethodsourceFarEfield(md::MagneticDipole{FT}, r̂θϕ::r̂θϕInfo{FT}) where {FT<:Real}计算磁偶极 md 在全局坐标下给定方向 r̂θϕ 的远场电场。
MoM_Basics.sourceFarEfield — MethodsourceFarEfield(sources::Vector{ST}, r̂θϕ::r̂θϕInfo{FT}) where {FT<:Real, ST<:ExcitingSource}计算源向量 sources 在全局坐标下给定方向 r̂θϕ 的远场电场。
MoM_Basics.sourceHfield — MethodsourceHfield(plw::PlaneWave, r)计算平面波 plw 在全局坐标下给定位置 r 处的磁场。
MoM_Basics.sourceLocalEfield — MethodsourceLocalEfield(ary::AT, rvec::AbstractVector{FT}) where {FT<:Real, AT<:AbstractAntennaArray}计算天线阵列 ary 在阵列局部坐标下给定位置 rvec 处的电场。
MoM_Basics.sourceLocalEfield — MethodsourceLocalEfield(md::MagneticDipole{FT}, r_observe::Vec3D{FT}; r_coortype::Symbol=:C) where {FT<:Real}计算磁偶极 md 在磁偶极局部坐标给定位置 rvec 处的电场。
MoM_Basics.sourceLocalFarEfield — MethodsourceLocalFarEfield(ary::AT, r̂θϕ::r̂θϕInfo{FT}) where {FT<:Real, AT<:AbstractAntennaArray}计算天线阵列 ary 在阵列坐标下给定方向 r̂θϕ 的远场电场。
MoM_Basics.sourceLocalFarEfield — MethodsourceLocalFarEfield(md::MagneticDipole{FT}, r̂θϕ::r̂θϕInfo{FT}) where {FT<:Real}计算磁偶极 md 在磁偶极局部坐标下给定方向 r̂θϕ 的远场电场。
MoM_Basics.sphere2cart — Methodsphere2cart(coor_sphere::AbstractVector{T}) where T<:Real
sphere2cart(coor_sphere...)
sphere2cart(r::T, θϕ::θϕInfo{T}) where T<:Real将球坐标 coor_sphere 转换到直角坐标。
MoM_Basics.updateVSBFTParams! — MethodupdateVSBFTParams!(;sbfT = :nothing, vbfT = :nothing)通过输入符号更新体、面基函数类型常数实例。
MoM_Basics.updateVSBFTypes! — MethodupdateVSBFTypes!(;sbfType = BasisFunctionType, vbfType = BasisFunctionType)更新体、面基函数类型常数实例。
MoM_Basics.update_orient! — Methodupdate_orient!(ary::AT; aryorient, sourceorientlc[, orientunit = :rad]) where {AT<:AbstractAntennaArray}通过机械旋转更新天线阵列 ary 的阵列指向为 aryorient,天线单元指向为 sourceorientlc,指向角单位为 orientunit 。
MoM_Basics.update_orient! — Methodupdate_orient!(md::MagneticDipole{FT}, orient, unit = :rad) where {FT <: Real}更新磁偶极 md 指向为 orient。
MoM_Basics.update_phase! — Methodupdate_phase!(ary::AT, phase) where {AT<:AbstractAntennaArray}更新指向相位
MoM_Basics.update_phase! — Methodupdate_phase!(md::MagneticDipole{FT}, phase) where {FT <: Real}设置磁偶极 md 的相位为 phase。
MoM_Basics.volume — Methodvolume(vertices::Vararg{T, 4}) where {T}计算四个点vertices组成的四面体体积。
MoM_Basics.volume — Methodvolume(vertices::Vararg{T, 8}) where {T}计算八个点vertices组成的六面体体积。
MoM_Basics.θϕInfofromCart — MethodθϕInfofromCart(rvec::Vec3D{FT}) where {FT<:Real}从直角坐标 rvec 计算三角函数:$sinθ, cosθ, sinϕ, cosϕ$
MoM_Basics.@clock — Macroclock(message, ex)将表达式 ex 的运行时间以 message 为键保存在字典 timer 中。
MoM_Basics.GaussQuadrature4Geo — Module创建模组用于支持集合体高斯求积运算。
MoM_Basics.GaussQuadrature4Geo.GaussQuadratureInfoStruct — TypeGaussQuadratureInfoStruct{FT<:Real}保存高斯求积相对坐标、权重等信息的结构体。
MoM_Basics.GaussQuadrature4Geo.GaussQuadratureInfo — MethodGaussQuadratureInfo(GeoS::Symbol, GQN::IT, FT::DataType = Float64) where {IT<:Integer}通过集合类型 GeoS 、高斯求积点数量 GQN、浮点数据类型 FT 构造高斯求积信息实例。
MoM_Basics.GaussQuadrature4Geo.gaussQuadratureHexa — FunctiongaussQuadratureHexa( num::Integer = 8, FT::DataType=Float64)计算六面体高斯求积局部坐标和权重。 num 为六面体高斯求积点数,本函数给出 1, 8, 27... i³ 的值,默认为8。
MoM_Basics.GaussQuadrature4Geo.gaussQuadratureQuad — FunctiongaussQuadratureQuad( num::Integer = 4, FT::DataType=Float64)计算四边形高斯求积局部坐标和权重。 num 为四边形高斯求积点数,本函数给出 1, 4, 9 ... i² 的值,默认为4。
MoM_Basics.GaussQuadrature4Geo.gaussQuadratureTetra — FunctiongaussQuadratureTetra( num::Integer = 4, FT::DataType=Float64)计算四面体高斯求积局部坐标和权重。 num 为四面体高斯求积点数,本函数给出1, 4, 5, 11的值,默认为4。
MoM_Basics.GaussQuadrature4Geo.gaussQuadratureTri — FunctiongaussQuadratureTri( num::Integer = 3, FT::DataType = Float64)计算三角形高斯求积局部坐标和权重。 num 为三角形高斯求积点数,本函数支持给出1, 3, 4, 6, 7的值,默认为3。
MoM_Basics.TaylorWins.calculateFm — MethodcalculateFm(m, sp2, A, nbar)计算 Fm。
MoM_Basics.TaylorWins.taylorwin — Methodtaylorwin(L::IT, nbar = 4, sll = -30) where {IT<:Integer}TAYLORWIN Taylor window.
TAYLORWIN(N) returns an N-point Taylor window in a column vector.
TAYLORWIN(N,nbar) returns an N-point Taylor window with nbar nearly constant-level sidelobes adjacent to the mainlobe. nbar must be an integer greater than or equal to one.
TAYLORWIN(N,nbar,sll) returns an N-point Taylor window with sll maximum sidelobe level in dB relative to the mainlobe peak. sll must be a negative value, e.g., -30 dB.
nbar should satisfy nbar >= 2*A^2+0.5, where A is equal to acosh(10^(-sll/20))/pi, otherwise the sidelobe level specified is not guaranteed. If nbar is not specified it defaults to 4. sll defaults to -30 dB if not specified.
EXAMPLE This example generates a 64-point Taylor window with 4 sidelobes adjacent to the mainlobe that are nearly constant-level, and a peak sidelobe level of -35 dB relative to the mainlobe peak.
w = taylorwin(64,5,-35); wvtool(w);
See also CHEBWIN.
Copyright 2005-2018 The MathWorks, Inc.
References: [1] Carrara, Walter G., Ronald M. Majewski, and Ron S. Goodman, Spotlight Synthetic Aperture Radar: Signal Processing Algorithms, Artech House, October 1, 1995. [2] Brookner, Eli, Practical Phased Array Antenna Systems, Artech House, Inc., 1991, pg. 2-51.