Symmetry VCHAM Module
- class symm_vcham.SymmetryMask[source]
Bases:
object
- classmethod create_symmetry_matrix(VCSystem)[source]
Create a symmetry matrix based on the given parameters.
- VCSystemobject
An object containing the necessary attributes: - symmetry_point_group: str, the symmetry point group. - number_normal_modes: int, number of normal modes. - number_states: int, number of states. - symmetry_modes: list, list of symmetry modes. - symmetry_states: list, list of symmetry states. - coupling_with_gs: bool, whether to decouple the ground state. - totally_sym_irrep: str, the totally symmetric irreducible representation. - JT_effects: list of dict, each dictionary specifies a JT effect with keys:
‘mode’: int, index of the normal mode where the JT effect occurs.
‘state_pairs’: list of tuples/lists, each containing two integers (state indices).
‘types’: list of str, JT effect types (e.g., ‘Exe’, ‘Exb’) corresponding to each state pair.
‘active’ (optional): bool, indicating if the effect is actively optimized (default is True).
‘source’ (optional): int, if inactive, the mode index from which parameters should be copied.
- np.ndarray
The symmetry matrix.
- AttributeError
If VCSystem is missing an expected attribute.
- ValueError
If the provided JT_effects do not meet the expected format.
- TypeError
If mode or state indices are not integers.
- IndexError
If mode or state indices are out of bounds.
- Return type:
- classmethod get_operation_result(sym_point_group, state1, state2)[source]
Get the result of a symmetry operation for two states.
- sym_point_groupstr
The symmetry point group.
- state1str
The first state.
- state2str
The second state.
- str
The result of the symmetry operation.
- ValueError
If the operation result is not found.
- classmethod get_product_table(sym_point_group)[source]
Get the product table for a given symmetry point group.
- sym_point_groupstr
The symmetry point group.
- dict
The product table for the given symmetry point group.
- ValueError
If the symmetry point group is unknown.
- classmethod get_total_sym_irrep(VCSystem)[source]
Get the totally symmetric irreducible representation for a given symmetry point group.
- VCSystemstr or object
The symmetry point group or an object with a ‘symmetry_point_group’ attribute.
- str
The totally symmetric irreducible representation.
- ValueError
If VCSystem is not a string or an object with a ‘symmetry_point_group’ attribute.
- Return type:
- product_tables = {'c2': {('A', 'A'): 'A', ('A', 'B'): 'B', ('B', 'A'): 'B', ('B', 'B'): 'A'}, 'c2h': {('Ag', 'Ag'): 'Ag', ('Ag', 'Au'): 'Au', ('Ag', 'Bg'): 'Bg', ('Ag', 'Bu'): 'Bu', ('Au', 'Ag'): 'Au', ('Au', 'Au'): 'Ag', ('Au', 'Bg'): 'Bu', ('Au', 'Bu'): 'Bg', ('Bg', 'Ag'): 'Bg', ('Bg', 'Au'): 'Bu', ('Bg', 'Bg'): 'Ag', ('Bg', 'Bu'): 'Au', ('Bu', 'Ag'): 'Bu', ('Bu', 'Au'): 'Bg', ('Bu', 'Bg'): 'Au', ('Bu', 'Bu'): 'Ag'}, 'c2v': {('A1', 'A1'): 'A1', ('A1', 'A2'): 'A2', ('A1', 'B1'): 'B1', ('A1', 'B2'): 'B2', ('A2', 'A1'): 'A2', ('A2', 'A2'): 'A1', ('A2', 'B1'): 'B2', ('A2', 'B2'): 'B1', ('B1', 'A1'): 'B1', ('B1', 'A2'): 'B2', ('B1', 'B1'): 'A1', ('B1', 'B2'): 'A2', ('B2', 'A1'): 'B2', ('B2', 'A2'): 'B1', ('B2', 'B1'): 'A2', ('B2', 'B2'): 'A1'}, 'ci': {('Ag', 'Ag'): 'Ag', ('Ag', 'Au'): 'Au', ('Au', 'Ag'): 'Au', ('Au', 'Au'): 'Ag'}, 'cs': {("A'", "A'"): "A'", ("A'", "A''"): "A''", ("A''", "A'"): "A''", ("A''", "A''"): "A'"}, 'd2': {('A', 'A'): 'A', ('A', 'B1'): 'B1', ('A', 'B2'): 'B2', ('A', 'B3'): 'B3', ('B1', 'A'): 'B1', ('B1', 'B1'): 'A', ('B1', 'B2'): 'B3', ('B1', 'B3'): 'B2', ('B2', 'A'): 'B2', ('B2', 'B1'): 'B3', ('B2', 'B2'): 'A', ('B2', 'B3'): 'B1', ('B3', 'A'): 'B3', ('B3', 'B1'): 'B2', ('B3', 'B2'): 'B1', ('B3', 'B3'): 'A'}, 'd2h': {('Ag', 'Ag'): 'Ag', ('Ag', 'Au'): 'Au', ('Ag', 'B1g'): 'B1g', ('Ag', 'B1u'): 'B1u', ('Ag', 'B2g'): 'B2g', ('Ag', 'B2u'): 'B2u', ('Ag', 'B3g'): 'B3g', ('Ag', 'B3u'): 'B3u', ('Au', 'Ag'): 'Au', ('Au', 'Au'): 'Ag', ('Au', 'B1g'): 'B1u', ('Au', 'B1u'): 'B1g', ('Au', 'B2g'): 'B2u', ('Au', 'B2u'): 'B2g', ('Au', 'B3g'): 'B3u', ('Au', 'B3u'): 'B3g', ('B1g', 'Ag'): 'B1g', ('B1g', 'Au'): 'B1u', ('B1g', 'B1g'): 'Ag', ('B1g', 'B1u'): 'Au', ('B1g', 'B2g'): 'B3g', ('B1g', 'B2u'): 'B3u', ('B1g', 'B3g'): 'B2g', ('B1g', 'B3u'): 'B2u', ('B1u', 'Ag'): 'B1u', ('B1u', 'Au'): 'B1g', ('B1u', 'B1g'): 'Au', ('B1u', 'B1u'): 'Ag', ('B1u', 'B2g'): 'B3u', ('B1u', 'B2u'): 'B3g', ('B1u', 'B3g'): 'B2u', ('B1u', 'B3u'): 'B2g', ('B2g', 'Ag'): 'B2g', ('B2g', 'Au'): 'B2u', ('B2g', 'B1g'): 'B3g', ('B2g', 'B1u'): 'B3u', ('B2g', 'B2g'): 'Ag', ('B2g', 'B2u'): 'Au', ('B2g', 'B3g'): 'B1g', ('B2g', 'B3u'): 'B1u', ('B2u', 'Ag'): 'B2u', ('B2u', 'Au'): 'B2g', ('B2u', 'B1g'): 'B3u', ('B2u', 'B1u'): 'B3g', ('B2u', 'B2g'): 'Au', ('B2u', 'B2u'): 'Ag', ('B2u', 'B3g'): 'B1u', ('B2u', 'B3u'): 'B1g', ('B3g', 'Ag'): 'B3g', ('B3g', 'Au'): 'B3u', ('B3g', 'B1g'): 'B2g', ('B3g', 'B1u'): 'B2u', ('B3g', 'B2g'): 'B1g', ('B3g', 'B2u'): 'B1u', ('B3g', 'B3g'): 'Ag', ('B3g', 'B3u'): 'Au', ('B3u', 'Ag'): 'B3u', ('B3u', 'Au'): 'B3g', ('B3u', 'B1g'): 'B2u', ('B3u', 'B1u'): 'B2g', ('B3u', 'B2g'): 'B1u', ('B3u', 'B2u'): 'B1g', ('B3u', 'B3g'): 'Au', ('B3u', 'B3u'): 'Ag'}}