Cartesian Tensor
- class e3nn.io.CartesianTensor(formula)[source]
Bases:
e3nn.o3._irreps.Irreps
representation of a cartesian tensor into irreps
- Parameters
formula (str) –
Examples
>>> import torch >>> CartesianTensor("ij=-ji") 1x1e
>>> x = CartesianTensor("ijk=-jik=-ikj") >>> x.from_cartesian(torch.ones(3, 3, 3)) tensor([0.])
>>> x.from_vectors(torch.ones(3), torch.ones(3), torch.ones(3)) tensor([0.])
>>> x = CartesianTensor("ij=ji") >>> t = torch.arange(9).to(torch.float).view(3,3) >>> y = x.from_cartesian(t) >>> z = x.to_cartesian(y) >>> torch.allclose(z, (t + t.T)/2, atol=1e-5) True
Methods:
from_cartesian
(data[, rtp])convert cartesian tensor into irreps
from_vectors
(*xs[, rtp])convert \(x_1 \otimes x_2 \otimes x_3 \otimes \dots\)
reduced_tensor_products
([data])reduced tensor products
to_cartesian
(data[, rtp])convert irreps tensor to cartesian tensor
- from_cartesian(data, rtp=None)[source]
convert cartesian tensor into irreps
- Parameters
data (
torch.Tensor
) – cartesian tensor of shape(..., 3, 3, 3, ...)
- Returns
irreps tensor of shape
(..., self.dim)
- Return type
- from_vectors(*xs, rtp=None)[source]
convert \(x_1 \otimes x_2 \otimes x_3 \otimes \dots\)
- Parameters
xs (list of
torch.Tensor
) – list of vectors of shape(..., 3)
- Returns
irreps tensor of shape
(..., self.dim)
- Return type
- reduced_tensor_products(data: Optional[torch.Tensor] = None) e3nn.o3._reduce.ReducedTensorProducts [source]
reduced tensor products
- Returns
reduced tensor products
- Return type
e3nn.ReducedTensorProducts
- to_cartesian(data, rtp=None)[source]
convert irreps tensor to cartesian tensor
This is the symmetry-aware inverse operation of
from_cartesian()
.- Parameters
data (
torch.Tensor
) – irreps tensor of shape(..., D)
, where D is the dimension of the irreps, i.e.D=self.dim
.- Returns
cartesian tensor of shape
(..., 3, 3, 3, ...)
- Return type