CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
SymMatrixXd.hh
Go to the documentation of this file.
1 #ifndef SYMMATRIXXD_HH
2 #define SYMMATRIXXD_HH
3 
4 #include <iostream>
5 #include <cmath>
6 
7 #include "casm/external/Eigen/Dense"
8 
10 
11 namespace CASM {
12  class MasterSymGroup;
13  class Lattice;
14 
19  class SymMatrixXd : public SymOpRepresentation {
23  private:
25  public:
26  SymMatrixXd(const Eigen::MatrixXd &init_mat) : mat(init_mat) {};
27 
28  SymOpRepresentation *copy() const override {
29  return new SymMatrixXd(*this);
30  }
31 
32  Eigen::MatrixXd const *get_MatrixXd() const override {
33  return &mat;
34  }
35 
36  double character() const override {
37  return mat.trace();
38  }
39 
40  jsonParser &to_json(jsonParser &json) const override;
41 
42  void from_json(const jsonParser &json) override;
43  };
44 
45  jsonParser &to_json(const SymMatrixXd &sym, jsonParser &json);
46  void from_json(SymMatrixXd &sym, const jsonParser &json);
47 
49 }
50 #endif
Eigen::MatrixXd MatrixXd
Eigen::MatrixXd const * get_MatrixXd() const override
Definition: SymMatrixXd.hh:32
void from_json(ClexDescription &desc, const jsonParser &json)
SymOpRepresentation * copy() const override
Make copy of Derived object through Base-class interface.
Definition: SymMatrixXd.hh:28
jsonParser & to_json(const ClexDescription &desc, jsonParser &json)
Eigen::MatrixXd mat
Definition: SymMatrixXd.hh:24
Main CASM namespace.
Definition: complete.cpp:8
double character() const override
Calculates character of the representation (if well-defined)
Definition: SymMatrixXd.hh:36
jsonParser & to_json(jsonParser &json) const override
Definition: SymMatrixXd.cc:7
SymOpRepresentation is the base class for anything describes a symmetry operation.
void from_json(const jsonParser &json) override
Definition: SymMatrixXd.cc:26
SymMatrixXd(const Eigen::MatrixXd &init_mat)
Definition: SymMatrixXd.hh:26