DFT-FE
1.3.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
workspace
include
exchangeCorrelationFunctionalEvaluator.h
Go to the documentation of this file.
1
// ---------------------------------------------------------------------
2
//
3
// Copyright (c) 2017-2025 The Regents of the University of Michigan and DFT-FE
4
// authors.
5
//
6
// This file is part of the DFT-FE code.
7
//
8
// The DFT-FE code is free software; you can use it, redistribute
9
// it, and/or modify it under the terms of the GNU Lesser General
10
// Public License as published by the Free Software Foundation; either
11
// version 2.1 of the License, or (at your option) any later version.
12
// The full text of the license can be found in the file LICENSE at
13
// the top level of the DFT-FE distribution.
14
//
15
// ---------------------------------------------------------------------
16
//
17
#ifndef DFTFE_EXCORRFUNCTIONALEVALUATOR_H
18
#define DFTFE_EXCORRFUNCTIONALEVALUATOR_H
19
#include <
MemoryStorage.h
>
20
#include <cmath>
21
#include <XCfunctionalDefs/xc_params.h>
22
23
namespace
dftfe
24
{
25
#define DFTFE_FUNCTIONALEVALUATOR_LDA_X(NAME, BODY) \
26
template <dftfe::utils::MemorySpace memorySpace> \
27
void LDAX_##NAME( \
28
dftfe::uInt numPoints, \
29
const dftfe::utils::MemoryStorage<double, memorySpace> &densityValues, \
30
dftfe::utils::MemoryStorage<double, memorySpace> &exEnergyOut, \
31
dftfe::utils::MemoryStorage<double, memorySpace> &pdexDensity);
32
33
#define DFTFE_FUNCTIONALEVALUATOR_LDA_C(NAME, BODY) \
34
template <dftfe::utils::MemorySpace memorySpace> \
35
void LDAC_##NAME( \
36
dftfe::uInt numPoints, \
37
const dftfe::utils::MemoryStorage<double, memorySpace> &densityValues, \
38
dftfe::utils::MemoryStorage<double, memorySpace> &corrEnergyOut, \
39
dftfe::utils::MemoryStorage<double, memorySpace> &pdecDensity);
40
41
#define DFTFE_FUNCTIONALEVALUATOR_GGA_X(NAME, BODY) \
42
template <dftfe::utils::MemorySpace memorySpace> \
43
void GGAX_##NAME( \
44
dftfe::uInt numPoints, \
45
const dftfe::utils::MemoryStorage<double, memorySpace> &densityValues, \
46
const dftfe::utils::MemoryStorage<double, memorySpace> &sigmaValues, \
47
dftfe::utils::MemoryStorage<double, memorySpace> &exEnergyOut, \
48
dftfe::utils::MemoryStorage<double, memorySpace> &pdexDensity, \
49
dftfe::utils::MemoryStorage<double, memorySpace> &pdexSigma);
50
51
#define DFTFE_FUNCTIONALEVALUATOR_GGA_C(NAME, BODY) \
52
template <dftfe::utils::MemorySpace memorySpace> \
53
void GGAC_##NAME( \
54
dftfe::uInt numPoints, \
55
const dftfe::utils::MemoryStorage<double, memorySpace> &densityValues, \
56
const dftfe::utils::MemoryStorage<double, memorySpace> &sigmaValues, \
57
dftfe::utils::MemoryStorage<double, memorySpace> &corrEnergyOut, \
58
dftfe::utils::MemoryStorage<double, memorySpace> &pdecDensity, \
59
dftfe::utils::MemoryStorage<double, memorySpace> &pdecSigma);
60
61
#define DFTFE_FUNCTIONALEVALUATOR_MGGA_X(NAME, BODY) \
62
template <dftfe::utils::MemorySpace memorySpace> \
63
void MGGAX_##NAME( \
64
dftfe::uInt numPoints, \
65
const dftfe::utils::MemoryStorage<double, memorySpace> &densityValues, \
66
const dftfe::utils::MemoryStorage<double, memorySpace> &sigmaValues, \
67
const dftfe::utils::MemoryStorage<double, memorySpace> &tauValues, \
68
dftfe::utils::MemoryStorage<double, memorySpace> &exEnergyOut, \
69
dftfe::utils::MemoryStorage<double, memorySpace> &pdexDensity, \
70
dftfe::utils::MemoryStorage<double, memorySpace> &pdexSigma, \
71
dftfe::utils::MemoryStorage<double, memorySpace> &pdexTau, \
72
bool tauNeededX, \
73
bool enforceFHCX);
74
75
#define DFTFE_FUNCTIONALEVALUATOR_MGGA_C(NAME, BODY) \
76
template <dftfe::utils::MemorySpace memorySpace> \
77
void MGGAC_##NAME( \
78
dftfe::uInt numPoints, \
79
const dftfe::utils::MemoryStorage<double, memorySpace> &densityValues, \
80
const dftfe::utils::MemoryStorage<double, memorySpace> &sigmaValues, \
81
const dftfe::utils::MemoryStorage<double, memorySpace> &tauValues, \
82
dftfe::utils::MemoryStorage<double, memorySpace> &corrEnergyOut, \
83
dftfe::utils::MemoryStorage<double, memorySpace> &pdecDensity, \
84
dftfe::utils::MemoryStorage<double, memorySpace> &pdecSigma, \
85
dftfe::utils::MemoryStorage<double, memorySpace> &pdecTau, \
86
bool tauNeededC, \
87
bool enforceFHCC);
88
89
#include <exchangeCorrelationFunctionalEvaluation.def>
90
91
}
// namespace dftfe
92
93
94
#undef DFTFE_FUNCTIONALEVALUATOR_LDA_X
95
#undef DFTFE_FUNCTIONALEVALUATOR_LDA_C
96
97
#undef DFTFE_FUNCTIONALEVALUATOR_GGA_X
98
#undef DFTFE_FUNCTIONALEVALUATOR_GGA_C
99
100
#undef DFTFE_FUNCTIONALEVALUATOR_MGGA_X
101
#undef DFTFE_FUNCTIONALEVALUATOR_MGGA_C
102
#endif
// DFTFE_EXCORRFUNCTIONALEVALUATOR_H
MemoryStorage.h
dftfe
Definition
pseudoPotentialToDftfeConverter.cc:34
Generated by
1.13.2