Gromacs
2018.8
|
#include "gmxpre.h"
#include "ewald.h"
#include <stdio.h>
#include <cmath>
#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/inputrec.h"
#include "gromacs/mdtypes/md_enums.h"
#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/smalloc.h"
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.
Functions | |
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, rvec x[], int kmax, cvec **eir, rvec lll) |
Make tables for the structure factor parts. | |
real | do_ewald (t_inputrec *ir, rvec x[], rvec f[], real chargeA[], real chargeB[], matrix box, t_commrec *cr, int natoms, matrix lrvir, real ewaldcoeff, real lambda, real *dvdlambda, struct gmx_ewald_tab_t *et) |
Do the long-ranged part of an Ewald calculation. | |
real | ewald_charge_correction (t_commrec *cr, t_forcerec *fr, real lambda, matrix box, real *dvdlambda, tensor vir) |
Calculate the correction to the Ewald sum, due to a net system charge. More... | |