Skip to content
Snippets Groups Projects
Commit 5770a20e authored by Jaap Kroes's avatar Jaap Kroes
Browse files

added ExTeP to USER-MISC

parent 83ec9815
No related branches found
No related tags found
No related merge requests found
...@@ -1045,6 +1045,7 @@ package"_Section_start.html#start_3. ...@@ -1045,6 +1045,7 @@ package"_Section_start.html#start_3.
"edpd"_pair_meso.html, "edpd"_pair_meso.html,
"eff/cut"_pair_eff.html, "eff/cut"_pair_eff.html,
"exp6/rx"_pair_exp6_rx.html, "exp6/rx"_pair_exp6_rx.html,
"extep"_pair_extep.html,
"gauss/cut"_pair_gauss.html, "gauss/cut"_pair_gauss.html,
"kolmogorov/crespi/z"_pair_kolmogorov_crespi_z.html, "kolmogorov/crespi/z"_pair_kolmogorov_crespi_z.html,
"lennard/mdf"_pair_mdf.html, "lennard/mdf"_pair_mdf.html,
......
...@@ -443,6 +443,7 @@ pair_edip.html ...@@ -443,6 +443,7 @@ pair_edip.html
pair_eff.html pair_eff.html
pair_eim.html pair_eim.html
pair_exp6_rx.html pair_exp6_rx.html
pair_extep.html
pair_gauss.html pair_gauss.html
pair_gayberne.html pair_gayberne.html
pair_gran.html pair_gran.html
......
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
:link(lws,http://lammps.sandia.gov)
:link(ld,Manual.html)
:link(lc,Section_commands.html#comm)
:line
pair_style extep command :h3
[Syntax:]
pair_style extep :pre
[Examples:]
pair_style extep
pair_coeff * * BN.extep B N :pre
[Description:]
Style {extep} computes the Extended Tersoff Potential (ExTeP)
interactions as described in "(Los2017)"_#Los2017.
:line
[Restrictions:] none
[Related commands:]
"pair_tersoff" pair_tersoff.html
[Default:] none
:line
:link(Los2017)
[(Los2017)] J. H. Los et al. "Extended Tersoff potential for boron nitride:
Energetics and elastic properties of pristine and defective h-BN",
Phys. Rev. B 96 (184108), 2017.
...@@ -32,6 +32,7 @@ Pair Styles :h1 ...@@ -32,6 +32,7 @@ Pair Styles :h1
pair_eff pair_eff
pair_eim pair_eim
pair_exp6_rx pair_exp6_rx
pair_extep
pair_gauss pair_gauss
pair_gayberne pair_gayberne
pair_gran pair_gran
......
info: BN sample with r_BN=1.45
100 atoms
2 atom types
0.0 21.75000000 xlo xhi
0.0 12.55736835 ylo yhi
0.0 50.00000000 zlo zhi
Masses
1 10.811
2 14.0067
Atoms
1 1 0.00000000 0.00000000 0.00000000
2 2 1.45000000 0.00000000 0.00000000
3 1 2.17500000 1.25573684 0.00000000
4 2 3.62500000 1.25573684 0.00000000
5 1 0.00000000 2.51147367 0.00000000
6 2 1.45000000 2.51147367 0.00000000
7 1 2.17500000 3.76721051 0.00000000
8 2 3.62500000 3.76721051 0.00000000
9 1 0.00000000 5.02294734 0.00000000
10 2 1.45000000 5.02294734 0.00000000
11 1 2.17500000 6.27868418 0.00000000
12 2 3.62500000 6.27868418 0.00000000
13 1 0.00000000 7.53442101 0.00000000
14 2 1.45000000 7.53442101 0.00000000
15 1 2.17500000 8.79015785 0.00000000
16 2 3.62500000 8.79015785 0.00000000
17 1 0.00000000 10.04589468 0.00000000
18 2 1.45000000 10.04589468 0.00000000
19 1 2.17500000 11.30163152 0.00000000
20 2 3.62500000 11.30163152 0.00000000
21 1 4.35000000 0.00000000 0.00000000
22 2 5.80000000 0.00000000 0.00000000
23 1 6.52500000 1.25573684 0.00000000
24 2 7.97500000 1.25573684 0.00000000
25 1 4.35000000 2.51147367 0.00000000
26 2 5.80000000 2.51147367 0.00000000
27 1 6.52500000 3.76721051 0.00000000
28 2 7.97500000 3.76721051 0.00000000
29 1 4.35000000 5.02294734 0.00000000
30 2 5.80000000 5.02294734 0.00000000
31 1 6.52500000 6.27868418 0.00000000
32 2 7.97500000 6.27868418 0.00000000
33 1 4.35000000 7.53442101 0.00000000
34 2 5.80000000 7.53442101 0.00000000
35 1 6.52500000 8.79015785 0.00000000
36 2 7.97500000 8.79015785 0.00000000
37 1 4.35000000 10.04589468 0.00000000
38 2 5.80000000 10.04589468 0.00000000
39 1 6.52500000 11.30163152 0.00000000
40 2 7.97500000 11.30163152 0.00000000
41 1 8.70000000 0.00000000 0.00000000
42 2 10.15000000 0.00000000 0.00000000
43 1 10.87500000 1.25573684 0.00000000
44 2 12.32500000 1.25573684 0.00000000
45 1 8.70000000 2.51147367 0.00000000
46 2 10.15000000 2.51147367 0.00000000
47 1 10.87500000 3.76721051 0.00000000
48 2 12.32500000 3.76721051 0.00000000
49 1 8.70000000 5.02294734 0.00000000
50 2 10.15000000 5.02294734 0.00000000
51 1 10.87500000 6.27868418 0.00000000
52 2 12.32500000 6.27868418 0.00000000
53 1 8.70000000 7.53442101 0.00000000
54 2 10.15000000 7.53442101 0.00000000
55 1 10.87500000 8.79015785 0.00000000
56 2 12.32500000 8.79015785 0.00000000
57 1 8.70000000 10.04589468 0.00000000
58 2 10.15000000 10.04589468 0.00000000
59 1 10.87500000 11.30163152 0.00000000
60 2 12.32500000 11.30163152 0.00000000
61 1 13.05000000 0.00000000 0.00000000
62 2 14.50000000 0.00000000 0.00000000
63 1 15.22500000 1.25573684 0.00000000
64 2 16.67500000 1.25573684 0.00000000
65 1 13.05000000 2.51147367 0.00000000
66 2 14.50000000 2.51147367 0.00000000
67 1 15.22500000 3.76721051 0.00000000
68 2 16.67500000 3.76721051 0.00000000
69 1 13.05000000 5.02294734 0.00000000
70 2 14.50000000 5.02294734 0.00000000
71 1 15.22500000 6.27868418 0.00000000
72 2 16.67500000 6.27868418 0.00000000
73 1 13.05000000 7.53442101 0.00000000
74 2 14.50000000 7.53442101 0.00000000
75 1 15.22500000 8.79015785 0.00000000
76 2 16.67500000 8.79015785 0.00000000
77 1 13.05000000 10.04589468 0.00000000
78 2 14.50000000 10.04589468 0.00000000
79 1 15.22500000 11.30163152 0.00000000
80 2 16.67500000 11.30163152 0.00000000
81 1 17.40000000 0.00000000 0.00000000
82 2 18.85000000 0.00000000 0.00000000
83 1 19.57500000 1.25573684 0.00000000
84 2 21.02500000 1.25573684 0.00000000
85 1 17.40000000 2.51147367 0.00000000
86 2 18.85000000 2.51147367 0.00000000
87 1 19.57500000 3.76721051 0.00000000
88 2 21.02500000 3.76721051 0.00000000
89 1 17.40000000 5.02294734 0.00000000
90 2 18.85000000 5.02294734 0.00000000
91 1 19.57500000 6.27868418 0.00000000
92 2 21.02500000 6.27868418 0.00000000
93 1 17.40000000 7.53442101 0.00000000
94 2 18.85000000 7.53442101 0.00000000
95 1 19.57500000 8.79015785 0.00000000
96 2 21.02500000 8.79015785 0.00000000
97 1 17.40000000 10.04589468 0.00000000
98 2 18.85000000 10.04589468 0.00000000
99 1 19.57500000 11.30163152 0.00000000
100 2 21.02500000 11.30163152 0.00000000
# Initialization
units metal
boundary p p p
atom_style atomic
processors * * 1
# System and atom definition
read_data BN.data # read lammps data file
# Neighbor update settings
neighbor 2.0 bin
neigh_modify every 1
neigh_modify delay 0
neigh_modify check yes
# Potential
pair_style extep
pair_coeff * * ../../../../potentials/BN.extep B N
# Output
thermo 10
thermo_style custom step time etotal pe temp lx ly lz pxx pyy pzz spcpu
thermo_modify line one format float %14.8g
# Setup NPT MD run
timestep 0.0001 # ps
velocity all create 300.0 12345
fix thermos all npt temp 300 300 1.0 x 0 0 1.0 y 0 0 1.0
run 1000
# B and N mixture, parameterized for Tersoff potential
# values are from Albe et.al - Rad. Eff. Def. Sol. 141 (1997) 85.
#values are calculated from Albe et. al from
# m = 3
# gamma = 1
# c = c, d=d
# cos(thetat0) = h
# n = n
# beta = gamma_albe
# lambda1=beta_albe*sqrt(2*S_albe)
# lambda2=beta_albe*sqrt(2/S_albe)
# lambda3=lambda3
# A=D0/(S-1)*exp(lambda1*r0)
# B=S*D0/(S-1)*exp(lambda2*r0)
# R = R, D=D
# Tersoff parameters for various elements and mixtures
# multiple entries can be added to this file, LAMMPS reads the ones it needs
# these entries are in LAMMPS "metal" units:
# A,B = eV; lambda1,lambda2,lambda3 = 1/Angstroms; R,D = Angstroms
# other quantities are unitless
# format of a single entry (one or more lines):
#I J K m, gamma*, lambda3, c, d, h, n, gamma, lambda2, B, R, D, lambda1, A
B B B 3 1.0 0.0 26617.3000 141.2000 -0.1300 1.1422470 0.01498959 2.5211820 2768.7363631 2.0 0.2 2.6857244 3376.3350735
N N N 3 1.0 0.0 23.5000 3.7500 -0.4000 0.6650000 0.01925100 2.6272721 2563.5603417 2.0 0.2 2.8293093 2978.9527928
B B N 3 1.0 0.0 26617.3000 141.2000 -0.1300 1.1422470 0.01498959 2.5211820 2768.7363631 2.0 0.2 2.6857244 3376.3350735
N N B 3 1.0 0.0 23.5000 3.7500 -0.4000 0.6650000 0.01925100 2.6272721 2563.5603417 2.0 0.2 2.8293093 2978.9527928
B N B 3 1.0 0.0d0 306.586555205d0 10.d0 -0.7218d0 0.6576543657d0 0.0027024851d0 2.69335d0 2595.6860833266d0 2.d0 0.2d0 2.95d0 3330.0655849887d0
B N N 3 1.0 0.0d0 306.586555205d0 10.d0 -0.7218d0 0.6576543657d0 0.0027024851d0 2.69335d0 2595.6860833266d0 2.d0 0.2d0 2.95d0 3330.0655849887d0
N B B 3 1.0 0.0d0 306.586555205d0 10.d0 -0.7218d0 0.6576543657d0 0.0027024851d0 2.69335d0 2595.6860833266d0 2.d0 0.2d0 2.95d0 3330.0655849887d0
N B N 3 1.0 0.0d0 306.586555205d0 10.d0 -0.7218d0 0.6576543657d0 0.0027024851d0 2.69335d0 2595.6860833266d0 2.d0 0.2d0 2.95d0 3330.0655849887d0
#
# 1.9925 Bicubic Splines Parameters
#
# F_corr [ B, B]
#
#t1 t2 i j val dx dy dxy
B B 0 0 0.0000 0.0000 0.0000 0.0000
B B 0 1 0.0054 0.0000 0.0000 0.0000
B B 0 2 0.0182 0.0000 0.0000 0.0000
B B 0 3 -0.0034 0.0000 0.0000 0.0000
B B 0 4 -0.0034 0.0000 0.0000 0.0000
B B 1 0 0.0054 0.0000 0.0000 0.0000
B B 1 1 0.0100 0.0000 0.0000 0.0000
B B 1 2 0.0062 0.0000 0.0000 0.0000
B B 1 3 0.0154 0.0000 0.0000 0.0000
B B 1 4 0.0154 0.0000 0.0000 0.0000
B B 2 0 0.0182 0.0000 0.0000 0.0000
B B 2 1 0.0062 0.0000 0.0000 0.0000
B B 2 2 0.0154 0.0000 0.0000 0.0000
B B 2 3 -0.0390 0.0000 -0.0727 0.0000
B B 2 4 -0.0390 0.0000 -0.0727 0.0000
B B 3 0 -0.0034 0.0000 0.0000 0.0000
B B 3 1 0.0154 0.0000 0.0000 0.0000
B B 3 2 -0.0390 -0.0727 0.0000 0.0000
B B 3 3 -0.1300 0.0000 0.0000 0.0000
B B 3 4 -0.1300 0.0000 0.0000 0.0000
B B 4 0 -0.0034 0.0000 0.0000 0.0000
B B 4 1 0.0154 0.0000 0.0000 0.0000
B B 4 2 -0.0390 -0.0727 0.0000 0.0000
B B 4 3 -0.1300 0.0000 0.0000 0.0000
B B 4 4 -0.1300 0.0000 0.0000 0.0000
#
# F_corr [ B, N]
#
#t1 t2 i j val dx dy dxy
B N 0 0 0.0170 0.0000 0.0000 0.0000
B N 0 1 0.0078 0.0000 0.0000 0.0000
B N 0 2 0.0000 0.0000 0.0000 0.0000
B N 0 3 -0.0860 0.0000 0.0000 0.0000
B N 0 4 -0.0860 0.0000 0.0000 0.0000
B N 1 0 -0.0090 0.0000 0.0000 0.0000
B N 1 1 0.0090 0.0000 0.0000 0.0000
B N 1 2 -0.0068 0.0000 -0.0214 0.0000
B N 1 3 -0.0338 0.0000 0.0388 0.0000
B N 1 4 -0.0338 0.0000 0.0388 0.0000
B N 2 0 0.0000 0.0000 0.0000 0.0000
B N 2 1 -0.0198 0.0000 0.0000 0.0000
B N 2 2 0.0000 0.0000 0.0000 0.0000
B N 2 3 -0.0084 0.0000 0.0169 0.0000
B N 2 4 -0.0084 0.0000 0.0169 0.0000
B N 3 0 -0.0750 0.0000 0.0000 0.0000
B N 3 1 -0.0168 0.0306 0.0000 0.0000
B N 3 2 -0.0138 0.0084 0.0000 0.0000
B N 3 3 0.0000 0.0000 0.0000 0.0000
B N 3 4 0.0000 0.0000 0.0000 0.0000
B N 4 0 -0.0750 0.0000 0.0000 0.0000
B N 4 1 -0.0168 0.0306 0.0000 0.0000
B N 4 2 -0.0138 0.0084 0.0000 0.0000
B N 4 3 0.0000 0.0000 0.0000 0.0000
B N 4 4 0.0000 0.0000 0.0000 0.0000
#
# F_corr [ N, N]
#
#t1 t2 i j val dx dy dxy
N N 0 0 0.0000 0.0000 0.0000 0.0000
N N 0 1 -0.0282 0.0000 0.0000 0.0000
N N 0 2 -0.0018 0.0000 0.0000 0.0000
N N 0 3 -0.0004 0.0000 0.0000 0.0000
N N 0 4 -0.0004 0.0000 0.0000 0.0000
N N 1 0 -0.0282 0.0000 0.0000 0.0000
N N 1 1 0.0200 0.0000 0.0000 0.0000
N N 1 2 0.0180 0.0162 -0.0027 0.0000
N N 1 3 0.0146 0.0000 0.0000 0.0000
N N 1 4 0.0146 0.0000 0.0000 0.0000
N N 2 0 -0.0018 0.0000 0.0000 0.0000
N N 2 1 0.0180 -0.0027 0.0162 0.0000
N N 2 2 0.0306 0.0000 0.0000 0.0000
N N 2 3 0.0060 0.0000 -0.0073 0.0000
N N 2 4 0.0060 0.0000 -0.0073 0.0000
N N 3 0 -0.0004 0.0000 0.0000 0.0000
N N 3 1 0.0146 0.0000 0.0000 0.0000
N N 3 2 0.0060 -0.0073 0.0000 0.0000
N N 3 3 0.0000 0.0000 0.0000 0.0000
N N 3 4 0.0000 0.0000 0.0000 0.0000
N N 4 0 -0.0004 0.0000 0.0000 0.0000
N N 4 1 0.0146 0.0000 0.0000 0.0000
N N 4 2 0.0060 -0.0073 0.0000 0.0000
N N 4 3 0.0000 0.0000 0.0000 0.0000
N N 4 4 0.0000 0.0000 0.0000 0.0000
# Elastic properties
# ==================
# hBN: B=164 N/M; C11=290 N/M; kappa=0.64 eV
# cBN: B=402 GPa; C11=567 GPa; C66=533 GPa
This diff is collapsed.
/* -*- 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.
------------------------------------------------------------------------- */
#ifdef PAIR_CLASS
PairStyle(extep,PairExTeP)
#else
#ifndef LMP_PAIR_EXTEP_H
#define LMP_PAIR_EXTEP_H
#include "pair.h"
#include "my_page.h"
#define MAXTYPES 8
#define NSPLINE 5
namespace LAMMPS_NS {
class PairExTeP : public Pair {
public:
PairExTeP(class LAMMPS *);
virtual ~PairExTeP();
virtual void compute(int, int);
void settings(int, char **);
void coeff(int, char **);
void init_style();
double init_one(int, int);
protected:
struct Param {
double lam1,lam2,lam3;
double c,d,h;
double gamma,powerm;
double powern,beta;
double biga,bigb,bigd,bigr;
double cut,cutsq;
double c1,c2,c3,c4;
int ielement,jelement,kelement;
int powermint;
double Z_i,Z_j; // added for ExTePZBL
double ZBLcut,ZBLexpscale;
double c5,ca1,ca4; // added for ExTePMOD
double powern_del;
};
Param *params; // parameter set for an I-J-K interaction
char **elements; // names of unique elements
int ***elem2param; // mapping from element triplets to parameters
int *map; // mapping from atom types to elements
double cutmax; // max cutoff for all elements
int nelements; // # of unique elements
int nparams; // # of stored parameter sets
int maxparam; // max # of parameter sets
int maxlocal; // size of numneigh, firstneigh arrays
int maxpage; // # of pages currently allocated
int pgsize; // size of neighbor page
int oneatom; // max # of neighbors for one atom
MyPage<int> *ipage; // neighbor list pages
int *SR_numneigh; // # of pair neighbors for each atom
int **SR_firstneigh; // ptr to 1st neighbor of each atom
double *Nt, *Nd; // sum of cutoff fns ( f_C ) with SR neighs
void allocate();
void spline_init();
virtual void read_file(char *);
virtual void setup();
virtual void repulsive(Param *, double, double &, int, double &);
virtual double zeta(Param *, double, double, double *, double *);
virtual void force_zeta(Param *, double, double, double &,
double &, int, double &);
void attractive(Param *, double, double, double, double *, double *,
double *, double *, double *);
virtual double ters_fc(double, Param *);
virtual double ters_fc_d(double, Param *);
virtual double ters_fa(double, Param *);
virtual double ters_fa_d(double, Param *);
virtual double ters_bij(double, Param *);
virtual double ters_bij_d(double, Param *);
virtual void ters_zetaterm_d(double, double *, double, double *, double,
double *, double *, double *, Param *);
void costheta_d(double *, double, double *, double,
double *, double *, double *);
// inlined functions for efficiency
inline double ters_gijk(const double costheta,
const Param * const param) const {
const double ters_c = param->c * param->c;
const double ters_d = param->d * param->d;
const double hcth = param->h - costheta;
return param->gamma*(1.0 + ters_c/ters_d - ters_c / (ters_d + hcth*hcth));
}
inline double ters_gijk_d(const double costheta,
const Param * const param) const {
const double ters_c = param->c * param->c;
const double ters_d = param->d * param->d;
const double hcth = param->h - costheta;
const double numerator = -2.0 * ters_c * hcth;
const double denominator = 1.0/(ters_d + hcth*hcth);
return param->gamma*numerator*denominator*denominator;
}
inline double vec3_dot(const double x[3], const double y[3]) const {
return x[0]*y[0] + x[1]*y[1] + x[2]*y[2];
}
inline void vec3_add(const double x[3], const double y[3],
double * const z) const {
z[0] = x[0]+y[0]; z[1] = x[1]+y[1]; z[2] = x[2]+y[2];
}
inline void vec3_scale(const double k, const double x[3],
double y[3]) const {
y[0] = k*x[0]; y[1] = k*x[1]; y[2] = k*x[2];
}
inline void vec3_scaleadd(const double k, const double x[3],
const double y[3], double * const z) const {
z[0] = k*x[0]+y[0];
z[1] = k*x[1]+y[1];
z[2] = k*x[2]+y[2];
}
// splines parameters
// F[Ni=0-1, 1-2, 2-3,
// Nj=...,
struct TF_corr_param {
double
f_00,
f_01,
f_10,
f_11,
f_x_00,
f_x_01,
f_x_10,
f_x_11,
f_y_00,
f_y_01,
f_y_10,
f_y_11;
} F_corr_param[MAXTYPES][MAXTYPES][NSPLINE][NSPLINE];
double F_corr_data[MAXTYPES][MAXTYPES][NSPLINE][NSPLINE][3];
double F_corr( int, int, double, double, double*, double* );
void SR_neigh();
double envelop_function(double, double, double*);
};
}
#endif
#endif
/* ERROR/WARNING messages:
E: Illegal ... command
Self-explanatory. Check the input script syntax and compare to the
documentation for the command. You can use -echo screen as a
command-line option when running LAMMPS to see the offending line.
E: Incorrect args for pair coefficients
Self-explanatory. Check the input script or data file.
E: Pair style ExTeP requires atom IDs
This is a requirement to use the ExTeP potential.
E: Pair style ExTeP requires newton pair on
See the newton command. This is a restriction to use the ExTeP
potential.
E: All pair coeffs are not set
All pair coefficients must be set in the data file or by the
pair_coeff command before running a simulation.
E: Cannot open ExTeP potential file %s
The specified potential file cannot be opened. Check that the path
and name are correct.
E: Incorrect format in ExTeP potential file
Incorrect number of words per line in the potential file.
E: Illegal ExTeP parameter
One or more of the coefficients defined in the potential file is
invalid.
E: Potential file has duplicate entry
The potential file for a SW or ExTeP potential has more than
one entry for the same 3 ordered elements.
E: Potential file is missing an entry
The potential file for a SW or ExTeP potential does not have a
needed entry.
*/
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment