CAPRICCIO - Tool to run concurrent Finite Element-Molecular Dynamics Simulations

Read full text
Authors: Johannes Roksvaag
Cited by: 2

Abstract

CAPRICCIO - Tool to run concurrent Finite Element-Molecular Dynamics Simulations Remarks for Version 3.0.0 Within his bachelor thesis, supervised by the Capriccio developers Maximilian Ries and Sebastian Pfaller, Johannes Roksvaag reimplemented the Capriccio method in the programming language "Julia". As it is a complete rewrite, the scope and functionality of this version differ significantly from the previously released versions. This new version features significantly reduced simulation times, an improved coupling definition as derived in the bachelor thesis, and automatic weighting factor calculation. No longer included are pre- and postprocessing tools, the VE-VP material model, and the previously used coupling definitions. Installation This Version of the CAPRICCIO code is written for the Linux operating system. On Windows machines, WSL can be used instead. The following dependencies are required: Julia (tested with Version 1.12; an installation guide can be found at https://julialang.org/downloads/) openmpi (tested with Version 4.1) lammps (tested with 22 Jul 2025 - Update 2) Installing Capriccio To install Capriccio, download the provided .zip archive and unpack it to your home directory. Installing lammps The provided example requires a custom pair potential which is not included within the lammps binary bundeled with LAMMPS.jl. If no modifications to lammps are required, this step can be skipped as Julia will automatically provide mpi and lammps binaries through its artifact system. Make sure to install openmpi first before compiling lammps. You may also need to install CUDA if you have a CUDA-enabled graphics card, as otherwise julia might crash when loading the lammps library. To install lammps run: mkdir ~/lammps cd ~/lammps git clone -b stable https://github.com/lammps/lammps.git # external pair files not included with LAMMPS git clone https://github.com/compmatscirpi/SHIK-potential cp SHIK-potential/pair_SHIK_wolf.* lammps/src cd lammps/src make yes-MOLECULE make yes-MPIIO make yes-KSPACE make yes-INTEL make yes-NETCDF make yes-MISC make yes-CLASS2 make yes-MOLFILE make yes-OPT make yes-MANYBODY make yes-DPD-BASIC make yes-EXTRA-DUMP make yes-MC make yes-EXTRA-FIX make yes-EXTRA-MOLECULE make yes-EXTRA-PAIR make yes-REACTION make yes-bpm make mode=shared mpi -j Next, the CapriccioSimulation project has to be configured to use the MPI binary of your system and your custom LAMMPS installation: cd ~/CapriccioSimulation julia --project julia> ] instantiate pkg> # press backspace key to exit pkg mode julia> using MPIPreferences, LAMMPS julia> use_system_binary() julia> LAMMPS.set_library!("~/lammps/src/liblammps_mpi.so") julia> ] precompile pkg> # press backspace key to exit pkg mode julia> exit() Running the Simulation It should now be possible to run the example provided in CapriccioSimulation/Silica: cd ~/CapriccioSimulation Silica/run.sh 8 # 8 is the number of MPI processors to use Model preparation and postprocessing For model preparation, the FEMDCoupler tool can be used. The MD part of the simulation outputs a lammps dump file which can be analysed with Ovito. The FE part of the simulation outputs .vtu and .pvd files which can be read using ParaView. License / Permission of use The code is provided under the terms and conditions given in the `LICENSE` file. Contact PD Dr.-Ing. Sebastian Pfaller Friedrich-Alexander-Universität Erlangen-Nürnberg, Capriccio Group, Institute of Applied Mechanics (LTM), Egerlandstrasse 5, 91058 Erlangen, Germany, sebastian.pfaller@fau.de

Publication details

Journal / source
Zenodo (CERN European Organization for Nuclear Research)
Publication date
21 January 2026
Language
EN