netket.symmetry.group.PGSymmetry#

class netket.symmetry.group.PGSymmetry[source]#

Bases: Element

An abstract group element object to geometrically describe point group symmetries.

Construction: PGSymmetry(W,w) with an orthogonal matrix W and an optional translation vector w returns an object that maps vectors \(\vec x\) to \(W\vec x + \vec w\).

Internally, the transformation is stored as the affine matrix [[W,w],[0,1]], such that matrix inverses and multiplication correspond to inverting and multiplying the transformation itself.

Inheritance
Inheritance diagram of netket.symmetry.group.PGSymmetry
Attributes
affine_matrix#

Returns the (d+1) × (d+1) dimensional matrix representing the action of self as an affine transformation.

is_proper#

Returns True if self is a proper rotation (det(self.matrix) is +1).

is_symmorphic#

Returns True if self leaves the origin in place.

matrix#

Returns the d×d dimensional matrix representing the rotational action of self.

ndim#

Returns the dimension of vectors self acts on.

translation#

Returns the translation vector associated with self.

Methods
__call__(ket)[source]#

Call self as a function.

change_origin(origin)[source]#

Returns a PGSymmetry representing a pure point-group transformation around origin with transformation matrix self._W.

Return type:

PGSymmetry

Parameters:

origin (ndarray | Array)

k_action(x)[source]#

Returns the action of self on the input without the associated translation. This is how the symmetry acts on wave vectors.

preimage(x)[source]#

Returns the preimage of x under the transformation (i.e., self @ self.preimage(x) == x up to numerical accuracy.

replace(**updates)[source]#

Returns a new object replacing the specified fields with new values.