#ifdef PAIR_CLASS
PairStyle(exp6/rx,PairExp6rx)
#else
#ifndef LMP_PAIR_EXP6_RX_H
#define LMP_PAIR_EXP6_RX_H
#include "pair.h"
namespace LAMMPS_NS {
class PairExp6rx : public Pair {
public:
PairExp6rx(class LAMMPS *);
virtual ~PairExp6rx();
virtual void compute(int, int);
void settings(int, char **);
virtual void coeff(int, char **);
double init_one(int, int);
void write_restart(FILE *);
void read_restart(FILE *);
void write_restart_settings(FILE *);
void read_restart_settings(FILE *);
struct Param {
double epsilon,rm,alpha;
int ispecies;
char *name, *potential; char *tablename; int potentialType; };
protected:
enum{LINEAR};
enum{NONE,EXPONENT,POLYNOMIAL};
double cut_global;
double **cut;
double **epsilon,**rm,**alpha;
double **rminv,**buck1,**buck2,**offset;
virtual void allocate();
int *mol2param; int nparams; int maxparam; Param *params;
int nspecies;
virtual void read_file(char *);
void read_file2(char *);
void setup();
int isite1, isite2;
char *site1, *site2;
void getMixingWeights(int, double &, double &, double &, double &, double &, double &, double &, double &, double &, double &, double &, double &, double &, double &, double &, double &) const;
double exponentR, exponentEpsilon;
int scalingFlag;
void exponentScaling(double, double &, double &) const;
void polynomialScaling(double, double &, double &, double &) const;
double *coeffAlpha, *coeffEps, *coeffRm;
bool fractionalWeighting;
inline double func_rin(const double &) const;
inline double expValue(const double) const;
};
}
#endif
#endif