#ifdef FIX_CLASS
FixStyle(orient/bcc,FixOrientBCC)
#else
#ifndef LMP_FIX_ORIENT_BCC_H
#define LMP_FIX_ORIENT_BCC_H
#include "fix.h"
namespace LAMMPS_NS {
class FixOrientBCC : public Fix {
public:
struct Nbr { int n; tagint id[8]; double xismooth[8]; double dxi[8][3]; double duxi; };
struct Sort { int id; double rsq; double delta[3]; double xismooth; };
FixOrientBCC(class LAMMPS *, int, char **);
~FixOrientBCC();
int setmask();
void init();
void init_list(int, class NeighList *);
void setup(int);
void post_force(int);
void post_force_respa(int, int, int);
double compute_scalar();
int pack_forward_comm(int, int *, double *, int, int *);
void unpack_forward_comm(int, int, double *);
double memory_usage();
private:
int me;
int ilevel_respa;
int direction_of_motion; int nstats; double a; double Vxi; double uxif_low; double uxif_high; char *xifilename, *chifilename;
bool use_xismooth;
double Rxi[8][3],Rchi[8][3],half_xi_chi_vec[2][4][3];
double xiid,xi0,xi1,xicutoffsq,cutsq,added_energy;
int half_bcc_nn;
int nmax; double **order;
Nbr *nbr;
Sort *sort;
class NeighList *list;
void find_best_ref(double *, int, double &, double *);
static int compare(const void *, const void *);
};
}
#endif
#endif