Roadmap
There are many features that are planned to be implemented into EMerge, Heavi and Optycal. When and how soon these will appear depends on the time and money that I get to spend on this project.
EMerge roadmap
The following features are planned! They are approximate chronological order from first to be implemented to last.
PO and Thermal Solver
Being able to run both EM and then Thermal simulations is very useful. That is why a relatively simple thermal heat transfer solver is planned. A Python based physical optics solver called Optycal will also be released soon.
Adaptive mesh refinement
Adaptive mesh refinement is a very useful component in FEM simulations. It allows to take the guessing out of the verification of FEM simulations. It also makes sure that mesh density is spend on those regions that matter most.
File import
Many times, 3D models come from other programs, KiCad, ADS, Solidworks. One can currently implement STEP files in EMerge but better support is definitely needed.
Multimode ports
EMerge currently only supports single mode ports. You can compute multiple modes on a single port but the solver (and I) doesn't yet know how to handle a port supporting multiple modes. This also holds for grating modes of Floquet ports.
Scattered Field Formulation
Sometimes you want to compute the scattering behavior of objects in 3D space. The disruption of struts/bars or joints or the radar cross-section of small objects. The scattered field formulation allows you to compute the EM response due to a background field.
Auxilliary Space Maxwell Preconditioners
While direct solvers are most optimal for multi-port sweeps, large simulation models might run better with iterative solvers. For the type of curl-curl edge based formulations used in EM FEM problems, special preconditioners are needed to ensure convergence. Hypre's Auxilliary Space Maxwell preconditioners is planned to be included for this reason.
Domain Decomposition
Domain decomposition is a numerical way of cutting up the mesh in subdomains and computing coupling terms between them. Each subdomain can be solved individually. It allows for more efficient solving of very large problems and can be used to generate pre-conditioners for iterative solvers.