TBTK
Need a break? Support the development by playing Polarity Puzzles
IndexTreeGenerator.h
1 /* Copyright 2019 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 
25 #ifndef COM_DAFER45_TBTK_PROPERTY_EXTRACTOR_INDEX_TREE_GENERATOR
26 #define COM_DAFER45_TBTK_PROPERTY_EXTRACTOR_INDEX_TREE_GENERATOR
27 
28 #include "TBTK/Index.h"
29 #include "TBTK/Property/AbstractProperty.h"
30 #include "TBTK/Property/Density.h"
31 #include "TBTK/Property/DOS.h"
32 #include "TBTK/Property/LDOS.h"
35 
36 #include <complex>
37 //#include <initializer_list>
38 
39 namespace TBTK{
40 namespace PropertyExtractor{
41 
78 public:
83  IndexTreeGenerator(const Model &model);
84 
93  IndexTree generateAllIndices(const std::vector<Index> &patterns) const;
94 
104  IndexTree generateMemoryLayout(const std::vector<Index> &patterns) const;
105 private:
107  const Model &model;
108 
118  IndexTree generate(
119  const std::vector<Index> &patterns,
120  bool keepSummationWildcard
121  ) const;
122 };
123 
125  const std::vector<Index> &patterns
126 ) const{
127  return generate(patterns, false);
128 }
129 
131  const std::vector<Index> &patterns
132 ) const{
133  return generate(patterns, true);
134 }
135 
136 }; //End of namespace PropertyExtractor
137 }; //End of namespace TBTK
138 
139 #endif
Physical index.
Property container for local density of states (LDOS).
IndexTree generateMemoryLayout(const std::vector< Index > &patterns) const
Definition: IndexTreeGenerator.h:130
IndexTree generateAllIndices(const std::vector< Index > &patterns) const
Definition: IndexTreeGenerator.h:124
Property container for spin-polarized local density of states (spin-polarized LDOS).
Property container for density.
Property container for magnetization.
Data structure for mapping physical indices to linear indices.
Definition: IndexTree.h:35
Definition: Boolean.h:32
Property container for density of states (DOS).
Generates IndexTrees to be used as loop ranges and memory layout for Properties in the PropertyExtrac...
Definition: IndexTreeGenerator.h:77
Container of Model related information.
Definition: Model.h:57