#ifdef PAIR_CLASS
PairStyle(multi/lucy/rx,PairMultiLucyRX)
#else
#ifndef LMP_PAIR_MULTI_LUCY_RX_H
#define LMP_PAIR_MULTI_LUCY_RX_H
#include "pair.h"
namespace LAMMPS_NS {
class PairMultiLucyRX : public Pair {
public:
PairMultiLucyRX(class LAMMPS *);
virtual ~PairMultiLucyRX();
virtual void compute(int, int);
virtual void settings(int, char **);
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 *);
virtual int pack_forward_comm(int, int *, double *, int, int *);
virtual void unpack_forward_comm(int, int, double *);
virtual int pack_reverse_comm(int, int, double *);
virtual void unpack_reverse_comm(int, int *, double *);
void computeLocalDensity();
double rho_0;
protected:
enum{LOOKUP,LINEAR};
int nmax;
int tabstyle,tablength;
struct Table {
int ninput,rflag,fpflag,match;
double rlo,rhi,fplo,fphi,cut;
double *rfile,*efile,*ffile;
double *e2file,*f2file;
double innersq,delta,invdelta,deltasq6;
double *rsq,*drsq,*e,*de,*f,*df,*e2,*f2;
};
int ntables;
Table *tables;
int **tabindex;
virtual void allocate();
void read_table(Table *, char *, char *);
void param_extract(Table *, char *);
void bcast_table(Table *);
void spline_table(Table *);
void compute_table(Table *);
void null_table(Table *);
void free_table(Table *);
void spline(double *, double *, int, double, double, double *);
double splint(double *, double *, double *, int, double);
int nspecies;
char *site1, *site2;
int isite1, isite2;
void getMixingWeights(int, double &, double &, double &, double &);
bool fractionalWeighting;
};
}
#endif
#endif