DFT-EFE
 
Loading...
Searching...
No Matches
ExcDensityGGAClass.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 DFTEFE_EXCDENSITYGGACLASS_H
18#define DFTEFE_EXCDENSITYGGACLASS_H
19
20#include <xc.h>
22
23namespace dftefe
24{
25 namespace ksdft
26 {
27 template <dftefe::utils::MemorySpace memorySpace>
29 {
30 public:
31 ExcDensityGGAClass(std::shared_ptr<xc_func_type> &funcXPtr,
32 std::shared_ptr<xc_func_type> &funcCPtr,
33 std::string XCType);
34
36
37 void
39 const std::vector<xcRemainderOutputDataAttributes>
40 &outputDataAttributes) const override;
41
42 private:
43 void
45 const std::unordered_map<dftefe::ksdft::DensityDescrAttr,
47 double,
49 &densityAttrVals,
50 const std::unordered_map<dftefe::ksdft::WfcDescrAttr,
52 double,
54 &wfcAttrVals,
55 std::unordered_map<
59 &xDataOut,
60 std::unordered_map<
64 &cDataout) const override;
65
66 std::shared_ptr<xc_func_type> d_funcXPtr;
67 std::shared_ptr<xc_func_type> d_funcCPtr;
68 std::string d_XCType;
69 };
70
71 } // namespace ksdft
72} // namespace dftefe
73#endif // DFTEFE_EXCDENSITYGGACLASS_H
Definition: ExcDensityGGAClass.h:29
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: ExcDensityGGAClass.cpp:80
std::shared_ptr< xc_func_type > d_funcXPtr
Definition: ExcDensityGGAClass.h:66
~ExcDensityGGAClass()
Definition: ExcDensityGGAClass.cpp:47
std::shared_ptr< xc_func_type > d_funcCPtr
Definition: ExcDensityGGAClass.h:67
void checkInputOutputDataAttributesConsistency(const std::vector< xcRemainderOutputDataAttributes > &outputDataAttributes) const override
Definition: ExcDensityGGAClass.cpp:52
std::string d_XCType
Definition: ExcDensityGGAClass.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