SlabCorrection
-
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.
Arguments
dimension: dimension of periodically replicated slab.
-
double net_dipole(const Configuration &config) const