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:

ndarray

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.

Parameters:
  • sym_point_group (str) –

  • state1 (str) –

  • state2 (str) –

Return type:

str

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.

Parameters:

sym_point_group (str) –

Return type:

dict

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:

str

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'}}