Skip to content

Latest commit

 

History

History
105 lines (87 loc) · 6.53 KB

File metadata and controls

105 lines (87 loc) · 6.53 KB

Open FEM Stack — gmsh + Elmer + (future) Palace

Quantum Metal's open-source full-wave simulation toolchain. This document covers how to install the external binaries Quantum Metal can drive — these are not Python packages and pip won't install them for you.

Layer What it is Required for
gmsh The universal mesher — turns a design into a finite-element mesh All open FEM workflows (Elmer today, Palace in the roadmap)
Elmer Finite-element solver, focused on capacitance / LOM 2.0 Tutorial 4.19 and any LOM-via-FEM workflow
Palace (roadmap) AWS open-source Maxwell solver — eigenmode + driven + electrostatic The planned HFSS-free full-field path; see ROADMAP.md

Gmsh

  • A design rendering and meshing tool that turns your design into fine elements (a mesh), so a solver can run Maxwell's equations on it. Fully integrated with Quantum Metal and semi-automated.
  • gmsh is opt-in as of v0.7.0: the lite default install (pip install quantum-metal) doesn't include it. Opt in with:
    pip install "quantum-metal[mesh]"     # canonical name
    # or, equivalently:
    pip install "quantum-metal[fem]"      # backward-compat alias
    See docs/migration-to-v0.7.0.rst for the full extras matrix.
  • Apple Silicon Macs (M1/M2/M3/M4): pip install gmsh doesn't always wire up the Python binding correctly. See the Note below for the Homebrew-based fix.

Test if Gmsh is properly installed

  • Run the following in your terminal. A blank Gmsh window should open up. If it does, then hurray, you did it! 😄
$ gmsh
  • Open a python REPL in your terminal and type import gmsh in the REPL. If gmsh gets imported without any errors, then it's installed properly with python.
$ python
...
...
>>> import gmsh   # No Error
>>>

NOTE:

  • On Apple Silicon Macs (M-series chips: M1 / M2 / M3 / M4), installing Gmsh using pip install gmsh might not wire up the Python binding correctly. To fix it, install the gmsh binary through Homebrew as follows:
$ brew install gmsh
  • Restart your terminal, activate the environment, and check if you're able to do import gmsh in a python REPL or a scratch jupyter notebook. If the import is successful, then congratulations, you've installed Gmsh successfully!

  • Note: If the above steps still gives error in importing gmsh using import gmsh in your python environment, refer this issue, on the Gmsh GitLab repository, for more information. Also please feel free to reach out on the Quantum Metal Discord.

ElmerFEM

  • Congratulations on making it this far! Now we'll see how to install ElmerFEM.
  • ElmerFEM is a Finite Element Method (FEM) solver that we use to take the mesh generated by Gmsh and solve Maxwell's equations on top of the meshed design. Right now Quantum Metal supports capacitance-type simulations (Poisson-equation solver StatElecSolver) with ElmerFEM, enabling LOM 2.0 analysis based on the Maxwell capacitance matrix.
  • ElmerFEM is an external binary, not a Python package — neither pip install "quantum-metal[mesh]" nor quantum-metal[fem] installs it. You install it separately from the official Elmer CSC distribution.
  • Tested with Elmer 9.0+. Newer releases (e.g. when 10.x ships) are expected to work since Quantum Metal only uses the stable ElmerGrid / ElmerSolver CLI surface. The Windows path lookup picks the highest installed Elmer *-Release/bin/ folder automatically.
  • Latest binaries: https://www.elmerfem.org/blog/binaries/
  • Build from source: https://github.com/ElmerCSC/elmerfem#elmer-fem

NOTE: For Windows, please consider installing ElmerFEM-gui-mpi-Windows-AMD64 and not ElmerFEM-gui-nompi-Windows-AMD64 as it may not let ElmerGrid run on the input mesh from Gmsh. Refer this issue.

NOTE: For MacOS, please consider building the software from source rather than using Homebrew on Mac, as the homebrew install isn't very consistent and may cause issues in the future.

After you complete your installation

  • Add your installation path directory to your system's PATH environment variable (you can skip this on Windows and MacOS, as it is automatically done on those OS platforms during the installation steps).
  • Restart your terminal.
  • Check if ElmerFEM is installed successfully by checking installation for ElmerGrid and ElmerSolver.
  • For testing ElmerGrid, type ElmerGrid in your terminal and if the PATH variable is set correctly, it should print a long output text. Check if you see the following at the end of the text:
$ ElmerGrid
Starting program Elmergrid
****************** Elmergrid ************************
This program can create simple 2D structured meshes consisting of
linear, quadratic or cubic rectangles or triangles. The meshes may
also be extruded and revolved to create 3D forms. In addition many
mesh formats may be imported into Elmer software. Some options have
not been properly tested. Contact the author if you face problems.

...
...
...

Thank you for using Elmergrid!
Send bug reports and feature wishes to elmeradm@csc.fi
  • For testing ElmerSolver, type ElmerSolver in your terminal and if the PATH variable is set correctly, it should print a banner like this (exact version/date will vary by release):
$ ElmerSolver
ELMER SOLVER (v 9.0) STARTED AT: ...
ParCommInit:  Initialize #PEs:            1
MAIN: ============================================================
MAIN: ElmerSolver finite element software, Welcome!
MAIN: This program is free software licensed under (L)GPL
MAIN: Copyright 1st April 1995 - , CSC - IT Center for Science Ltd.
MAIN: Webpage http://www.csc.fi/elmer, Email elmeradm@csc.fi
MAIN: Version: 9.0 (Rev: ..., Compiled: ...)
MAIN:  Running one task without MPI parallelization.
MAIN:  Running with just one thread per task.
MAIN: ============================================================
ERROR:: ElmerSolver: Unable to find ELMERSOLVER_STARTINFO, can not execute.
STOP 1

The ERROR:: ElmerSolver: Unable to find ELMERSOLVER_STARTINFO line is expected when you run ElmerSolver with no arguments — it just means the solver started up correctly but had no simulation file to load. If you see this banner, ElmerFEM is installed and on PATH. 🎉

NOTE: If you hit issues at any of the steps above, please reach out on the Quantum Metal Discord.