Main Page | Class List | File List | Class Members | File Members

compute.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2006 by David J. Hardy.  All rights reserved.
00003  */
00004 
00051 #ifndef COMPUTE_H
00052 #define COMPUTE_H
00053 
00054 #ifdef __cplusplus
00055 extern "C" {
00056 #endif
00057 
00073   int force_compute_scaled_coords(Force *, const MD_Dvec pos[],
00074       const int32 sel[], int32 sel_len);
00075 
00076 
00106   int force_compute_domain_update(Force *, const int32 sel[], int32 sel_len);
00107 
00108 
00129   int force_compute_bonds(Force *fobj, double *u_bond, MD_Dvec f_bond[],
00130       double e_bond[], double virial[], const MD_Dvec pos[],
00131       const int32 bond_sel[], int32 bond_sel_len);
00132 
00153   int force_compute_angles(Force *fobj, double *u_angle, MD_Dvec f_angle[],
00154       double e_angle[], double virial[], const MD_Dvec pos[],
00155       const int32 angle_sel[], int32 angle_sel_len);
00156 
00177   int force_compute_dihedrals(Force *fobj, double *u_dihed, MD_Dvec f_dihed[],
00178       double e_dihed[], double virial[], const MD_Dvec pos[],
00179       const int32 dihed_sel[], int32 dihed_sel_len);
00180 
00201   int force_compute_impropers(Force *fobj, double *u_impr, MD_Dvec f_impr[],
00202       double e_impr[], double virial[], const MD_Dvec pos[],
00203       const int32 impr_sel[], int32 impr_sel_len);
00204 
00205 
00221   double force_compute_bond_interaction(MD_Dvec f_bond[], double virial[],
00222       const MD_Dvec pos[], const MD_Bond *bond, const MD_BondPrm *prm);
00223 
00239   double force_compute_angle_interaction(MD_Dvec f_angle[], double virial[],
00240       const MD_Dvec pos[], const MD_Angle *angle, const MD_AnglePrm *prm);
00241 
00258   double force_compute_torsion_interaction(MD_Dvec f_tors[], double virial[],
00259       const MD_Dvec pos[], const MD_Tors *tors, const MD_TorsPrm *prm);
00260 
00261 
00281   int force_compute_bres_sphere(Force *fobj, double *u_bres,
00282       MD_Dvec f_bres[], double e_bres[], const MD_Dvec *pos,
00283       const int32 bres_sel[], int32 bres_sel_len);
00284 
00308   int force_compute_bres_cylinder(Force *fobj, double *u_bres,
00309       MD_Dvec f_bres[], double e_bres[], const MD_Dvec *pos,
00310       const int32 *bres_sel, int32 bres_sel_len, int32 bresopts);
00311 
00312 
00353   int force_compute_nbpairs_direct(Force *fobj, double virial[],
00354       double *u_elec, MD_Dvec f_elec[], double e_elec[], double e_epot[],
00355       int32 is_elec_direct, int32 elec_pair_potential,
00356       double *u_vdw, MD_Dvec f_vdw[], double e_vdw[],
00357       int32 is_vdw_direct, int32 vdw_pair_potential,
00358       const MD_Dvec pos[],
00359       const int32 aset_sel[], int32 aset_sel_len,
00360       const int32 bset_sel[], int32 bset_sel_len);
00361 
00375   int force_compute_nbpairs_geomhash(Force *fobj,
00376       const MD_Dvec trpos[], const int32 sel[], int32 sel_len);
00377 
00423   int force_compute_nbpairs_gridcells(Force *fobj, double virial[],
00424       double *u_elec, MD_Dvec f_elec[], double e_elec[], double e_epot[],
00425       int32 is_elec_gridcells, int32 elec_pair_potential,
00426       double *u_vdw, MD_Dvec f_vdw[], double e_vdw[],
00427       int32 is_vdw_gridcells, int32 vdw_pair_potential,
00428       const MD_Dvec pos[], int32 is_subtracted);
00429 
00484   int force_compute_nbpairs_subtexcl(Force *fobj, double virial[],
00485       double *u_elec, MD_Dvec f_elec[], double e_elec[], double e_epot[],
00486       int32 is_elec_subtexcl, int32 elec_pair_potential,
00487       double *u_vdw, MD_Dvec f_vdw[], double e_vdw[],
00488       int32 is_vdw_subtexcl, int32 vdw_pair_potential,
00489       const MD_Dvec pos[], const int32 sel[], int32 sel_len,
00490       const int32 mapnb[], int32 map_id);
00491 
00492 
00503   void force_compute_nbpairs_elec_standard(double *u, double *du_r,
00504       double r2, double c);
00505 
00520   void force_compute_nbpairs_elec_shifted(double *u, double *du_r,
00521       double r2, double c, double inv_elec_cutoff2);
00522 
00523   void force_compute_nbpairs_elec_ewald(double *u, double *du_r,
00524       double r2, double c, double ewald_coef, double grad_coef);
00525 
00536   void force_compute_nbpairs_vdw_standard(double *u, double *du_r,
00537       double r2, double a, double b);
00538 
00558   void force_compute_nbpairs_vdw_switched(double *u, double *du_r,
00559       double r2, double a, double b,
00560       double vdw_cutoff2, double switch_dist2, double inv_denom_switch);
00561 
00576   void force_compute_nbpairs_vdw_buck(double *u, double *du_r,
00577       double r2, double a, double b, double c);
00578 
00597   void force_compute_nbpairs_vdw_switchbuck(double *u, double *du_r,
00598       double r2, double a, double b, double c,
00599       double vdw_cutoff2, double switch_dist2, double inv_denom_switch);
00600 
00612   void force_compute_nbpairs_vdw_bucknd(double *u, double *du_r,
00613       double r2, double a, double b);
00614 
00630   void force_compute_nbpairs_vdw_switchbucknd(double *u, double *du_r,
00631       double r2, double a, double b,
00632       double vdw_cutoff2, double switch_dist2, double inv_denom_switch);
00633 
00634   void force_compute_nbpairs_vdw_bucksafe(double *u, double *du_r,
00635       double r2, double a, double b, double c,
00636       double rn2, double an, double bn);
00637 
00638   void force_compute_nbpairs_vdw_switchbucksafe(double *u, double *du_r,
00639       double r2, double a, double b, double c,
00640       double rn2, double an, double bn,
00641       double roff2, double ron2, double denom);
00642 
00643   int force_compute_nbpairs_isregen_pairlists(Force *fobj,
00644       double delta2, const MD_Dvec initpos[], const MD_Dvec pos[],
00645       const int32 sel[], int32 sel_len);
00646   int force_compute_nbpairs_regen_pairlists(Force *fobj,
00647       MD_Dvec initpos[], const MD_Dvec pos[],
00648       const int32 aset_sel[], int32 aset_sel_len,
00649       const int32 mapnb[], int32 aset_id, int32 bset_id);
00650   int force_compute_nbpairs_eval_pairlists(Force *fobj, double virial[],
00651       double *u_elec, MD_Dvec f_elec[], double e_elec[], double e_epot[],
00652       int32 is_elec_gridcells, int32 elec_pair_potential,
00653       double *u_vdw, MD_Dvec f_vdw[], double e_vdw[],
00654       int32 is_vdw_gridcells, int32 vdw_pair_potential,
00655       const MD_Dvec pos[], const int32 sel[], int32 sel_len,
00656       const int32 mapnb[], int32 map_id);
00657 
00658 #ifdef __cplusplus
00659 }
00660 #endif
00661 
00662 #endif /* COMPUTE_H */

Generated on Thu Feb 7 18:11:40 2008 for MDX by  doxygen 1.3.9.1