#include "config.h"
#include "gromacs/math/gmxcomplex.h"
#include "gromacs/utility/basedefinitions.h"
#include "gromacs/utility/gmxmpi.h"
#include "pme-gpu-types.h"
This file contains function declarations necessary for computing energies and forces for the PME long-ranged part (Coulomb and LJ).
- Author
- Berk Hess hess@.nosp@m.kth..nosp@m.se
-
Mark Abraham mark..nosp@m.j.ab.nosp@m.raham.nosp@m.@gma.nosp@m.il.co.nosp@m.m
|
#define | PME_ORDER_MAX 12 |
| We only define a maximum to be able to use local arrays without allocation. An order larger than 12 should never be needed, even for test cases. If needed it can be changed here.
|
|
|
#define | PME_GRID_QA 0 |
| Grid indices for A state for charge and Lennard-Jones C6.
|
|
#define | PME_GRID_C6A 2 |
|
|
#define | DO_Q 2 /* Electrostatic grids have index q<2 */ |
| Flags that indicate the number of PME grids in use.
|
|
#define | DO_Q_AND_LJ 4 /* non-LB LJ grids have index 2 <= q < 4 */ |
|
#define | DO_Q_AND_LJ_LB 9 /* With LB rules we need a total of 2+7 grids */ |
|
|
void | gmx_pme_reinit (struct gmx_pme_t **pmedata, t_commrec *cr, struct gmx_pme_t *pme_src, const t_inputrec *ir, const ivec grid_size, real ewaldcoeff_q, real ewaldcoeff_lj) |
| As gmx_pme_init, but takes most settings, except the grid/Ewald coefficients, from pme_src. This is only called when the PME cut-off/grid size changes.
|
|
bool | pme_gpu_active (const gmx_pme_t *pme) |
| Finds out if PME is currently running on GPU. TODO: should this be removed eventually? More...
|
|
void | gmx_pme_send_switchgrid (t_commrec *cr, ivec grid_size, real ewaldcoeff_q, real ewaldcoeff_lj) |
| Tell our PME-only node to switch to a new grid size.
|
|
|
static const real | lb_scale_factor [] |
| Pascal triangle coefficients scaled with (1/2)^6 for LJ-PME with LB-rules. More...
|
|
static const real | lb_scale_factor_symm [] = { 2.0/64, 12.0/64, 30.0/64, 20.0/64 } |
| Pascal triangle coefficients used in solve_pme_lj_yzx, only need to do 4 calculations due to symmetry.
|
|
bool pme_gpu_active |
( |
const gmx_pme_t * |
pme | ) |
|
|
inline |
Finds out if PME is currently running on GPU. TODO: should this be removed eventually?
- Parameters
-
[in] | pme | The PME structure. |
- Returns
- True if PME runs on GPU currently, false otherwise.
const real lb_scale_factor[] |
|
static |
Initial value:= {
1.0/64, 6.0/64, 15.0/64, 20.0/64,
15.0/64, 6.0/64, 1.0/64
}
Pascal triangle coefficients scaled with (1/2)^6 for LJ-PME with LB-rules.