1(* 2 Copyright (C) 2017 M.A.L. Marques 3 4 This Source Code Form is subject to the terms of the Mozilla Public 5 License, v. 2.0. If a copy of the MPL was not distributed with this 6 file, You can obtain one at http://mozilla.org/MPL/2.0/. 7*) 8 9(* type: lda_exc *) 10(* prefix: 11 lda_c_pw_params *params; 12 13 assert(p->params != NULL); 14 params = (lda_c_pw_params * )(p->params); 15*) 16 17$ifdef lda_c_pw_params 18params_a_pp := [1, 1, 1]: 19params_a_a := [0.031091, 0.015545, 0.016887]: 20params_a_alpha1 := [0.21370, 0.20548, 0.11125]: 21params_a_beta1 := [7.5957, 14.1189, 10.357]: 22params_a_beta2 := [3.5876, 6.1977, 3.6231]: 23params_a_beta3 := [1.6382, 3.3662, 0.88026]: 24params_a_beta4 := [0.49294, 0.62517, 0.49671]: 25params_a_fz20 := 1.709921: 26$endif 27 28$ifdef lda_c_pw_modified_params 29params_a_a := [0.0310907, 0.01554535, 0.0168869]: 30params_a_fz20 := 1.709920934161365617563962776245: 31$endif 32 33(* Equation (10) *) 34g_aux := (k, rs) -> params_a_beta1[k]*sqrt(rs) + params_a_beta2[k]*rs 35 + params_a_beta3[k]*rs^1.5 + params_a_beta4[k]*rs^(params_a_pp[k] + 1): 36g := (k, rs) -> -2*params_a_a[k]*(1 + params_a_alpha1[k]*rs) 37 * log(1 + 1/(2*params_a_a[k]*g_aux(k, rs))): 38 39(* Equation (8) *) 40(* Attention, the function g parametrizes -alpha *) 41f_pw := (rs, zeta) -> 42 g(1, rs) + zeta^4*f_zeta(zeta)*(g(2, rs) - g(1, rs) + g(3, rs)/params_a_fz20) 43 - f_zeta(zeta)*g(3, rs)/params_a_fz20: 44 45f := (rs, zeta) -> f_pw(rs, zeta): 46