13 namespace SupercellSymInfo_dataformatter_impl {
16 template <
typename ValueType>
34 "transformation_matrix_to_super",
35 "Transformation matrix T, defining the supercell lattice vectors, S, in "
36 "terms of the prim lattice vectors, P: `S = T * P`, where S and P are "
37 "column vector matrices.",
46 "Supercell lattice vectors, unrolled: (a0, a1, a2, b0, ...)",
48 Eigen::Matrix<double, 3, 3, Eigen::ColMajor> L =
50 return Eigen::Map<Eigen::VectorXd>(L.data(), L.size());
56 "supercell_lattice_column_matrix",
57 "Supercell lattice vectors, as column vector matrix",
65 "supercell_lattice_vectors",
66 "Supercell lattice vectors, as row vector matrix",
77 "Integer coordinates of unit cells in the supercell. The order "
78 "corresponds to the both the linear order of site degree of freedom "
79 "values within one sublattice of a configuration, and the order in which "
80 "translational symmetry operations are applied.",
92 "integral_site_coordinates",
93 "Integer coordinates `(b, i, j, k)` of sites in the supercell, where `b` "
94 "is the sublattice index of the site, and `(i,j,k)` are the integral "
95 "coordinates of the unit cell containing the site.",
99 for (
Index l = 0; l < f.total_sites(); l++) {
110 "translation_permutations",
111 "Describes how sites permute due to translation. Outer array (with size "
112 "equal to the supercell volume) corresponds to possible translations "
113 "within the supercell, and the inner array (with size is equal to the "
114 "total number of sites, prim basis size * supercell volume) describes "
115 "how sites permute for the `i`th translation, according to `after[l] = "
116 "before[translation_permutation[i][l]]`.",
127 "The supercell factor group is the subgroup of the prim factor group "
128 "that keeps the supercell lattice invariant.",
139 "The number of operations in the supercell factor group.",
147 "factor_group_permutations",
148 "Describes how sites permute due to supercell factor group operations. "
149 "Outer array corresponds to supercell factor group operations (prim "
150 "factor group operations that keep the supercell lattice invariant), and "
151 "the inner array (with size is equal to the total number of sites, prim "
152 "basis size * supercell volume) describes how sites permute for the "
153 "`i`th supercell factor group operation, according to `after[l] = "
154 "before[factor_group_permutations[i][l]]`.",
170 "Symmetry representations (matrices) that describe how values of global "
171 "degrees of freedom transform under application of symmetry operations. "
172 "The `i`th supercell factor group operation transforms vectorized DoF "
173 "values according to `vector_after = global_dof_reps[dof_key][i] * "
174 "vector_before`, where `dof_key` is the name of the DoF.",
178 write_matrix_rep(pair.second, json[pair.first]);
187 "Symmetry representations (matrices) that describe how values of local "
188 "degrees of freedom transform under application of symmetry operations. "
189 "The `i`th supercell factor group operation transforms vectorized local "
190 "DoF values on sublattice `b` according to `vector_after = "
191 "local_dof_reps[dof_key][b][i] * vector_before`, where `dof_key` is the "
192 "name of the DoF. After transforming values at a site, values are "
193 "permuted among sites.",
198 jsonParser::array(pair.second.size(), jsonParser::object());
200 for (auto const &group_handle : pair.second) {
201 write_matrix_rep(group_handle, json[pair.first][b]);
212 DataFormatterDictionary<SupercellSymInfo>
214 using namespace SupercellSymInfo_dataformatter_impl;
215 DataFormatterDictionary<SupercellSymInfo> dict;
SupercellSymInfo const & supercell_sym_info
A class that collects all symmetry information for for performing symmetry transformations on the sit...
static jsonParser array()
Returns an empty json array.
jsonParser & push_back(const T &value, Args &&... args)
std::vector< UnitCell > make_lattice_points(const Eigen::Matrix3l &transformation_matrix)
jsonParser & to_json(const ClexDescription &desc, jsonParser &json)
void write_symgroup(SymGroup const &grp, jsonParser &json)
DataFormatterDictionary< SupercellSymInfo > make_attribute_dictionary< SupercellSymInfo >()
INDEX_TYPE Index
For long integer indexing: