1 /* -*- c++ -*- ---------------------------------------------------------- 2 LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator 3 https://www.lammps.org/ Sandia National Laboratories 4 Steve Plimpton, sjplimp@sandia.gov 5 6 Copyright (2003) Sandia Corporation. Under the terms of Contract 7 DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains 8 certain rights in this software. This software is distributed under 9 the GNU General Public License. 10 11 See the README file in the top-level LAMMPS directory. 12 ------------------------------------------------------------------------- */ 13 /* ---------------------------------------------------------------------- 14 Contributing authors: Christopher Barrett (MSU) barrett@me.msstate.edu 15 Doyl Dickel (MSU) doyl@me.msstate.edu 16 ----------------------------------------------------------------------*/ 17 /* 18 “The research described and the resulting data presented herein, unless 19 otherwise noted, was funded under PE 0602784A, Project T53 "Military 20 Engineering Applied Research", Task 002 under Contract No. W56HZV-17-C-0095, 21 managed by the U.S. Army Combat Capabilities Development Command (CCDC) and 22 the Engineer Research and Development Center (ERDC). The work described in 23 this document was conducted at CAVS, MSU. Permission was granted by ERDC 24 to publish this information. Any opinions, findings and conclusions or 25 recommendations expressed in this material are those of the author(s) and 26 do not necessarily reflect the views of the United States Army.” 27 28 DISTRIBUTION A. Approved for public release; distribution unlimited. OPSEC#4918 29 30 ----------------*/ 31 32 #ifndef LMP_RANN_FINGERPRINT_H 33 #define LMP_RANN_FINGERPRINT_H 34 35 #include <string> 36 #include <vector> 37 38 namespace LAMMPS_NS { 39 class PairRANN; 40 namespace RANN { 41 class Fingerprint { 42 public: 43 Fingerprint(PairRANN *); ~Fingerprint()44 virtual ~Fingerprint() {} 45 parse_values(std::string,std::vector<std::string>)46 virtual bool parse_values(std::string, std::vector<std::string>) { return false; } write_values(FILE *)47 virtual void write_values(FILE *) {} 48 init(int *,int)49 virtual void init(int *, int) {} allocate()50 virtual void allocate() {} 51 52 void init_screen(int); 53 54 //no screen,no spin compute_fingerprint(double *,double *,double *,double *,int,int,double *,double *,double *,int *,int,int *)55 virtual void compute_fingerprint(double *, double *, double *, double *, int, int, double *, 56 double *, double *, int *, int, int *) 57 { 58 } 59 //screen compute_fingerprint(double *,double *,double *,double *,double *,double *,double *,double *,double *,double *,double *,bool *,int,int,double *,double *,double *,int *,int,int *)60 virtual void compute_fingerprint(double *, double *, double *, double *, double *, double *, 61 double *, double *, double *, double *, double *, bool *, int, 62 int, double *, double *, double *, int *, int, int *) 63 { 64 } 65 //spin compute_fingerprint(double *,double *,double *,double *,double *,double *,double *,int,int,double *,double *,double *,int *,int,int *)66 virtual void compute_fingerprint(double *, double *, double *, double *, double *, double *, 67 double *, int, int, double *, double *, double *, int *, int, 68 int *) 69 { 70 } 71 //spin,screen compute_fingerprint(double *,double *,double *,double *,double *,double *,double *,double *,double *,double *,double *,double *,double *,double *,bool *,int,int,double *,double *,double *,int *,int,int *)72 virtual void compute_fingerprint(double *, double *, double *, double *, double *, double *, 73 double *, double *, double *, double *, double *, double *, 74 double *, double *, bool *, int, int, double *, double *, 75 double *, int *, int, int *) 76 { 77 } 78 get_length()79 virtual int get_length() { return 0; }; 80 virtual double cutofffunction(double, double, double); 81 virtual void generate_rinvssqrttable(); 82 bool spin; 83 bool screen; 84 int n_body_type; //i-j vs. i-j-k vs. i-j-k-l, etc. 85 bool empty; 86 bool fullydefined; 87 int startingneuron; 88 int id; //based on ordering of fingerprints listed for i-j in potential file 89 const char *style; 90 int *atomtypes; 91 double *rinvsqrttable; 92 double rc; 93 PairRANN *pair; 94 }; 95 } // namespace RANN 96 } // namespace LAMMPS_NS 97 98 #endif /* RANN_FINGERPRINT_H_ */ 99