OpenMD 3.0
Molecular Dynamics in the Open
Loading...
Searching...
No Matches
EAMInteractionType.hpp
1/*
2 * Copyright (c) 2004-present, The University of Notre Dame. All rights
3 * reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright notice,
12 * this list of conditions and the following disclaimer in the documentation
13 * and/or other materials provided with the distribution.
14 *
15 * 3. Neither the name of the copyright holder nor the names of its
16 * contributors may be used to endorse or promote products derived from
17 * this software without specific prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
23 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE.
30 *
31 * SUPPORT OPEN SCIENCE! If you use OpenMD or its source code in your
32 * research, please cite the appropriate papers when you publish your
33 * work. Good starting points are:
34 *
35 * [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005).
36 * [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006).
37 * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008).
38 * [4] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011).
39 * [5] Kuang & Gezelter, Mol. Phys., 110, 691-701 (2012).
40 * [6] Lamichhane, Gezelter & Newman, J. Chem. Phys. 141, 134109 (2014).
41 * [7] Lamichhane, Newman & Gezelter, J. Chem. Phys. 141, 134110 (2014).
42 * [8] Bhattarai, Newman & Gezelter, Phys. Rev. B 99, 094106 (2019).
43 */
44
45#ifndef TYPES_EAMINTERACTIONTYPE_HPP
46#define TYPES_EAMINTERACTIONTYPE_HPP
47
49
50namespace OpenMD {
51 /**
52 * @class EAMInteractionType
53 *
54 * EAMInteractionType is one of the basic metallic interactions for
55 * representing the bonding in metallic solids. The basic functional
56 * form has a non-pairwise density functional and a pair potential
57 *
58 * \f[ V = \sum_{i} F_i \left[\rho_i\right] + \sum_{i,j} \phi_{ij}(r_{ij}) \f]
59 *
60 * where the functional depends on a radially-decaying electron density,
61 *
62 * \f[ \rho_i = \sum_{j \neq i} \rho_{j}(r_{ij}) \f]
63 */
64
65 enum EAMiType { eamitTabulated, eamitZhou, eamitOxides };
66
68 public:
69 EAMInteractionType(RealType re, RealType alpha, RealType beta, RealType A,
70 RealType B, RealType kappa, RealType lambda) {
71 interactionType_ = eamitZhou;
72 setEAMZhou();
73 re_ = re;
74 alpha_ = alpha;
75 beta_ = beta;
76 A_ = A;
77 B_ = B;
78 kappa_ = kappa;
79 lambda_ = lambda;
80 }
81
82 EAMInteractionType(RealType re, RealType alpha, RealType A, RealType Ci,
83 RealType Cj) {
84 interactionType_ = eamitOxides;
85 setEAMOxides();
86 re_ = re;
87 alpha_ = alpha;
88 A_ = A;
89 Ci_ = Ci;
90 Cj_ = Cj;
91 }
92
93 int getNr() { return nr_; }
94 RealType getDr() { return dr_; }
95 RealType getRcut() { return rcut_; }
96 std::vector<RealType> getPhi() { return phi_; }
97 RealType getRe() { return re_; }
98 RealType getA() { return A_; }
99 RealType getB() { return B_; }
100 RealType getAlpha() { return alpha_; }
101 RealType getBeta() { return beta_; }
102 RealType getKappa() { return kappa_; }
103 RealType getLambda() { return lambda_; }
104 EAMiType getInteractionType() { return interactionType_; }
105 RealType getCi() { return Ci_; }
106 RealType getCj() { return Cj_; }
107
108 private:
109 // This first set is for parameters read from DYNAMO 86 setfl files:
110 int nr_;
111 RealType dr_;
112 RealType rcut_;
113 std::vector<RealType> phi_; // phi(r)
114 // This set is for parameters for the parameterization of EAM described in:
115 // Acta mater 49, 4005 (2001), and X. W. Zhou, R. A. Johnson, and
116 // H. N. G. Wadley, Phys. Rev. B, 69, 144113 (2004).
117 RealType re_;
118 RealType alpha_;
119 RealType beta_;
120 RealType A_;
121 RealType B_;
122 RealType kappa_;
123 RealType lambda_;
124 // Extra parameters to support oxide potentials:
125 RealType Ci_;
126 RealType Cj_;
127 EAMiType interactionType_;
128 };
129} // namespace OpenMD
130
131#endif
EAMInteractionType is one of the basic metallic interactions for representing the bonding in metallic...
NonBondedInteractionType class is responsible for keeping track of static (unchanging) parameters for...
This basic Periodic Table class was originally taken from the data.cpp file in OpenBabel.