class SlabCorrection : public feasst::VisitModel

For a periodically repeated slab 3 to 5 times larger than the thickness of the slab,

\(U = \frac{2\pi}{V} M_z^2\)

\(M_z = \sum^N_{i=i}q_i z_i\)

where z is the position in the slab dimension, q is the charge and V is the volume.

I.C. Yeh and M.L. Berkowitz, J. Chem. Phys., 111, 3155, 1999.

E.R. Smith, Proc. R. Soc. London A, 375, 475-505, 1981.

P.S. Crozier, R.L. Rowley, E. Spohr and D. Henderson, J. Chem. Phys., 112, 925309257, 2000.

The non-neutral terms are not yet implemented:

V. Ballenegger, A. Arnold and J. J. Cerda, J. Chem. Phys. 131, 094107 (2009).

Public Functions

double net_dipole(const Configuration &config) const

Return the net dipole of the configuration.

void compute(ModelOneBody *model, const ModelParams &model_params, Configuration *config, const int group_index = 0)

Compute interactions of entire group in configuration from scratch. This is not optimized for smaller perturbations to the configuration.

void compute(ModelOneBody *model, const ModelParams &model_params, const Select &selection, Configuration *config, const int group_index)

Compute by selection is optimized for perturbations to the system.


  • dimension: dimension of periodically replicated slab.