DFT-EFE
 
Loading...
Searching...
No Matches
ExcDensityLDAClass.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
18#ifndef DFTEFE_EXCDENSIYLDACLASS_H
19#define DFTEFE_EXCDENSIYLDACLASS_H
20
21#include <xc.h>
23
24namespace dftefe
25{
26 namespace ksdft
27 {
28 template <dftefe::utils::MemorySpace memorySpace>
30 {
31 public:
32 ExcDensityLDAClass(std::shared_ptr<xc_func_type> &funcXPtr,
33 std::shared_ptr<xc_func_type> &funcCPtr,
34 std::string XCType);
35
37
38 void
40 const std::vector<xcRemainderOutputDataAttributes>
41 &outputDataAttributes) const override;
42
43 private:
44 void
46 const std::unordered_map<dftefe::ksdft::DensityDescrAttr,
48 double,
50 &densityAttrVals,
51 const std::unordered_map<dftefe::ksdft::WfcDescrAttr,
53 double,
55 &wfcAttrVals,
56 std::unordered_map<
60 &xDataOut,
61 std::unordered_map<
65 &cDataout) const override;
66
67 std::shared_ptr<xc_func_type> d_funcXPtr;
68 std::shared_ptr<xc_func_type> d_funcCPtr;
69 std::string d_XCType;
70 };
71
72 } // namespace ksdft
73} // namespace dftefe
74
75#endif // DFTEFE_EXCDENSIYLDACLASS_H
Definition: ExcDensityLDAClass.h:30
void checkInputOutputDataAttributesConsistency(const std::vector< xcRemainderOutputDataAttributes > &outputDataAttributes) const override
Definition: ExcDensityLDAClass.cpp:51
std::string d_XCType
Definition: ExcDensityLDAClass.h:69
void computeRhoTauDependentXCData(const std::unordered_map< dftefe::ksdft::DensityDescrAttr, std::vector< dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOST > > > &densityAttrVals, const std::unordered_map< dftefe::ksdft::WfcDescrAttr, std::vector< dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOST > > > &wfcAttrVals, std::unordered_map< xcRemainderOutputDataAttributes, dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOST > > &xDataOut, std::unordered_map< xcRemainderOutputDataAttributes, dftefe::utils::MemoryStorage< double, dftefe::utils::MemorySpace::HOST > > &cDataout) const override
Pure virtual. Call directly when you have pre-built density maps (e.g. from non-spin-polarized RDM1 s...
Definition: ExcDensityLDAClass.cpp:78
~ExcDensityLDAClass()
Definition: ExcDensityLDAClass.cpp:46
std::shared_ptr< xc_func_type > d_funcXPtr
Definition: ExcDensityLDAClass.h:67
std::shared_ptr< xc_func_type > d_funcCPtr
Definition: ExcDensityLDAClass.h:68
This class provides the structure for all Exc functionals that can be written as a combination of fun...
Definition: ExcSSDFunctionalBaseClass.h:94
Definition: MemoryStorage.h:38
DensityDescrAttr
Definition: KSAttributes.h:35
xcRemainderOutputDataAttributes
Definition: ExcSSDFunctionalBaseClass.h:63
WfcDescrAttr
Definition: KSAttributes.h:43
dealii includes
Definition: AtomFieldDataSpherical.cpp:31