Loading...
Searching...
No Matches
sphericart_ylm.hpp
Go to the documentation of this file.
1#ifndef SEAMS_SPHERICART_YLM_H_
2#define SEAMS_SPHERICART_YLM_H_
3
4// Sphericart (Bigi, Fraux, Browning, Ceriotti, J. Chem. Phys. 159,
5// 064802 (2023); 10.1063/5.0156307) evaluates real Y_lm from
6// Cartesian coordinates. Host Steinhardt pass 1 can batch every bond.
7// The OpenMP-target kernel keeps the closed-form ylmAll.
8
9namespace seams {
10namespace sphericart_ylm {
11
12bool available();
13
14// xyz is nVec * 3 Cartesian components (need not be unit). ylmOut is
15// nVec * (2*orderL+1) * 2 interleaved complex values in the same m
16// order as ylmAll (m = -l .. +l). Real spherical harmonics are packed
17// into the real parts; imaginary parts are zero. Returns 0 on success.
18int ylmCartesian(int orderL, const double *xyz, int nVec, double *ylmOut);
19
20} // namespace sphericart_ylm
21} // namespace seams
22
23#endif
int ylmCartesian(int orderL, const double *xyz, int nVec, double *ylmOut)