2026-04-16 16:11:54 +02:00
2021-06-11 17:23:07 +02:00
2026-04-14 17:28:23 +02:00
2023-01-17 13:49:36 +01:00
2026-04-14 12:55:11 +02:00
2023-01-17 12:47:51 +01:00
2021-06-11 17:23:07 +02:00
2023-01-27 08:10:05 +00:00
2026-04-16 16:11:54 +02:00
2026-04-15 15:55:42 +02:00
2021-06-06 18:34:29 +02:00
2026-04-15 15:55:42 +02:00
2021-06-06 18:34:29 +02:00
2026-04-16 16:11:54 +02:00
2026-04-16 16:11:54 +02:00
2026-04-16 16:11:54 +02:00
2026-04-16 16:11:54 +02:00

Trim.SP - TRIM simulation

Contents

This repository contains the Fortran source code and an accompanying graphical user interface (GUI) for TrimSP - an application for performing Monte Carlo simulations of ion implantation.

  • This code is specifically tuned to simulate implantation of low-energy projectiles in materials.
  • The code is maintained by the Low Energy Muons (LEM) group at the Paul Scherrer Institute (PSI).
  • The GUI is written in Node.js, JavaScript and Electron.
  • The binary (statically linked) from the Fortran code is also included.
  • Linux packages can be generated locally from the current source tree.

Further information can be found in the following publications:

Supported platforms

Installation

Packages are not stored in this repository. You can either run the application directly from source or build Linux packages locally as described below.

Fortran code compilation

Install the gfortran compiler, then:

cd trimsp/fortran
make

This creates the trimspNL binary in the repository root. For packaged Electron builds, copy or rebuild it into:

resources/bin/trimspNL

The application will prefer that bundled copy when running from a packaged install. During development it can still use a local checkout copy or a trimspNL binary found in the configured path or in PATH.

Running the GUI

Install Node.js (nodejs, nodejs-libs and npm), then run:

cd trimsp
npm install
npm start

Note: you do not need to run npm install every time. Next time you can simply run npm start only.

Building RPM and DEB packages

Install Node.js (nodejs, nodejs-libs and npm), then run:

cd trimsp
cp trimspNL resources/bin/trimspNL
npm install
npm run make

This uses Electron Forge to build Linux packages from the current checkout. The packaged application bundles resources/bin/trimspNL inside the app resources, so make sure that file exists and is up to date before packaging.

The generated files are written under:

out/make/deb/x64/
out/make/rpm/x64/

Typical output files are:

out/make/deb/x64/trimsp_<version>_amd64.deb
out/make/rpm/x64/TrimSP-<version>-1.x86_64.rpm

Depending on the host system, additional packaging tools may be required for the RPM/DEB build chain.

Building a Flatpak

Install the Flatpak build tools in addition to Node.js:

flatpak
flatpak-builder
eu-strip

Then run:

cd trimsp
cp trimspNL resources/bin/trimspNL
npm install
npm run make:flatpak

This uses Electron Forge's Flatpak maker and writes the resulting .flatpak under:

out/make/flatpak/x86_64/

The current Flatpak config grants access to the home directory and /tmp, which matches how the packaged app currently handles simulation input/output.

Deploying on a web server

The browser version requires a server-side setup in addition to the static HTML/JavaScript files.

In particular:

  • the browser build uses TrimSPweb.js rather than the Electron-specific TrimSPelec.js
  • the simulation backend must be available on the server
  • a web-exposed helper/CGI layer is required to create input files, run the backend, and return the generated output

Notes:

  • this repository does not currently include the CGI/backend helper used by the online deployment
  • a plain static web server is therefore not sufficient for running web simulations from this checkout
  • static hosting can still be used to test page loading only

Contact

Zaher Salman zaher.salman@psi.ch

Description
TRIM.SP simulation code and GUI
Readme GPL-3.0 502 MiB
Languages
Fortran 58.1%
JavaScript 31.4%
HTML 5.7%
CSS 4.5%
Makefile 0.3%