2#ifndef STORMM_SYNTHESIS_ABSTRACTS_H
3#define STORMM_SYNTHESIS_ABSTRACTS_H
6#include "DataTypes/common_types.h"
7#include "DataTypes/stormm_vector_types.h"
8#include "Topology/atomgraph_enumerators.h"
9#include "synthesis_enumerators.h"
14using topology::UnitCellType;
15using topology::ImplicitSolventModel;
22 explicit SyValenceKit(
int nvwu_in,
const T coulomb_in,
const T* bond_keq_in,
23 const T* bond_leq_in,
const T* angl_keq_in,
const T* angl_theta_in,
24 const T* dihe_amp_in,
const T* dihe_freq_in,
const T* dihe_phi_in,
25 const T* attn14_elec_in,
const T* attn14_vdw_in,
const T* charges_in,
26 const T* lja_14_coeff_in,
const T* ljb_14_coeff_in,
27 const T* ljc_14_coeff_in,
const T* lj_14_sigma_in,
const int* lj_idx_in,
28 const int* n_lj_types_in,
const int* ljabc_offsets_in,
29 const T* ubrd_keq_in,
const T* ubrd_leq_in,
const T* cimp_keq_in,
30 const T* cimp_phi_in,
const int* cmap_dim_in,
const T* cmap_patches_in,
31 const int* cmap_patch_bounds_in,
const int2* vwu_abstracts_in,
32 const int* vwu_imports_in,
const uint2* cbnd_insr_in,
33 const uint2* angl_insr_in,
const uint2* cdhe_insr_in,
34 const uint* cdhe_ovrt_insr_in,
const uint2* cmap_insr_in,
35 const uint* infr14_insr_in,
const uint* cbnd_acc_in,
36 const uint* angl_acc_in,
const uint* cdhe_acc_in,
const uint* cmap_acc_in,
37 const uint* infr14_acc_in);
113 const int2* rangl_step_bounds_in,
const int2* rdihe_step_bounds_in,
114 const T2* rposn_init_k_in,
const T2* rposn_finl_k_in,
115 const T4* rposn_init_r_in,
const T4* rposn_finl_r_in,
116 const T2* rposn_init_xy_in,
const T* rposn_init_z_in,
117 const T2* rposn_finl_xy_in,
const T* rposn_finl_z_in,
118 const T2* rbond_init_k_in,
const T2* rbond_finl_k_in,
119 const T4* rbond_init_r_in,
const T4* rbond_finl_r_in,
120 const T2* rangl_init_k_in,
const T2* rangl_finl_k_in,
121 const T4* rangl_init_r_in,
const T4* rangl_finl_r_in,
122 const T2* rdihe_init_k_in,
const T2* rdihe_finl_k_in,
123 const T4* rdihe_init_r_in,
const T4* rdihe_finl_r_in,
124 const uint2* rposn_insr_in,
const uint2* rbond_insr_in,
125 const uint2* rangl_insr_in,
const uint2* rdihe_insr_in,
126 const uint* rposn_acc_in,
const uint* rbond_acc_in,
127 const uint* rangl_acc_in,
const uint* rdihe_acc_in);
185 const int* nbwu_abstracts_in,
const uint2* nbwu_insr_in,
187 ImplicitSolventModel igb_in,
int neck_table_size_in, T dielectric_in,
188 T kappa_in, T saltcon_in, T gb_offset_in, T gb_neckscale_in,
189 T gb_neckcut_in,
const T* charge_in,
const int* q_idx_in,
190 const T* q_params_in,
const int* lj_idx_in,
const int* n_lj_types_in,
191 const int* ljabc_offsets_in,
const T2* ljab_coeff_in,
192 const T* ljc_coeff_in,
const T* lj_sigma_in,
const int* neck_gb_idx_in,
193 const T* pb_radii_in,
const T* gb_screen_in,
const T* gb_alpha_in,
194 const T* gb_beta_in,
const T* gb_gamma_in,
const T2* neck_limits_in);
215 const ImplicitSolventModel
igb;
265 const T4* vs_params_in,
const T4* settle_geom_in,
const T4* settle_mass_in,
266 const T2* cnst_grp_params_in,
const uint2* vste_insr_in,
267 const uint2* sett_insr_in,
const uint2* cnst_insr_in,
const uint2* vwu_manip_in,
268 const int* free_dof_in,
const int* cnst_dof_in);
316#include "synthesis_abstracts.tpp"
Definition stormm_vector_types.h:22
Definition stormm_vector_types.h:40
SyAtomUpdateKit(const T *masses_in, const T *inv_masses_in, int largest_group_in, const T4 *vs_params_in, const T4 *settle_geom_in, const T4 *settle_mass_in, const T2 *cnst_grp_params_in, const uint2 *vste_insr_in, const uint2 *sett_insr_in, const uint2 *cnst_insr_in, const uint2 *vwu_manip_in, const int *free_dof_in, const int *cnst_dof_in)
The constructor takes a list of parameter arrays. Like other AtomGraphSynthesis abstracts,...
SyNonbondedKit(int nsys_in, UnitCellType unit_cell_in, int nnbwu_in, const int *nbwu_abstracts_in, const uint2 *nbwu_insr_in, const int *atom_offsets, const int *atom_counts, T coulomb_in, ImplicitSolventModel igb_in, int neck_table_size_in, T dielectric_in, T kappa_in, T saltcon_in, T gb_offset_in, T gb_neckscale_in, T gb_neckcut_in, const T *charge_in, const int *q_idx_in, const T *q_params_in, const int *lj_idx_in, const int *n_lj_types_in, const int *ljabc_offsets_in, const T2 *ljab_coeff_in, const T *ljc_coeff_in, const T *lj_sigma_in, const int *neck_gb_idx_in, const T *pb_radii_in, const T *gb_screen_in, const T *gb_alpha_in, const T *gb_beta_in, const T *gb_gamma_in, const T2 *neck_limits_in)
The constructor takes a straight list of arguments for each member variable.
SyRestraintKit()
The constructor takes a straight list of arguments for each member variable. There are no array sizin...
SyValenceKit(int nvwu_in, const T coulomb_in, const T *bond_keq_in, const T *bond_leq_in, const T *angl_keq_in, const T *angl_theta_in, const T *dihe_amp_in, const T *dihe_freq_in, const T *dihe_phi_in, const T *attn14_elec_in, const T *attn14_vdw_in, const T *charges_in, const T *lja_14_coeff_in, const T *ljb_14_coeff_in, const T *ljc_14_coeff_in, const T *lj_14_sigma_in, const int *lj_idx_in, const int *n_lj_types_in, const int *ljabc_offsets_in, const T *ubrd_keq_in, const T *ubrd_leq_in, const T *cimp_keq_in, const T *cimp_phi_in, const int *cmap_dim_in, const T *cmap_patches_in, const int *cmap_patch_bounds_in, const int2 *vwu_abstracts_in, const int *vwu_imports_in, const uint2 *cbnd_insr_in, const uint2 *angl_insr_in, const uint2 *cdhe_insr_in, const uint *cdhe_ovrt_insr_in, const uint2 *cmap_insr_in, const uint *infr14_insr_in, const uint *cbnd_acc_in, const uint *angl_acc_in, const uint *cdhe_acc_in, const uint *cmap_acc_in, const uint *infr14_acc_in)
The constructor takes a straight list of arguments for each member variable.
const uint2 * vste_insr
Virtual site placement instructions.
Definition synthesis_abstracts.h:302
const T4 * vs_params
Definition synthesis_abstracts.h:284
SyAtomUpdateKit(const SyAtomUpdateKit &original)=default
The copy and move constructors are taken at their default values for this abstract containing const e...
const uint2 * sett_insr
SETTLE group constraints instructions.
Definition synthesis_abstracts.h:303
const T * inv_masses
Inverse masses of all particles.
Definition synthesis_abstracts.h:279
SyAtomUpdateKit(const T *masses_in, const T *inv_masses_in, int largest_group_in, const T4 *vs_params_in, const T4 *settle_geom_in, const T4 *settle_mass_in, const T2 *cnst_grp_params_in, const uint2 *vste_insr_in, const uint2 *sett_insr_in, const uint2 *cnst_insr_in, const uint2 *vwu_manip_in, const int *free_dof_in, const int *cnst_dof_in)
The constructor takes a list of parameter arrays. Like other AtomGraphSynthesis abstracts,...
const T4 * settle_geom
Definition synthesis_abstracts.h:288
const uint2 * vwu_manip
Definition synthesis_abstracts.h:305
const T2 * cnst_grp_params
Definition synthesis_abstracts.h:299
const uint2 * cnst_insr
Hub-and-spoke constraint instructions.
Definition synthesis_abstracts.h:304
const T4 * settle_mass
Definition synthesis_abstracts.h:296
const T * masses
Masses of all particles.
Definition synthesis_abstracts.h:278
const int * cnst_dof
Definition synthesis_abstracts.h:309
const int largest_group
Definition synthesis_abstracts.h:282
const int * free_dof
Definition synthesis_abstracts.h:307
const int nnbwu
The number of non-bonded work units in the synthesis.
Definition synthesis_abstracts.h:206
const T2 * neck_limits
Interlaced neck GB maximum separations and values tables.
Definition synthesis_abstracts.h:250
const int * q_idx
Definition synthesis_abstracts.h:228
SyNonbondedKit(const SyNonbondedKit &original)=default
The copy and move constructors are taken at their default values for this abstract containing const e...
const int * neck_gb_idx
Definition synthesis_abstracts.h:243
const T * gb_beta
Generalized born beta parameters (one parameter per atom)
Definition synthesis_abstracts.h:248
const int nsys
The total number of systems in the synthesis.
Definition synthesis_abstracts.h:204
const int * nbwu_abstracts
Abstracts for all non-bonded work units.
Definition synthesis_abstracts.h:207
const T saltcon
The salt concentration to use in GB calculations.
Definition synthesis_abstracts.h:220
const int * ljabc_offsets
Definition synthesis_abstracts.h:238
SyNonbondedKit(int nsys_in, UnitCellType unit_cell_in, int nnbwu_in, const int *nbwu_abstracts_in, const uint2 *nbwu_insr_in, const int *atom_offsets, const int *atom_counts, T coulomb_in, ImplicitSolventModel igb_in, int neck_table_size_in, T dielectric_in, T kappa_in, T saltcon_in, T gb_offset_in, T gb_neckscale_in, T gb_neckcut_in, const T *charge_in, const int *q_idx_in, const T *q_params_in, const int *lj_idx_in, const int *n_lj_types_in, const int *ljabc_offsets_in, const T2 *ljab_coeff_in, const T *ljc_coeff_in, const T *lj_sigma_in, const int *neck_gb_idx_in, const T *pb_radii_in, const T *gb_screen_in, const T *gb_alpha_in, const T *gb_beta_in, const T *gb_gamma_in, const T2 *neck_limits_in)
The constructor takes a straight list of arguments for each member variable.
const T dielectric
Solvent dielectric constant.
Definition synthesis_abstracts.h:218
const T * q_params
Definition synthesis_abstracts.h:232
const T * ljc_coeff
Lennard-Jones interaction C coefficients.
Definition synthesis_abstracts.h:241
const T gb_offset
Definition synthesis_abstracts.h:221
const int * n_lj_types
Lennard-Jones type counts for all systems.
Definition synthesis_abstracts.h:237
const T * charge
Definition synthesis_abstracts.h:225
const ImplicitSolventModel igb
Definition synthesis_abstracts.h:215
const T gb_neckscale
Neck function scaling parameter for neck GB.
Definition synthesis_abstracts.h:223
const T2 * ljab_coeff
Lennard-Jones interaction A and B coefficients.
Definition synthesis_abstracts.h:240
const int * atom_counts
Definition synthesis_abstracts.h:211
const int * lj_idx
Definition synthesis_abstracts.h:234
const T coulomb
Definition synthesis_abstracts.h:213
const T * pb_radii
Atomic PB radii for all atoms in all systems.
Definition synthesis_abstracts.h:245
const T * gb_screen
Generalized Born screening factors for all atoms and systems.
Definition synthesis_abstracts.h:246
const int * atom_offsets
Definition synthesis_abstracts.h:209
const UnitCellType unit_cell
The type of unit cell for all systems.
Definition synthesis_abstracts.h:205
const int neck_table_size
Length of each side of the square "neck" GB limit tables.
Definition synthesis_abstracts.h:217
const T * gb_gamma
Generalized born gamma parameters (one parameter per atom)
Definition synthesis_abstracts.h:249
const T * gb_alpha
Generalized born alpha parameters (one parameter per atom)
Definition synthesis_abstracts.h:247
const uint2 * nbwu_insr
Instructions for all non-bonded work units.
Definition synthesis_abstracts.h:208
const T * lj_sigma
Lennard-Jones sigma parameters for all atom type pairs.
Definition synthesis_abstracts.h:242
const T gb_neckcut
Cutoff for the "neck" GB function.
Definition synthesis_abstracts.h:224
const T kappa
Inverse of the Debye-Huckel length (based on the dielectic)
Definition synthesis_abstracts.h:219
const T4 * rposn_init_r
Initial positional restraint displacement parameters.
Definition synthesis_abstracts.h:148
const T2 * rbond_init_k
Initial distance restraint stiffness parameters.
Definition synthesis_abstracts.h:154
const T2 * rbond_finl_k
Final distance restraint stiffness parameters.
Definition synthesis_abstracts.h:155
const T2 * rdihe_init_k
Initial dihedral angel restraint stiffness parameters.
Definition synthesis_abstracts.h:162
const uint * rbond_acc
Masks of whether to accumulate distance restraint effects.
Definition synthesis_abstracts.h:171
const T4 * rbond_init_r
Initial distance restraint displacement parameters.
Definition synthesis_abstracts.h:156
const T2 * rangl_init_k
Initial angle restraint stiffness parameters.
Definition synthesis_abstracts.h:158
const int2 * rangl_step_bounds
Definition synthesis_abstracts.h:142
const T * rposn_init_z
Initial positional restraint Z reference coordinates.
Definition synthesis_abstracts.h:151
const T4 * rangl_finl_r
Final angle restraint displacement parameters.
Definition synthesis_abstracts.h:161
const T2 * rangl_finl_k
Final angle restraint stiffness parameters.
Definition synthesis_abstracts.h:159
const T4 * rangl_init_r
Initial angle restraint displacement parameters.
Definition synthesis_abstracts.h:160
const T4 * rdihe_finl_r
Final dihedral angle restraint displacement parameters.
Definition synthesis_abstracts.h:165
const T4 * rposn_finl_r
Final positional restraint displacement parameters.
Definition synthesis_abstracts.h:149
const uint2 * rbond_insr
Instructions for distance restraints.
Definition synthesis_abstracts.h:167
const uint * rangl_acc
Masks of whether to accumulate angle restraint effects.
Definition synthesis_abstracts.h:172
const uint2 * rangl_insr
Instructions for three-point angle restraints.
Definition synthesis_abstracts.h:168
const T4 * rdihe_init_r
Initial dihedral angle restraint displacement parameters.
Definition synthesis_abstracts.h:164
const T2 * rdihe_finl_k
Final dihedral angle restraint stiffness parameters.
Definition synthesis_abstracts.h:163
const T4 * rbond_finl_r
Final distance restraint displacement parameters.
Definition synthesis_abstracts.h:157
const int2 * rbond_step_bounds
Definition synthesis_abstracts.h:140
const uint * rdihe_acc
Masks of whether to accumulate dihedral restraint effects.
Definition synthesis_abstracts.h:173
const int2 * rdihe_step_bounds
Definition synthesis_abstracts.h:144
const uint2 * rdihe_insr
Instructions for four-point dihedral restraints.
Definition synthesis_abstracts.h:169
SyRestraintKit()
The constructor takes a straight list of arguments for each member variable. There are no array sizin...
const int2 * rposn_step_bounds
Definition synthesis_abstracts.h:138
const uint * rposn_acc
Masks of whether to accumulate positional restraint effects.
Definition synthesis_abstracts.h:170
const T2 * rposn_finl_xy
Final positional restraint X and Y reference coordinates.
Definition synthesis_abstracts.h:152
const T2 * rposn_init_k
Initial positional restraint stiffness parameters.
Definition synthesis_abstracts.h:146
const T2 * rposn_init_xy
Initial positional restraint X and Y reference coordinates.
Definition synthesis_abstracts.h:150
const T2 * rposn_finl_k
Final positional restraint stiffness parameters.
Definition synthesis_abstracts.h:147
const T * rposn_finl_z
Final positional restraint Z reference coordinates.
Definition synthesis_abstracts.h:153
SyRestraintKit(const SyRestraintKit &original)=default
The copy and move constructors are taken at their default values for this abstract containing const e...
const uint2 * rposn_insr
Instructions for positional restraints.
Definition synthesis_abstracts.h:166
const T * dihe_phi
Consensus table of cosine-based dihedral phase angles.
Definition synthesis_abstracts.h:57
const T * angl_keq
Consensus table of harmonic angle stiffness constants.
Definition synthesis_abstracts.h:53
const T * ljc_14_coeff
Lennard-Jones 1:4 interaction C coefficients.
Definition synthesis_abstracts.h:63
const int2 * vwu_abstracts
Abstracts for all valence work units.
Definition synthesis_abstracts.h:79
const uint * cdhe_acc
Composite dihedral energy accumulation masks.
Definition synthesis_abstracts.h:92
const int * vwu_imports
Imported atom tables for all valence work units.
Definition synthesis_abstracts.h:80
const uint * cbnd_acc
Composite bond energy accumulation masks.
Definition synthesis_abstracts.h:90
const uint * angl_acc
Harmonic angle energy accumulation masks.
Definition synthesis_abstracts.h:91
const uint2 * angl_insr
Harmonic angle instructions implemented by valence work units.
Definition synthesis_abstracts.h:83
const T * bond_keq
Consensus table of harmonic bond stiffness constants.
Definition synthesis_abstracts.h:51
const T * cmap_patches
Consensus table of CMAP pre-computed surface patch data.
Definition synthesis_abstracts.h:75
const T * charges
Charges on all atoms.
Definition synthesis_abstracts.h:60
const int * cmap_dim
Dimensions for each member of the consensus table of CMAPs.
Definition synthesis_abstracts.h:74
const int * cmap_patch_bounds
Bounds array for cmap_patches.
Definition synthesis_abstracts.h:76
const T * attn14_vdw
Consensus table of 1:4 van-der Waals scaling factors.
Definition synthesis_abstracts.h:59
SyValenceKit(int nvwu_in, const T coulomb_in, const T *bond_keq_in, const T *bond_leq_in, const T *angl_keq_in, const T *angl_theta_in, const T *dihe_amp_in, const T *dihe_freq_in, const T *dihe_phi_in, const T *attn14_elec_in, const T *attn14_vdw_in, const T *charges_in, const T *lja_14_coeff_in, const T *ljb_14_coeff_in, const T *ljc_14_coeff_in, const T *lj_14_sigma_in, const int *lj_idx_in, const int *n_lj_types_in, const int *ljabc_offsets_in, const T *ubrd_keq_in, const T *ubrd_leq_in, const T *cimp_keq_in, const T *cimp_phi_in, const int *cmap_dim_in, const T *cmap_patches_in, const int *cmap_patch_bounds_in, const int2 *vwu_abstracts_in, const int *vwu_imports_in, const uint2 *cbnd_insr_in, const uint2 *angl_insr_in, const uint2 *cdhe_insr_in, const uint *cdhe_ovrt_insr_in, const uint2 *cmap_insr_in, const uint *infr14_insr_in, const uint *cbnd_acc_in, const uint *angl_acc_in, const uint *cdhe_acc_in, const uint *cmap_acc_in, const uint *infr14_acc_in)
The constructor takes a straight list of arguments for each member variable.
const uint * cmap_acc
CMAP energy accumulation masks.
Definition synthesis_abstracts.h:93
const T * ljb_14_coeff
Lennard-Jones 1:4 interaction B coefficients.
Definition synthesis_abstracts.h:62
const uint2 * cbnd_insr
Definition synthesis_abstracts.h:81
const uint2 * cdhe_insr
Definition synthesis_abstracts.h:84
const T * cimp_phi
Consensus table of CHARMM improper dihedral phase angles.
Definition synthesis_abstracts.h:73
const int * ljabc_offsets
Definition synthesis_abstracts.h:67
const uint * cdhe_ovrt_insr
Instructions for composite cosine-based dihedral overtones.
Definition synthesis_abstracts.h:86
const uint * infr14_acc
Inferred 1:4 interaction energy accumulation masks.
Definition synthesis_abstracts.h:94
const T * dihe_freq
Consensus table of cosine-based dihedral frequencies.
Definition synthesis_abstracts.h:56
const T * ubrd_leq
Consensus table of Urey-Bradley I:K separation distances.
Definition synthesis_abstracts.h:70
const int nvwu
The number of valence work units.
Definition synthesis_abstracts.h:47
const T * attn14_elec
Consensus table of 1:4 electrostatic scaling factors.
Definition synthesis_abstracts.h:58
const T * lj_14_sigma
Lennard-Jones 1:4 sigma parameters for all atom type pairs.
Definition synthesis_abstracts.h:64
const uint2 * cmap_insr
CMAP instructions implemented by valence work units.
Definition synthesis_abstracts.h:87
const T * lja_14_coeff
Lennard-Jones 1:4 interaction A coefficients.
Definition synthesis_abstracts.h:61
const T * cimp_keq
Definition synthesis_abstracts.h:71
const uint * infr14_insr
Definition synthesis_abstracts.h:88
const T * dihe_amp
Consensus table of cosine-based dihedral amplitudes.
Definition synthesis_abstracts.h:55
const T coulomb
Coulomb's constant in kcal-A2/mol-e2.
Definition synthesis_abstracts.h:48
const T * bond_leq
Consensus table of harmonic bond equilibrium lengths.
Definition synthesis_abstracts.h:52
const T * ubrd_keq
Consensus table of Urey-Bradley stiffnesses.
Definition synthesis_abstracts.h:69
const T * angl_theta
Consensus table of harmonic angle equilibrium settings.
Definition synthesis_abstracts.h:54
const int * lj_idx
Lennard-Jones type indices for all atoms.
Definition synthesis_abstracts.h:65
const int * n_lj_types
Lennard-Jones type counts for all systems.
Definition synthesis_abstracts.h:66
SyValenceKit(const SyValenceKit &original)=default
The copy and move constructors are taken at their default values for this abstract containing const e...