Gromacs  2020.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
#include "gmxpre.h"
#include "ewald.h"
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include "gromacs/ewald/ewald_utils.h"
#include "gromacs/math/functions.h"
#include "gromacs/math/gmxcomplex.h"
#include "gromacs/math/units.h"
#include "gromacs/math/utilities.h"
#include "gromacs/math/vec.h"
#include "gromacs/math/vectypes.h"
#include "gromacs/mdtypes/commrec.h"
#include "gromacs/mdtypes/forcerec.h"
#include "gromacs/mdtypes/inputrec.h"
#include "gromacs/mdtypes/md_enums.h"
#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
+ Include dependency graph for ewald.cpp:


This file contains function definitions necessary for computing energies and forces for the plain-Ewald long-ranged part, and the correction for overall system charge for all Ewald-family methods.

David van der Spoel
Mark Abraham


void init_ewald_tab (struct gmx_ewald_tab_t **et, const t_inputrec *ir, FILE *fp)
 Initialize the tables used in the Ewald long-ranged part.
static void calc_lll (const rvec box, rvec lll)
 Calculates wave vectors.
static void tabulateStructureFactors (int natom, const rvec x[], int kmax, cvec **eir, const rvec lll)
 Make tables for the structure factor parts.
real do_ewald (const t_inputrec *ir, const rvec x[], rvec f[], const real chargeA[], const real chargeB[], const matrix box, const t_commrec *cr, int natoms, matrix lrvir, real ewaldcoeff, real lambda, real *dvdlambda, gmx_ewald_tab_t *et)
 Do the long-ranged part of an Ewald calculation.
real ewald_charge_correction (const t_commrec *cr, const t_forcerec *fr, const real lambda, const matrix box, real *dvdlambda, tensor vir)
 Calculate the correction to the Ewald sum, due to a net system charge. More...

Function Documentation

real ewald_charge_correction ( const t_commrec *  cr,
const t_forcerec *  fr,
real  lambda,
const matrix  box,
real dvdlambda,
tensor  vir 

Calculate the correction to the Ewald sum, due to a net system charge.

Should only be called on one thread.