MoM_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_Kernels.GeosIntervalMoM_Kernels.MLFMAParamsMoM_Kernels.ParallelParamsMoM_Kernels.SSCgMoM_Kernels.SSCgdivnp2MoM_Kernels.VSC₃ⁿMoM_Basics.AbstractAntennaArrayMoM_Basics.AntennaArrayMoM_Basics.AntennaArrayMoM_Basics.AntennaTypeMoM_Basics.BasisFunctionTypeMoM_Basics.ConstBasisFunctionMoM_Basics.ExcitingSourceMoM_Basics.ExcitingSourcesMoM_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.∠InfoMoM_Kernels.CubeInfoMoM_Kernels.GLPolesInfoMoM_Kernels.GeosIntervalTypeMoM_Kernels.LagrangeInterp1StepInfoMoM_Kernels.LagrangeInterp1StepInfoMoM_Kernels.LagrangeInterpInfoMoM_Kernels.LagrangeInterpInfoMoM_Kernels.LevelInfoMoM_Kernels.MLFMAParamsTypeMoM_Kernels.MLMFAIteratorMoM_Kernels.MLMFAIteratorMoM_Kernels.MatrixChunkMoM_Kernels.MatrixChunkMoM_Kernels.OctreeInfoMoM_Kernels.OctreeInfoMoM_Kernels.PartitionedVectorMoM_Kernels.SAIChunkPrecMoM_Kernels.SAIPrecMoM_Kernels.ZnearChunksStructMoM_Kernels.ZnearChunksStructMoM_Kernels.ZnearTBase.:*Base.:*Base.:*Base.:*Base.:*Base.:*Base.:*Base.convertBase.eltypeBase.getindexBase.getindexBase.getindexBase.setindex!Base.setindex!Base.sizeLinearAlgebra.ldiv!LinearAlgebra.ldiv!LinearAlgebra.mul!LinearAlgebra.mul!LinearAlgebra.mul!LinearAlgebra.mul!LinearAlgebra.mul!MoM_Basics._nastran_string_to_floatMoM_Basics.acrossbcrosscMoM_Basics.add_phase!MoM_Basics.antennaArrayMoM_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.getNodeTriTetraFekoNasMoM_Basics.getNodeTriTetraHexaNasMoM_Basics.getTetrasInfoMoM_Basics.getTriangleInfoMoM_Basics.getdatNodeElementParamMoM_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.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.θϕInfofromCartMoM_Kernels.CFIEOnNearTrisMoM_Kernels.CFIEOnTrisMoM_Kernels.CFIEOnTrisMoM_Kernels.EFIEOnHexaPWCMoM_Kernels.EFIEOnHexaPWCSepPVMoM_Kernels.EFIEOnHexaRBFMoM_Kernels.EFIEOnHexaTetraPWCMoM_Kernels.EFIEOnHexaTetraPWCMoM_Kernels.EFIEOnHexasPWCMoM_Kernels.EFIEOnHexasRBFMoM_Kernels.EFIEOnNearHexaTetraPWCMoM_Kernels.EFIEOnNearHexaTetraPWCMoM_Kernels.EFIEOnNearHexasPWCMoM_Kernels.EFIEOnNearHexasRBFMoM_Kernels.EFIEOnNearRWGPWCMoM_Kernels.EFIEOnNearRWGPWCMoM_Kernels.EFIEOnNearRWGPWCMoM_Kernels.EFIEOnNearRWGPWCMoM_Kernels.EFIEOnNearRWGRBFMoM_Kernels.EFIEOnNearRWGRBFMoM_Kernels.EFIEOnNearRWGSWGMoM_Kernels.EFIEOnNearRWGSWGMoM_Kernels.EFIEOnNearTetrasPWCMoM_Kernels.EFIEOnNearTetrasSWGMoM_Kernels.EFIEOnNearTrisMoM_Kernels.EFIEOnRWGPWCMoM_Kernels.EFIEOnRWGPWCMoM_Kernels.EFIEOnRWGPWCMoM_Kernels.EFIEOnRWGPWCMoM_Kernels.EFIEOnRWGRBFMoM_Kernels.EFIEOnRWGRBFMoM_Kernels.EFIEOnRWGSWGMoM_Kernels.EFIEOnRWGSWGMoM_Kernels.EFIEOnTetraPWCMoM_Kernels.EFIEOnTetraPWCSepPVMoM_Kernels.EFIEOnTetraSWGMoM_Kernels.EFIEOnTetrasPWCMoM_Kernels.EFIEOnTetrasSWGMoM_Kernels.EFIEOnTrisMoM_Kernels.EFIEOnTrisMoM_Kernels.MFIEOnNearTrisMoM_Kernels.MFIEOnTrisMoM_Kernels.MFIEOnTrisMoM_Kernels.RCSPlotMoM_Kernels.ZnearChunkMulIVec!MoM_Kernels.adjoint_agg2HighLevel!MoM_Kernels.adjoint_agg2Level2!MoM_Kernels.adjoint_aggOnBF!MoM_Kernels.adjoint_disagg2KidLevel!MoM_Kernels.adjoint_disagg2LeafLevel!MoM_Kernels.adjoint_disaggOnBF!MoM_Kernels.adjoint_transOnLevel!MoM_Kernels.adjoint_transOnLevels!MoM_Kernels.agg2HighLevel!MoM_Kernels.agg2HighLevel!MoM_Kernels.agg2Level2!MoM_Kernels.aggOnBF!MoM_Kernels.aggSBFOnLevelMoM_Kernels.aggSBFOnLevel!MoM_Kernels.aggSBFOnLevel!MoM_Kernels.aggSBFOnLevel!MoM_Kernels.aggSBFOnLevel!MoM_Kernels.aggSBFOnLevelCFIEMoM_Kernels.aggSBFOnLevelCFIE!MoM_Kernels.aggSBFOnLevelEFIEMoM_Kernels.aggSBFOnLevelEFIE!MoM_Kernels.aggSBFOnLevelMFIEMoM_Kernels.aggSBFOnLevelMFIE!MoM_Kernels.anterpolateMoM_Kernels.anterpolateMoM_Kernels.anterpolate!MoM_Kernels.anterpolate!MoM_Kernels.calZfarI!MoM_Kernels.calZnearCSCMoM_Kernels.calZnearCSC!MoM_Kernels.calZnearCSCCFIE!MoM_Kernels.calZnearCSCEFIE!MoM_Kernels.calZnearCSCEFIE!MoM_Kernels.calZnearCSCEFIE!MoM_Kernels.calZnearCSCEFIE!MoM_Kernels.calZnearCSCEFIE!MoM_Kernels.calZnearCSCEFIE!MoM_Kernels.calZnearCSCEFIE!MoM_Kernels.calZnearCSCEFIE!MoM_Kernels.calZnearCSCEFIE!MoM_Kernels.calZnearCSCEFIEnew!MoM_Kernels.calZnearCSCMFIE!MoM_Kernels.caladjZfarI!MoM_Kernels.calαTransOnLevel!MoM_Kernels.coeffgreenMoM_Kernels.convergencePlotMoM_Kernels.cooraInCoorbMoM_Kernels.disagg2KidLevel!MoM_Kernels.disagg2KidLevel!MoM_Kernels.disagg2LeafLevel!MoM_Kernels.disaggOnBF!MoM_Kernels.electricJCalMoM_Kernels.electricJCalMoM_Kernels.excitationVectorCFIEMoM_Kernels.excitationVectorCFIEMoM_Kernels.excitationVectorCFIE!MoM_Kernels.excitationVectorEFIEMoM_Kernels.excitationVectorEFIEMoM_Kernels.excitationVectorEFIEMoM_Kernels.excitationVectorEFIEMoM_Kernels.excitationVectorEFIEMoM_Kernels.excitationVectorEFIEMoM_Kernels.excitationVectorEFIEMoM_Kernels.excitationVectorEFIEMoM_Kernels.excitationVectorEFIEMoM_Kernels.excitationVectorEFIE!MoM_Kernels.excitationVectorEFIE!MoM_Kernels.excitationVectorEFIE!MoM_Kernels.excitationVectorEFIE!MoM_Kernels.excitationVectorMFIEMoM_Kernels.excitationVectorMFIEMoM_Kernels.excitationVectorMFIE!MoM_Kernels.faceSingularityIgMoM_Kernels.faceSingularityIgMoM_Kernels.faceSingularityIgMoM_Kernels.faceSingularityIgIvecgMoM_Kernels.faceSingularityIgIvecgI∇gSMoM_Kernels.faceSingularityIᵣIᵨMoM_Kernels.farEPlotMoM_Kernels.farFieldMoM_Kernels.farFieldMoM_Kernels.farFieldMoM_Kernels.farFieldMoM_Kernels.func4Cube1stkIntervalMoM_Kernels.geoElectricJCalMoM_Kernels.geoElectricJCalMoM_Kernels.geoElectricJCalMoM_Kernels.geoElectricJCalMoM_Kernels.geoElectricJCalMoM_Kernels.getAggSBFOnLevelMoM_Kernels.getAggSBFOnLevelMoM_Kernels.getAggSBFOnLevelMoM_Kernels.getBfsCenterMoM_Kernels.getBfsCenterMoM_Kernels.getCubeIDsWithGeosMoM_Kernels.getExcitationVectorMoM_Kernels.getExcitationVectorMoM_Kernels.getExcitationVectorMoM_Kernels.getGeoIDsInCubeChunkMoM_Kernels.getGeosIntervalMoM_Kernels.getImpedanceMatAndExciteVMoM_Kernels.getImpedanceMatAndExciteVMoM_Kernels.getImpedanceMatrixMoM_Kernels.getImpedanceOptMoM_Kernels.getImpedanceOptAndExciteVOctreeMoM_Kernels.getLeafCubeLMoM_Kernels.getLeafCubeLMoM_Kernels.getLeafCubeLMoM_Kernels.getLeafCubeLMoM_Kernels.getMeshDataSaveGeosIntervalMoM_Kernels.getNeiFarNeighborCubeIDsMoM_Kernels.getNeighborCubeIDsMoM_Kernels.getOctreeAndReOrderBFs!MoM_Kernels.get_Interpolation_MethodMoM_Kernels.get_chunks_minmax_colMoM_Kernels.get_leafCubeSizeMoM_Kernels.get_partitionMoM_Kernels.get_partition_mapMoM_Kernels.gq_xsws_on_sphereMoM_Kernels.greenfunc_starMoM_Kernels.iluPreconditionMoM_Kernels.impedancemat4CFIE4PECMoM_Kernels.impedancemat4EFIE4PECMoM_Kernels.impedancemat4EFIE4PEC!MoM_Kernels.impedancemat4MFIE4PECMoM_Kernels.impedancemat4RWGPWC!MoM_Kernels.impedancemat4RWGPWC!MoM_Kernels.impedancemat4RWGRBF!MoM_Kernels.impedancemat4RWGSWG!MoM_Kernels.impedancemat4VIEMoM_Kernels.impedancemat4VIEMoM_Kernels.impedancemat4VIEMoM_Kernels.impedancemat4VIEMoM_Kernels.impedancemat4VIEMoM_Kernels.impedancemat4VIE!MoM_Kernels.impedancemat4VIE!MoM_Kernels.impedancemat4VIE!MoM_Kernels.impedancemat4VIE!MoM_Kernels.impedancemat4VIE!MoM_Kernels.impedancemat4VIE!MoM_Kernels.impedancemat4VSIEMoM_Kernels.impedancemat4VSIERWGPWCMoM_Kernels.impedancemat4VSIERWGRBFMoM_Kernels.impedancemat4VSIERWGSWGMoM_Kernels.initialVMulZchunks!MoM_Kernels.initialZchunksMulV!MoM_Kernels.initialZnearCSCMoM_Kernels.initialZnearCSRMoM_Kernels.initialZnearChunksMoM_Kernels.inputParametersMoM_Kernels.integral1DXWMoM_Kernels.interpolateMoM_Kernels.interpolateMoM_Kernels.interpolate!MoM_Kernels.interpolate!MoM_Kernels.interpolationCSCMatCalMoM_Kernels.iterSolverSetMoM_Kernels.levelIntegralInfoCalMoM_Kernels.loadCurrentMoM_Kernels.loadGeoIntervalMoM_Kernels.memoryAllocationOnLevels!MoM_Kernels.modiSingularityRelatedConsts!MoM_Kernels.octreeXWNCalMoM_Kernels.pickCycleVecMoM_Kernels.pickθMoM_Kernels.pickϕMoM_Kernels.radarCrossSectionMoM_Kernels.radarCrossSectionMoM_Kernels.radarCrossSectionMoM_Kernels.raditionalIntegralNCalMoM_Kernels.raditionalIntegralNθϕCalMoM_Kernels.raditionalIntegralNθϕCalMoM_Kernels.raditionalIntegralNθϕCalMoM_Kernels.raditionalIntegralNθϕCalMoM_Kernels.reOrderBasisFunctionAndGeoInfo!MoM_Kernels.reOrderBasisFunctionAndGeoInfo!MoM_Kernels.reOrderBasisFunctionAndGeoInfo!MoM_Kernels.reOrderCubeID!MoM_Kernels.record_memorysMoM_Kernels.restore_infosMoM_Kernels.saveCubesMoM_Kernels.saveCurrentMoM_Kernels.saveGeoIntervalMoM_Kernels.saveGeosInfoChunksMoM_Kernels.saveLevelMoM_Kernels.saveOctreeMoM_Kernels.saveVec2ChunksMoM_Kernels.saveVec2ChunksMoM_Kernels.searchNearCubesMoM_Kernels.setBFInterval!MoM_Kernels.setBigCubeMoM_Kernels.setGeoIDsInLeafCubes!MoM_Kernels.setGeoIDsInLeafCubes!MoM_Kernels.setGeoIDsInLeafCubes!MoM_Kernels.setKidLevelFarNeighbors!MoM_Kernels.setLevelInfo!MoM_Kernels.setLevelInfo!MoM_Kernels.setLevelTransFactor!MoM_Kernels.setLevelsCubesKidsIn8!MoM_Kernels.setLevelsShiftFactor!MoM_Kernels.setVSC₁₂₃ⁿ!MoM_Kernels.set_Interpolation_Method!MoM_Kernels.set_geosInterval!MoM_Kernels.set_leafCubeSize!MoM_Kernels.set_nprocs!MoM_Kernels.singularF1MoM_Kernels.singularF1MoM_Kernels.singularF21MoM_Kernels.singularF22MoM_Kernels.sizeChunks2cutsMoM_Kernels.sizeChunks2idxsMoM_Kernels.sizeChunksCuts2indicesMoM_Kernels.slicedim2boundsMoM_Kernels.slicedim2partitionMoM_Kernels.solveMoM_Kernels.solve!MoM_Kernels.sparseApproximateInversePlMoM_Kernels.sparseApproximateInversePlMoM_Kernels.sparseApproximateInversePlMoM_Kernels.sparseApproximateInversePlMoM_Kernels.sparseApproximateInversePrMoM_Kernels.sparseApproximateInversePrMoM_Kernels.sparseApproximateInversePrMoM_Kernels.spherical_h1lMoM_Kernels.spherical_h1lMoM_Kernels.spherical_h1l_arrayMoM_Kernels.spherical_h1l_arrayMoM_Kernels.spherical_h2lMoM_Kernels.spherical_h2lMoM_Kernels.spherical_h2l_arrayMoM_Kernels.spherical_h2l_arrayMoM_Kernels.transOnLevel!MoM_Kernels.transOnLevels!MoM_Kernels.truncationLCalMoM_Kernels.truncationLCalMoM_Kernels.use_CSRMoM_Kernels.volumeSingularityIgMoM_Kernels.volumeSingularityIgIvecgMoM_Kernels.volumeSingularityLOpDyadMoM_Kernels.writeZtt!MoM_Basics.@clock
MoM_Kernels.GeosInterval — Constant保存网格数据区间的实例。
MoM_Kernels.MLFMAParams — Constant多层快速多极子的可调参数
MoM_Kernels.ParallelParams — Constant保存并行参数的实例。
MoM_Kernels.SSCg — Constant计算面奇异性时用的两个系数。
MoM_Kernels.SSCgdivnp2 — Constant计算体奇异性时用到的一些系数。
MoM_Kernels.VSC₃ⁿ — Constant这一项面、体奇异性都用到了,处理对格林函数梯度求积时的奇异性时用到的。
MoM_Kernels.ZnearT — Type近场阻抗矩阵的类型集合。
MoM_Kernels.CubeInfo — TypeCubeInfo{IT<:Integer, FT<:Real}盒子信息,包括:
kidsInterval ::UnitRange{IT} 子层盒子id的区间
bfInterval ::UnitRange{IT} 包含的基函数区间
kidsIn8 ::Vector{IT} 非空子盒子在8个子盒子中的id
geoIDs ::Vector{IT} 包含的网格如三角形、四面体的id,以基函数进行分,因此边界上的同一个网格可能被分到不同的盒子内。
neighbors ::Vector{IT} 邻盒子id
farneighbors ::Vector{IT} 远亲盒子的id
ID3D ::MVec3D{IT} 本盒子在本层的三维整数坐标
center ::MVec3D{FT} 本盒子在本层的三维全局坐标MoM_Kernels.GLPolesInfo — Type多极子的极信息,即角谱空间采样信息 Xθs::Vector{FT},θ方向的采样点坐标(rad单位),高斯-勒让德求积 Xϕs::Vector{FT},ϕ方向的采样点坐标(rad单位),均值求积 Wθϕs::Vector{FT},采样点权重,用于积分时使用,在MLFMA中直接乘在转移项
MoM_Kernels.GeosIntervalType — TypeGeosIntervalType{T}保存网格数据区间的类。
MoM_Kernels.LagrangeInterp1StepInfo — Type保存总的 稀疏插值矩阵,用于单步插值,根据稀疏度决定保存稀疏阵或是稠密阵 θϕCSC ::AbstractMatrix{FT} 稀疏矩阵, θ 方向插值矩阵的转置,用于左乘本层多极子矩阵,在 θ 方向反插值 θϕCSCT ::AbstractMatrix{FT} 稀疏矩阵, ϕ 方向插值矩阵的转置,用于左乘本层多极子矩阵,在 ϕ 方向反插值
MoM_Kernels.LagrangeInterp1StepInfo — Method带参数的构造函数
MoM_Kernels.LagrangeInterpInfo — Type保存 θ, ϕ 两个方向的稀疏插值矩阵, θ方向为 (npXθs, ntXθs) 稀疏矩阵, 用于左乘本层多极子矩阵,在 θ 方向插值 ϕ方向为 (ntXϕs, ntXϕs) 稀疏矩阵, 用于右乘本层多极子矩阵,在 ϕ 方向插值 θCSCT ::SparseMatrixCSC{FT} 稀疏矩阵, θ 方向插值矩阵的转置,用于左乘本层多极子矩阵,在 θ 方向反插值 ϕCSCT ::SparseMatrixCSC{FT} 稀疏矩阵, ϕ 方向插值矩阵的转置,用于左乘本层多极子矩阵,在 ϕ 方向反插值
MoM_Kernels.LagrangeInterpInfo — Method带参数的构造函数
MoM_Kernels.LevelInfo — TypeLevelInfo{IT<:Integer, FT<:Real, IPT} <: AbstractLevel层信息:
ID ::IT 层序号
isleaf ::Bool 是否为叶层
L ::IT 本层截断项数
cubes ::Vector{CubeInfo{IT, FT}} 包含每一个盒子信息的向量
cubeEdgel ::FT 本层盒子的边长
poles ::PolesInfo{IT, FT} 多极子采样信息
interpWθϕ ::InterpInfo{IT, FT} 插值信息
aggS ::Array{Complex{FT}, 3} 聚合项
disaggG ::Array{Complex{FT}, 3} 解聚项
phaseShift2Kids ::Array{Complex{FT}, 3}本层盒子到子层盒子的相移因子
αTrans ::Array{Complex{FT}, 3} 本层盒子远亲组之间的转移因子,根据相对位置共有 7^3 - 3^3 = 316 个
αTransIndex ::Array{IT, 2} 远亲盒子的相对位置到其转移因子在所有转移因子数组的索引MoM_Kernels.MLFMAParamsType — Type创建可变参数类型以在频率更改时对应更改 MLFMA 的相关参数
MoM_Kernels.MLMFAIterator — Type保存 MLFMA 相关信息的结构体
MoM_Kernels.MLMFAIterator — Method实现矩阵向量乘积,并封装为线性算子
MoM_Kernels.MatrixChunk — TypeMatrixChunk{T<:Number} <:AbstractMatrix{T}创建近场矩阵块结构体,所包含的数据为某一盒子内的近场矩阵元。
m::Int 行数
n::Int 列数
mat::Matrix{T} 矩阵
rowIndices::AbstractVector{Int} 行索引
colIndices::AbstractVector{Int} 列索引
lmul::AbstractVector{T} 用于左乘其它矩阵、向量的临时数组,大小与列数相同
rmul::AbstractVector{T} 用于右乘其它矩阵、向量的临时数组,大小与行数相同MoM_Kernels.MatrixChunk — MethodMatrixChunk{T}(rowIndices, colIndices) where {T<:Number}用行、列索引 rowIndices, colIndices 初始化矩阵块。
MoM_Kernels.OctreeInfo — Type八叉树类 nLevels ::Integer, 叶层ID(定义大盒子为(“0” 层),叶层为第“n”层,nLevels取“n”的值) leafCubeEdgel::FT,叶层盒子边长 bigCubeLowerCoor::MVec3D{FT},第0层盒子的角坐标 levels ::Dict{Int, LevelInfo},保存各层信息的字典
MoM_Kernels.OctreeInfo — Method构建八叉树类
MoM_Kernels.PartitionedVector — TypePartitionedVector{T} <: AbstractVector{T}用于保存向量块的类,同时在块内保存一些其他块的数据。
size::Int 原始 Vector 的大小
data::OffsetVector{T, Vector{T}} 本地保存的数据
indices::UnitRange{Int} 本地保存数据的索引区间
ghostdata::SparseVector{T, Int} 用到的其它数据
ghostindices::Vector{Int} 用到的其它数据的索引区间MoM_Kernels.SAIChunkPrec — TypeSAIChunkPrec{T} <: AbstractMatrix{T}分块系数近似逆的结构体。
MoM_Kernels.SAIPrec — TypeSAIPrec{T} <: AbstractMatrix{T}封装系数近似逆矩阵的类型。
MoM_Kernels.ZnearChunksStruct — Type创建近场矩阵结构体,所包含的数据为所有盒子内的近场矩阵元,多线程版本
m::Int,行数
n::Int,列数
nChunks::Int,矩阵块儿数
chunks::Vector{ZnearChunksStruct{T}},矩阵
lmul::Vector{T},用于左乘其它矩阵、向量的临时数组,大小与列数相同
lmuld::Vector{T},用于左乘其它矩阵、向量的临时分布式数组,大小与列数相同,默认不分配
rmul::Vector{T},用于右乘其它矩阵、向量的临时数组,大小与行数相同
lmuld::Vector{T},用于左乘其它矩阵、向量的临时分布式数组,大小与列数相同,默认不分配MoM_Kernels.ZnearChunksStruct — MethodZnearChunksStruct 类的初始化函数,将 lumld 和 rmuld 初始化为
Base.:* — Method*(mat::AbstractMatrix, Z::T) where{T<:MatrixChunk}实现右乘其它矩阵,默认矩阵块较小,不在本阶段并行。
Base.:* — Method*(x::AbstractVector, Z::T) where{T<:MatrixChunk}实现矩阵块 Z 右乘其它向量,默认矩阵块较小,不在本阶段并行。
Base.:* — Method实现左乘其它矩阵
Base.:* — Method*(Z::T, mat::AbstractMatrix) where{T<:MatrixChunk}实现矩阵块 Z 左乘其它矩阵,默认矩阵块较小,不在本阶段并行。
Base.:* — MethodBase.:*(Z::T, x::AbstractVector) where{T<:MatrixChunk}实现左乘其它向量,默认矩阵块较小,因此不在本阶段并行
Base.:* — Method实现左乘其它向量
Base.convert — Method实现包含分布式层的
Base.eltype — Methodeltype(opt::ILUFactorization)提供 ilu 的算子 eltype 函数。
Base.getindex — MethodBase.getindex(A::PartitionedVector, i::I) where {I<:Integer}重载 PartitionedVector 类型的 getindex 函数。
Base.getindex — Methodgetindex(Z::T, i1::Int, i2::Int) where{T<:MatrixChunk}重载 getindex 函数。
Base.getindex — Method重载 getindex 函数
Base.setindex! — Methodsetindex!(Z::T, x, i1::Int, i2::Int) where{T<:MatrixChunk}重载 setindex! 函数
Base.setindex! — Method重载 setindex! 函数
Base.size — Methodsize(operator::T) where {T<:ILUFactorization}提供 ilu 的算子 size 函数。
LinearAlgebra.ldiv! — Methodldiv!(M::SAIChunkPrec{T}, x::AbstractVector) where {T}
ldiv!(y::AbstractVector, M::SAIChunkPrec{T}, x::AbstractVector) where {T}实现 x .= M * x 或 y .= M * x。
LinearAlgebra.ldiv! — Methodldiv!(M::SAIPrec{T}, x::AbstractVector) where {T}
ldiv!(y::AbstractVector, M::SAIPrec{T}, x::AbstractVector) where {T}实现 x .= M * x 或 y .= M * x。
LinearAlgebra.mul! — MethodLinearAlgebra.mul!(y, Zopt::MLMFAIterator, x)
重载以实现矩阵向量乘积计算TBW
LinearAlgebra.mul! — MethodLinearAlgebra.mul!(y, Zopt::MLMFAIterator, x)
重载以实现矩阵向量乘积计算TBW
LinearAlgebra.mul! — Methodmul!(y, Z::T, x::AbstractVector) where{T<:MatrixChunk}实现矩阵块 Z 的矩阵向量乘积计算。
LinearAlgebra.mul! — MethodLinearAlgebra.mul!(y, Zopt::MLMFAIterator, x)
重载以实现矩阵向量乘积计算TBW
LinearAlgebra.mul! — MethodLinearAlgebra.mul!(y, Zopt::MLMFAIterator, x)
重载以实现矩阵向量乘积计算TBW
MoM_Kernels.CFIEOnNearTris — Method计算三角形上相关9个阻抗矩阵元, 此函数方法用于计算场源三角形不重合但相隔较近的情况,因此输入有两个个三角形信息类型实例 输入 trit, tris : TriangleInfo, 场三角形和源三角形
MoM_Kernels.CFIEOnTris — Method计算三角形上相关9个阻抗矩阵元, 此函数方法用于计算场源三角形不重合且相隔较远的情况,因此输入有两个个三角形信息类型实例 输入 trit, tris : TriangleInfo, 场三角形和源三角形
MoM_Kernels.CFIEOnTris — Method计算三角形上相关9个阻抗矩阵元, 此函数方法用于计算场源三角形重合的情况,因此输入只有一个三角形信息类型实例 输入 tri : TriangleInfo
MoM_Kernels.EFIEOnHexaPWC — Method采用 PWC 基函数 计算六面体上相关的9个阻抗矩阵元, 此函数方法用于计算场源六面体重合的情况,因此输入有一个六面体信息类型实例 输入: hexat HexahedraInfo, 场六面体和六面体 计算: jkη₀∫ₜ∫ₛ(I + 1/k²∇∇)G(R)dV′dV 其中, ∫ₜ∫ₛ∇∇G(R)dV′dV = ∫ₜ∑ᵢn̂ᵢ(∫ᵢR̂(jk + 1/R)G(R)dS′)dV 计算得到结果为并矢:: jη₀/k ∫∫ (k²I + ∇∇)G(R) dV'dV Kᵣⁿ = ∫ Rⁿ dV' K̂ᵣⁿ = ∫ R̂Rⁿ dV' 注意为与两两作用不同,此处加上了 κ 项,因此后续填充时不需加上。
MoM_Kernels.EFIEOnHexaPWCSepPV — Method采用 PWC 基函数 计算六面体上相关的9个阻抗矩阵元, 此函数方法用于计算场源六面体重合的情况,因此输入有一个六面体信息类型实例 输入: hexat HexahedraInfo, 场六面体和六面体 计算: jkη₀∫ₜ∫ₛ(I + 1/k²∇∇)G(R)dV′dV 其中, ∫ₜ∫ₛ∇∇G(R)dV′dV = ∫ₜ∑ᵢn̂ᵢ(∫ᵢR̂(jk + 1/R)G(R)dS′)dV 计算得到结果为并矢:: jη₀/k ∫∫ (k²I + ∇∇)G(R) dV'dV Kᵣⁿ = ∫ Rⁿ dV' K̂ᵣⁿ = ∫ R̂Rⁿ dV' 注意为与两两作用不同,此处加上了 κ 项,因此后续填充时不需加上。
MoM_Kernels.EFIEOnHexaRBF — Method计算六面体上相关的 36 个阻抗矩阵元, 此函数方法用于计算场源六面体重合的情况,因此输入有一个六面体信息类型实例 输入 hexat : HexahedraInfo, 场六面体和源六面体
MoM_Kernels.EFIEOnHexaTetraPWC — Method采用 PWC 基函数 计算六面体和四面体上相关的9个阻抗矩阵元, 此函数方法用于计算场源六面体不重合且相隔较远的情况,因此输入有两个六面体信息类型实例 输入: hexat::HexahedraInfo, 场六面体 tetras::TetrahedraInfo 源四面体 计算: jk₀η₀∫ₜ∫ₛ(I + 1/k²∇∇)G(R)dV′dV 注意为方便对称性快速填充矩阵元,没有加入 κ 项,因此后续填充时要注意加上。
MoM_Kernels.EFIEOnHexaTetraPWC — Method采用 PWC 基函数 计算六面体和四面体上相关的9个阻抗矩阵元, 此函数方法用于计算场源六面体不重合且相隔较远的情况,因此输入有两个六面体信息类型实例 输入: tetrat::TetrahedraInfo 场四面体 hexas::HexahedraInfo, 源六面体 计算: jk₀η₀∫ₜ∫ₛ(I + 1/k²∇∇)G(R)dV′dV 注意为方便对称性快速填充矩阵元,没有加入 κ 项,因此后续填充时要注意加上。
MoM_Kernels.EFIEOnHexasPWC — Method采用 PWC 基函数 计算六面体上相关的9个阻抗矩阵元, 此函数方法用于计算场源六面体不重合且相隔较远的情况,因此输入有两个六面体信息类型实例 输入: hexat hexas : HexahedraInfo, 场六面体和六面体 计算: jk₀η₀∫ₜ∫ₛ(I + 1/k²∇∇)G(R)dV′dV 注意为方便对称性快速填充矩阵元,没有加入 κ 项,因此后续填充时要注意加上。
MoM_Kernels.EFIEOnHexasRBF — Method计算六面体上相关的 36 个阻抗矩阵元, 此函数方法用于计算场源六面体不重合且相隔较远的情况,因此输入有两个六面体信息类型实例 输入 hexat, hexas : HexahedraInfo, 场六面体和源六面体
MoM_Kernels.EFIEOnNearHexaTetraPWC — Method采用 PWC 基函数 计算六面体上相关的9个阻抗矩阵元, 此函数方法用于计算场源六面体不重合且相隔较近的情况,因此输入有两个六面体信息类型实例 输入: hexat hexas : HexahedraInfo, 场六面体和六面体 计算: jkη₀∫ₜ∫ₛ(I + 1/k²∇∇)G(R)dV′dV 其中, ∫ₜ∫ₛ∇∇G(R)dV′dV = ∫ₜ∑ᵢn̂ᵢ(∫ᵢR̂(jk + 1/R)G(R)dS′)dV 计算得到结果为并矢:: jη₀/k ∫∫ (k²I + ∇∇)G(R) dV'dV Kᵣⁿ = ∫ Rⁿ dV' K̂ᵣⁿ = ∫ R̂Rⁿ dV' 注意为方便对称性快速填充矩阵元,没有加入 κ 项,因此后续填充时要注意加上。
MoM_Kernels.EFIEOnNearHexaTetraPWC — Method采用 PWC 基函数 计算六面体和四面体上相关的9个阻抗矩阵元, 此函数方法用于计算场源六面体不重合且相隔较远的情况,因此输入有两个六面体信息类型实例 输入: tetrat::TetrahedraInfo 场四面体 hexas::HexahedraInfo, 源六面体 计算: jk₀η₀∫ₜ∫ₛ(I + 1/k²∇∇)G(R)dV′dV 注意为方便对称性快速填充矩阵元,没有加入 κ 项,因此后续填充时要注意加上。
MoM_Kernels.EFIEOnNearHexasPWC — Method采用 PWC 基函数 计算六面体上相关的9个阻抗矩阵元, 此函数方法用于计算场源六面体不重合且相隔较近的情况,因此输入有两个六面体信息类型实例 输入: hexat hexas : HexahedraInfo, 场六面体和六面体 计算: jkη₀∫ₜ∫ₛ(I + 1/k²∇∇)G(R)dV′dV 其中, ∫ₜ∫ₛ∇∇G(R)dV′dV = ∫ₜ∑ᵢn̂ᵢ(∫ᵢR̂(jk + 1/R)G(R)dS′)dV 计算得到结果为并矢:: jη₀/k ∫∫ (k²I + ∇∇)G(R) dV'dV Kᵣⁿ = ∫ Rⁿ dV' K̂ᵣⁿ = ∫ R̂Rⁿ dV' 注意为方便对称性快速填充矩阵元,没有加入 κ 项,因此后续填充时要注意加上。
MoM_Kernels.EFIEOnNearHexasRBF — Method计算六面体上相关的 36 个阻抗矩阵元, 此函数方法用于计算场源六面体不重合但相隔较近的情况,输入有两个六面体信息类型实例 输入 hexat, hexas : HexahedraInfo, 场六面体和源六面体
MoM_Kernels.EFIEOnNearRWGPWC — Method计算三角形和六面体上相关的 9 个阻抗矩阵元, 此函数方法用于计算场源六面体不重合且相隔较近的情况 输入 trit :: TriangleInfo, 场三角形面体 geos :: HexahedraInfo, 源六面体
MoM_Kernels.EFIEOnNearRWGPWC — Method计算三角形和四面体上相关的 9 个阻抗矩阵元, 此函数方法用于计算场源四面体不重合且相隔较近的情况 输入 trit :: TriangleInfo, 场三角形面体 geos :: TetrahedraInfo, TetrahedraInfo, 源四面体、四面体
MoM_Kernels.EFIEOnNearRWGPWC — Method计算三角形和六面体上相关的 12 个阻抗矩阵元, 此函数方法用于计算场源六面体不重合且相隔较远的情况 输入 tris :: TriangleInfo, 源三角形面体 geot :: HexahedraInfo, 场六面体
MoM_Kernels.EFIEOnNearRWGPWC — Method计算三角形和四面体上相关的 12 个阻抗矩阵元, 此函数方法用于计算场源四面体不重合且相隔较远的情况 输入 tris :: TriangleInfo, 源三角形面体 geot :: TetrahedraInfo, TetrahedraInfo, 场四面体、四面体
MoM_Kernels.EFIEOnNearRWGRBF — Method计算三角形和六面体上相关的 12 个阻抗矩阵元, 此函数方法用于计算场源六面体不重合且相隔较远的情况 输入 tris :: TriangleInfo, 源三角形面体 hexat :: HexahedraInfo, 场六面体
MoM_Kernels.EFIEOnNearRWGRBF — Method计算三角形和六面体上相关的 12 个阻抗矩阵元, 此函数方法用于计算场源六面体不重合且相隔较近的情况 输入 tris :: TriangleInfo, 源三角形面体 hexat :: HexahedraInfo, 场六面体
MoM_Kernels.EFIEOnNearRWGSWG — Method计算三角形和四面体上相关的 12 个阻抗矩阵元, 此函数方法用于计算场源四面体不重合且相隔较远的情况 输入 tris :: TriangleInfo, 源三角形面体 tetrat :: TetrahedraInfo, 场四面体
MoM_Kernels.EFIEOnNearRWGSWG — Method计算三角形和四面体上相关的 12 个阻抗矩阵元, 此函数方法用于计算场源四面体不重合且相隔较近的情况 输入 tris :: TriangleInfo, 源三角形面体 tetrat :: TetrahedraInfo, 场四面体
MoM_Kernels.EFIEOnNearTetrasPWC — Method采用 PWC 基函数 计算四面体上相关的9个阻抗矩阵元, 此函数方法用于计算场源四面体不重合且相隔较近的情况,因此输入有两个四面体信息类型实例 输入: tetrat tetras : TetrahedraInfo, 场四面体和四面体 计算: jkη₀∫ₜ∫ₛ(I + 1/k²∇∇)G(R)dV′dV 其中, ∫ₜ∫ₛ∇∇G(R)dV′dV = ∫ₜ∑ᵢn̂ᵢ(∫ᵢR̂(jk + 1/R)G(R)dS′)dV 计算得到结果为并矢:: jη₀/k ∫∫ (k²I + ∇∇)G(R) dV'dV Kᵣⁿ = ∫ Rⁿ dV' K̂ᵣⁿ = ∫ R̂Rⁿ dV' 注意为方便对称性快速填充矩阵元,没有加入 κ 项,因此后续填充时要注意加上。
MoM_Kernels.EFIEOnNearTetrasSWG — Method计算四面体上相关的 16 个阻抗矩阵元, 此函数方法用于计算场源四面体不重合但相隔较近的情况,输入有两个四面体信息类型实例 输入 tetrat, tetras : TetrahedraInfo, 场四面体和源四面体
MoM_Kernels.EFIEOnNearTris — Method计算三角形上相关9个阻抗矩阵元, 此函数方法用于计算场源三角形不重合但相隔较近的情况,因此输入有两个个三角形信息类型实例 输入 trit, tris : TriangleInfo, 场三角形和源三角形
MoM_Kernels.EFIEOnRWGPWC — Method计算三角形和六面体上相关的 9 个阻抗矩阵元, 此函数方法用于计算场源六面体不重合且相隔较远的情况 输入 trit :: TriangleInfo, 场三角形面体 geos :: HexahedraInfo, 源六面体
MoM_Kernels.EFIEOnRWGPWC — Method计算三角形和四面体上相关的 9 个阻抗矩阵元, 此函数方法用于计算场源四面体不重合且相隔较远的情况 输入 trit :: TriangleInfo, 场三角形面体 geos :: TetrahedraInfo, 源四面体
MoM_Kernels.EFIEOnRWGPWC — Method计算三角形和六面体上相关的 12 个阻抗矩阵元, 此函数方法用于计算场源六面体不重合且相隔较远的情况 输入 tris :: TriangleInfo, 源三角形面体 geot :: HexahedraInfo, 场六面体
MoM_Kernels.EFIEOnRWGPWC — Method计算三角形和四面体上相关的 12 个阻抗矩阵元, 此函数方法用于计算场源四面体不重合且相隔较远的情况 输入 tris :: TriangleInfo, 源三角形面体 geot :: TetrahedraInfo, TetrahedraInfo, 场四面体、四面体
MoM_Kernels.EFIEOnRWGRBF — Method计算三角形和六面体上相关的 12 个阻抗矩阵元, 此函数方法用于计算场源六面体不重合且相隔较远的情况 输入 tris :: TriangleInfo, 源三角形面体 hexat :: HexahedraInfo, 场六面体
MoM_Kernels.EFIEOnRWGRBF — Method计算三角形和六面体上相关的 18 个阻抗矩阵元, 此函数方法用于计算场源六面体不重合且相隔较远的情况 输入 trit :: TriangleInfo, 场三角形面体 hexas :: HexahedraInfo, 源六面体
MoM_Kernels.EFIEOnRWGSWG — Method计算三角形和四面体上相关的 12 个阻抗矩阵元, 此函数方法用于计算场源四面体不重合且相隔较远的情况 输入 tris :: TriangleInfo, 源三角形面体 tetrat :: TetrahedraInfo, 场四面体
MoM_Kernels.EFIEOnRWGSWG — Method计算三角形和四面体上相关的 12 个阻抗矩阵元, 此函数方法用于计算场源四面体不重合且相隔较远的情况 输入 tris :: TriangleInfo, 源三角形面体 tetrat :: TetrahedraInfo, 场四面体
MoM_Kernels.EFIEOnTetraPWC — Method采用 PWC 基函数 计算四面体上相关的9个阻抗矩阵元, 此函数方法用于计算场源四面体重合的情况,因此输入有一个四面体信息类型实例 输入: tetrat TetrahedraInfo, 场四面体和四面体 计算: jkη₀∫ₜ∫ₛ(I + 1/k²∇∇)G(R)dV′dV 其中, ∫ₜ∫ₛ∇∇G(R)dV′dV = ∫ₜ∑ᵢn̂ᵢ(∫ᵢR̂(jk + 1/R)G(R)dS′)dV 计算得到结果为并矢:: jη₀/k ∫∫ (k²I + ∇∇)G(R) dV'dV Kᵣⁿ = ∫ Rⁿ dV' K̂ᵣⁿ = ∫ R̂Rⁿ dV' 注意为与两两作用不同,此处加上了 κ 项,因此后续填充时不需加上。
MoM_Kernels.EFIEOnTetraPWCSepPV — Method采用 PWC 基函数 计算四面体上相关的9个阻抗矩阵元, 此函数方法用于计算场源四面体重合的情况,因此输入有一个四面体信息类型实例 输入: tetrat TetrahedraInfo, 场四面体和四面体 计算: jkη₀∫ₜ∫ₛ(I + 1/k²∇∇)G(R)dV′dV 其中, ∫ₜ∫ₛ∇∇G(R)dV′dV = ∫ₜ∑ᵢn̂ᵢ(∫ᵢR̂(jk + 1/R)G(R)dS′)dV 计算得到结果为并矢:: jη₀/k ∫∫ (k²I + ∇∇)G(R) dV'dV Kᵣⁿ = ∫ Rⁿ dV' K̂ᵣⁿ = ∫ R̂Rⁿ dV' 注意为与两两作用不同,函数将主值积分分开返回以便它用
MoM_Kernels.EFIEOnTetraSWG — Method计算四面体上相关的 16 个阻抗矩阵元, 此函数方法用于计算场源四面体不重合且相隔较远的情况,因此输入有两个四面体信息类型实例 输入 tetrat, tetras : TetrahedraInfo, 场四面体和源四面体
MoM_Kernels.EFIEOnTetrasPWC — Method采用 PWC 基函数 计算四面体上相关的9个阻抗矩阵元, 此函数方法用于计算场源四面体不重合且相隔较远的情况,因此输入有两个四面体信息类型实例 输入: tetrat tetras : TetrahedraInfo, 场四面体和四面体 计算: jk₀η₀∫ₜ∫ₛ(I + 1/k²∇∇)G(R)dV′dV 注意为方便对称性快速填充矩阵元,没有加入 κ 项,因此后续填充时要注意加上。
MoM_Kernels.EFIEOnTetrasSWG — Method计算四面体上相关的 16 个阻抗矩阵元, 此函数方法用于计算场源四面体不重合且相隔较远的情况,因此输入有两个四面体信息类型实例 输入 tetrat, tetras : TetrahedraInfo, 场四面体和源四面体
MoM_Kernels.EFIEOnTris — Method计算三角形上相关9个阻抗矩阵元, 此函数方法用于计算场源三角形不重合且相隔较远的情况,因此输入有两个个三角形信息类型实例 输入 trit, tris : TriangleInfo, 场三角形和源三角形
MoM_Kernels.EFIEOnTris — Method计算三角形上相关9个阻抗矩阵元, 此函数方法用于计算场源三角形重合的情况,因此输入只有一个三角形信息类型实例 输入 tri : TriangleInfo
MoM_Kernels.MFIEOnNearTris — Method计算三角形上相关9个阻抗矩阵元, 此函数方法用于计算场源三角形不重合但相隔较近的情况,因此输入有两个个三角形信息类型实例 输入 trit, tris : TriangleInfo, 场三角形和源三角形
MoM_Kernels.MFIEOnTris — Method计算三角形上相关9个阻抗矩阵元, 此函数方法用于计算场源三角形不重合且相隔较远的情况,因此输入有两个个三角形信息类型实例 输入 trit, tris : TriangleInfo, 场三角形和源三角形
MoM_Kernels.MFIEOnTris — Method计算三角形上相关9个阻抗矩阵元, 此函数方法用于计算场源三角形重合的情况,因此输入只有一个三角形信息类型实例 输入 tri : TriangleInfo
MoM_Kernels.RCSPlot — MethodRCS 绘图
MoM_Kernels.ZnearChunkMulIVec! — MethodZnearChunkMulIVec!(ZnearChunk, resultChunk, IVec)计算某一块的矩阵向量乘积
MoM_Kernels.adjoint_agg2HighLevel! — Method从子层聚合到本层 tLevel :: 本层 kLevel :: 子层
MoM_Kernels.adjoint_agg2Level2! — Method从叶层聚合到第 '2' 层
MoM_Kernels.adjoint_aggOnBF! — Method在叶层从基函数向盒子聚合
MoM_Kernels.adjoint_disagg2KidLevel! — Method向低层解聚 tLevel :: 本层 kLevel :: 子层
MoM_Kernels.adjoint_disagg2LeafLevel! — Method解聚到叶层
MoM_Kernels.adjoint_disaggOnBF! — Method在叶层往测试基函数解聚
MoM_Kernels.adjoint_transOnLevel! — Method层内转移
MoM_Kernels.adjoint_transOnLevels! — Method各层内转移
MoM_Kernels.agg2HighLevel! — Method从子层聚合到本层 tLevel :: 本层 kLevel :: 子层
MoM_Kernels.agg2HighLevel! — Method从子层聚合到本层 tLevel :: 本层 kLevel :: 子层
MoM_Kernels.agg2Level2! — Method从叶层聚合到第 '2' 层
MoM_Kernels.aggOnBF! — Method在叶层从基函数向盒子聚合
MoM_Kernels.aggSBFOnLevel! — MethodaggSBFOnLevel!(aggSBF, disaggSBF, level, hexasInfo::AbstractVector{HexahedraInfo{IT, FT, CT}},
::Type{BFT}; setzero = true) where {IT<:Integer, FT<:Real, CT<:Complex{FT}, BFT<:PWC}计算某层采用 EFIE 时在六面体上的 PWC 基函数的辐射函数 aggSBF 、配置函数 disaggSBF。
MoM_Kernels.aggSBFOnLevel! — MethodaggSBFOnLevel!(aggSBF, disaggSBF, level, tetrasInfo::AbstractVector{TetrahedraInfo{IT, FT, CT}},
::Type{BFT}; setzero = true) where {IT<:Integer, FT<:Real, CT<:Complex{FT}, BFT<:PWC}计算某层采用 EFIE 时在四面体上的 PWC 基函数的辐射函数 aggSBF 、配置函数 disaggSBF。
MoM_Kernels.aggSBFOnLevel! — MethodaggSBFOnLevel!(aggSBF, disaggSBF, level, tetrasInfo::AbstractVector{TetrahedraInfo{IT, FT, CT}},
::Type{BFT}; setzero = true) where {IT<:Integer, FT<:Real, CT<:Complex{FT}, BFT<:SWG}计算某层采用 EFIE 时 SWG 基函数的辐射函数 aggSBF 、配置函数 disaggSBF。
MoM_Kernels.aggSBFOnLevel! — MethodaggSBFOnLevel!(aggSBF, disaggSBF, level, hexasInfo::AbstractVector{VT},
::Type{BFT}; setzero = true) where {VT<:HexahedraInfo, BFT<:RBF}计算某层采用 EFIE 时在六面体上的 RBF 基函数的辐射函数 aggSBF 、配置函数 disaggSBF。
MoM_Kernels.aggSBFOnLevel — MethodaggSBFOnLevel(level::LT, geosInfo::AbstractVector{VT},
bfsInfo::AbstractVector{BFT}) where {LT<:LevelInfo, VT<:VolumeCellType, BFT<:BasisFunctionType}计算某层采用 EFIE 时 SWG 基函数的辐射函数 aggSBF 、配置函数 disaggSBF。
MoM_Kernels.aggSBFOnLevelCFIE! — MethodaggSBFOnLevelCFIE!(aggSBF, disaggSBF, level, trianglesInfo::Vector{TriangleInfo{IT, FT}},
::Type{BFT}; setzero = true) where {IT<:Integer, FT<:Real, BFT<:RWG}计算某层采用 CFIE 时 RWG 基函数的辐射函数 aggSBF 、配置函数 disaggSBF。
MoM_Kernels.aggSBFOnLevelCFIE — MethodaggSBFOnLevelCFIE(level, trianglesInfo::Vector{TriangleInfo{IT, FT}},
bfsInfo) where {IT<:Integer, FT<:Real}计算某层采用 CFIE 时 RWG 基函数的辐射函数 aggSBF 、配置函数 disaggSBF , 输入为层信息 level 、三角形信息 trianglesInfo 和基函数信息 bfsInfo。
MoM_Kernels.aggSBFOnLevelEFIE! — MethodaggSBFOnLevelEFIE!(aggSBF, disaggSBF, level, trianglesInfo::Vector{TriangleInfo{IT, FT}},
::Type{BFT}; setzero = true) where {IT<:Integer, FT<:Real, BFT<:RWG}计算某层采用 EFIE 时 RWG 基函数的辐射函数 aggSBF 、配置函数 disaggSBF。
MoM_Kernels.aggSBFOnLevelEFIE — MethodaggSBFOnLevelEFIE(level, trianglesInfo::Vector{TriangleInfo{IT, FT}},
bfsInfo) where {IT<:Integer, FT<:Real}计算某层采用 EFIE 时 RWG 基函数的辐射函数 aggSBF 、配置函数 disaggSBF , 输入为层信息 level 、三角形信息 trianglesInfo 和基函数信息 bfsInfo。
MoM_Kernels.aggSBFOnLevelMFIE! — MethodaggSBFOnLevelMFIE!(aggSBF, disaggSBF, level, trianglesInfo::Vector{TriangleInfo{IT, FT}},
::Type{BFT}; setzero = true) where {IT<:Integer, FT<:Real, BFT<:RWG}计算某层采用 MFIE 时在三角形上的 RWG 基函数的辐射函数 aggSBF 、配置函数 disaggSBF。
MoM_Kernels.aggSBFOnLevelMFIE — MethodaggSBFOnLevelMFIE(level, trianglesInfo::Vector{TriangleInfo{IT, FT}},
bfsInfo::Vector{RWG{IT, FT}}) where {IT<:Integer, FT<:Real}计算某层采用 MFIE 时在三角形上的 RWG 基函数的辐射函数 aggSBF 、配置函数 disaggSBF。
MoM_Kernels.anterpolate! — Method拉格朗日单步反插值
MoM_Kernels.anterpolate! — Method拉格朗日分步反插值
MoM_Kernels.anterpolate — Method拉格朗日单步反插值
MoM_Kernels.anterpolate — Method拉格朗日分步反插值
MoM_Kernels.calZfarI! — Method计算远区矩阵向量乘积
MoM_Kernels.calZnearCSC! — MethodcalZnearCSC!(level, geosInfo::AbstractVector{VSCellT},
Znear, bfT::Type{BFT} = VSBFTypes.sbfType) where {BFT<:BasisFunctionType, VSCellT<:SurfaceCellType}
calZnearCSC!(level, geosInfo::AbstractVector{VSCellT},
Znear, bfT::Type{BFT} = VSBFTypes.vbfType) where {BFT<:BasisFunctionType, VSCellT<:VolumeCellType}
calZnearCSC!(level, geosInfo::AbstractVector{VT},
Znear) where {VT<:AbstractVector}根据八叉树层信息 level 和几何信息 geosInfo 、基函数信息 bfsInfo 计算近场阻抗矩阵。
MoM_Kernels.calZnearCSC — MethodcalZnearCSC(level, geosInfo::Vector, bfsInfo::Vector)根据八叉树层信息 level 和几何信息 geosInfo 、基函数信息 bfsInfo 计算近场阻抗矩阵。
MoM_Kernels.calZnearCSCCFIE! — MethodcalZnearCSCCFIE!(level, trianglesInfo::Vector{TriangleInfo{IT, FT}},
Znear::ZnearT{CT}, ::Type{BFT}) where {IT<:Integer, FT<:Real, CT<:Complex{FT}, BFT<:RWG}采用 RWG 基函数计算 CFIE 面积分(SIE)阻抗矩阵近场元并将结果放在 ZnearCSC 稀疏矩阵中。
MoM_Kernels.calZnearCSCEFIE! — Method采用 PWC 基函数计算六面体 EFIE 的体积分(VIE)阻抗矩阵近场元并将结果放在ZnearCSC稀疏矩阵中
MoM_Kernels.calZnearCSCEFIE! — Method采用 RBF 基函数计算六面体 EFIE 的体积分(VIE)阻抗矩阵近场元并将结果放在ZnearCSC稀疏矩阵中
MoM_Kernels.calZnearCSCEFIE! — Method采用 PWC 基函数计算四面体 EFIE 的体积分(VIE)阻抗矩阵近场元并将结果放在ZnearCSC稀疏矩阵中
MoM_Kernels.calZnearCSCEFIE! — Method采用 SWG 基函数计算网格元 EFIE 的体积分(VIE)阻抗矩阵近场元并将结果放在ZnearCSC稀疏矩阵中
MoM_Kernels.calZnearCSCEFIE! — Method采用 RWG + RBF 基函数计算六面体 EFIE 的体积分(VIE)阻抗矩阵近场元并将结果放在ZnearCSC稀疏矩阵中
MoM_Kernels.calZnearCSCEFIE! — Method采用 RWG + SWG 基函数计算 三角形 + 四面体 EFIE 的体积分(VIE)阻抗矩阵近场元并将结果放在ZnearCSC稀疏矩阵中
MoM_Kernels.calZnearCSCEFIE! — Method采用 RWG 基函数计算 EFIE 面积分(SIE)阻抗矩阵近场元并将结果放在ZnearCSC稀疏矩阵中
MoM_Kernels.calZnearCSCEFIE! — Method采用 PWC + PWC 基函数计算 四面体 + 六面体 EFIE 的体积分(VIE)阻抗矩阵近场元并将结果放在ZnearCSC稀疏矩阵中
MoM_Kernels.calZnearCSCEFIE! — Method采用 RWG + PWC 基函数计算 三角形 + 四面体/六面体 EFIE 的体积分(VIE)阻抗矩阵近场元并将结果放在ZnearCSC稀疏矩阵中
MoM_Kernels.calZnearCSCEFIEnew! — Method采用 RBF 基函数计算六面体 EFIE 的体积分(VIE)阻抗矩阵近场元并将结果放在ZnearCSC稀疏矩阵中
MoM_Kernels.calZnearCSCMFIE! — Method采用 RWG 基函数计算 MFIE 面积分(SIE)阻抗矩阵近场元并将结果放在ZnearCSC稀疏矩阵中
MoM_Kernels.caladjZfarI! — Method计算远区矩阵的伴随矩阵向量乘积
MoM_Kernels.calαTransOnLevel! — Method计算 level 层的转移因子, 转移因子只存在于远亲组,每层远亲组最多有 7^3 - 3^3 = 316种结果
MoM_Kernels.coeffgreen — Methodcoeffgreen(n::Integer)归一化格林函数 (不包括$\frac{1}{4π}$项) 的展开系数函数,从 0 阶 到 n 阶:
\[\begin{aligned} g(R) &= \frac{e^{-jkR}}{R} = \sum_{n=0}^{SglrOrder}coeffgreen(n)R^{n-1}\\ coeffgreen(n) &= \frac{{-jk}^{n}}{n!}\\ \end{aligned}\]
MoM_Kernels.convergencePlot — Method计算完成后绘制收敛曲线
MoM_Kernels.cooraInCoorb — Method计算一维坐标coora在坐标corrb中的位置
MoM_Kernels.disagg2KidLevel! — Method向低层解聚 tLevel :: 本层 kLevel :: 子层
MoM_Kernels.disagg2KidLevel! — Method向低层解聚 tLevel :: 本层 kLevel :: 子层
MoM_Kernels.disagg2LeafLevel! — Method解聚到叶层
MoM_Kernels.disaggOnBF! — Method在叶层往测试基函数解聚
MoM_Kernels.electricJCal — Method计算给定三角形面片位置 r 处的电流 电流基函数公式为:Jₙ = Iₙfₙ 同一个三角形面片上存在三个基函数,因此 Jₜ = ∑ₜₙ₌₁³ Iₜₙfₜₙ 输入: r ::Vec3D{FT} ICoeff ::Vec3D{CT} 三角形上的三个基函数的计算得到的电流系数 triangleInfo ::TriangleInfo{IT, FT},三角形信息 输出值: Jtrir ::Complex{FT}, 三角形上加权后的电流
MoM_Kernels.electricJCal — Method计算所有三角形上的高斯求积点电流权重乘积 JₙᵢWᵢ 电流基函数公式为:Jₙ = Iₙfₙ 同一个三角形面片上存在三个基函数,因此 JₙᵢWᵢ = ∑ₜₙ₌₁³ Iₜₙlₜₙ/2Sₜₙ 输入: ICoeff ::Vector{Complex{FT}} 计算得到的电流系数 trianglesInfo ::Vector{TriangleInfo{IT, FT}},三角形信息 输出值: Jtri ::Marrix{Complex{FT}}, 三角形上加权后的电流
MoM_Kernels.excitationVectorCFIE! — Method计算平面波在 RWG 基函数上的激励向量 输入: source ::ST, 波源 trianglesInfo ::Vector{TriangleInfo{IT, FT}},保存三角形信息的向量 nbf ::Integer,基函数数目
MoM_Kernels.excitationVectorCFIE — Method计算平面波在给定三角形的三个 半RWG 基函数上的激励向量 输入: source ::ST, 波源 tri ::TriangleInfo{IT, FT},三角形信息
MoM_Kernels.excitationVectorCFIE — Method计算平面波在 RWG 基函数上的激励向量 输入: source ::ST, 波源 trianglesInfo ::Vector{TriangleInfo{IT, FT}},保存三角形信息的向量 nbf ::Integer,基函数数目
MoM_Kernels.excitationVectorEFIE! — Method计算平面波在 基函数 上的激励向量 输入: source ::ST, 平面波源 tetrasInfo ::Vector{TetrahedraInfo{IT, FT, CT}},保存四面体信息的向量 nbf ::Integer,基函数数量
MoM_Kernels.excitationVectorEFIE! — Method计算平面波在 基函数 上的激励向量 输入: source ::ST, 平面波源 hexasInfo ::Vector{HexahedraInfo{IT, FT, CT}},保存六面体信息的向量 nbf ::Integer,基函数数量
MoM_Kernels.excitationVectorEFIE! — Method计算平面波在 RWG 基函数上的激励向量 输入: source ::ST, 波源 trianglesInfo ::Vector{TriangleInfo{IT, FT}},保存三角形信息的向量 nbf ::Integer,基函数数目
MoM_Kernels.excitationVectorEFIE! — Method计算平面波在 基函数 上的激励向量 输入: source ::ST, 平面波源 tetrasInfo ::Vector{TetrahedraInfo{IT, FT, CT}},保存六面体信息的向量 nbf ::Integer,基函数数量
MoM_Kernels.excitationVectorEFIE — Method计算平面波在给定四面体的三个 PWC 基函数上的激励向量 输入: source ::ST, 波源 hexa ::HexahedraInfo{IT, FT, CT},六面体信息
MoM_Kernels.excitationVectorEFIE — Method计算平面波在给定六面体的六个 半SWG 基函数上的激励向量 输入: source ::ST, 波源 hexa ::HexahedraInfo{IT, FT, CT},六面体信息
MoM_Kernels.excitationVectorEFIE — Method计算平面波在给定四面体的三个 PWC 基函数上的激励向量 输入: source ::ST, 波源 tetra ::TetrahedraInfo{IT, FT, CT},四面体信息
MoM_Kernels.excitationVectorEFIE — Method计算平面波在给定四面体的四个 半SWG 基函数上的激励向量 输入: source ::ST, 波源 tetra ::TetrahedraInfo{IT, FT, CT},四面体信息
MoM_Kernels.excitationVectorEFIE — Method计算平面波在给定三角形的三个 半RWG 基函数上的激励向量 输入: source ::ST, 波源 tri ::TriangleInfo{IT, FT},三角形信息
MoM_Kernels.excitationVectorEFIE — Method计算平面波在 基函数 上的激励向量 输入: source ::ST, 平面波源 hexasInfo ::Vector{HexahedraInfo{IT, FT, CT}},保存六面体信息的向量 nbf ::Integer,基函数数量
MoM_Kernels.excitationVectorEFIE — Method计算平面波在 基函数 上的激励向量 输入: source ::ST, 平面波源 tetrasInfo ::Vector{TetrahedraInfo{IT, FT, CT}},保存四面体信息的向量 nbf ::Integer,基函数数量
MoM_Kernels.excitationVectorEFIE — Method计算平面波在 RWG 基函数上的激励向量 输入: source ::ST, 波源 trianglesInfo ::Vector{TriangleInfo{IT, FT}},保存三角形信息的向量 nbf ::Integer,基函数数目
MoM_Kernels.excitationVectorEFIE — Method计算平面波在 基函数 上的激励向量 输入: source ::ST, 平面波源 tetrasInfo ::Vector{TetrahedraInfo{IT, FT, CT}},保存六面体信息的向量 nbf ::Integer,基函数数量
MoM_Kernels.excitationVectorMFIE! — Method计算平面波在 RWG 基函数上的激励向量 输入: source ::ST, 波源 trianglesInfo ::Vector{TriangleInfo{IT, FT}},保存三角形信息的向量 nbf ::Integer,基函数数目
MoM_Kernels.excitationVectorMFIE — Method计算平面波在给定三角形的三个 半RWG 基函数上的激励向量 输入: source ::ST, 波源 tri ::TriangleInfo{IT, FT},三角形信息
MoM_Kernels.excitationVectorMFIE — Method计算平面波在 RWG 基函数上的激励向量 输入: source ::ST, 波源 trianglesInfo ::Vector{TriangleInfo{IT, FT}},保存三角形信息的向量 nbf ::Integer,基函数数目
MoM_Kernels.faceSingularityIg — MethodfaceSingularityIg(rgt::AbstractVector{FT}, tris::TriangleInfo{IT, FT}, area::FT, facen̂::AbstractVector{FT}) where {IT<:Integer, FT<:Real}计算场点rgt在源三角形tris上的奇异性,tris的面积为area,外法向量为facen̂。 计算结果为:
\[\begin{aligned} I_{gS} &= \int{g(R)dS'}\\ &= \sum_{n=0}^{SglrOrder}{coeffgreen(n)I^{n-1}_{RS}}\\ I^{n}_{RS} &= \int{R^{n}dS'} \end{aligned}\]
MoM_Kernels.faceSingularityIg — MethodfaceSingularityIg(rgt::AbstractVector{FT}, tris::Tris4Tetra{IT, FT}, area::FT, facen̂::AbstractVector{FT}) where {IT<:Integer, FT<:Real}计算场点rgt在源三角形tris(该三角形为组成四面体的某一面)上的奇异性,tris的面积为area,外法向量为facen̂。 计算结果为:
\[\begin{aligned} I_{gS} &= \int{g(R)dS'}\\ &= \sum_{n=0}^{SglrOrder}{coeffgreen(n)I^{n-1}_{RS}}\\ I^{n}_{RS} &= \int{R^{n}dS'} \end{aligned}\]
MoM_Kernels.faceSingularityIg — MethodfaceSingularityIg(rgt::AbstractVector{FT}, polys::ST, area::FT,
facen̂::AbstractVector{FT}) where {IT<:Integer, FT<:Real, ST<:SurfaceCellType{IT, FT}}计算场点rgt在多边形polys上的奇异性,polys的面积为area,外法向量为facen̂。 计算结果为:
\[\begin{aligned} I_{gS} &= \int{g(R)dS'}\\ &= \sum_{n=0}^{SglrOrder}{coeffgreen(n)I^{n-1}_{RS}}\\ I^{n}_{RS} &= \int{R^{n}dS'} \end{aligned}\]
MoM_Kernels.faceSingularityIgIvecg — MethodfaceSingularityIgIvecg(rgt::AbstractVector{FT}, polys::ST, area,
facen̂::AbstractVector) where {FT<:Real, ST<:SurfaceCellType{IT, FT}}计算场点rgt在多边形polys上的奇异性,polys的面积为area,外法向量为facen̂。 计算结果为:
\[\begin{aligned} I_{gS} &= \int{g(R)dS'}\\ &= \sum_{n=0}^{SglrOrder}{coeffgreen(n)I^{n-1}_{RS}}\\ \boldsymbol{I}_{gS} &= \int{\boldsymbol{R}g(R)dS'}\\ &= \sum_{l_j}{\hat{\bm{u}}_j \sum_{n=0}^{SglrOrder}{\frac{coeffgreen(n)}{n+1}I^{n-1}_{lr}}} + d\bm{n}I^{n-1}_{gS}\\ \end{aligned}\]
MoM_Kernels.faceSingularityIgIvecgI∇gS — Method面上的近奇异性 rgt, 为场三角形的求积点 tris::TriangleInfo{IT, FT}, 源三角形信息 计算得到结果:: IgS = ∫ g(R) dS' = ∑ₙ₌₀(coeffgreen(n)IR[n-1]) IvecgS = ∫ Rvec g(R) dS' = ∑ₗⱼ ûⱼ ∑ₙ₌₀(coeffgreen(n)/(n+1)Ilᵣ[n-1]) + dn̂IgS I∇gS = ∫ ∇g(R) dS' = ∑ₙ₌₀VSC₃ⁿ*(-1/(n+2)∑ₗⱼûⱼIlᵣ[n+2] + dn̂IgS )
MoM_Kernels.faceSingularityIᵣIᵨ — Method面上的近奇异性 rgts::MMatrix{GQPNTriSglr, 3, Complex{FT}}, 为场三角形的所有高斯求积点 tris::TriangleInfo{IT, FT}, 源三角形信息 计算得到结果:: r0tProj2s::MMatrix{3, GQPNTriSglr, Complex{FT}, 3GQPNTriSglr}, 积分点在源三角形上的投影点 Iᵣ = ∫ 1/R dS' = ∑₁³(p02ilfᵢ - dtsAbsβᵢ) Iᵨ = ∫ ρ/R dS' = 0.5∑₁³{ûᵢ[(R0^2fᵢ + li⁺R⁺ - li⁻*R⁻)]}
MoM_Kernels.farEPlot — MethodfarE 绘图
MoM_Kernels.farField — Method在球坐标为r̂θϕ处计算辐射积分,采用RWG基函数时,三角形上没有统一的电流值,每一点上都是三边电流的叠加, 此时: N(θ, ϕ) = ∑ₙ(∫ₛ Jˢ exp( jkr̂(θ, ϕ)⋅rₙ ) dS) = ∑ₙ(∫ₛ (∑ₜₙ₌₁³ Iₙfₙ)exp(jkr̂(θ, ϕ)⋅rₙ) dS) = ∑ₙ(Sₜ (∑ₜₙ₌₁³ Iₙlₙρₙ/(2Sₙ))exp(jkr̂(θ, ϕ)⋅rₙ) ) = ∑ₙ(∑ᵢWᵢ(∑ₜₙ₌₁³ Iₙlₙρₙ/2)exp(jkr̂(θ, ϕ)⋅rₙ) )
MoM_Kernels.farField — Method在球坐标为r̂θϕ处计算辐射积分,采用SWG基函数时,四面体上没有统一的电流值,每一点上都是四个SWG基函数电流的叠加, 此时: N(θ, ϕ) = ∑ₙ(∫ₛ Jˢ exp( jkr̂(θ, ϕ)⋅rₙ ) dS) = ∑ₙ(∫ₛ (∑ₜₙ₌₁³ Iₙfₙ)exp(jkr̂(θ, ϕ)⋅rₙ) dS) = ∑ₙ(Sₜ (∑ₜₙ₌₁³ Iₙsₙρₙ/(3Vₙ))exp(jkr̂(θ, ϕ)⋅rₙ) ) = ∑ₙ(∑ᵢWᵢ(∑ₜₙ₌₁³ Iₙsₙρₙ/3)exp(jkr̂(θ, ϕ)⋅rₙ) )
MoM_Kernels.farField — Method在球坐标为r̂θϕ处计算辐射积分,采用RWG基函数时,三角形上没有统一的电流值,每一点上都是三边电流的叠加, 此时: N(θ, ϕ) = ∑ₙ(∫ₛ Jˢ exp( jkr̂(θ, ϕ)⋅rₙ ) dS) = ∑ₙ(∫ₛ (∑ₜₙ₌₁³ Iₙfₙ)exp(jkr̂(θ, ϕ)⋅rₙ) dS) = ∑ₙ(Sₜ (∑ₜₙ₌₁³ Iₙlₙρₙ/(2Sₙ))exp(jkr̂(θ, ϕ)⋅rₙ) ) = ∑ₙ(∑ᵢWᵢ(∑ₜₙ₌₁³ Iₙlₙρₙ/2)exp(jkr̂(θ, ϕ)⋅rₙ) )
MoM_Kernels.farField — Method在球坐标为r̂θϕ处计算辐射积分,采用SWG基函数时,四面体上没有统一的电流值,每一点上都是四个SWG基函数电流的叠加, 此时: N(θ, ϕ) = ∑ₙ(∫ₛ Jˢ exp( jkr̂(θ, ϕ)⋅rₙ ) dS) = ∑ₙ(∫ₛ (∑ₜₙ₌₁³ Iₙfₙ)exp(jkr̂(θ, ϕ)⋅rₙ) dS) = ∑ₙ(Sₜ (∑ₜₙ₌₁³ Iₙsₙρₙ/(3Vₙ))exp(jkr̂(θ, ϕ)⋅rₙ) ) = ∑ₙ(∑ᵢWᵢ(∑ₜₙ₌₁³ Iₙsₙρₙ/3)exp(jkr̂(θ, ϕ)⋅rₙ) )
MoM_Kernels.func4Cube1stkInterval — Methodfunc4Cube1stkInterval(cube::CubeInfo)
func4Cube1stkInterval(i::T) where T
func4Cube1stkInterval(interval::T) where T <: UnitRange
func4CubelastkInterval(cube::CubeInfo)
func4CubelastkInterval(i::T) where T
func4CubelastkInterval(interval::T) where T这六个函数用于寻找盒子的子盒子区间内的比较函数,多重分派以实现不同数据类型的比较。
MoM_Kernels.geoElectricJCal — Method计算六面体上的电流。 分片常数基 PWC 基函数 电流基函数公式为:Jₙ = κₙIₙfₙ 同一个六面体面片上存在 x̂, ŷ, ẑ 方向的三个基函数,因此 Jₜ = κₜ ∑ₜₙ₌₁³Iₜₙfₜₙ 输入: ICoeff ::Vector{Complex{FT}} 计算得到的电流系数 hexasInfo ::Vector{HexahedraInfo{IT, FT, CT}}, 输出值: Jhexa ::Marrix{Complex{FT}}, 六面体上的电流
MoM_Kernels.geoElectricJCal — Method计算六面体上的电流。 分片常数基 RBF 基函数 电流基函数公式为:Jₙ = κₙIₙfₙ 同一个六面体面片上存在 6 或 3 个基函数,因此 Jₜ = ∑ₜₙ₌₁ Iₜₙfₜₙ 输入: ICoeff ::Vector{Complex{FT}} 计算得到的电流系数 hexasInfo ::Vector{HexahedraInfo{IT, FT, CT}}, 输出值: Jhexa ::Marrix{Complex{FT}}, 六面体上加权后的电流
MoM_Kernels.geoElectricJCal — Method计算四面体上的电流。 分片常数基 PWC 基函数 电流基函数公式为:Jₙ = κₙIₙfₙ 同一个四面体面片上存在 x̂, ŷ, ẑ 方向的三个基函数,因此 Jₜ = κₜ ∑ₜₙ₌₁³Iₜₙfₜₙ 输入: ICoeff ::Vector{Complex{FT}} 计算得到的电流系数 tetrasInfo ::Vector{TetrahedraInfo{IT, FT, CT}}, 输出值: Jtetra ::Marrix{Complex{FT}}, 四面体上的电流
MoM_Kernels.geoElectricJCal — Method计算四面体上的电流。 分片常数基 SWG 基函数 电流基函数公式为:Jₙ = κₙIₙfₙ 同一个四面体面片上存在四个基函数,因此 Jₜ = ∑ₜₙ₌₁⁴ Iₜₙfₜₙ 输入: ICoeff ::Vector{Complex{FT}} 计算得到的电流系数 tetrasInfo ::Vector{TetrahedraInfo{IT, FT, CT}}, 输出值: Jtetra ::Marrix{Complex{FT}}, 四面体上加权后的电流
MoM_Kernels.geoElectricJCal — Method计算三角形面片上的加权电流。 电流基函数公式为:Jₙ = Iₙfₙ 同一个三角形面片上存在三个基函数,因此 Jₜ = ∑ₜₙ₌₁³ Iₜₙfₜₙ 输入: ICoeff ::Vector{Complex{FT}} 计算得到的电流系数 trianglesInfo ::Vector{TriangleInfo{IT, FT}},三角形信息 输出值: Jtri ::Marrix{Complex{FT}}, 三角形上加权后的电流
MoM_Kernels.getAggSBFOnLevel — Method根据积分方程类型计算基层聚合项
MoM_Kernels.getAggSBFOnLevel — Method根据积分方程类型计算基层聚合项
MoM_Kernels.getAggSBFOnLevel — Method根据积分方程类型计算基层聚合项
MoM_Kernels.getBfsCenter — Method计算基函数中心的数组,用于方便混合基函数使用时的情况
MoM_Kernels.getBfsCenter — Method计算基函数中心的数组,用于方便混合基函数使用时的情况
MoM_Kernels.getCubeIDsWithGeos — Method找到 geosInfo 所在的所有 cude id
MoM_Kernels.getExcitationVector — Method根据几何信息与基函数数量,计算激励向量 输入: geosInfo:: 几何信息,三角形、四面体、六面体的向量 nbf:: 基函数数量 source:: 激励源 返回: V:: 激励向量
MoM_Kernels.getExcitationVector — Method根据几何信息与基函数数量,计算激励向量 输入: geosInfo:: 几何信息,三角形、四面体、六面体的向量 nbf:: 基函数数量 source:: 激励源 返回: V:: 激励向量
MoM_Kernels.getExcitationVector — Method根据几何信息与基函数数量,计算激励向量 输入: geosInfo:: 几何信息,三角形、四面体、六面体的向量 nbf:: 基函数数量 source:: 激励源 返回: V:: 激励向量
MoM_Kernels.getGeoIDsInCubeChunk — MethodgetGeoIDsInCubeChunk(cubes, chunkIndice::Tuple)
getGeoIDsInCubeChunk(cubes, ckunkIndice::UnitRange)获取 ckunkIndice 内的所有 cubes 的编号, 返回为 Tuple 形式以适应数组索引相关API
MoM_Kernels.getGeosInterval — MethodgetGeosInterval(geosInfo::T) where {T<:AbstractVector}
getGeosInterval(geosInfo::T) where {T<:OffsetVector}获取几何信息数组的区间,针对普通 Vector 和 OffsetVector 分别派发。
MoM_Kernels.getImpedanceMatAndExciteV — Method根据几何信息与基函数数量,计算阻抗矩阵和激励向量 输入: geosInfo:: 几何信息,三角形、四面体、六面体的向量 nbf:: 基函数数量 source:: 激励源 返回: Zmat:: 阻抗矩阵 V:: 激励向量
MoM_Kernels.getImpedanceMatAndExciteV — Method根据几何信息与基函数数量,计算阻抗矩阵和激励向量 输入: geosInfo:: 几何信息,三角形、四面体、六面体的向量 bfsInfo:: 基函数信息 source:: 激励源 返回: Zmat:: 阻抗矩阵 V:: 激励向量
MoM_Kernels.getImpedanceMatrix — Method根据几何信息与基函数数量,计算阻抗矩阵 输入: geosInfo:: 几何信息,三角形、四面体、六面体的向量 nbf:: 基函数数量 返回: Zmat
MoM_Kernels.getImpedanceOpt — Method根据几何信息与基函数数量,计算阻抗矩阵算子 输入: geosInfo:: 几何信息,三角形、四面体、六面体的向量 nbf:: 基函数数量 source:: 激励源 返回: Zopt:: 阻抗矩阵算子,由近场稀疏矩阵和远场八叉树聚合、转移、解聚组成 V:: 激励向量 Octree:: 八叉树 Znear:: 阻抗矩阵近场元
MoM_Kernels.getImpedanceOptAndExciteVOctree — Method根据几何信息与基函数数量,计算阻抗矩阵算子和激励向量 输入: geosInfo:: 几何信息,三角形、四面体、六面体的向量 nbf:: 基函数数量 source:: 激励源 返回: Zopt:: 阻抗矩阵算子,由近场稀疏矩阵和远场八叉树聚合、转移、解聚组成 V:: 激励向量 Octree:: 八叉树 Znear:: 阻抗矩阵近场元
MoM_Kernels.getLeafCubeL — Method六面体从网格平均尺寸设置整体的叶层盒子边长
MoM_Kernels.getLeafCubeL — Method四面体从网格平均尺寸设置整体的叶层盒子边长
MoM_Kernels.getLeafCubeL — Method三角形面网格直接设置为的叶层盒子边长
MoM_Kernels.getLeafCubeL — Method混合网格从第2类里的网格平均尺寸设置整体的叶层盒子边长
MoM_Kernels.getMeshDataSaveGeosInterval — MethodgetMeshDataSaveGeosInterval(filename[; meshUnit=:mm, dir = "temp/GeosInfo"])在获取网格数据 meshData 和介电参数 εᵣs 的同时保存网格数据 meshData 中各类型网格的区间。
MoM_Kernels.getNeiFarNeighborCubeIDs — MethodgetNeiFarNeighborCubeIDs(cubes, chunkIndice::Tuple)获取 ckunkIndice 内的所有 cubes 的 远亲盒子 序号, 返回为 Tuple 形式以适应数组索引相关 API。
MoM_Kernels.getNeighborCubeIDs — MethodgetNeighborCubeIDs(cubes, chunkIndice::Tuple)
getNeighborCubeIDs(cubes, chunkIndice::AbstractVector)获取 ckunkIndice 内的所有 cubes 的 邻盒子 编号, 返回为 Tuple 形式以适应数组索引相关API
MoM_Kernels.getOctreeAndReOrderBFs! — Method根据基函数中心位置构建八叉树,并重排基函数信息、将新基函数 ID 赋值给几何元信息数组 返回值: nLevels:: 层数 octree:: 得到的八叉树 leafCubeEdgel:: 控制叶层盒子大小 isDistribute:: 控制是否为分布式计算
MoM_Kernels.get_Interpolation_Method — Methodget_Interpolation_Method(method::Symbol)
get_Interpolation_Method(method::Union{Val{:Lagrange2Step}, Val{:Lagrange1Step}})获取插值算法。
MoM_Kernels.get_chunks_minmax_col — Methodget_chunks_minmax_col(matchunks)TBW
MoM_Kernels.get_leafCubeSize — Method获取叶层盒子边长
MoM_Kernels.get_partition — Methodget_partition(nCubes, sizePoles, np)根据给定的盒子数 nCubes 、多极子数 sizePoles、进程数 np 返回该层辐射函数的三个维度的划分数量。
MoM_Kernels.get_partition_map — Methodget_partition_map(partition, kcubeIndices)根据 partition 计算在盒子方向本层所有 rank 到子层所有 rank 的 map 。
MoM_Kernels.gq_xsws_on_sphere — Methodgq_xsws_on_sphere(L)
计算单位球面 2(L+1) 阶高斯求积的采样点坐标权重TBW
MoM_Kernels.greenfunc_star — Methodgreenfunc_star(pa::Vec3D{T}, pb::Vec3D{T}[; k=Params.K_0, taylorOrder = SglrOrder]) where {T<:AbstractFloat}归一化格林函数 $4πG(R)$ 泰勒展开后去奇异项:
\[g^{*}(R) = \frac{e^{-jkR}}{R} - \frac{1}{R} = \sum_{n=1}^{SglrOrder}\frac{{-jk}^{n}}{n!}R^{n-1}.\]
MoM_Kernels.iluPrecondition — MethodiluPrecondition(A, level; τ = 1e-3)从 (IncompleteLU.jl)[https://github.com/haampie/IncompleteLU.jl.git] 包实现ilu, 再次封装是因为要加入一些判断
MoM_Kernels.impedancemat4CFIE4PEC — Method本函数用于计算PEC的CFIE阻抗矩阵。 输入信息: trianglesInfo: 为包含三角形信息实例的向量 nrwg : 基函数数目 返回值 Zmat : 阻抗矩阵
注意,此程序由于采用的对三角形循环计算,因此在并行化时,会出现不同线程计算出同一个矩阵元,导致写入冲突,因此要加线程锁保证结果写入正确
MoM_Kernels.impedancemat4EFIE4PEC! — Method本函数用于在有矩阵的情况下计算PEC的EFIE阻抗矩阵。 输入信息: Zmat trianglesInfo: 为包含三角形信息实例的向量 nrwg : 基函数数目 返回值 Zmat : 阻抗矩阵
注意,此程序由于采用的对三角形循环计算,因此在并行化时,会出现不同线程计算出同一个矩阵元,导致写入冲突,因此要加线程锁保证结果写入正确
MoM_Kernels.impedancemat4EFIE4PEC — Method本函数用于计算PEC的EFIE阻抗矩阵。 输入信息: trianglesInfo: 为包含三角形信息实例的向量 nrwg : 基函数数目 返回值 Zmat : 阻抗矩阵
注意,此程序由于采用的对三角形循环计算,因此在并行化时,会出现不同线程计算出同一个矩阵元,导致写入冲突,因此要加线程锁保证结果写入正确
MoM_Kernels.impedancemat4MFIE4PEC — Method本函数用于计算PEC的MFIE阻抗矩阵。 输入信息: trianglesInfo: 为包含三角形信息实例的向量 nrwg : 基函数数目 返回值 Zmat : 阻抗矩阵
注意,此程序由于采用的对三角形循环计算,因此在并行化时,会出现不同线程计算出同一个矩阵元,导致写入冲突,因此要加线程锁保证结果写入正确
MoM_Kernels.impedancemat4RWGPWC! — MethodRWG + PWC 部分的阻抗矩阵
MoM_Kernels.impedancemat4RWGPWC! — MethodRWG + PWC 部分的阻抗矩阵
MoM_Kernels.impedancemat4RWGRBF! — MethodRWG + RBF 部分的阻抗矩阵
MoM_Kernels.impedancemat4RWGSWG! — MethodRWG + SWG 部分的阻抗矩阵
MoM_Kernels.impedancemat4VIE! — Method本函数用于计算介质体的 PWC 基函数下的 EFIE 阻抗矩阵。 输入信息: hexasInfo::AbstractVector{HexahedraInfo{IT, FT, CT}}, 为包含六面体信息实例的向量 tetrasInfo::AbstractVector{TetrahedraInfo{IT, FT, CT}}, 为包含四面体信息实例的向量 nPWC : 基函数数目 返回值 Zmat : 阻抗矩阵
MoM_Kernels.impedancemat4VIE! — Method本函数用于计算介质体的 PWC 基函数下的 EFIE 阻抗矩阵。 输入信息: hexasInfo : 为包含六面体信息实例的向量 nrwg : 基函数数目 返回值 Zmat : 阻抗矩阵
MoM_Kernels.impedancemat4VIE! — Method本函数用于计算介质的EFIE阻抗矩阵。 输入信息: hexasInfo : 为包含六面体信息实例的向量 nrbf : 基函数数目 返回值 Zmat : 阻抗矩阵
注意,此程序由于采用的对六面体循环计算,因此在并行化时,会出现不同线程计算出同一个矩阵元,导致写入冲突,因此要加线程锁保证结果写入正确
MoM_Kernels.impedancemat4VIE! — Method本函数用于计算介质体的 PWC 基函数下的 EFIE 阻抗矩阵。 输入信息: hexasInfo::AbstractVector{HexahedraInfo{IT, FT, CT}}, 为包含六面体信息实例的向量 tetrasInfo::AbstractVector{TetrahedraInfo{IT, FT, CT}}, 为包含四面体信息实例的向量 nPWC : 基函数数目 返回值 Zmat : 阻抗矩阵
MoM_Kernels.impedancemat4VIE! — Method本函数用于计算介质体的 PWC 基函数下的 EFIE 阻抗矩阵。 输入信息: tetrasInfo : 为包含四面体信息实例的向量 nrwg : 基函数数目 返回值 Zmat : 阻抗矩阵
MoM_Kernels.impedancemat4VIE! — Method本函数用于计算介质的 EFIE 阻抗矩阵。 输入信息: Zmat : 已初始化的阻抗矩阵 tetrasInfo : 为包含四面体信息实例的向量 nswg : 基函数数目 返回值 Zmat : 阻抗矩阵
注意,此程序由于采用的对四面体循环计算,因此在并行化时,会出现不同线程计算出同一个矩阵元,导致写入冲突,因此要加线程锁保证结果写入正确
MoM_Kernels.impedancemat4VIE — Method本函数用于计算介质体的 PWC 基函数下的 EFIE 阻抗矩阵。 输入信息: hexasInfo : 为包含六面体信息实例的向量 nPWC : 基函数数目 返回值 Zmat : 阻抗矩阵
MoM_Kernels.impedancemat4VIE — Method本函数用于计算介质的EFIE阻抗矩阵。 输入信息: hexasInfo : 为包含六面体信息实例的向量 nrbf : 基函数数目 返回值 Zmat : 阻抗矩阵
注意,此程序由于采用的对六面体循环计算,因此在并行化时,会出现不同线程计算出同一个矩阵元,导致写入冲突,因此要加线程锁保证结果写入正确
MoM_Kernels.impedancemat4VIE — Method本函数用于计算介质体的 PWC 基函数下的 EFIE 阻抗矩阵。 输入信息: tetrasInfo : 为包含四面体信息实例的向量 nrwg : 基函数数目 返回值 Zmat : 阻抗矩阵
MoM_Kernels.impedancemat4VIE — Method本函数用于计算介质的EFIE阻抗矩阵。 输入信息: tetrasInfo : 为包含四面体信息实例的向量 nswg : 基函数数目 返回值 Zmat : 阻抗矩阵
注意,此程序由于采用的对四面体循环计算,因此在并行化时,会出现不同线程计算出同一个矩阵元,导致写入冲突,因此要加线程锁保证结果写入正确
MoM_Kernels.impedancemat4VIE — Method本函数用于计算混合网格(四面体+六面体)下介质体的 PWC 基函数下的 EFIE 阻抗矩阵。 输入信息: geosInfo : 为包含四面体信息实例的向量 nPWC : 基函数数目 返回值 Zmat : 阻抗矩阵
MoM_Kernels.impedancemat4VSIE — Method计算VSIE的矩阵
MoM_Kernels.impedancemat4VSIERWGPWC — Method本函数用于计算金属介质混合体的EFIE阻抗矩阵。 输入信息: geosInfo : 为包含几何体信息实例的向量 nbf : 基函数数目 返回值 Zmat : 阻抗矩阵
注意,此程序由于采用的对网格元(几何体)循环计算,因此在并行化时,会出现不同线程计算出同一个矩阵元,导致写入冲突,因此要加线程锁保证结果写入正确
MoM_Kernels.impedancemat4VSIERWGRBF — Method本函数用于计算金属介质混合体的EFIE阻抗矩阵。 输入信息: geosInfo : 为包含几何体信息实例的向量 nbf : 基函数数目 返回值 Zmat : 阻抗矩阵
注意,此程序由于采用的对网格元(几何体)循环计算,因此在并行化时,会出现不同线程计算出同一个矩阵元,导致写入冲突,因此要加线程锁保证结果写入正确
MoM_Kernels.impedancemat4VSIERWGSWG — Method本函数用于计算金属介质混合体的EFIE阻抗矩阵。 输入信息: geosInfo : 为包含几何体信息实例的向量 nbf : 基函数数目 返回值 Zmat : 阻抗矩阵
注意,此程序由于采用的对网格元(几何体)循环计算,因此在并行化时,会出现不同线程计算出同一个矩阵元,导致写入冲突,因此要加线程锁保证结果写入正确
MoM_Kernels.initialVMulZchunks! — Method初始化 阻抗矩阵 右乘 向量 乘积的 分布式数组
MoM_Kernels.initialZchunksMulV! — Method初始化 阻抗矩阵 左乘 向量 乘积的 分布式数组
MoM_Kernels.initialZnearCSC — MethodinitialZnearCSC(level, nbf::Int)根据八叉树层信息 level 初始化近场阻抗矩阵。
MoM_Kernels.initialZnearCSR — MethodinitialZnearCSR(level, nbf::Int)根据八叉树层信息 level 初始化近场阻抗矩阵,用 transpose 实现 CSR 压缩稀疏行。
MoM_Kernels.initialZnearChunks — MethodinitialZnearChunks(cube, cubes::AbstractVector; CT = Complex{Precision.FT})根据八叉树某个盒子 cube 信息初始化 cube 对应的近场矩阵元块。
MoM_Kernels.inputParameters — MethodinputParameters(;args...)用于输入仿真参数,并修改奇异性处理中频率相关常量。 详见 MoM_Basics.inputBasicParameters 和 modiSingularityRelatedConsts!。
MoM_Kernels.integral1DXW — Method计算分别采用高斯求积、中点求积计算 θ,ϕ 方向的采样点的坐标、权重 lb::FT, 积分区域下界 hb::FT, 积分区域上界 Nsample::IT, 采样点数 mod::Symbol, 模式,接受 :uni, 均值积分 :glq, 高斯-勒让德积分 两种模式
MoM_Kernels.interpolate! — Method拉格朗日单步插值
MoM_Kernels.interpolate! — Method拉格朗日分步插值
MoM_Kernels.interpolate — Method拉格朗日单步插值
MoM_Kernels.interpolate — Method拉格朗日分步插值
MoM_Kernels.interpolationCSCMatCal — Method采用局部插值、两步插值法,计算局部坐标到全局坐标的稀疏插值矩阵,Julia数据存储为列主的,因此使用 压缩稀疏列(Compressed Sparse Column, CSC) pLevelPoles::GLPolesInfo{FT}, 父层多极子信息 tLevelPoles::GLPolesInfo{FT}, 本层多极子信息
MoM_Kernels.iterSolverSet — Method迭代求解器选择
MoM_Kernels.levelIntegralInfoCal — Method计算八叉树的积分相关信息,包括截断项、各层积分点和求积权重数据 输入: levelCubeEdgel::FT, 层盒子边长, 一般叶层为0.25λ,其中 λ 为区域局部波长。 返回值 L ::IT, 层 截断项 levelsPoles ::Vector{GLPolesInfo{FT}},从叶层到第 “2” 层的角谱空间采样信息
MoM_Kernels.loadCurrent — Method读取电流系数
MoM_Kernels.loadGeoInterval — Methodset_geosInterval!(fn)载入文件 fn 读取网格数据区间。
MoM_Kernels.memoryAllocationOnLevels! — Method预分配各层上的聚合项、解聚项
MoM_Kernels.modiSingularityRelatedConsts! — Method用于输入参数(特指频率)改变时的更改相关常数项
MoM_Kernels.octreeXWNCal — Method计算各层八叉树求积坐标、求积权重 lb::FT, 积分区域下界 hb::FT, 积分区域上界 nlevels::IT, 八叉树叶层ID mod::Symbol, 模式,接受 :uni, 均值积分(ϕ方向) :glq, 高斯-勒让德积分(θ方向) 两种模式
MoM_Kernels.pickCycleVec — Method根据循环向量 cycleVec 的周期性索引超出上下界的 index 对应的值
MoM_Kernels.pickθ — Method利用 θ 在极点附近的对称性计算索引超出上下界的 θ 值
MoM_Kernels.pickϕ — Method利用 ϕ 的周期性索引超出上下界的 ϕ 值
MoM_Kernels.radarCrossSection — Method在球坐标为r̂θϕ处计算辐射积分,采用SWG基函数时,四面体上没有统一的电流值,每一点上都是四个SWG基函数电流的叠加, 此时: N(θ, ϕ) = ∑ₙ(∫ₛ Jˢ exp( jkr̂(θ, ϕ)⋅rₙ ) dS) = ∑ₙ(∫ₛ (∑ₜₙ₌₁³ Iₙfₙ)exp(jkr̂(θ, ϕ)⋅rₙ) dS) = ∑ₙ(Sₜ (∑ₜₙ₌₁³ Iₙsₙρₙ/(3Vₙ))exp(jkr̂(θ, ϕ)⋅rₙ) ) = ∑ₙ(∑ᵢWᵢ(∑ₜₙ₌₁³ Iₙsₙρₙ/3)exp(jkr̂(θ, ϕ)⋅rₙ) )
MoM_Kernels.radarCrossSection — Method在球坐标为r̂θϕ处计算辐射积分,采用RWG基函数时,三角形上没有统一的电流值,每一点上都是三边电流的叠加, 此时: N(θ, ϕ) = ∑ₙ(∫ₛ Jˢ exp( jkr̂(θ, ϕ)⋅rₙ ) dS) = ∑ₙ(∫ₛ (∑ₜₙ₌₁³ Iₙfₙ)exp(jkr̂(θ, ϕ)⋅rₙ) dS) = ∑ₙ(Sₜ (∑ₜₙ₌₁³ Iₙlₙρₙ/(2Sₙ))exp(jkr̂(θ, ϕ)⋅rₙ) ) = ∑ₙ(∑ᵢWᵢ(∑ₜₙ₌₁³ Iₙlₙρₙ/2)exp(jkr̂(θ, ϕ)⋅rₙ) )
MoM_Kernels.radarCrossSection — Method在球坐标为r̂θϕ处计算辐射积分,采用SWG基函数时,四面体上没有统一的电流值,每一点上都是四个SWG基函数电流的叠加, 此时: N(θ, ϕ) = ∑ₙ(∫ₛ Jˢ exp( jkr̂(θ, ϕ)⋅rₙ ) dS) = ∑ₙ(∫ₛ (∑ₜₙ₌₁³ Iₙfₙ)exp(jkr̂(θ, ϕ)⋅rₙ) dS) = ∑ₙ(Sₜ (∑ₜₙ₌₁³ Iₙsₙρₙ/(3Vₙ))exp(jkr̂(θ, ϕ)⋅rₙ) ) = ∑ₙ(∑ᵢWᵢ(∑ₜₙ₌₁³ Iₙsₙρₙ/3)exp(jkr̂(θ, ϕ)⋅rₙ) )
MoM_Kernels.raditionalIntegralNCal — Method在设定好的观测角度上的球坐标处计算辐射积分,采用RWG基函数时,三角形上没有统一的电流值,每一点上都是三边电流的叠加, 此时: N(θ, ϕ) = ∑ₙ(∫ₛ Jˢ exp( jkr̂(θ, ϕ)⋅rₙ ) dS) = ∑ₙ(∫ₛ (∑ₜₙ₌₁³ Iₙfₙ)exp(jkr̂(θ, ϕ)⋅rₙ) dS) = ∑ₙ(Sₜ (∑ₜₙ₌₁³ Iₙlₙρₙ/(2Sₙ))exp(jkr̂(θ, ϕ)⋅rₙ) ) = ∑ₙ(∑ᵢWᵢ(∑ₜₙ₌₁³ Iₙlₙρₙ/2)exp(jkr̂(θ, ϕ)⋅rₙ) )
MoM_Kernels.raditionalIntegralNθϕCal — Method在球坐标为r̂θϕ处计算辐射积分,采用 RBF 基函数时,六面体上没有统一的电流值 N(θ, ϕ) = ∑ₙ(∫ₛ Jˢ exp( jkr̂(θ, ϕ)⋅rₙ ) dV)
MoM_Kernels.raditionalIntegralNθϕCal — Method在球坐标为r̂θϕ处计算辐射积分,采用 SWG 基函数时,四面体上没有统一的电流值,每一点上都是四面电流的叠加, 此时: N(θ, ϕ) = ∑ₙ(∫ₛ Jˢ exp( jkr̂(θ, ϕ)⋅rₙ ) dV) = ∑ₙ(∫ₛ (∑ₜₙ₌₁⁴ Iₙfₙ)exp(jkr̂(θ, ϕ)⋅rₙ) dV) = ∑ₙ(Sₜ (∑ₜₙ₌₁⁴ IₙSₙρₙ/(3Vₙ))exp(jkr̂(θ, ϕ)⋅rₙ) ) = ∑ₙ(∑ᵢWᵢ(∑ₜₙ₌₁⁴ IₙSₙρₙ/3)exp(jkr̂(θ, ϕ)⋅rₙ) )
MoM_Kernels.raditionalIntegralNθϕCal — Method在球坐标为r̂θϕ处计算辐射积分,采用RWG基函数时,三角形上没有统一的电流值,每一点上都是三边电流的叠加, 此时: N(θ, ϕ) = ∑ₙ(∫ₛ Jˢ exp( jkr̂(θ, ϕ)⋅rₙ ) dS) = ∑ₙ(∫ₛ (∑ₜₙ₌₁³ Iₙfₙ)exp(jkr̂(θ, ϕ)⋅rₙ) dS) = ∑ₙ(Sₜ (∑ₜₙ₌₁³ Iₙlₙρₙ/(2Sₙ))exp(jkr̂(θ, ϕ)⋅rₙ) ) = ∑ₙ(∑ᵢWᵢ(∑ₜₙ₌₁³ Iₙlₙρₙ/2)exp(jkr̂(θ, ϕ)⋅rₙ) )
MoM_Kernels.raditionalIntegralNθϕCal — Method在球坐标为r̂θϕ处计算辐射积分,采用RWG基函数时,三角形上没有统一的电流值,每一点上都是三边电流的叠加, 此时: N(θ, ϕ) = ∑ₙ(∫ₛ Jˢ exp( jkr̂(θ, ϕ)⋅rₙ ) dS) = ∑ₙ(∫ₛ (∑ₜₙ₌₁³ Iₙfₙ)exp(jkr̂(θ, ϕ)⋅rₙ) dS) = ∑ₙ(Sₜ (∑ₜₙ₌₁³ Iₙlₙρₙ/(2Sₙ))exp(jkr̂(θ, ϕ)⋅rₙ) ) = ∑ₙ(∑ᵢWᵢ(∑ₜₙ₌₁³ Iₙlₙρₙ/2)exp(jkr̂(θ, ϕ)⋅rₙ) )
MoM_Kernels.reOrderBasisFunctionAndGeoInfo! — Method根据按八叉树重新排序的id重排基函数信息
MoM_Kernels.reOrderBasisFunctionAndGeoInfo! — Method根据按八叉树重新排序的id重排基函数信息,此函数适用于 PWC 基函数的情况
MoM_Kernels.reOrderBasisFunctionAndGeoInfo! — Method根据按八叉树重新排序的id重排基函数信息
MoM_Kernels.reOrderCubeID! — Method根据排序后的新id重新排列子层盒子以及盒子的邻盒子信息,以将同一个父盒子层的盒子相邻排列,这样有利于计算 更新的量:父层盒子的kidsInterval, 本层的盒子顺序,本层盒子的邻盒子id
MoM_Kernels.record_memorys — Method展示
MoM_Kernels.restore_infos — Methodrestore_infos()
记录各部分内存和各阶段计算时间。TBW
MoM_Kernels.saveCubes — MethodsaveCubes(cubes[, nchunk = ParallelParams.nprocs; name, dir="", kcubeIndices = nothing])将盒子 cubes 分为 nchunk 块以 name 为名保存在 dir中。kcubeIndices 同于计算不同分区间重复的部分。
MoM_Kernels.saveCurrent — Method保存电流系数
MoM_Kernels.saveGeoInterval — MethodsaveGeoInterval(meshData[; dir = "temp/GeosInfo"])保存网格数据 meshData 中各类型网格的区间。
MoM_Kernels.saveGeosInfoChunks — MethodsaveGeosInfoChunks(geos::AbstractVector, cubes, name::AbstractString, nchunk::Int[; dir = "", cubes_ChunksIndices = sizeChunks2idxs(length(cubes), nchunk)])将几何信息 geos 根据分块数量 nchunk 和在 cubes 中的分布进行分块并保存。
MoM_Kernels.saveLevel — FunctionsaveLevel(level[, np = ParallelParams.nprocs; dir="", kcubeIndices = nothing])将层 level 信息保存,其中的盒子信息由 get_partition 计算的分块信息部分保存。
MoM_Kernels.saveOctree — MethodsaveOctree(octree[; dir=""])将八叉树 octree 保存在 dir 中。
MoM_Kernels.saveVec2Chunks — MethodsaveVec2Chunks(y::AbstractVector, name::AbstractString, indices[; dir = "", showpmeter = false, message = ""])把向量 y 以 name 按索引 indices 块保存在 dir 文件夹中。
MoM_Kernels.saveVec2Chunks — MethodsaveVec2Chunks(y::AbstractVector, name::AbstractString, nchunk::Int[; dir = ""])把向量 y 以 name 分为 nchunk 块保存在 dir 文件夹中。
MoM_Kernels.searchNearCubes — Method用于寻找邻盒子的函数 输入 cubesID3D::Matrix{Int},(n×3)盒子在本层的三维坐标 levelID::Integer 层编号,(定义大盒子为(“0” 层),叶层为第“n”层
MoM_Kernels.setBFInterval! — Method根据已经排序好的层的盒子信息,从叶层到顶层更新盒子包含的基函数区间
MoM_Kernels.setBigCube — Method计算包围目标的大盒子信息 输入: nodes::Matrix{FT},大小为 (3, n) 的用于分割成八叉树的空间点,如基函数的中心坐标,或者为构成网格的所有点 leafCubeEdgel::FT,叶层盒子边长,用于计算总层数和大盒子的坐标信息
MoM_Kernels.setGeoIDsInLeafCubes! — Method用于设置给定层的盒子中包含的几何体,采用常数基函数时,同一个盒子不会出现重复值。
MoM_Kernels.setGeoIDsInLeafCubes! — Method用于设置给定层的盒子中包含的几何体,采用 RWG、SWG、RBF 基函数时,八叉树分组依据为基函数, 同一个几何体会被分在不同的基函数上会被分入入不同的盒子,因此邻盒子中的几何体 id 大概率出现重复值。
MoM_Kernels.setGeoIDsInLeafCubes! — Method用于设置给定层的盒子中包含的几何体,采用 RWG、SWG、RBF 基函数时,八叉树分组依据为基函数, 同一个几何体会被分在不同的基函数上会被分入入不同的盒子,因此邻盒子中的几何体 id 大概率出现重复值。
MoM_Kernels.setKidLevelFarNeighbors! — Method寻找子层的远亲盒子 输入:: thisLevel::LevelInfo{IT, FT, IPT}, 本层信息 kidLevel::LevelInfo{IT, FT, IPT}, 子层信息
MoM_Kernels.setLevelInfo! — Method非叶层LevelInfo的构造函数,输入为空间三维坐标数组 levelID::计算层的id leafnodes::Matrix{FT},大小为 (3, n) 的用于分割成八叉树的空间点,如基函数的中心坐标 cubeEdgel::FT,本层盒子边长
MoM_Kernels.setLevelInfo! — MethodsetLevelInfo!(nLevels::Integer, leafnodes::Matrix{FT},cubeEdgel::FT, bigCubeLowerCoor::Vec3D{FT}[;
IPT = get_Interpolation_Method(MLFMAParams.InterpolationMethod), LT = LevelInfo]) where{FT<:Real}叶层 LevelInfo 的构造函数,输入信息:
nLevels::IT 层数,亦为叶层层ID
leafnodes::Matrix{FT} 大小为 (3, n) 的用于分割成八叉树的空间点,如基函数的中心坐标
cubeEdgel::FT 叶层盒子边长
bigCubeLowerCoor::Vec3D{FT} 大盒子的角坐标
IPT 插值算法类型
LT = LevelInfo 层类MoM_Kernels.setLevelTransFactor! — Method计算 第“2”层 到 叶 层的转移因子, 转移因子只存在于远亲组,每层远亲组最多有 7^3 - 3^3 = 316种结果
MoM_Kernels.setLevelsCubesKidsIn8! — Method计算(nLevel-1)-2 层每层的非空盒子的非空子盒子在其8个子盒子中的位置
MoM_Kernels.setLevelsShiftFactor! — Method本函数用于给输入的本(level)层的盒子与其子盒子之间计算相移因子, 由盒子排列的规律性和相移因子的对称性,可知: 只需要计算8个相移因子,即可用于所有盒子到其子盒子的相移, 且这八个盒子关于原点对称的两两之间的相移因子为共轭关系 计算完成直接保存在 level 不再返回
MoM_Kernels.setVSC₁₂₃ⁿ! — MethodsetVSC₁₂₃ⁿ!()计算体奇异性三个系数。
MoM_Kernels.set_Interpolation_Method! — Method设置插值算法
MoM_Kernels.set_geosInterval! — Methodset_geosInterval!(fn)通过文件 fn 设置网格数据区间。
MoM_Kernels.set_leafCubeSize! — Method设置叶层盒子边长
MoM_Kernels.set_nprocs! — Methodset_nprocs!([;nprocs=1, np=nprocs])设置并行核心数量为 nprocs 。
MoM_Kernels.singularF1 — MethodsingularF1(a::FT, b::FT, c::FT, d::FT) where{FT<:AbstractFloat}计算边长为a, b, c, d的四边形重合时的奇异性F1项,即 $\int{\int{\frac{1}{R}}dS}$ 的解析值。
MoM_Kernels.singularF1 — MethodsingularF1(a::FT, b::FT, c::FT) where{FT<:AbstractFloat}计算边长为a, b, c的三角形重合时的奇异性F1项,即 $\int{\int{\frac{1}{R}}dS}$ 的解析值。
MoM_Kernels.singularF21 — MethodsingularF21(a::FT, b::FT, c::FT, area2::FT) where{FT<:AbstractFloat}计算边长为a, b, c,面积平方为area2的三角形重合时的奇异性F2项,即 $\int{\int{\frac{\boldsymbol{\rho}_{m}\cdot\boldsymbol{\rho}_{n}}{R}}dS}$ 的解析值,该函数处理 m==n 即基函数自作用的情况。
MoM_Kernels.singularF22 — MethodsingularF21(a::FT, b::FT, c::FT, area2::FT) where{FT<:AbstractFloat}计算边长为a, b, c,面积平方为area2的三角形重合时的奇异性F2项,即 $\int{\int{\frac{\boldsymbol{\rho}_{m}\cdot\boldsymbol{\rho}_{n}}{R}}dS}$ 的解析值,该函数处理 m!=n 即同一三角形的不同基函数作用的情况。
MoM_Kernels.sizeChunks2cuts — MethodsizeChunks2cuts(Asize, chunks)
sizeChunks2cuts(Asize::Int, chunks)
sizeChunks2cuts(Asize, chunks::Int)
sizeChunks2cuts(Asize::Int, chunks::Int)将数组大小 Asize 按 chunks 进行分块。 从 MPIArray4MoMs 借的! 为的是避免提前引入 MPI 导致在集群上的 bug。因此该函数的修改必须与 MPIArray4MoMs 同步。
MoM_Kernels.sizeChunks2idxs — MethodsizeChunks2idxs(Asize, nchunk)Borrowed form DistributedArray.jl, get the slice of matrix size Asize on each dimension with nchunk. 从 MPIArray4MoMs 借的! 为的是避免提前引入 MPI 导致在集群上的 bug。因此该函数的修改必须与 MPIArray4MoMs 同步。
MoM_Kernels.sizeChunksCuts2indices — MethodsizeChunksCuts2indices(Asize, nchunk, cuts::Tuple)
sizeChunksCuts2indices(Asize, nchunk, cuts::Vector{I}) where{I<:Integer}根据数组大小 Asize 分块数量 nchunk 以及各块索引区间 cuts 计算各块的索引。 从 MPIArray4MoMs 借的! 为的是避免提前引入 MPI 导致在集群上的 bug。因此该函数的修改必须与 MPIArray4MoMs 同步。
MoM_Kernels.slicedim2bounds — Methodslicedim2bounds(sz::Int, nc::Int)将区间 1:sz 划分为 nc 个区间并返回区间上下界。 从 MPIArray4MoMs 借的! 为的是避免提前引入 MPI 导致在集群上的 bug。因此该函数的修改必须与 MPIArray4MoMs 同步。
MoM_Kernels.slicedim2partition — Methodslicedim2bounds(dims, nc::Int)将区间 dims 划分为 nc 个区间并返回区间上下界。 从 MPIArray4MoMs 借的! 为的是避免提前引入 MPI 导致在集群上的 bug。因此该函数的修改必须与 MPIArray4MoMs 同步。
MoM_Kernels.solve! — Method矩阵方程 Ax=b 复合求解函数 输入值: A::LinearMapType{T}, b::Vector{T} solverT::Symbol 求解器类型
MoM_Kernels.solve — Method矩阵方程 Ax=b 复合求解函数 输入值: A::LinearMapType{T}, b::Vector{T} solverT::Symbol 求解器类型
MoM_Kernels.sparseApproximateInversePl — MethodsparseApproximateInversePl(ZnearChunks::ZnearChunksStruct{CT}, level; nbf = 0) where {FT<:Real, CT<:Complex{FT}}根据块状近场阻抗矩阵 ZnearChunks 和计算阻抗矩阵层的盒子信息 cubes 计算左稀疏近似逆 (Sparse Approximate Inverse (SAI)) 。
MoM_Kernels.sparseApproximateInversePl — MethodsparseApproximateInversePl(Znear::ZnearT{CT}, cubes::AbstractVector) where {FT<:Real, CT<:Complex{FT}}根据近场阻抗矩阵 Znear 和计算阻抗矩阵层的盒子信息 cubes 计算左稀疏近似逆 (Sparse Approximate Inverse (SAI)) 。
MoM_Kernels.sparseApproximateInversePl — MethodsparseApproximateInversePl(Znear::ZnearT{CT}, octree::OctreeInfo{FT, LT}) where { FT<:Real, CT<:Complex{FT}, LT}根据近场阻抗矩阵 Znear 和八叉树 octree 叶层计算左稀疏近似逆 (Sparse Approximate Inverse (SAI)) 。
MoM_Kernels.sparseApproximateInversePl — MethodsparseApproximateInversePl(Znear::ZnearT{CT}, level::LT) where { CT<:Complex, LT <: AbstractLevel}根据近场阻抗矩阵 Znear 和计算阻抗矩阵层信息 level 计算左稀疏近似逆 (Sparse Approximate Inverse (SAI)) 。
MoM_Kernels.sparseApproximateInversePr — MethodsparseApproximateInversePr(Znear::ZnearT{CT}, cubes::AbstractVector) where {FT<:Real, CT<:Complex{FT}}根据近场阻抗矩阵 Znear 和计算阻抗矩阵层的盒子信息 cubes 计算右稀疏近似逆 (Sparse Approximate Inverse (SAI)) 。
MoM_Kernels.sparseApproximateInversePr — MethodsparseApproximateInversePr(Znear::ZnearT{CT}, octree::OctreeInfo{FT, LT}) where { FT<:Real, CT<:Complex{FT}, LT}根据近场阻抗矩阵 Znear 和八叉树 octree 叶层计算右稀疏近似逆 (Sparse Approximate Inverse (SAI)) 。
MoM_Kernels.sparseApproximateInversePr — MethodsparseApproximateInversePr(Znear::ZnearT{CT}, level::LT) where { CT<:Complex, LT <: AbstractLevel}根据近场阻抗矩阵 Znear 和计算阻抗矩阵层信息 level 计算右稀疏近似逆 (Sparse Approximate Inverse (SAI)) 。
MoM_Kernels.spherical_h1l — Method第一类球汉克尔函数,使用GSL.jl(GNU Scientific Library),适用于 l 为整数,x 为浮点数时算的更快
MoM_Kernels.spherical_h1l — Method第一类球汉克尔函数,使用 SpecialFunctions.jl, 适用于非整数阶、复数变量,算的较慢,只在计算有耗介质(复数波矢)时调用
MoM_Kernels.spherical_h1l_array — Method一次计算 0:lmax 的多阶第一类球汉克尔函数, 保存在数组里
MoM_Kernels.spherical_h1l_array — Method一次计算 0:lmax 的多阶第一类球汉克尔函数, 保存在数组里
MoM_Kernels.spherical_h2l — Method第二类球汉克尔函数,使用GSL.jl(GNU Scientific Library),,适用于 l 为整数,x 为浮点数时算的更快
MoM_Kernels.spherical_h2l — Method第二类球汉克尔函数,使用 SpecialFunctions.jl, 适用于非整数阶、复数变量,算的较慢,只在计算有耗介质(复数波矢)时调用
MoM_Kernels.spherical_h2l_array — Method一次计算 0:lmax 的多阶第二类球汉克尔函数, 保存在数组里
MoM_Kernels.spherical_h2l_array — Method一次计算 0:lmax 的多阶第二类球汉克尔函数, 保存在数组里
MoM_Kernels.transOnLevel! — Method层内转移
MoM_Kernels.transOnLevels! — Method各层内转移
MoM_Kernels.truncationLCal — Method该函数计算八叉树各层截断项数 输入为本层最小盒子的边长
MoM_Kernels.truncationLCal — MethodtruncationLCal(;rel_l) where {FT<:Real}该函数计算八叉树各层截断项数 输入为相对波长
MoM_Kernels.use_CSR — Methoduse_CSR()
use_CSC()设置近场阻抗矩阵是否采用CSR(CSC转置)。
MoM_Kernels.volumeSingularityIg — MethodvolumeSingularityIg(rtveclc::AbstractVector{FT}, volumeCell::HexahedraInfo{IT, FT, CT}) where {IT<:Integer, FT<:Real, CT<:Complex{FT}}计算场点rgt在体网格volumeCell上的奇异性。 计算结果为:
\[\begin{aligned} I_{gV} &= \int{g(R)dV'}\\ &= -\sum_{S_i}{d_i\sum_{n}^{SglrOrder}{\frac{coeffgreen(n)}{n+2}I_{RS}^{n-1}}}\\ \end{aligned}\]
MoM_Kernels.volumeSingularityIgIvecg — MethodvolumeSingularityIgIvecg(rtveclc::AbstractVector{FT}, volumeCell::TetrahedraInfo{IT, FT, CT}) where {IT<:Integer, FT<:Real, CT<:Complex{FT}}
volumeSingularityIgIvecg(rtveclc::AbstractVector{FT}, volumeCell::HexahedraInfo{IT, FT, CT}) where {IT<:Integer, FT<:Real, CT<:Complex{FT}}计算场点rgt在体网格volumeCell上的奇异性。 计算结果为:
\[\begin{aligned} I_{gV} &= \int{g(R)dV'}\\ &= -\sum_{S_i}{d_i\sum_{n}^{SglrOrder}{\frac{coeffgreen(n)}{n+2}I_{RS}^{n-1}}}\\ \boldsymbol{I}_{gV} &= \int{\boldsymbol{R}g(R)dV'}\\ &= -\sum_{S_i}{\hat{\bm{n}}_i \sum_{n=0}^{SglrOrder}{\frac{coeffgreen(n)}{n+1}I^{n+1}_{RS}}}\\ \end{aligned}\]
MoM_Kernels.volumeSingularityLOpDyad — MethodvolumeSingularityLOpDyad(rtveclc::AbstractVector{FT}, volumeCell::TetrahedraInfo{IT, FT, CT}) where {IT<:Integer, FT<:Real, CT<:Complex{FT}}
volumeSingularityLOpDyad(rtveclc::AbstractVector{FT}, volumeCell::HexahedraInfo{IT, FT, CT}) where {IT<:Integer, FT<:Real, CT<:Complex{FT}}计算场点rtveclc在体网格volumeCell上的并矢格林函数奇异性。 计算结果为:
\[\begin{aligned} \overline{I}_{V} &= \int{(k^2 I + ∇∇)G(R) dV'} \end{aligned}\]
MoM_Kernels.writeZtt! — Method为适应类型变化而将写入部分单独封装
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`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.boundaryRBF — MethodboundaryRBF(h::Hexahedron)重载面的提取顺序以匹配屋顶基函数 (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.getNodeTriTetraFekoNas — MethodgetNodeTriTetraFekoNas(pathname::ST, FT::Type{T}=Precision.FT) where {ST <: AbstractString,T<:AbstractFloat}读取 .nas 文件中的节点坐标、三角形点、四面体点。
MoM_Basics.getNodeTriTetraHexaNas — MethodgetNodeTriTetraHexaNas(pathname::ST; FT::Type{T}=Precision.FT, meshUnit = :mm) where {ST <: AbstractString,T<:AbstractFloat}读取 .nas 文件中的节点坐标、三角形点、四面体点、六面体点。
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.getdatNodeElementParam — MethodgetdatNodeElementParam(pathname::ST; FT::Type{T}=Precision.FT, meshUnit = :m) where {ST <: AbstractString,T<:AbstractFloat}读取 .dat 格式的自定义项目文件。
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.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 自带 Base.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.θϕInfofromCart — MethodθϕInfofromCart(rvec::Vec3D{FT}) where {FT<:Real}从直角坐标 rvec 计算三角函数:$sinθ, cosθ, sinϕ, cosϕ$
MoM_Basics.@clock — Macroclock(message, ex)将表达式 ex 的运行时间以 message 为键保存在字典 timer 中。