etameez / SUN-EM-CMOM

CMoM is a C++ Computational Electromagnetic (CEM) solver focusing on the Method of Moments (MoM).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CMoM - A C++ Method of Moments Solver

Description

CMoM is a C++ Computational Electromagnetic (CEM) solver focusing on the Method of Moments (MoM). CMoM can compute both serially and in parallel (using mpi). A pre-processor, written in python is also included to provide a graphical interface as well as read necessary geometry and create the necessary input files. The pre-processor is also used for post processing to display results and compare CMoM solutions to commercial CEM solvers (currently the only compatible commercial solver is FEKO).

CMoM is being developed and used in a Linux environment

Current Solvers

Method of Moments (MoM)

The MoM is done according to the work presented in "Electromagnetic Scattering by Surfaces of Arbitrary Shape" by Rao, Wilton and Glisson (1982).

Characteristic Basis Function Method (CBFM)

The CBFM is done according to the work presented in "Characteristic Basis Function Method: A New Technique For Efficient Solution of Method of Moments Matrix Equations" by Prakash and Mittra (2003).

Physical Optics (PO)

TBD

Iterative Field Bouncing (IFB)

TBD

Status

Solver Serial Parallel
MoM Done Done
Disconnected CBFM Done In Development
Connected CBFM TBD TBD
PO TBD TBD
IFB TBD TBD

Roadmap

Meta
  • Write solution in binary
  • Better documentation
Pre-Processor
  • Write input file in binary
  • Read and compare with CST
  • Read and compare with the one from the presentation
  • Calculate and display properties from the solution (Nearfield/Input Impedance/etc)
  • Better Logging
  • Run parallel solver
MoM
  • Singularity Treatment
  • Near Singularity Treatment
  • Proper Support For Edge Feeds (Delta Gap)
Disconnected CBFM
  • Parallel CBFM
  • Integrate an FPGA for some of the Matrix Matrix and Matrix Vector calculations
Connected CBFM
PO
IFB

Dependencies

Required

  • CMake
  • MPI Library (OpenMPI or MPICH)

Optional

  • Python 3
  • numpy

Serial Install Guide

mkdir build

cd build

cmake ..

make

./mom -h

Parallel Install Guide

mkdir build_mpi

cd build_mpi

cmake -DMPI=ON ..

make

./mom_mpi -h

Usage From GUI

python src/pre_processor/main.py

Compiling on WIN64

cmake -G "NMake Makefiles" -DCMAKE_C_COMPILER=icl -DCMAKE_CXX_COMPILER=icl ..

About

CMoM is a C++ Computational Electromagnetic (CEM) solver focusing on the Method of Moments (MoM).


Languages

Language:C++ 87.2%Language:Python 9.7%Language:CMake 1.6%Language:Shell 1.0%Language:C 0.4%