Files
lammps/src/USER-MISC/pair_tersoff_table.h
Axel Kohlmeyer 48aa45f7f0 Merge branch 'master' into lammps-icms
Resolved Conflicts (i hope):
	src/REPLICA/neb.cpp
	src/REPLICA/prd.cpp
	src/REPLICA/tad.cpp
	src/REPLICA/verlet_split.cpp
	src/USER-CUDA/atom_vec_angle_cuda.h
	src/USER-CUDA/atom_vec_atomic_cuda.h
	src/USER-CUDA/atom_vec_charge_cuda.h
	src/USER-CUDA/atom_vec_full_cuda.h
	src/USER-CUDA/compute_pe_cuda.h
	src/USER-CUDA/compute_pressure_cuda.h
	src/USER-CUDA/compute_temp_cuda.h
	src/USER-CUDA/compute_temp_partial_cuda.h
	src/USER-CUDA/cuda.cpp
	src/USER-CUDA/cuda.h
	src/USER-CUDA/cuda_data.h
	src/USER-CUDA/cuda_neigh_list.h
	src/USER-CUDA/fft3d_cuda.h
	src/USER-CUDA/fft3d_wrap_cuda.h
	src/USER-CUDA/fix_addforce_cuda.h
	src/USER-CUDA/fix_aveforce_cuda.h
	src/USER-CUDA/fix_enforce2d_cuda.h
	src/USER-CUDA/fix_freeze_cuda.h
	src/USER-CUDA/fix_gravity_cuda.h
	src/USER-CUDA/fix_nve_cuda.h
	src/USER-CUDA/fix_set_force_cuda.h
	src/USER-CUDA/fix_temp_berendsen_cuda.h
	src/USER-CUDA/fix_temp_rescale_cuda.h
	src/USER-CUDA/fix_temp_rescale_limit_cuda.h
	src/USER-CUDA/fix_viscous_cuda.h
	src/USER-CUDA/pair_born_coul_long_cuda.h
	src/USER-CUDA/pair_buck_coul_cut_cuda.h
	src/USER-CUDA/pair_buck_coul_long_cuda.h
	src/USER-CUDA/pair_buck_cuda.h
	src/USER-CUDA/pair_cg_cmm_coul_cut_cuda.cpp
	src/USER-CUDA/pair_cg_cmm_coul_cut_cuda.h
	src/USER-CUDA/pair_cg_cmm_coul_debye_cuda.cpp
	src/USER-CUDA/pair_cg_cmm_coul_debye_cuda.h
	src/USER-CUDA/pair_cg_cmm_coul_long_cuda.cpp
	src/USER-CUDA/pair_cg_cmm_coul_long_cuda.h
	src/USER-CUDA/pair_cg_cmm_cuda.cpp
	src/USER-CUDA/pair_cg_cmm_cuda.h
	src/USER-CUDA/pair_eam_cuda.h
	src/USER-CUDA/pair_gran_hooke_cuda.h
	src/USER-CUDA/pair_lj96_cut_cuda.h
	src/USER-CUDA/pair_lj_charmm_coul_charmm_cuda.h
	src/USER-CUDA/pair_lj_charmm_coul_charmm_implicit_cuda.h
	src/USER-CUDA/pair_lj_charmm_coul_long_cuda.h
	src/USER-CUDA/pair_lj_class2_coul_cut_cuda.h
	src/USER-CUDA/pair_lj_class2_coul_long_cuda.h
	src/USER-CUDA/pair_lj_class2_cuda.h
	src/USER-CUDA/pair_lj_cut_coul_cut_cuda.h
	src/USER-CUDA/pair_lj_cut_coul_debye_cuda.h
	src/USER-CUDA/pair_lj_cut_coul_long_cuda.h
	src/USER-CUDA/pair_lj_cut_cuda.h
	src/USER-CUDA/pair_lj_cut_experimental_cuda.h
	src/USER-CUDA/pair_lj_expand_cuda.h
	src/USER-CUDA/pair_lj_gromacs_coul_gromacs_cuda.h
	src/USER-CUDA/pair_lj_gromacs_cuda.h
	src/USER-CUDA/pair_lj_sdk_coul_long_cuda.cpp
	src/USER-CUDA/pair_lj_sdk_coul_long_cuda.h
	src/USER-CUDA/pair_lj_sdk_cuda.h
	src/USER-CUDA/pair_lj_smooth_cuda.h
	src/USER-CUDA/pair_morse_cuda.h
	src/USER-CUDA/pair_sw_cuda.h
	src/USER-CUDA/pair_tersoff_cuda.h
	src/USER-CUDA/pair_tersoff_zbl_cuda.h
	src/USER-CUDA/pppm_cuda.h
	src/USER-CUDA/verlet_cuda.cpp
	src/USER-CUDA/verlet_cuda.h
	src/comm.cpp
	src/finish.cpp
	src/fix_rigid_nvt.h
	src/respa.cpp
	src/run.cpp
2012-06-07 16:42:38 -04:00

95 lines
2.6 KiB
C++

/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------
Contributing author: Luca Ferraro (CASPUR)
email: luca.ferraro@caspur.it
Tersoff Potential
References:
1) Tersoff, Phys. Rev. B 39, 5566 (1988)
------------------------------------------------------------------------- */
#ifdef PAIR_CLASS
PairStyle(tersoff/table,PairTersoffTable)
#else
#ifndef LMP_PAIR_Tersoff_H
#define LMP_PAIR_Tersoff_H
#include "pair.h"
namespace LAMMPS_NS {
class PairTersoffTable : public Pair {
public:
PairTersoffTable(class LAMMPS *);
virtual ~PairTersoffTable();
virtual void compute(int, int);
void settings(int, char **);
void coeff(int, char **);
double init_one(int, int);
void init_style();
protected:
struct Param {
double lam1,lam2,lam3;
double c,d,h;
double gamma,powerm;
double powern,beta;
double biga,bigb,cutoffR, cutoffS;
double cut,cutsq;
int ielement,jelement,kelement;
int powermint;
};
double cutmax; // max cutoff for all elements
int nelements; // # of unique elements
char **elements; // names of unique elements
int ***elem2param; // mapping from element triplets to parameters
int *map; // mapping from atom types to elements
int nparams; // # of stored parameter sets
int maxparam; // max # of parameter sets
Param *params; // parameter set for an I-J-K interaction
void allocate();
void read_file(char *);
void setup();
// pre-loop coordination functions
double **preGtetaFunction, **preGtetaFunctionDerived;
double *preCutoffFunction, *preCutoffFunctionDerived;
void allocatePreLoops(void);
void deallocatePreLoops(void);
// grids
double minArgumentExponential;
double *exponential, ***cutoffFunction, ***cutoffFunctionDerived;
double **gtetaFunction, **gtetaFunctionDerived;
double **betaZetaPower, **betaZetaPowerDerived;
void allocateGrids(void);
void deallocateGrids(void);
};
}
#endif
#endif