Giter Club home page Giter Club logo

mom_allinone.jl's Introduction

MoM

MoM_AllinOne

star

Stable Dev Build Status Coverage

Size Downloads License

介绍

本程序包提供 矩量法(MoM) + 多层快速多极子算法(MFLFMA) 分析电磁散射、辐射问题,基于 Julia 语言开发,多线程或 MPI 并行,支持如下问题的电磁散射、辐射仿真:

问题类型 积分方程 基函数类型 MFLFMA
PEC S-EFIE/S-MFIE/S-CFIE (面) RWG
介质 V-EFIE (体) SWG(四面体)/RBF(六面体屋顶基)
/PWC(四面体、六面体以及混合)
PEC + 介质 VS-EFIE (体表面) RWG + SWG/RBF/PWC

版权说明

  • 程序版权属于北京大学电子学院电磁场与微波技术实验室夏明耀教授课题组,有合作需求请联系:Stable Stable Stable.
  • 本程序包采用 License 开源协议,免费提供给学术研究人员使用。该开源协议要求任何基于本程序包进一步开发的程序同样需要进行开源,因此不推荐商业环境使用,如违反开源协议课题组将保留追究法律责任的权力;
  • Julia 的语言特性更适合作为学术界使用,商业环境有着更为严苛的要求,因此本包仅推荐学术研究人员使用,不推荐商业环境使用;
  • 本包的的计算结果目前在已测试算例内与商业软件 Feko 结果吻合,无法保证其它所有情况下的适用,因此仍然仅推荐学术研究人员使用。

软件架构

MoM_AllinOne 程序的基本构成如下图所示:MoM_AllinOne 包结构 程序建立在Julia编程语言基础上,并根据功能拆分为数个子程序包。主要子程序包与其功能如下:

  • MoM__Basics :提供网格文件、基函数处理以及源的定义等相关基础功能;
  • MoM__Kernels:提供矩阵、多层快速多极子构建、求解和后处理相关功能;
  • MoM__Visualizing:提供绘图等后处理可视化功能;
  • MoM__MPI:提供基于MPI的分布式并行计算功能,未直接集成在 MoM_AllinOne 中,如需使用请跳转到该包主页;
  • MoM_Distributed:提供基于Julia原生分布式并行计算功能,目前并不推荐使用,未进行开源;
  • MoM__Lebedev:提供基于Lebedev球面矢量插值的计算功能,未直接集成在 MoM_AllinOne 中,如需使用请跳转到该包主页;

安装教程

  1. 在本地安装 Julia,可参照 Julia 中文社区相关指引,建议配合 VSCodeJulia 插件使用;

  2. 在本地选定文件夹进入 Julia REPL (VScode 中快捷键为连按 alt+j, alt+o):

    julia> 

    进入包管理(Pkg)模式(REPL中空白行输入]),并输入add MoM_AllinOne,Julia 的包管理模式中安装该包将自动配置包环境:

    (@v1.9) pkg> add MoM_AllinOne

    或 git clone 到本地:

    git clone https://gitee.com/deltaeecs/MoM_AllinOne.jl.git
    

    紧接着,在本包路径下(xxx/MoM_AllinOne)运行如下命令安装相关依赖包:

    julia -t 8 deps/install.jl
    
  3. 测试,导入本包运行 run_examples() 函数即可自动运行 examples 文件夹中的8个测试程序,并绘图比较与 Feko 的结果,图片( .pdf 格式)保存在 figures 文件夹中。

    using MoM_AllinOne
    run_examples()

使用说明

  1. 参见 examples 文件夹中的8个测试程序。

  2. 更详细内容请参见文档 Stable

TODO

我们鼓励程序使用者针对以下问题创建 PR,熟悉程序使用、成为该开源程序的贡献者:

  • 为各包编写文档
  • 丰富后处理函数
    • 远场3D可视化
    • 近场计算、可视化
    • 远场、近场计算快速算法
  • 更多激励源、端口定义
  • 其它类型积分方程
    • PMCHW
  • 各向异性介质处理
  • 特征模(CM)

mom_allinone.jl's People

Contributors

deltaeecs avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.