DFT-EFE
 
Loading...
Searching...
No Matches
AtomFieldDataSpherical.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright (c) 2021. *
3 * The Regents of the University of Michigan and DFT-EFE developers. *
4 * *
5 * This file is part of the DFT-EFE code. *
6 * *
7 * DFT-EFE is free software: you can redistribute it and/or modify *
8 * it under the terms of the Lesser GNU General Public License as *
9 * published by the Free Software Foundation, either version 3 of *
10 * the License, or (at your option) any later version. *
11 * *
12 * DFT-EFE is distributed in the hope that it will be useful, but *
13 * WITHOUT ANY WARRANTY; without even the implied warranty *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
15 * See the Lesser GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU Lesser General Public *
18 * License at the top level of DFT-EFE distribution. If not, see *
19 * <https://www.gnu.org/licenses/>. *
20 ******************************************************************************/
21
22/*
23 * @author Bikash Kanungo
24 */
25
26#ifndef dftefeAtomFieldDataSpherical_h
27#define dftefeAtomFieldDataSpherical_h
28
29#include <utils/TypeConfig.h>
30#include <memory>
31#include <map>
32#include <vector>
33#include <string>
34namespace dftefe
35{
36 namespace atoms
37 {
52 class AtomFieldDataSpherical
53 {
54 public:
62 AtomFieldDataSpherical(const std::string filename,
63 const std::string atomFieldname);
64
68 ~AtomFieldDataSpherical() = default;
69
78 std::vector<std::vector<int>>
79 getQuantumNumbers() const;
80
88 std::vector<double>
89 getRadialGridPoints(const std::vector<int> &quantumNumbers) const;
90
99 std::pair<std::vector<double>, std::vector<double>>
100 getRadialFunction(const std::vector<int> &quantumNumbers) const;
101
110 std::pair<double, double>
111 getCutOffAndSmoothness(const std::vector<int> &quantumNumbers) const;
112
113 private:
114 std::string d_filename;
115 std::string d_atomFieldname;
116 std::vector<std::vector<int>> d_quantumNumbers;
117 std::vector<std::vector<double>> d_radialGridPoints;
118 std::vector<std::vector<double>> d_radialFunctionValues;
119 std::map<std::vector<int>, std::pair<size_type, size_type>>
120 d_quantumNumbersToRadialGridAndFunctionIdMap;
121 std::map<std::vector<int>, std::pair<double, double>>
122 d_quantumNumbersToCutoffRadiusAndSmoothnessMap;
123 };
124 } // end of namespace atoms
125} // end of namespace dftefe
126
127#endif // dftefeAtomFieldDataSphericalManager_h
dealii includes
Definition: AtomFieldDataSpherical.cpp:31