edip/
lib.rs

1// [[file:../edip.note::c5791ec5][c5791ec5]]
2//! # Literature
3//!
4//! - <http://www-math.mit.edu/~bazant/EDIP>
5//!
6//! - M.Z. Bazant & E. Kaxiras: Modeling of Covalent Bonding in Solids by
7//! Inversion of Cohesive Energy Curves; Phys. Rev. Lett. 77, 4370 (1996)
8//!
9//! - M.Z. Bazant, E. Kaxiras and J.F. Justo: Environment-dependent interatomic
10//! potential for bulk silicon; Phys. Rev. B 56, 8542-8552 (1997)
11// c5791ec5 ends here
12
13// [[file:../edip.note::1141962a][1141962a]]
14//#![deny(warnings)]
15#![allow(non_snake_case)]
16#![allow(non_upper_case_globals)]
17
18use gut::prelude::*;
19
20type Array3 = [f64; 3];
21// 1141962a ends here
22
23// [[file:../edip.note::1ace2574][1ace2574]]
24mod edip;
25// 1ace2574 ends here
26
27// [[file:../edip.note::f46cb3ad][f46cb3ad]]
28/* EDIP Si PARAMETERS Justo et al., Phys. Rev. B 58, 2539 (1998).
29
30     5.6714030     2.0002804     1.2085196     3.1213820     0.5774108
31     1.4533108     1.1247945     3.1213820     2.5609104    78.7590539
32     0.6966326   312.1341346     1.4074424     0.0070975     3.1083847
33
34connection between these parameters and Justo et al., Phys. Rev. B 58, 2539 (1998):
35
36A((B/r)**rh-palp*exp(-bet*Z*Z)) = A'((B'/r)**rh-exp(-bet*Z*Z))
37
38so in the paper (')
39A' = A*palp
40B' = B * palp**(-1/rh)
41eta = detla/Qo
42*/
43
44// tau(Z) (Ismail & Kaxiras, 1993)
45const u1: f64 = -0.165799;
46const u2: f64 = 32.557;
47const u3: f64 = 0.286198;
48const u4: f64 = 0.66;
49
50/// Parameters for EDIP
51#[derive(Debug, Copy, Clone)]
52pub struct EdipParameters {
53    A: f64,
54    B: f64,
55    rh: f64,
56    a: f64,
57    sig: f64,
58    lam: f64,
59    gam: f64,
60    b: f64,
61    c: f64,
62    mu: f64,
63    Qo: f64,
64    bet: f64,
65    alp: f64,
66    /// cutoff for g(r)
67    bg: f64,
68    /// justo prefactor for bond order
69    palp: f64,
70    eta: f64,
71}
72
73impl EdipParameters {
74    /// EDIP-Si Parameters
75    pub fn silicon() -> Self {
76        let A = 5.6714030;
77        let B = 2.0002804;
78        let rh = 1.2085196;
79        let a = 3.1213820;
80        let sig = 0.5774108;
81        let lam = 1.4533108;
82        let gam = 1.1247945;
83        let b = 3.1213820;
84        let c = 2.5609104;
85        let delta = 78.7590539;
86        let mu = 0.6966326;
87        let Qo = 312.1341346;
88        let palp = 1.4074424;
89        let bet = 0.0070975;
90        let alp = 3.1083847;
91
92        Self {
93            A,
94            B,
95            rh,
96            a,
97            sig,
98            lam,
99            gam,
100            b,
101            c,
102            mu,
103            Qo,
104            palp,
105            bet,
106            alp,
107            bg: a,
108            eta: delta / Qo,
109        }
110    }
111}
112// f46cb3ad ends here
113
114// [[file:../edip.note::3d96dcdb][3d96dcdb]]
115pub use crate::edip::*;
116// 3d96dcdb ends here