File: lda_c_chachiyo.c

package info (click to toggle)
libxc 4.3.4-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 58,520 kB
  • sloc: ansic: 19,150; perl: 1,157; python: 803; f90: 639; makefile: 317; sh: 107
file content (73 lines) | stat: -rw-r--r-- 2,110 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/*
 Copyright (C) 2006-2016 M.A.L. Marques

 This Source Code Form is subject to the terms of the Mozilla Public
 License, v. 2.0. If a copy of the MPL was not distributed with this
 file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/


#include "util.h"

#define XC_LDA_C_CHACHIYO  287   /* Chachiyo simple 2 parameter correlation   */
#define XC_LDA_C_KARASIEV  579   /* Karasiev reparameterization of Chachiyo   */

typedef struct {
  double ap, bp, af, bf;
} lda_c_chachiyo_params;

static lda_c_chachiyo_params par_chachiyo = {-0.01554535, 20.4562557, -0.007772675, 27.4203609};
static lda_c_chachiyo_params par_karasiev = {-0.01554535, 21.7392245, -0.007772675, 28.3559732};

static void 
lda_c_chachiyo_init(xc_func_type *p)
{
  lda_c_chachiyo_params *params;

  assert(p!=NULL && p->params == NULL);
  p->params = malloc(sizeof(lda_c_chachiyo_params));
  params = (lda_c_chachiyo_params *) (p->params);

  switch(p->info->number){
  case XC_LDA_C_CHACHIYO:
    memcpy(params, &par_chachiyo, sizeof(lda_c_chachiyo_params));
    break;
  case XC_LDA_C_KARASIEV:
    memcpy(params, &par_karasiev, sizeof(lda_c_chachiyo_params));
    break;
  default:
    fprintf(stderr, "Internal error in lda_c_chachiyo\n");
    exit(1);
  }
}

#include "maple2c/lda_c_chachiyo.c"

#define func maple2c_func
#include "work_lda.c"

const xc_func_info_type xc_func_info_lda_c_chachiyo = {
  XC_LDA_C_CHACHIYO,
  XC_CORRELATION,
  "Chachiyo simple 2 parameter correlation",
  XC_FAMILY_LDA,
  {&xc_ref_Chachiyo2016_021101, NULL, NULL, NULL, NULL},
  XC_FLAGS_3D | XC_FLAGS_HAVE_EXC | XC_FLAGS_HAVE_VXC | XC_FLAGS_HAVE_FXC | XC_FLAGS_HAVE_KXC,
  1e-24,
  0, NULL, NULL,
  lda_c_chachiyo_init, NULL,
  work_lda, NULL, NULL
};

const xc_func_info_type xc_func_info_lda_c_karasiev = {
  XC_LDA_C_KARASIEV,
  XC_CORRELATION,
  "Karasiev reparameterization of Chachiyo",
  XC_FAMILY_LDA,
  {&xc_ref_Karasiev2016_157101, NULL, NULL, NULL, NULL},
  XC_FLAGS_3D | XC_FLAGS_HAVE_EXC | XC_FLAGS_HAVE_VXC | XC_FLAGS_HAVE_FXC | XC_FLAGS_HAVE_KXC,
  1e-24,
  0, NULL, NULL,
  lda_c_chachiyo_init, NULL,
  work_lda, NULL, NULL
};