#ifdef FIX_CLASS
FixStyle(wall/gran,FixWallGran)
#else
#ifndef LMP_FIX_WALL_GRAN_H
#define LMP_FIX_WALL_GRAN_H
#include "fix.h"
namespace LAMMPS_NS {
class FixWallGran : public Fix {
public:
FixWallGran(class LAMMPS *, int, char **);
virtual ~FixWallGran();
int setmask();
virtual void init();
void setup(int);
virtual void post_force(int);
virtual void post_force_respa(int, int, int);
virtual double memory_usage();
virtual void grow_arrays(int);
virtual void copy_arrays(int, int, int);
virtual void set_arrays(int);
virtual int pack_exchange(int, double *);
virtual int unpack_exchange(int, double *);
virtual int pack_restart(int, double *);
virtual void unpack_restart(int, int);
virtual int size_restart(int);
virtual int maxsize_restart();
void reset_dt();
void hooke(double, double, double, double, double *, double *,
double *, double *, double *, double, double, double*);
void hooke_history(double, double, double, double, double *,
double *, double *, double *, double *, double,
double, double *, double *);
void hertz_history(double, double, double, double, double *,
double, double *, double *, double *, double *,
double, double, double *, double *);
void granular(double, double, double, double, double *, double,
double *, double *, double *, double *, double,
double, double *, double *);
double pulloff_distance(double);
protected:
int wallstyle,wiggle,wshear,axis;
int pairstyle,nlevels_respa;
bigint time_origin;
double kn,kt,gamman,gammat,xmu;
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[4];
double tangential_coeffs[3];
double roll_coeffs[3];
double twist_coeffs[3];
double lo,hi,cylradius;
double amplitude,period,omega,vshear;
double dt;
char *idregion;
int use_history; int history_update; int size_history;
double **history_one;
class Fix *fix_rigid; double *mass_rigid; int nmax;
int store;
};
}
#endif
#endif