30 #define ACCELERATED_INPUT 1 31 #ifdef ACCELERATED_INPUT 33 #define ACCELERATED_INPUT_ANGLES 1 34 #define ACCELERATED_INPUT_DIHEDRALS 1 35 #define ACCELERATED_INPUT_IMPROPERS 1 36 #define ACCELERATED_INPUT_CROSSTERMS 1 37 #define ACCELERATED_INPUT_VDW 1 38 #define ACCELERATED_INPUT_NBTHOLE 1 39 #define ACCELERATED_INPUT_TABLE_PAIR 1 40 #if defined(ACCELERATED_INPUT_NBTHOLE) && ! defined(ACCELERATED_INPUT_VDW) 41 static_assert(
false,
"ACCELERATED_INPUT_NBTHOLE requires ACCELERATED_INPUT_VDW");
44 #if defined(ACCELERATED_INPUT_TABLE_PAIR) && ! defined(ACCELERATED_INPUT_VDW) 45 static_assert(
false,
"ACCELERATED_INPUT_TABLE_PAIR requires ACCELERATED_INPUT_VDW");
47 #endif // ACCELERATED_INPUT 83 #define MAX_MULTIPLICITY 6 86 #define MAX_ATOMTYPE_CHARS 6 137 #ifdef ACCELERATED_INPUT 191 #ifdef ACCELERATED_INPUT_VDW 240 #ifndef ACCELERATED_INPUT_TABLE_PAIR 278 #ifdef ACCELERATED_INPUT 286 #ifdef ACCELERATED_INPUT_VDW 289 std::unordered_map <uint64_t, IndexedVdwPairAccel> vdwpairmap;
290 #ifdef ACCELERATED_INPUT_NBTHOLE 291 std::unordered_map <uint64_t, NbtholePairValue> nbtholepairmap;
293 #ifdef ACCELERATED_INPUT_TABLE_PAIR 294 std::unordered_map <uint64_t, IndexedTablePair> tablepairmap;
345 int *maxDihedralMults;
347 int *maxImproperMults;
350 void skip_stream_read(
char *, FILE *);
352 void add_bond_param(
const char *,
Bool);
356 void add_angle_param(
char *);
360 void add_dihedral_param(
char *, FILE *);
364 void add_improper_param(
char *, FILE *);
367 void add_crossterm_param(
char *, FILE *);
370 void add_vdw_param(
char *);
374 void add_vdw_pair_param(
char *);
375 void add_nbthole_pair_param(
char *);
376 void add_table_pair_param(
char *);
381 void add_hb_pair_param(
char *);
387 void traverse_vdw_params(
struct vdw_params *);
400 void index_dihedrals();
401 void index_impropers();
402 void index_crossterms();
404 void convert_vdw_pairs();
405 void convert_nbthole_pairs();
406 void convert_table_pairs();
429 void free_vdw_pair_list();
430 void free_nbthole_pair_list();
486 #ifdef MEM_OPT_VERSION 547 NAMD_die(
"Bad mult index in Parameters::get_improper_params");
560 NAMD_die(
"Bad mult index in Parameters::get_dihedral_params");
581 *
sigma = sqrt(cbrt(A)) / sqrt(cbrt(B));
588 *
sigma14 = sqrt(cbrt(A14)) / sqrt(cbrt(B14));
595 else {
NAMD_die (
"Function get_vdw_params failed to derive Lennard-Jones sigma and epsilon from A and B values\n");}
GromacsPairValue * gromacsPair_array
void assign_improper_index(const char *, const char *, const char *, const char *, Improper *, int)
CrosstermData c[dim][dim]
nbthole_pair_value(Index _ind1, Index _ind2, Real _tholeij)
void assign_vdw_index(const char *, Atom *)
void print_crossterm_params()
indexed_table_pair(Index _ind1, Index _ind2, int _K)
void read_charmm_parameter_file(char *)
struct indexed_vdw_pair * right
struct indexed_table_pair IndexedTablePair
int get_improper_multiplicity(Index index)
void get_dihedral_params(Real *k, int *n, Real *delta, Index index, int mult)
int read_energy_type_cubspline(FILE *, const int, BigReal *, const float, const float)
DihedralValue * dihedral_array
std::string atom_type_name_str(Index a) const
void assign_bond_index(const char *, const char *, Bond *, bool *bond_found=nullptr)
CrosstermValue * crossterm_array
Molecule stores the structural information for the system.
IndexedVdwPair * vdw_pair_tree
int read_energy_type(FILE *, const int, BigReal *, const float, const float)
void print_param_summary()
IndexedNbtholePair * nbthole_pair_tree
void read_parameter_file(char *)
FourBodyConsts values[MAX_MULTIPLICITY]
struct indexed_vdw_pair * left
void print_dihedral_array()
int get_int_table_type(char *)
void get_angle_params(Real *k, Real *theta0, Real *k_ub, Real *r_ub, Index index)
void get_improper_params(Real *k, int *n, Real *delta, Index index, int mult)
void assign_crossterm_index(const char *, const char *, const char *, const char *, const char *, const char *, const char *, const char *, Crossterm *)
void print_vdw_pair_params()
void print_dihedral_params()
struct four_body_consts FourBodyConsts
struct indexed_vdw_pair IndexedVdwPair
ImproperValue * improper_array
int get_vdw_pair_params(Index ind1, Index ind2, Real *, Real *, Real *, Real *)
void NAMD_die(const char *err_msg)
NbtholePairValue * nbthole_array
char * atom_type_name(Index a)
int get_num_vdw_params(void)
FourBodyConsts values[MAX_MULTIPLICITY]
struct indexed_nbthole_pair * right
struct indexed_vdw_pair_accel IndexedVdwPairAccel
int get_table_pair_params(Index, Index, int *)
void send_Parameters(MOStream *)
void print_nbthole_pair_params()
void read_ener_table(SimParameters *)
void print_improper_params()
int read_energy_type_bothcubspline(FILE *, const int, BigReal *, const float, const float)
void assign_dihedral_index(const char *, const char *, const char *, const char *, Dihedral *, int, int)
void done_reading_structure()
void assign_angle_index(const char *, const char *, const char *, Angle *, int)
struct indexed_nbthole_pair * left
indexed_vdw_pair_accel(Index _ind1, Index _ind2, Real _A, Real _A14, Real _B, Real _B14)
void print_angle_params()
void get_bond_params(Real *k, Real *x0, Index index)
struct nbthole_pair_value NbtholePairValue
void get_vdw_params(Real *sigma, Real *epsilon, Real *sigma14, Real *epsilon14, Index index)
int get_dihedral_multiplicity(Index index)
IndexedTablePair * tab_pair_tree
void done_reading_files(const bool addDrudeBond)
#define MAX_ATOMTYPE_CHARS
struct indexed_nbthole_pair IndexedNbtholePair
void receive_Parameters(MIStream *)