CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
SymInfo.hh
Go to the documentation of this file.
1 #ifndef CASM_SymInfo
2 #define CASM_SymInfo
3 
4 #include <iostream>
5 #include <string>
6 #include <iomanip>
7 
8 #include "casm/external/Eigen/Dense"
10 #include "casm/casm_io/EnumIO.hh"
11 #include "casm/symmetry/SymOp.hh"
12 
13 namespace CASM {
14 
19  enum class symmetry_type {
21  mirror_op,
22  glide_op,
24  screw_op,
28  };
29 
31 
33 
35  struct SymInfo {
36 
37  SymInfo(const SymOp &op, const Lattice &lat);
38 
42 
49 
52  double angle;
53 
57 
60 
61 
62  private:
63 
66 
67  void _set(const vector_type &_axis,
68  const vector_type &_screw_glide_shift,
69  const vector_type &_location,
70  const Lattice &lat);
71  };
72 
73 
75  std::string to_string(const SymInfo &info, COORD_TYPE mode);
76 
78  std::string description(const SymOp &op, const Lattice &lat, COORD_TYPE mode);
79 
81  void add_sym_info(const SymInfo &info, jsonParser &j);
82 
84 }
85 
86 #endif
Coordinate location
A Cartesian coordinate that is invariant to the operation (if one exists)
Definition: SymInfo.hh:59
Coordinate axis
Definition: SymInfo.hh:48
#define ENUM_TRAITS(ENUM)
Definition: EnumIO.hh:105
SymOp::matrix_type matrix_type
Definition: SymInfo.hh:65
Main CASM namespace.
Definition: complete.cpp:8
std::string to_string(ENUM val)
Return string representation of enum class.
Definition: EnumIO.hh:83
Coordinate screw_glide_shift
Definition: SymInfo.hh:56
Eigen::Vector3d vector_type
Definition: SymOp.hh:32
#define ENUM_IO(ENUM)
Definition: EnumIO.hh:115
SymOp is the Coordinate representation of a symmetry operation it keeps fraction (FRAC) and Cartesian...
Definition: SymOp.hh:28
Represents cartesian and fractional coordinates.
Definition: Coordinate.hh:34
Simple struct to be used as return type for SymOp::info().
Definition: SymInfo.hh:35
symmetry_type op_type
Definition: SymInfo.hh:41
void add_sym_info(const SymInfo &info, jsonParser &j)
Add to existing JSON object.
SymOp::vector_type vector_type
Definition: SymInfo.hh:64
symmetry_type
Definition: SymInfo.hh:19
std::string description(const SymOp &op, const Lattice &lat, COORD_TYPE mode)
Print SymInfo to string.
double angle
Definition: SymInfo.hh:52
Eigen::Matrix3d matrix_type
Definition: SymOp.hh:31