#ifdef FIX_CLASS
FixStyle(neb/spin,FixNEBSpin)
#else
#ifndef LMP_FIX_NEB_SPIN_H
#define LMP_FIX_NEB_SPIN_H
#include "fix.h"
namespace LAMMPS_NS {
class FixNEBSpin : public Fix {
public:
double veng,plen,nlen,dotpath,dottangrad,gradlen,dotgrad;
int rclimber;
FixNEBSpin(class LAMMPS *, int, char **);
~FixNEBSpin();
int setmask();
void init();
void min_setup(int);
void min_post_force(int);
private:
int me,nprocs,nprocs_universe;
double kspring,kspringIni,kspringFinal,kspringPerp,EIniIni,EFinalIni;
bool StandardNEB,NEBLongRange,PerpSpring,FreeEndIni,FreeEndFinal;
bool FreeEndFinalWithRespToEIni,FinalAndInterWithRespToEIni;
bool SpinLattice;
int ireplica,nreplica;
int procnext,procprev;
int cmode;
MPI_Comm uworld;
MPI_Comm rootworld;
char *id_pe;
class Compute *pe;
int nebatoms;
int ntotal; int maxlocal; double *nlenall;
double **xprev,**xnext,**fnext;
double **spprev,**spnext,**fmnext;
double **springF;
double **tangent;
double **xsend,**xrecv; double **fsend,**frecv; double **spsend,**sprecv; double **fmsend,**fmrecv; tagint *tagsend,*tagrecv;
double **xsendall,**xrecvall; double **fsendall,**frecvall; double **spsendall,**sprecvall; double **fmsendall,**fmrecvall; tagint *tagsendall,*tagrecvall;
int *counts,*displacements;
double geodesic_distance(double *, double *);
void inter_replica_comm();
void reallocate();
};
}
#endif
#endif