Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F64427485
pair_tersoff_mod.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, May 26, 19:47
Size
3 KB
Mime Type
text/x-c
Expires
Tue, May 28, 19:47 (2 d)
Engine
blob
Format
Raw Data
Handle
17902090
Attached To
rLAMMPS lammps
pair_tersoff_mod.h
View Options
/* -*- 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
(
tersoff
/
mod
,
PairTersoffMOD
)
#else
#ifndef LMP_PAIR_TERSOFF_MOD_H
#define LMP_PAIR_TERSOFF_MOD_H
#include "pair_tersoff.h"
namespace
LAMMPS_NS
{
class
PairTersoffMOD
:
public
PairTersoff
{
public:
PairTersoffMOD
(
class
LAMMPS
*
);
~
PairTersoffMOD
()
{}
protected:
void
read_file
(
char
*
);
void
setup
();
double
zeta
(
Param
*
,
double
,
double
,
double
*
,
double
*
);
double
ters_fc
(
double
,
Param
*
);
double
ters_fc_d
(
double
,
Param
*
);
double
ters_bij
(
double
,
Param
*
);
double
ters_bij_d
(
double
,
Param
*
);
void
ters_zetaterm_d
(
double
,
double
*
,
double
,
double
*
,
double
,
double
*
,
double
*
,
double
*
,
Param
*
);
// inlined functions for efficiency
// these replace but do not override versions in PairTersoff
// since overriding virtual inlined functions is best avoided
inline
double
ters_gijk_mod
(
const
double
costheta
,
const
Param
*
const
param
)
const
{
const
double
ters_c1
=
param
->
c1
;
const
double
ters_c2
=
param
->
c2
;
const
double
ters_c3
=
param
->
c3
;
const
double
ters_c4
=
param
->
c4
;
const
double
ters_c5
=
param
->
c5
;
const
double
tmp_h
=
(
param
->
h
-
costheta
)
*
(
param
->
h
-
costheta
);
return
ters_c1
+
(
ters_c2
*
tmp_h
/
(
ters_c3
+
tmp_h
))
*
(
1.0
+
ters_c4
*
exp
(
-
ters_c5
*
tmp_h
));
}
inline
double
ters_gijk_d_mod
(
const
double
costheta
,
const
Param
*
const
param
)
const
{
const
double
ters_c2
=
param
->
c2
;
const
double
ters_c3
=
param
->
c3
;
const
double
ters_c4
=
param
->
c4
;
const
double
ters_c5
=
param
->
c5
;
const
double
tmp_h
=
(
param
->
h
-
costheta
)
*
(
param
->
h
-
costheta
);
const
double
g1
=
(
param
->
h
-
costheta
)
/
(
ters_c3
+
tmp_h
);
const
double
g2
=
exp
(
-
ters_c5
*
tmp_h
);
return
-
2.0
*
ters_c2
*
g1
*
((
1
+
ters_c4
*
g2
)
*
(
1
+
g1
*
(
costheta
-
param
->
h
))
-
tmp_h
*
ters_c4
*
ters_c5
*
g2
);
}
};
}
#endif
#endif
/* ERROR/WARNING messages:
E: Cannot open Tersoff potential file %s
The specified potential file cannot be opened. Check that the path
and name are correct.
E: Incorrect format in Tersoff potential file
Incorrect number of words per line in the potential file.
E: Illegal Tersoff 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 Tersoff 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 Tersoff potential does not have a
needed entry.
*/
Event Timeline
Log In to Comment