# 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: - J. P. Biersack and W. Eckstein, Sputtering studies with the Monte Carlo program TRIM.SP, Appl. Phys. A 34 (2), 73-94 (1984). - W. Eckstein, Computer Simulation of Ion-Solid Interactions, Springer Series in Materials Science Vol. 10 (Springer-Verlag, Berlin, Heidelberg, 1991). - W. Eckstein, Backscattering and sputtering with the Monte-Carlo program TRIM.SP, Radiat. Eff. Defects Solids 130-131 (1), 239-250 (1994). - E. Morenzoni et al., Implantation studies of keV positive muons in thin metallic layers, Nucl. Instrum. Methods Phys. Res., Sect. B 192 (3), 245-266 (2002). ### Supported platforms ### * [Linux] * Online at: http://musruser.psi.ch/TrimSP/ ### 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: ```bash cd trimsp/fortran make make install ``` This will install the `trimspNL` binary in `/usr/local/bin`, but it can be moved to any other directory in your `PATH`. ###### Running the GUI ###### Install [Node.js] (`nodejs`, `nodejs-libs` and `npm`), then run: ```bash 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: ```bash cd trimsp npm install npm run make ``` This uses Electron Forge to build Linux packages from the current checkout. The generated files are written under: ```text out/make/deb/x64/ out/make/rpm/x64/ ``` Typical output files are: ```text out/make/deb/x64/trimsp__amd64.deb out/make/rpm/x64/TrimSP--1.x86_64.rpm ``` Depending on the host system, additional packaging tools may be required for the RPM/DEB build chain. ###### 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 [Fortran]: https://fortran-lang.org/ [Node.js]: https://nodejs.org/en/ [JavaScript]: https://www.javascript.com/ [Electron]: https://www.electronjs.org/ [PSI]: https://www.psi.ch/en [LEM]: https://www.psi.ch/en/low-energy-muons [RPM]: https://rpm.org/ [DEB]: https://en.wikipedia.org/wiki/Deb_(file_format) [Linux]: https://en.wikipedia.org/wiki/Linux [Monte Carlo]: https://en.wikipedia.org/wiki/Monte_Carlo_method [GUI]: https://en.wikipedia.org/wiki/Graphical_user_interface