TBTK
LDOS.h
Go to the documentation of this file.
1 /* Copyright 2016 Kristofer Bj√∂rnson
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
23 #ifndef COM_DAFER45_TBTK_LDOS
24 #define COM_DAFER45_TBTK_LDOS
25 
26 #include "TBTK/Property/AbstractProperty.h"
27 //#include "IndexDescriptor.h"
28 
29 namespace TBTK{
30 namespace Property{
31 
33 class LDOS : public AbstractProperty<double>{
34 public:
36  LDOS(
37  int dimensions,
38  const int *ranges,
39  double lowerBound,
40  double upperBound,
41  int resolution
42  );
43 
45  LDOS(
46  int dimensions,
47  const int *ranges,
48  double lowerBound,
49  double upperBound,
50  int resolution,
51  const double *data
52  );
53 
55  LDOS(
56  const IndexTree &indexTree,
57  double lowerBound,
58  double upperBound,
59  int resolution
60  );
61 
63  LDOS(
64  const IndexTree &indexTree,
65  double lowerBound,
66  double upperBound,
67  int resolution,
68  const double *data
69  );
70 
72  LDOS(const LDOS &ldos);
73 
75  LDOS(LDOS &&ldos);
76 
78  LDOS(const std::string &serialization, Mode mode);
79 
81  ~LDOS();
82 
84  double getLowerBound() const;
85 
87  double getUpperBound() const;
88 
90  int getResolution() const;
91 
93  LDOS& operator=(const LDOS &ldos);
94 
96  LDOS& operator=(LDOS &&ldos);
97 
99  virtual std::string serialize(Mode mode) const;
100 private:
102  double lowerBound;
103 
105  double upperBound;
106 
108  int resolution;
109 };
110 
111 inline double LDOS::getLowerBound() const{
112  return lowerBound;
113 }
114 
115 inline double LDOS::getUpperBound() const{
116  return upperBound;
117 }
118 
119 inline int LDOS::getResolution() const{
120  return resolution;
121 }
122 
123 }; //End namespace Property
124 }; //End namespace TBTK
125 
126 #endif
Property container for local density of states (LDOS).
Definition: LDOS.h:33
double getLowerBound() const
Definition: LDOS.h:111
LDOS & operator=(const LDOS &ldos)
LDOS(int dimensions, const int *ranges, double lowerBound, double upperBound, int resolution)
virtual std::string serialize(Mode mode) const
double getUpperBound() const
Definition: LDOS.h:115
Abstract Property class.
Definition: AbstractProperty.h:41
Data structure for mapping physical indices to a linear index.
Definition: IndexTree.h:34
Definition: ModelFactory.h:35
Mode
Definition: Serializable.h:44
int getResolution() const
Definition: LDOS.h:119