Symmetry representation in the form of `CrystalFockMap` cannot symmetrize a `CrystalFockMap` correctly.
Closed this issue · 2 comments
The symmetry representation generated from AffineTransform * CrystalFock
has been enhanced to support multithreading capabilities of using CrystalFockMap
. Yet it yields incorrect result when performing operations like S*C*S'
where S
is the symmetry representation; C
is the target CrystalFockMap
to be symmetrized, the same operation performed under FockMap(S)*FockMap(C)*FockMap(S)'
yields correct result. Hence we believe that the problem is with either the *(::CrystalFockMap, ::CrystalFockMap)
, the generation method of the symmetry representation, or adjoint(::CrystalFockMap)
. Yet given that the *
and adjoint
is used in other areas and yield correct results, the generation method of the symmetry representation might be the source of error.
The problem lies with the method +(::CrystalFockMap, ::CrystalFockMap)
since FockMap(C) + FockMap(SCS')
yields the correct result.
The problem is related to the unmatched (k, k)
and its associated block in CrystalFockMap.blocks
generated from *(::AffineTransform, ::CrystalFock)
.