#ifdef PAIR_CLASS
PairStyle(granular,PairGranular)
#else
#ifndef LMP_PAIR_GRANULAR_H
#define LMP_PAIR_GRANULAR_H
#include "pair.h"
namespace LAMMPS_NS {
class PairGranular : public Pair {
public:
PairGranular(class LAMMPS *);
~PairGranular();
void compute(int, int);
void settings(int, char **);
void coeff(int, char **);
void init_style();
double init_one(int, int);
void write_restart(FILE *);
void read_restart(FILE *);
void reset_dt();
double single(int, int, int, int, double, double, double, double &);
int pack_forward_comm(int, int *, double *, int, int *);
void unpack_forward_comm(int, int, double *);
double memory_usage();
protected:
double dt;
int freeze_group_bit;
int use_history;
int neighprev;
double *onerad_dynamic,*onerad_frozen;
double *maxrad_dynamic,*maxrad_frozen;
double **cut;
class FixNeighHistory *fix_history;
class Fix *fix_rigid; double *mass_rigid; int nmax;
void allocate();
void transfer_history(double*, double*);
private:
int size_history;
int *history_transfer_factors;
int **normal_model, **damping_model;
int **tangential_model, **roll_model, **twist_model;
int normal_history, tangential_history, roll_history, twist_history;
int normal_history_index;
int tangential_history_index;
int roll_history_index;
int twist_history_index;
double **Emod, **poiss, **Gmod;
double ***normal_coeffs;
double ***tangential_coeffs;
double ***roll_coeffs;
double ***twist_coeffs;
double **cutoff_type;
double cutoff_global;
double mix_stiffnessE(double, double, double, double);
double mix_stiffnessG(double, double, double, double);
double mix_geom(double, double);
double pulloff_distance(double, double, int, int);
};
}
#endif
#endif