Skip to content

Elmer

Elmer is CSC's open source Finite Element multi-physics simulation package. It covers modules for fluid and solid mechanics, acoustics, and electro-magneto dynamics.

Elmer utilizes third-party open source programs for pre- (e.g., Gmsh) and post-processing (e.g., ParaView, Visit). The version installed includes Elmer/Ice solvers needed for glaciological simulations (ice-sheets, glaciers). Elmer utilizes the MPI library for parallel computing with some solvers already having OpenMP parallel threading directives implemented.

Available

Version Available modules Notes
26.2.1 elmerfem/26.2.1 Versioned release
devel elmerfem/devel Development version
Version Available modules
9.0 elmer/latest

License

Elmer is licensed under GPL and (as for the elmersolver.lib) LGPL. It is free for everyone to use.

Usage

On Roihu-CPU, Elmer is available under the module name elmerfem.

To list the available versions, use:

module spider elmerfem

Load the versioned release with:

module load elmerfem/26.2.1

Alternatively, load the development version with:

module load elmerfem/devel

For detailed information about a specific version and its dependencies, use:

module spider elmerfem/26.2.1

On LUMI, first enable the CSC software modules:

module use /appl/local/csc/modulefiles/

To list the available Elmer versions, use:

module spider elmer

Load the default version with:

module load elmer/latest

This version may be updated. If your simulation uses compiled User Functions, recompile them after an update when necessary.

Example parallel batch script

Basic script for a 1-hour job using a single node and 384 cores in total, where the Elmer input file is myrun.sif.

#!/bin/bash 
#SBATCH --time=01:00:00
#SBATCH --job-name=jobname
#SBATCH --output=%x.%j.out
#SBATCH --error=%x.%j.err
#SBATCH --partition=small
#SBATCH --account=<project>
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=384

export OMP_NUM_THREADS=1
module load elmerfem/26.2.1
# make sure the SIF is in the start-info
echo myrun.sif > ELMERSOLVER_STARTINFO
echo "starting Elmer simulation with SIF file"
cat ELMERSOLVER_STARTINFO
srun ElmerSolver
echo "done"

Basic script for a 1-hour job using 4 nodes and 128 cores in total, where the Elmer input file is myrun.sif.

#!/bin/bash 
#SBATCH --time=01:00:00
#SBATCH --job-name=jobname
#SBATCH --output=%x.%j.out
#SBATCH --error=%x.%j.err
#SBATCH --partition=small
#SBATCH --account=<project>
#SBATCH --nodes=4
#SBATCH --ntasks=128

module use /appl/local/csc/modulefiles/
module load elmer/latest
# make sure the SIF is in the start-info
echo myrun.sif > ELMERSOLVER_STARTINFO
echo "starting Elmer simulation with SIF file"
cat ELMERSOLVER_STARTINFO
srun ElmerSolver
echo "done"

Instructions on how to submit and monitor jobs can be found in CSC docs and in LUMI docs.

It can be advantageous to utilize fewer cores per node than available to increase performance in certain Elmer cases. See the example on undersubscribing.

More information

Do you find this page useful?
Thank you for your feedback!
Thank you! Your feedback is appreciated.

Please let us know how we could improve this page by contacting us or by creating an issue in GitHub. You can also edit this page yourself and contribute your improvements by creating a pull request.