#ifdef FIX_CLASS
FixStyle(atom/swap,FixAtomSwap)
#else
#ifndef LMP_FIX_MCSWAP_H
#define LMP_FIX_MCSWAP_H
#include "fix.h"
namespace LAMMPS_NS {
class FixAtomSwap : public Fix {
public:
FixAtomSwap(class LAMMPS *, int, char **);
~FixAtomSwap();
int setmask();
void init();
void pre_exchange();
int attempt_semi_grand();
int attempt_swap();
double energy_full();
int pick_semi_grand_atom();
int pick_i_swap_atom();
int pick_j_swap_atom();
void update_semi_grand_atoms_list();
void update_swap_atoms_list();
int pack_forward_comm(int, int *, double *, int, int *);
void unpack_forward_comm(int, int, double *);
double compute_vector(int);
double memory_usage();
void write_restart(FILE *);
void restart(char *);
private:
int nevery,seed;
int conserve_ke_flag; int semi_grand_flag; int ncycles;
int niswap,njswap; int niswap_local,njswap_local; int niswap_before,njswap_before; int nswap; int nswap_local; int nswap_before; int regionflag; int iregion; char *idregion;
int nswaptypes,nmutypes;
int *type_list;
double *mu;
double nswap_attempts;
double nswap_successes;
bool unequal_cutoffs;
int atom_swap_nmax;
double beta;
double *qtype;
double energy_stored;
double **sqrt_mass_ratio;
int *local_swap_iatom_list;
int *local_swap_jatom_list;
int *local_swap_atom_list;
class RanPark *random_equal;
class RanPark *random_unequal;
class Compute *c_pe;
void options(int, char **);
};
}
#endif
#endif