|
Cytnx v0.7.4
|
the symmetry object More...
#include <Symmetry.hpp>
Public Member Functions | |
| Symmetry | clone () const |
| return a clone instance of current Symmetry object. | |
| int | stype () const |
| return the symmetry type-id of current Symmetry object. | |
| int & | n () const |
| return the descrete n of current Symmetry object. | |
| std::string | stype_str () const |
| return the symmetry type name of current Symmetry object. | |
| bool | check_qnum (const cytnx_int64 &qnum) |
| check the quantum number is within the valid value range of current Symmetry. | |
| bool | check_qnums (const std::vector< cytnx_int64 > &qnums) |
| check all the quantum numbers are within the valid value range of current Symmetry. | |
| std::vector< cytnx_int64 > | combine_rule (const std::vector< cytnx_int64 > &inL, const std::vector< cytnx_int64 > &inR) |
| apply combine rule of current symmetry to two quantum number lists. | |
| void | combine_rule_ (std::vector< cytnx_int64 > &out, const std::vector< cytnx_int64 > &inL, const std::vector< cytnx_int64 > &inR) |
| apply combine rule of current symmetry to two quantum number lists, and store it into parameter | |
| cytnx_int64 | combine_rule (const cytnx_int64 &inL, const cytnx_int64 &inR) |
| apply combine rule of current symmetry to two quantum numbers. | |
| void | combine_rule_ (cytnx_int64 &out, const cytnx_int64 &inL, const cytnx_int64 &inR) |
| apply combine rule of current symmetry to two quantum numbers, and store the combined quntun number into parameter | |
| void | reverse_rule_ (cytnx_int64 &out, const cytnx_int64 &in) |
| cytnx_int64 | reverse_rule (const cytnx_int64 &in) |
| void | Save (const std::string &fname) const |
| void | Save (const char *fname) const |
| void | print_info () const |
| bool | operator== (const Symmetry &rhs) const |
| bool | operator!= (const Symmetry &rhs) const |
Static Public Member Functions | |
| static Symmetry | U1 () |
| create a U1 symmetry object | |
| static Symmetry | Zn (const int &n) |
| create a Zn descrete symmetry object with \(n\in\mathbb{N}\) | |
| static Symmetry | Load (const std::string &fname) |
| static Symmetry | Load (const char *fname) |
the symmetry object
|
inline |
check the quantum number is within the valid value range of current Symmetry.
| qnum | a singule quantum number. |
|
inline |
check all the quantum numbers are within the valid value range of current Symmetry.
| qnums | the list of quantum numbers |
|
inline |
return a clone instance of current Symmetry object.
1 1 0 1
True True False True
|
inline |
apply combine rule of current symmetry to two quantum numbers.
| inL | the #1 quantum number. |
| inR | the #2 quantum number. |
|
inline |
apply combine rule of current symmetry to two quantum number lists.
| inL | the #1 quantum number list that is to be combined. |
| inR | the #2 quantum number list that is to be combined. |
|
inline |
apply combine rule of current symmetry to two quantum numbers, and store the combined quntun number into parameter
| out. | |
| out | the output quantum number. |
| inL | the #1 quantum number. |
| inR | the #2 quantum number. |
|
inline |
apply combine rule of current symmetry to two quantum number lists, and store it into parameter
| out. | |
| out | the output quantum number list. |
| inL | the #1 quantum number list that is to be combined. |
| inR | the #2 quantum number list that is to be combined. |
|
static |
|
static |
|
inline |
return the descrete n of current Symmetry object.
| bool cytnx::Symmetry::operator!= | ( | const Symmetry & | rhs | ) | const |
| bool cytnx::Symmetry::operator== | ( | const Symmetry & | rhs | ) | const |
|
inline |
|
inline |
|
inline |
| void cytnx::Symmetry::Save | ( | const char * | fname | ) | const |
| void cytnx::Symmetry::Save | ( | const std::string & | fname | ) | const |
|
inline |
return the symmetry type-id of current Symmetry object.
|
inline |
return the symmetry type name of current Symmetry object.
|
inlinestatic |
create a U1 symmetry object
\f$(-\infty , \infty)\f$
Q + Q
create a new U1 symmetry object that serive as a generator. The symmetry object is a property of Bond . It is used to identify the symmetry of the quantum number set, as well as providing the combining rule for the quantum number when Bonds are combined.
Dim = 4 |type: KET> U1:: +0 -4 -2 +3 Dim = 4 |type: KET> U1:: +0 -4 -2 +3 1 Dim = 5 |type: KET> U1:: -1 +1 +2 -2 +0 Dim = 20 |type: KET> U1:: -1 +1 +2 -2 +0 -5 -3 -2 -6 -4 -3 -1 +0 -4 -2 +2 +4 +5 +1 +3
Dim = 4 |type: KET> U1:: +0 -4 -2 +3 Dim = 4 |type: KET> U1:: +0 -4 -2 +3 True Dim = 5 |type: KET> U1:: -1 +1 +2 -2 +0 Dim = 20 |type: KET> U1:: -1 +1 +2 -2 +0 -5 -3 -2 -6 -4 -3 -1 +0 -4 -2 +2 +4 +5 +1 +3
|
inlinestatic |
create a Zn descrete symmetry object with \(n\in\mathbb{N}\)
\f$[0 , n)\f$
(Q + Q)%n
create a new Zn descrete symmetry object with integer \( n \) that serive as a generator. The symmetry object is a property of Bond . It is used to identify the symmetry of the quantum number set, as well as providing the combining rule for the quantum number when Bonds are combined.
Dim = 4 |type: KET> Z2:: +0 +0 +1 +1 Dim = 3 |type: KET> Z2:: +0 +1 +1 Dim = 12 |type: KET> Z2:: +0 +1 +1 +0 +1 +1 +1 +0 +0 +1 +0 +0 Dim = 4 |type: KET> Z4:: +0 +3 +1 +2 Dim = 3 |type: KET> Z4:: +2 +3 +1 Dim = 12 |type: KET> Z4:: +2 +3 +1 +1 +2 +0 +3 +0 +2 +0 +1 +3
Dim = 4 |type: KET> Z2:: +0 +0 +1 +1 Dim = 3 |type: KET> Z2:: +0 +1 +1 Dim = 12 |type: KET> Z2:: +0 +1 +1 +0 +1 +1 +1 +0 +0 +1 +0 +0 Dim = 4 |type: KET> Z4:: +0 +3 +1 +2 Dim = 3 |type: KET> Z4:: +2 +3 +1 Dim = 12 |type: KET> Z4:: +2 +3 +1 +1 +2 +0 +3 +0 +2 +0 +1 +3