A simple electromagnetics case expanded from MFEM tutorial ex5p and ex0p using the similar finite element spaces etc.. but different physical interpretations.
The EMsampleProbV solves the following equation using the H1 space.
The EMsampleProbJV solves the following equations in using mixed H(div)-H1 spaces.
This application is dependant on MFEM, METIS/PARMETIS, HYPRE, MPI (OpenMPI was used) and a C-compiler (GCC was used) however these are straight forward to install. The process of installing/getting this library is as follows:
-
Install MFEM using your preferred installation method
-
Clone this repository alongside MFEM
git clone https://github.com/SohailSTFC/MFEM_OxfordNanoSystems.git
-
Build the application with the following command,
cd MFEM_OxfordNanoSystems && make
-
Run the application
A sample 2-D problem without any kind of shield around the plate to regularise the local field.
The electrodes are set to 3.0v and the plate is set to 0.0v, the outer boundary has a no-flux
boundary conditions (
This problem is run using the following commmand options if built with MPI (the number of processes can be increased to reflect the number of available cores however by default its set to 1):
mpirun -np 1 ./EMsampleProb
.
or
mpirun -np 1 ./EMsampleProb --mesh mesh/OxNanoSys0.mesh
Figures of a sample potential field (top) and a probe of thecurrent magnitude across the plate (bottom) is given by :
|
By restricting the J-magnitude to 20 amps, it can be seen there are concentrations of currents at the corners
of the plate/workpiece.
This uses MFEM features for external meshes based off of the MFEM tutorial , it has the additional dependency of using gmsh however this can be cloned from gitlab and built for your system or downloaded as a windows ready binary. Gmsh can read in most mesh formats and output them into the Gmsh format which is readable from MFEM, however in this sample problem the Native geometry format is used and a mesh is generated from that. The geometry file for Gmsh is ("OxNanoSys1.geo") it is an extruded version of sample problem 0 and can be meshed in Gmsh to produce ("OxNanoSys1.msh"). The top and bottom boundaries are assumed to be free boundaries while the rest inherit form the 2D case. To run sample case use the following command:
mpirun -np 1 ./EMsampleProb --mesh mesh/OxNanoSys1.msh