Hex: src/hldata.h Source File

| Hex 2.2 Hydrogen-electron collision solver

hldata.h
Go to the documentation of this file.
1 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
2 // //
3 // / / / / __ \ \ / / //
4 // / /__ / / / _ \ \ \/ / //
5 // / ___ / | |/_/ / /\ \ //
6 // / / / / \_\ / / \ \ //
7 // //
8 // //
9 // Copyright (c) 2017, Jakub Benda, Charles University in Prague //
10 // //
11 // MIT License: //
12 // //
13 // Permission is hereby granted, free of charge, to any person obtaining a //
14 // copy of this software and associated documentation files (the "Software"), //
15 // to deal in the Software without restriction, including without limitation //
16 // the rights to use, copy, modify, merge, publish, distribute, sublicense, //
17 // and/or sell copies of the Software, and to permit persons to whom the //
18 // Software is furnished to do so, subject to the following conditions: //
19 // //
20 // The above copyright notice and this permission notice shall be included //
21 // in all copies or substantial portions of the Software. //
22 // //
23 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS //
24 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, //
25 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE //
26 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, //
27 // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF //
28 // OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. //
29 // //
30 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
31
32 #ifndef HEX_ECS_HLDATA_H
33 #define HEX_ECS_HLDATA_H
34
35 // --------------------------------------------------------------------------------- //
36
37 #include "hex-densematrix.h"
38
39 // --------------------------------------------------------------------------------- //
40
50 class HlData
51 {
52 public:
53
55 void hdflink (const char * file);
56
58 bool hdfcheck (const char * file = nullptr) const;
59
61 bool hdfload (const char * file = nullptr);
62
64 bool hdfsave (const char * file = nullptr) const;
65
67 cArray readPseudoState (unsigned l, unsigned ichan) const;
68
70 void drop ();
71
73 cArray Dl;
74
76 ColMatrix<Complex> Cl;
77
79 RowMatrix<Complex> invCl_invsqrtS, invsqrtS_Cl;
80
82 std::string filename;
83 };
84
85 // --------------------------------------------------------------------------------- //
86
87 #endif
HlData::readPseudoState
cArray readPseudoState(unsigned l, unsigned ichan) const
Read a pseudo bound state.
Definition: hldata.cpp:114
HlData::invsqrtS_Cl
RowMatrix< Complex > invsqrtS_Cl
Definition: hldata.h:79
HlData::Cl
ColMatrix< Complex > Cl
One-electron hamiltonian eigenvectors.
Definition: hldata.h:76
HlData::hdfcheck
bool hdfcheck(const char *file=nullptr) const
Check that the file exists and can be opened for reading.
Definition: hldata.cpp:39
HlData::drop
void drop()
Release memory.
Definition: hldata.cpp:107
HlData::filename
std::string filename
Filename.
Definition: hldata.h:82
HlData
One-electron diagonalization data.
Definition: hldata.h:50
HlData::invCl_invsqrtS
RowMatrix< Complex > invCl_invsqrtS
Other combinations, used by KPAPreconditioner only.
Definition: hldata.h:79
HlData::Dl
cArray Dl
One-electron hamiltonian eigenvalues.
Definition: hldata.h:73
HlData::hdfload
bool hdfload(const char *file=nullptr)
Try to load data from a disk file.
Definition: hldata.cpp:46
HlData::hdflink
void hdflink(const char *file)
Link the structure to a disk file.
Definition: hldata.cpp:34
HlData::hdfsave
bool hdfsave(const char *file=nullptr) const
Save data to disk.
Definition: hldata.cpp:80