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 #ifndef LMP_MLIAP_DESCRIPTOR_H 15 #define LMP_MLIAP_DESCRIPTOR_H 16 17 #include "pointers.h" 18 19 namespace LAMMPS_NS { 20 21 class MLIAPDescriptor : protected Pointers { 22 public: 23 MLIAPDescriptor(LAMMPS *); 24 virtual ~MLIAPDescriptor(); 25 virtual void compute_descriptors(class MLIAPData *) = 0; 26 virtual void compute_forces(class MLIAPData *) = 0; 27 virtual void compute_force_gradients(class MLIAPData *) = 0; 28 virtual void compute_descriptor_gradients(class MLIAPData *) = 0; 29 virtual void init() = 0; 30 virtual double memory_usage(); 31 32 int ndescriptors; // number of descriptors 33 int nelements; // # of unique elements 34 char **elements; // names of unique elements 35 double **cutsq; // nelem x nelem rcutsq values 36 double cutmax; // maximum cutoff needed 37 double *radelem; // element radii 38 double *wjelem; // elements weights 39 protected: 40 }; 41 42 } // namespace LAMMPS_NS 43 44 #endif 45