git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@12986 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
1025
src/MC/fix_gcmc.cpp
1025
src/MC/fix_gcmc.cpp
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
|||||||
/* -*- c++ -*- ----------------------------------------------------------
|
/* ----------------------------------------------------------------------
|
||||||
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
|
||||||
http://lammps.sandia.gov, Sandia National Laboratories
|
http://lammps.sandia.gov, Sandia National Laboratories
|
||||||
Steve Plimpton, sjplimp@sandia.gov
|
Steve Plimpton, sjplimp@sandia.gov
|
||||||
@ -40,10 +40,17 @@ class FixGCMC : public Fix {
|
|||||||
void attempt_molecule_deletion();
|
void attempt_molecule_deletion();
|
||||||
void attempt_molecule_insertion();
|
void attempt_molecule_insertion();
|
||||||
double energy(int, int, tagint, double *);
|
double energy(int, int, tagint, double *);
|
||||||
|
void attempt_atomic_translation_full();
|
||||||
|
void attempt_atomic_deletion_full();
|
||||||
|
void attempt_atomic_insertion_full();
|
||||||
|
void attempt_molecule_translation_full();
|
||||||
|
void attempt_molecule_rotation_full();
|
||||||
|
void attempt_molecule_deletion_full();
|
||||||
|
void attempt_molecule_insertion_full();
|
||||||
|
double energy_full();
|
||||||
int pick_random_gas_atom();
|
int pick_random_gas_atom();
|
||||||
tagint pick_random_gas_molecule();
|
tagint pick_random_gas_molecule();
|
||||||
double molecule_energy(tagint);
|
double molecule_energy(tagint);
|
||||||
void get_rotation_matrix(double, double *);
|
|
||||||
void update_gas_atoms_list();
|
void update_gas_atoms_list();
|
||||||
double compute_vector(int);
|
double compute_vector(int);
|
||||||
double memory_usage();
|
double memory_usage();
|
||||||
@ -51,8 +58,10 @@ class FixGCMC : public Fix {
|
|||||||
void restart(char *);
|
void restart(char *);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int rotation_group,rotation_groupbit;
|
int molecule_group,molecule_group_bit;
|
||||||
int rotation_inversegroupbit;
|
int molecule_group_inversebit;
|
||||||
|
int exclusion_group,exclusion_group_bit;
|
||||||
|
int exclusion_group_inversebit;
|
||||||
int ngcmc_type,nevery,seed;
|
int ngcmc_type,nevery,seed;
|
||||||
int ncycles,nexchanges,nmcmoves;
|
int ncycles,nexchanges,nmcmoves;
|
||||||
int ngas; // # of gas atoms on all procs
|
int ngas; // # of gas atoms on all procs
|
||||||
@ -63,7 +72,8 @@ class FixGCMC : public Fix {
|
|||||||
int iregion; // GCMC region
|
int iregion; // GCMC region
|
||||||
char *idregion; // GCMC region id
|
char *idregion; // GCMC region id
|
||||||
bool pressure_flag; // true if user specified reservoir pressure
|
bool pressure_flag; // true if user specified reservoir pressure
|
||||||
// else false
|
bool charge_flag; // true if user specified atomic charge
|
||||||
|
bool full_flag; // true if doing full system energy calculations
|
||||||
|
|
||||||
int natoms_per_molecule; // number of atoms in each gas molecule
|
int natoms_per_molecule; // number of atoms in each gas molecule
|
||||||
|
|
||||||
@ -84,10 +94,11 @@ class FixGCMC : public Fix {
|
|||||||
double displace;
|
double displace;
|
||||||
double max_rotation_angle;
|
double max_rotation_angle;
|
||||||
double beta,zz,sigma,volume;
|
double beta,zz,sigma,volume;
|
||||||
double pressure,fugacity_coeff;
|
double pressure,fugacity_coeff,charge;
|
||||||
double xlo,xhi,ylo,yhi,zlo,zhi;
|
double xlo,xhi,ylo,yhi,zlo,zhi;
|
||||||
double region_xlo,region_xhi,region_ylo,region_yhi,region_zlo,region_zhi;
|
double region_xlo,region_xhi,region_ylo,region_yhi,region_zlo,region_zhi;
|
||||||
double region_volume;
|
double region_volume;
|
||||||
|
double energy_stored;
|
||||||
double *sublo,*subhi;
|
double *sublo,*subhi;
|
||||||
int *local_gas_list;
|
int *local_gas_list;
|
||||||
double **cutsq;
|
double **cutsq;
|
||||||
@ -109,6 +120,8 @@ class FixGCMC : public Fix {
|
|||||||
int shakeflag;
|
int shakeflag;
|
||||||
char *idshake;
|
char *idshake;
|
||||||
|
|
||||||
|
class Compute *c_pe;
|
||||||
|
|
||||||
void options(int, char **);
|
void options(int, char **);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -169,21 +182,11 @@ Should not choose the GCMC molecule feature if no molecules are being
|
|||||||
simulated. The general molecule flag is off, but GCMC's molecule flag
|
simulated. The general molecule flag is off, but GCMC's molecule flag
|
||||||
is on.
|
is on.
|
||||||
|
|
||||||
E: Fix gcmc incompatible with given pair_style
|
|
||||||
|
|
||||||
Some pair_styles do not provide single-atom energies, which are needed
|
|
||||||
by fix gcmc.
|
|
||||||
|
|
||||||
E: Cannot use fix gcmc in a 2d simulation
|
E: Cannot use fix gcmc in a 2d simulation
|
||||||
|
|
||||||
Fix gcmc is set up to run in 3d only. No 2d simulations with fix gcmc
|
Fix gcmc is set up to run in 3d only. No 2d simulations with fix gcmc
|
||||||
are allowed.
|
are allowed.
|
||||||
|
|
||||||
E: Cannot use fix gcmc with a triclinic box
|
|
||||||
|
|
||||||
Fix gcmc is set up to run with othogonal boxes only. Simulations with
|
|
||||||
triclinic boxes and fix gcmc are not allowed.
|
|
||||||
|
|
||||||
E: Could not find fix gcmc rotation group ID
|
E: Could not find fix gcmc rotation group ID
|
||||||
|
|
||||||
Self-explanatory.
|
Self-explanatory.
|
||||||
|
|||||||
Reference in New Issue
Block a user