Program Listing for File qsymmetry.hpp

Return to documentation for file (nrgcore/qsymmetry.hpp)

#pragma once
#include <iostream>
#include <string>
#include <vector>
class qsymmetry {
  // This is a base class for the symmetries of
  // the hamiltonian. This class
  size_t                   no_of_symmetry{};
  std::vector<std::string> sys_string;

public:
  qsymmetry() : sys_string({"qsymmetry"}) {}
  void add_symmetry(const std::string &_id) {
    no_of_symmetry++;
    sys_string.push_back(_id);
  }
  [[nodiscard]] size_t get_symmetry_size() const { return no_of_symmetry; }
  void                 print_symmetry() const {
    std::cout << "Symmetry of this model:" << std::endl;
    for (const auto &s : sys_string) {
      std::cout << "\t " << s << std::endl;
    }
  }
};