Open MatthiasSachs opened 2 years ago
I think, one way to approach this issue would be to
generate a span of function that satisfy the required symmetry property by applying the symmetrization operation
$$ \overline{B}_k(\{r_i\}, \{r_j\}) = B_k(\{r_i\}, \{r_j\}) + S \circ B_k(\{-r_i\}, \{r_j\}),$$
to an equivariant ACE basis $Bk,\, k=1,\dots, N{\rm basis}$.
follow the usual steps to convert this set of functions to a basis, i.e., compute the Gramian for the such obtained set of functions and then obtain coupling coefficients from the corresponding SVD.
However, I am not sure where exactly (and if at all?) in the ACE.jl code base we should include this.
If I understand correctly we encountered a similar (or same?) issue in ACEhamiltonians
implementation, which raised from the fact that
$$H{IJ} = H{JI}^\ast,$$
or say,
$$H(r{bond}, {r{env}}) = [H(-r{bond}, {r{env}})]^*.$$
This was currently fixed in the ACEhamiltonians
package rather than in ACE
, by editing the A2Bmap
of the mentioned $B$ basis. That is to say, assume $B(R) = UA(R)$, $S\circ B(R^{dual}) = \tilde{U}A(R^{dual}) = \tilde{U}PA(R)$, where $P$ are some permutation matrix, then we set
$$\bar{B} = (U+\tilde{U}P) A$$
to be the new symmetric basis.
This introduces potentially new linear dependence which can be removed by adopting another SVD.
I would like to extend ACE to allow for representation of $\mathbb{R}^{3\times 3}$ matrix-valued functions, that, besides the standard equivariant symmetry properties, also satisfy symmetries of the form $$G(\{r_i\}, \{r_j\}) = S \circ G(\{-r_i\}, \{r_j\}),$$ where $S$ is some prescribed involution $S : \mathbb{R}^{3 \times 3} \rightarrow \mathbb{R}^{3 \times 3}$, and $\{r_i\}$ and $\{r_j\}$ are the displacements of two groups/species of atoms.
For example, for a bond environment with bond displacement $r_0\in \mathbb{R}^3$ and discplacements $\{ri\}$ of the atoms within the bond environment, I would like to represent $\mathbb{R}^{3\times 3}$ valued functions of the form $$G(r{0}, \{ri\}) = [G(-r{0}, \{r_i \})]^T.$$