21 const SymOp &op = grp[i];
42 j[
"info"][
"brief"][
"CART"]);
44 j[
"info"][
"brief"][
"FRAC"]);
50 jsonParser &json_ops = json[
"group_operations"];
51 for (
int i = 0; i < grp.size(); i++) {
57 jsonParser &json_info = json[
"group_classification"];
66 jsonParser &json_struc = json[
"group_structure"];
69 for (
Index c = 0; c < classes.size(); ++c) {
70 std::string class_name =
72 jsonParser &json_class = json_struc[
"conjugacy_classes"][class_name];
75 json_class[
"operation_type"] = info.
op_type;
79 json_class[
"rotation_angle"] = info.
angle;
82 for (
Index o : classes[c]) {
83 json_class[
"operations"].
push_back(o + 1);
87 for (
auto &v : multi_table) {
92 json_struc[
"multiplication_table"] = multi_table;
122 for (
auto const &op : grp) {
126 op_rep_json[
"matrix"] = op_rep.
matrix();
129 for (
auto const integral_coordinate : op_rep.
data()) {
130 op_rep_json[
"sublattice_permute"].
push_back(
131 integral_coordinate.sublattice());
135 op_rep_json[
"sublattice_shift"].
push_back(tjson);
146 std::vector<SymGroupRepID> occupant_symrep_IDs) {
148 for (
auto symrep_ID : occupant_symrep_IDs) {
150 for (
auto const &op : grp) {
151 Permutation const &permute = *op.get_permutation_rep(symrep_ID);
153 to_json(permute, permute_json);
SymBasisPermute describes how a symmetry operation permutes atoms in a basis.
const Eigen::Matrix3l & matrix() const
Get underlying integer transformation amtrix.
const std::vector< UnitCellCoord > & data() const
Get underlying data (data()[b] is the result of transforming (b,0,0,0))
SymGroup is a collection of symmetry operations that satisfy the group property The symmetry operatio...
const std::string & get_latex_name() const
PERIODICITY_TYPE periodicity() const
const std::string & get_name() const
Index ind_inverse(Index i) const
Get index of operation that is inverse of operation at(i)
const std::vector< std::vector< Index > > & get_multi_table() const
Index class_of_op(Index i) const
Get conjugacy class index of operation at(i)
const std::vector< std::vector< Index > > & get_conjugacy_classes() const
std::string possible_space_groups() const
SymInfo info(Index i) const
const Lattice & lattice() const
Lattice used for periodic comparisons (for instance, to generate multiplcation table)
Index size() const
Size of the associated SymGroupRep.
Type-safe ID object for communicating and accessing Symmetry representation info.
SymOp is the Coordinate representation of a symmetry operation it keeps fraction (FRAC) and Cartesian...
const matrix_type & matrix() const
Const access of entire cartesian symmetry matrix.
bool time_reversal() const
Const access of the time-reversal flag (true if operation reverses time)
const vector_type & tau() const
Const access of the cartesian translation vector, 'tau'.
SymBasisPermute const * get_basis_permute_rep(SymGroupRepID _rep_ID) const
get pointer to BasisPermute representation corresponding to _rep_ID
Index master_group_index() const
Index of this operation within the master_group.
static jsonParser object()
Returns an empty json object.
static jsonParser array()
Returns an empty json array.
jsonParser & put_array()
Puts new empty JSON array.
const Eigen::Matrix3d & lat_column_mat() const
3x3 matrix with lattice vectors as its columne
const Eigen::Matrix3d & inv_lat_column_mat() const
Inverse of Lattice::lat_column_mat() It is the transformation matrix 'C2F', such that f = C2F * c whe...
CASM::jsonParser & to_json_array(const Eigen::MatrixBase< Derived > &value, CASM::jsonParser &json)
Write Eigen Matrix with 1 row or 1 column to JSON array.
jsonParser & push_back(const T &value, Args &&... args)
void write_matrix_rep(SymGroupRepHandle const &grp, jsonParser &json)
jsonParser & to_json(const ClexDescription &desc, jsonParser &json)
std::string to_brief_unicode(const SymInfo &info, SymInfoOptions opt=SymInfoOptions())
Print symmetry symbol to string.
std::string to_sequential_string(Index i, Index max_i, char prepend_char='0')
const PERIODICITY_TYPE PERIODIC
void write_symop(SymGroup const &grp, Index i, jsonParser &j)
void write_symgroup(SymGroup const &grp, jsonParser &json)
void write_occ_permutation_rep(SymGroup const &grp, jsonParser &json, std::vector< SymGroupRepID > occupant_symrep_IDs)
void write_basis_permutation_rep(SymGroup const &grp, jsonParser &json, SymGroupRepID symgrouprep_id)
Describes how integral site coordinates transform under application of symmetry.
INDEX_TYPE Index
For long integer indexing:
Simple struct to be used as return type for SymOp::info().
Options for printing SymInfo.