Draft: Merge LayerPCM
Description
This merges the LayerPCM package developed by Jannis Krumland @jannisk93 as part of his thesis in collaboration with Gabriel Gil and Stefano Corni in the group of Caterina Cocchi at Uni Oldenburg.
LayerPCM is an extension of the existing PCM implementation in Octopus specifically developed to account for electrostatic interactions from layered substrates on physisorbed molecules.
The associated publication is
LayerPCM: An implicit scheme for dielectric screening from layered substrates
Jannis Krumland, Gabriel Gil, Stefano Corni, Caterina Cocchi
J. Chem. Phys. 154, 224114 (2021)
https://doi.org/10.1063/5.0050158
https://arxiv.org/abs/2103.07386
This package was also adopted in other investigations:
- https://onlinelibrary.wiley.com/doi/abs/10.1002/pssa.202300089
- https://iopscience.iop.org/article/10.1088/2515-7639/aca935/meta
This is obviously not ready yet. There are a couple of points to address:
-
Currently both src/hamiltonian/lasers.F90
andsrc/hamiltonian/pcm.F90
pull in the entiresrc/hamiltonian/layer_pcm.F90
with a preprocessor#include
and with some macros set to only select parts of that file. This should be solved in a different way. -
There are no tests for the new functionality. -
The upstream source contains a folder layerpcm_scripts
. How relevant are these for the functioning of the feature?
News snippet
New package LayerPCM.
LayerPCM is an extension of the existing PCM implementation in Octopus specifically developed to account for electrostatic interactions from layered substrates on physisorbed molecules.
Checklist
-
I have checked that my code follows the Octopus coding standards -
I have added tests for all the new features added in this request.