Hybrid Core-shell model


My goal is to run a hybrid core-shell and non-core-shell model of calcite (CaCO3) following Bruneval et.al. (J. Phys. Chem. B, Vol. 111, No. 42, 2007), only splitting the oxygen atoms into cores and shells.

I have successfully implemented a core-shell model for three oxygen cores and their shells. But I do not manage to add another atom (Ca or C) which do not have a shell (I have tried to add a dummy shell for Ca, in a system of only Ca and O, and this works, but I do not want to add particles unnecessarily. This system can be found in “working_CaO3_full_coreshell.data” in my github repository https://github.com/goranbs/coreshell ). When I remove the dummy shell from the Ca (resulting in the initial system “testsystem.data”), I get a segmentation fault when LAMMPS starts reading the bonds in the data-file:

Reading data file …
orthogonal box = (0 0 0) to (24.95 24.95 17.0615)
2 by 2 by 1 MPI processor grid
reading atoms …
7 atoms
scanning bonds …
1 = max bonds/atom
*** Process received signal ***
Signal: Segmentation fault (11)
Signal code: Address not mapped (1)
Failing at address: (nil)

I have checked the .data-file up and down, comparing it with the example core-shell system found in the LAMMPS folder.
All systems were created with moltemplate, see the .lt-files in the github repository.

Any help is appreciated! Thanks!


Evening all,

Just a quick update to say that we managed to solve this problem - when putting coreshell information into a datafile, you need to include a “coreshell” ID for every atom, even those which don’t have a shell attached. The solution is to provide a dummy value for the CS-Id of every atom which doesn’t have a shell (we used 0). As long as these “shell-less” atoms aren’t included in either the “cores” or “shells” group provided to compute temp/cs, everything will work correctly.