forte2.symmetry.sym_utils#

Module Contents#

forte2.symmetry.sym_utils.SYMMETRY_OPS#
forte2.symmetry.sym_utils.CHARACTER_TABLE#
forte2.symmetry.sym_utils.COTTON_LABELS#
forte2.symmetry.sym_utils.equivalent_under_operation(coords, charges, op, tol)#

Check if a set of coordinates and charges is equivalent to itself under a given symmetry operation.

Parameters:
coordsndarray of shape (N, 3)

The coordinates of the atoms.

chargeslist of length N

The nuclear charges of the atoms.

opcallable

A function representing the symmetry operation that takes a 3-vector and returns the transformed 3-vector.

tolfloat

The tolerance for comparing distances.

Returns:
has_opbool

True if the system is invariant under the operation, False otherwise.

forte2.symmetry.sym_utils.rotation_mat(axis, theta)#

Euler-Rodrigues formula for rotation matrix

Parameters:
axisndarray of shape (3,)

The axis to rotate around. Will be normalized internally.

thetafloat

Rotation angle

Returns:
Rndarray of shape (3, 3)

The rotation matrix.

forte2.symmetry.sym_utils.reflection_mat(plane)#

Return the 3x3 reflection matrix for the mirror plane σ(x_i, x_j).

Parameters:
plane: tuple (i, j) with i != j and i,j ∈ {0,1,2} mapping to x,y,z.

Example: (0,1) -> σ_xy (flip z).

Returns:
Rndarray of shape (3, 3)
The reflection matrix.