#ifdef FIX_CLASS
FixStyle(pimd,FixPIMD)
#else
#ifndef FIX_PIMD_H
#define FIX_PIMD_H
#include "fix.h"
namespace LAMMPS_NS {
class FixPIMD : public Fix {
public:
FixPIMD(class LAMMPS *, int, char **);
int setmask();
void init();
void setup(int);
void post_force(int);
void initial_integrate(int);
void final_integrate();
double memory_usage();
void grow_arrays(int);
void copy_arrays(int,int,int);
int pack_exchange(int,double*);
int unpack_exchange(int,double*);
int pack_restart(int,double*);
void unpack_restart(int,int);
int maxsize_restart();
int size_restart(int);
double compute_vector(int);
int pack_forward_comm(int, int*, double *, int, int*);
void unpack_forward_comm(int, int, double *);
int method;
int np;
double inverse_np;
double omega_np, fbond, spring_energy, sp;
int x_last, x_next;
void spring_force();
double fmass, *mass;
int max_nsend;
tagint* tag_send;
double *buf_send;
int max_nlocal;
double *buf_recv, **buf_beads;
int size_plan;
int *plan_send, *plan_recv;
double **comm_ptr;
void comm_init();
void comm_exec(double **);
double *lam, **M_x2xp, **M_xp2x, **M_f2fp, **M_fp2f;
int *mode_index;
void nmpimd_init();
void nmpimd_fill(double**);
void nmpimd_transform(double**, double**, double*);
int nhc_offset_one_1, nhc_offset_one_2;
int nhc_size_one_1, nhc_size_one_2;
int nhc_nchain;
bool nhc_ready;
double nhc_temp, dtv, dtf, t_sys;
double **nhc_eta;
double **nhc_eta_dot;
double **nhc_eta_dotdot;
double **nhc_eta_mass;
void nhc_init();
void nhc_update_v();
void nhc_update_x();
};
}
#endif
#endif