DFT-EFE
 
Loading...
Searching...
No Matches
ExcManager.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_EXCMANAGER_H
19#define DFTEFE_EXCMANAGER_H
20
21#include <xc.h>
22#include <xc_funcs.h>
24namespace dftefe
25{
26 namespace ksdft
27 {
28 template <dftefe::utils::MemorySpace memorySpace>
30 {
31 public:
36 ExcManager();
37
42
43 void
44 clear();
45
46
47 void
48 init(std::string XCType, const bool printXCInfo = true);
49
52
53
56
57 const std::shared_ptr<ExcSSDFunctionalBaseClass<memorySpace>> &
58 getSSDSharedObj() const;
59
60 std::shared_ptr<ExcSSDFunctionalBaseClass<memorySpace>> &
62
63
64 private:
66 std::shared_ptr<xc_func_type> d_funcXPtr;
67 std::shared_ptr<xc_func_type> d_funcCPtr;
68
69 std::shared_ptr<ExcSSDFunctionalBaseClass<memorySpace>> d_excObj;
70 };
71 } // namespace ksdft
72} // namespace dftefe
73
74#endif // DFTEFE_EXCMANAGER_H
Definition: ExcManager.h:30
std::shared_ptr< xc_func_type > d_funcXPtr
objects for various exchange-correlations (from libxc package)
Definition: ExcManager.h:66
ExcManager()
Constructor.
Definition: ExcManager.cpp:316
void clear()
Definition: ExcManager.cpp:327
std::shared_ptr< xc_func_type > d_funcCPtr
Definition: ExcManager.h:67
std::shared_ptr< ExcSSDFunctionalBaseClass< memorySpace > > d_excObj
Definition: ExcManager.h:69
ExcSSDFunctionalBaseClass< memorySpace > * getExcSSDFunctionalObj()
Definition: ExcManager.cpp:361
const std::shared_ptr< ExcSSDFunctionalBaseClass< memorySpace > > & getSSDSharedObj() const
Definition: ExcManager.cpp:375
void init(std::string XCType, const bool printXCInfo=true)
Definition: ExcManager.cpp:346
~ExcManager()
destructor
Definition: ExcManager.cpp:320
This class provides the structure for all Exc functionals that can be written as a combination of fun...
Definition: ExcSSDFunctionalBaseClass.h:94
dealii includes
Definition: AtomFieldDataSpherical.cpp:31