#ifdef FIX_CLASS
FixStyle(bocs,FixBocs)
#else
#ifndef LMP_FIX_BOCS_H
#define LMP_FIX_BOCS_H
#include "fix.h"
namespace LAMMPS_NS {
class FixBocs : public Fix {
public:
FixBocs(class LAMMPS *, int, char **); virtual ~FixBocs(); int setmask();
virtual void init();
virtual void setup(int);
virtual void initial_integrate(int);
virtual void final_integrate();
void initial_integrate_respa(int, int, int);
void final_integrate_respa(int, int);
virtual void pre_exchange();
double compute_scalar();
virtual double compute_vector(int);
void write_restart(FILE *);
virtual int pack_restart_data(double *); virtual void restart(char *);
int modify_param(int, char **);
void reset_target(double);
void reset_dt();
virtual void *extract(const char*,int &);
double memory_usage();
protected:
int dimension,which;
double dtv,dtf,dthalf,dt4,dt8,dto;
double boltz,nktv2p,tdof;
double vol0; double t0; double t_start,t_stop;
double t_current,t_target,ke_target;
double t_freq;
int tstat_flag; int pstat_flag;
int pstyle,pcouple,allremap;
int p_flag[6]; double p_start[6],p_stop[6];
double p_freq[6],p_target[6];
double omega[6],omega_dot[6];
double omega_mass[6];
double p_current[6];
double drag,tdrag_factor; double pdrag_factor; int kspace_flag; int nrigid; int dilate_group_bit; int *rfix; char *id_dilate; class Irregular *irregular;
int p_basis_type;
int p_match_flag;
double vavg;
int N_mol;
int N_p_match;
double *p_match_coeffs;
double ** splines;
int spline_length;
int nlevels_respa;
double *step_respa;
char *id_temp,*id_press;
class Compute *temperature,*pressure;
int tcomputeflag,pcomputeflag;
double *eta,*eta_dot; double *eta_dotdot;
double *eta_mass;
int mtchain; int mtchain_default_flag;
double *etap; double *etap_dot;
double *etap_dotdot;
double *etap_mass;
int mpchain;
int mtk_flag; int pdim; double p_freq_max;
double p_hydro;
int nc_tchain,nc_pchain;
double factor_eta;
double sigma[6]; double fdev[6]; int deviatoric_flag; double h0_inv[6]; int nreset_h0;
double mtk_term1,mtk_term2;
int eta_mass_flag; int omega_mass_flag; int etap_mass_flag; int dipole_flag; int dlm_flag;
int scaleyz; int scalexz; int scalexy; int flipflag;
int pre_exchange_flag;
double fixedpoint[3];
void couple();
virtual void remap();
void nhc_temp_integrate();
void nhc_press_integrate();
int read_F_table(char *, int);
void build_cubic_splines(double **);
virtual void nve_x(); virtual void nve_v();
virtual void nh_v_press();
virtual void nh_v_temp();
virtual void compute_temp_target();
virtual int size_restart_global();
void compute_sigma();
void compute_deviatoric();
double compute_strain_energy();
void compute_press_target();
void nh_omega_dot();
};
}
#endif
#endif