#ifdef FIX_CLASS
FixStyle(precession/spin,FixPrecessionSpin)
#else
#ifndef LMP_FIX_PRECESSION_SPIN_H
#define LMP_FIX_PRECESSION_SPIN_H
#include "fix.h"
namespace LAMMPS_NS {
class FixPrecessionSpin : public Fix {
friend class FixPour;
public:
FixPrecessionSpin(class LAMMPS *, int, char **);
~FixPrecessionSpin();
int setmask();
void init();
void setup(int);
void min_setup(int);
void post_force(int);
void post_force_respa(int, int, int);
void min_post_force(int);
double compute_scalar();
int zeeman_flag, aniso_flag, cubic_flag;
void compute_single_precession(int, double *, double *);
void compute_zeeman(int, double *);
void compute_anisotropy(double *, double *);
double compute_anisotropy_energy(double *);
void compute_cubic(double *, double *);
double compute_cubic_energy(double *);
protected:
int style;
double degree2rad;
double hbar;
int ilevel_respa;
int time_origin;
int eflag;
double eprec, eprec_all;
int varflag;
int magfieldstyle;
int magvar;
char *magstr;
double H_field;
double nhx, nhy, nhz;
double hx, hy, hz;
double Ka; double Kah; double nax, nay, naz;
double Kax, Kay, Kaz;
double k1c,k2c; double k1ch,k2ch; double nc1x,nc1y,nc1z;
double nc2x,nc2y,nc2z;
double nc3x,nc3y,nc3z;
void set_magneticprecession();
};
}
#endif
#endif