Skip to content

Modularise Ewald energy and force routines

Alex Buccheri requested to merge refactor/modularise_ion_interactions into main

This MR refactors ion-ion electrostatic energy and force routines in ion_interaction.F90 into more modular units, laying the ground work for migration of ion-ion interactions into an "interaction" class for use with the multi-system framework.

Routine Refactoring:

  • Total level ion_interaction_calculate refactored such that jellium interaction implementations are in their own routines

  • ewald_3d_periodic short range term moved into routine

  • ewald_3d_periodic self_interaction moved into routine

  • ewald_long_1d, moved into a place holder, and should issue a warning.

  • Write ewald_1d and ewald_2d pseudo-potential correction dummy routines, issuing warnings

  • ewald_3d G=0 pseudo-potential correction moved into routine

  • For fun: Refactor ewald_3d_periodic short-range energy contribution to remove if-statement cycling self-interaction This required me changing the loops to go over the upper triangle. Also added OMP for the loop over cells.

  • Clean up commit history before merging

Edited by Alex Buccheri

Merge request reports