/* -*- c++ -*- ---------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator http://lammps.sandia.gov, Sandia National Laboratories Steve Plimpton, sjplimp@sandia.gov Copyright (2003) Sandia Corporation. Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains certain rights in this software. This software is distributed under the GNU General Public License. See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ #ifdef PAIR_CLASS PairStyle(vmm,PairVMM) #else #ifndef LMP_PAIR_VMM_H #define LMP_PAIR_VMM_H #include "pair.h" namespace LAMMPS_NS { class PairVMM : public Pair { public: PairVMM(class LAMMPS *); virtual ~PairVMM(); virtual void compute(int, int); void settings(int, char **); virtual void coeff(int, char **); virtual double init_one(int, int); virtual void init_style(); struct Param { // Element_Symbol1 Element_Symbol2 We W1 R01 B1 R02 B2 Rcut cC1 cC2 force De1.2 De1 De2 De3 De4 DeN N double ideal_valence,k_vv,ideal_vv; // This row corresponds to parameter values for only the ith atom. double w1; double r01,b1,r02,b2,c1,c2; double force_single,force_double,force_intercept,force_switch; double de_h1,de_k1,de_h2,de_k2,de_s02,de_h3,de_k3,de_s03; double rmin_a1,rmin_b1,rmin_c1,rmin_a2,rmin_b2,rmin_c2,rmin_a3,rmin_b3,rmin_c3,rmin_c0; double tol; // remove tol later double cut,cutsq; //remove custsq later int ielement,jelement,kelement; //remove kelement int ielflag,jelflag; char isymbol[3],jsymbol[3]; }; // struct Bond { // double *smin; // int firststep; // }; protected: double cutmax; // max cutoff for all elements int nelements; // # of unique elements char **elements; // names of unique elements int **elem2param; // mapping from element doublets to parameters int *map; // mapping from atom types to elements int nparams; // # of stored parameter sets int maxparam; // max # of parameter sets Param *params; // parameter set for an I-J-K interaction // Bond *bonds; // temp holder for valence informaiton virtual void allocate(); void read_file(char *); virtual void setup(); int ncoord(int, double *, double, int *); void ovvsideal(int, int, double &, double &, double, double *, int *); void hvvsideal(int, int, double &, double &, double, double *, int *); void idealconfiguration(int, int, double, double *, double, int, int *, double *); int maxs(int, double *, int *); double bondvalence(Param *, double); // double bvgrad(double, double, double, double, double, double); void vectorvalence(Param *, int, double *, double *, int, int *, int, double, double, double, int *, double, double &, double &, double &); void nonbondedenergy(Param *, double, int, int, double &, double, double, double, double &, double &, double &,int); void valencemonopole(Param *, double , double, int, int, int, double &, double, double, double, double *, double *, double *, double *, int, int, double *, double *, double *, double, double, double, double &, double &, double &, int, int,int); void valencedipole(Param *, double, int, double &, double, double, double, double, double , double , double ,double, double, double, double, double &, double &, double &, int); void nonbondedparameters(double &,double &, double &,int,int,int); }; } #endif #endif /* ERROR/WARNING messages: E: Illegal ... command Self-explanatory. Check the input script syntax and compare to the documentation for the command. You can use -echo screen as a command-line option when running LAMMPS to see the offending line. E: Incorrect args for pair coefficients Self-explanatory. Check the input script or data file. E: Pair style Valence Multipole Model requires atom IDs This is a requirement to use the VMM potential. E: Pair style Valence Multipole Model requires newton pair on See the newton command. This is a restriction to use the VMM potential. E: All pair coeffs are not set All pair coefficients must be set in the data file or by the pair_coeff command before running a simulation. E: Cannot open Valence Multipole Model potential file %s The specified VMM potential file cannot be opened. Check that the path and name are correct. E: Incorrect format in Valence Multipole Model potential file Incorrect number of words per line in the potential file. E: Illegal Valence Multipole Model parameter One or more of the coefficients defined in the potential file is invalid. E: Potential file has duplicate entry The potential file has more than one entry for the same element. E: Potential file is missing an entry The potential file does not have a needed entry. */