C++ documentation
This list is incomplete. You can help by expanding it!
Representations
Spherical Expansion
- template<>
struct rascal::internal::RadialContribution<RadialBasisType::GTO> : public rascal::internal::RadialContributionBaseImplementation of the radial contribution for Gaussian Type Orbitals radial basis functions and gaussian smearing of the atom density.
\[ R^{GTO}_{n}(r) = \mathcal{N}_n\ r^{n} \exp[-br^2] \]\[\begin{split}\begin{gather*} \newcommand{\dd}{\mathrm{d}\,} \mathcal{N}_n^2 = \frac{2}{\sigma_n^{2n + 3}\Gamma(n + 3/2)}\\ \sigma_n = (r_\text{cut}-\delta r_\text{cut}) \max(\sqrt{n},1)/n_\text{max}\\ b=\frac{1}{2\sigma_n}\\ \int_0^\infty R^{GTO}_{n}(r) R^{GTO}_{n^\prime}(r) \dd{r}= 2 \left(\frac{1}{2 \sigma_{n}^2}+ \frac{1}{2 \sigma_{n^\prime}^2} \right)^{-\frac{1}{2} (3+n+n^\prime)} \Gamma(\frac{3+n+n^\prime}{2}) \end{gather*}\end{split}\]See the theory page for more details.
Public Functions
- inline virtual void set_hyperparameters(const Hypers_t &hypers) override
Set hyperparameters.
- Parameters
hypers – is expected to be the same as the the input of the spherical expansion
- template<AtomicSmearingType AST>
inline Matrix_t compute_contribution(const double distance, const double sigma)Define the contribution from a neighbour atom to the expansion without requiring a cluster object so it can be used with the spline.
- template<AtomicSmearingType AST, size_t Order, size_t Layer>
inline Vector_Ref compute_center_contribution(ClusterRefKey<Order, Layer> ¢er, int)define the contribution from the central atom to the expansion
- inline Vector_Ref compute_center_contribution(double fac_a)
define the contribution from the central atom to the expansion
- template<AtomicSmearingType AST, size_t Order, size_t Layer>
inline Matrix_Ref compute_neighbour_contribution(const double distance, const ClusterRefKey<Order, Layer> &pair)define the contribution from a neighbour atom to the expansion
- template<size_t Order, size_t Layer>
inline Matrix_Ref compute_neighbour_derivative(const double distance, const ClusterRefKey<Order, Layer>&, int)Compute the radial derivative of the neighbour contribution.
- inline void finalize_radial_integral_neighbour()
Orthonormalize the radial integral computed with
compute_neighbour_contribution
within the neighbour loop It is useful for splining the GTO basis.
- inline void precompute_radial_sigmas()
Compute common prefactors for the radial Gaussian basis functions
- inline void precompute_radial_overlap()
Compute the radial overlap matrix for later orthogonalization.
- Throws
runtime_error – if the overlap matrix cannot be diagonalized
- template<>
struct rascal::internal::RadialContribution<RadialBasisType::DVR> : public rascal::internal::RadialContributionBaseImplementation of the radial contribution for DVR basis
See the theory page for more details.
Public Functions
- inline explicit RadialContribution(const Hypers_t &hypers)
Constructor.
- virtual ~RadialContribution() = default
Destructor.
- RadialContribution(const RadialContribution &other) = delete
Copy constructor.
- RadialContribution(RadialContribution &&other) = default
Move constructor.
- RadialContribution &operator=(const RadialContribution &other) = delete
Copy assignment operator.
- RadialContribution &operator=(RadialContribution &&other) = default
Move assignment operator.
- inline virtual void set_hyperparameters(const Hypers_t &hypers) override
Set hyperparameters.
- Parameters
hypers – is expected to be the same as the the input of the spherical expansion
- inline Vector_Ref compute_center_contribution(const double fac_a)
define the contribution from the central atom to the expansion
- template<AtomicSmearingType AST, size_t Order, size_t Layer>
inline Matrix_Ref compute_neighbour_contribution(const double distance, const ClusterRefKey<Order, Layer> &pair)define the contribution from a neighbour atom to the expansion
- template<size_t Order, size_t Layer>
inline Matrix_Ref compute_neighbour_derivative(const double, const ClusterRefKey<Order, Layer>&, int)Compute the radial derivative of the neighbour contribution.
- class rascal::CalculatorSphericalExpansion : public rascal::CalculatorBase
Handles the expansion of an environment in a spherical and radial basis.
The local environment of each atom is represented by Gaussians of a certain width (user-defined; can be constant, species-dependent, or radially dependent). This density field is expanded in an angular basis of spherical harmonics (à la SOAP) and a radial basis of either Gaussians (again, as in SOAP/SphericalInvariants) or one of the more recent bases currently under development.
Public Functions
- inline virtual void set_hyperparameters(const Hypers_t &hypers) override
Set the hyperparameters of this descriptor from a json-like container.
- Todo:
(max, felix) document the SOAP/SphExpn-specific hypers here
- Parameters
hypers – structure (usually parsed from json) containing the options and hyperparameters
- Throws
logic_error – if an invalid option or combination of options is specified in the structure
- inline virtual bool does_gradients() const override
Returns if the calculator is able to compute gradients of the representation w.r.t. atomic positions ?
- inline explicit CalculatorSphericalExpansion(const Hypers_t &hyper)
Construct a new Calculator using a hyperparameters container
See set_hyperparameters() for a description of the hypers
- Todo:
(max) ffs, why isn’t the link above working in Sphinx? And why aren’t the todos showing?!
- Parameters
hyper – container (usually parsed from json) for the options and hyperparameters
- Throws
logic_error – if an invalid option or combination of options is specified in the container
- CalculatorSphericalExpansion(const CalculatorSphericalExpansion &other) = delete
Copy constructor.
- inline CalculatorSphericalExpansion(CalculatorSphericalExpansion &&other) noexcept
Move constructor.
- virtual ~CalculatorSphericalExpansion() = default
Destructor.
- CalculatorSphericalExpansion &operator=(const CalculatorSphericalExpansion &other) = delete
Copy assignment operator.
- CalculatorSphericalExpansion &operator=(CalculatorSphericalExpansion &&other) = default
Move assignment operator.
- template<class StructureManager>
void compute(StructureManager &managers)Compute representation for a given structure manager.
- Template Parameters
StructureManager – a (single or collection) of structure manager(s) (in an iterator) held in shared_ptr
- template<internal::CutoffFunctionType FcType, class StructureManager>
void compute_by_radial_contribution(StructureManager &managers)choose the RadialBasisType and AtomicSmearingType from the hypers
- template<internal::CutoffFunctionType FcType, internal::RadialBasisType RadialType, internal::AtomicSmearingType SmearingType, class StructureManager>
void compute_by_radial_contribution(StructureManager &managers)When the RadialBasisType has beeen already selected this function serves for a distinction of the cases for the optimization type
- template<internal::CutoffFunctionType FcType, internal::RadialBasisType RadialType, internal::AtomicSmearingType SmearingType, internal::OptimizationType OptType, class StructureManager, std::enable_if_t<internal::is_proper_iterator<StructureManager>::value, int> = 0>
inline void compute_loop(StructureManager &managers)loop over a collection of manangers if it is an iterator. Or just call compute_impl() if it’s a single manager (see below)
- template<internal::CutoffFunctionType FcType, internal::RadialBasisType RadialType, internal::AtomicSmearingType SmearingType, internal::OptimizationType OptType, class StructureManager, std::enable_if_t<not (internal::is_proper_iterator<StructureManager>::value), int> = 0>
inline void compute_loop(StructureManager &manager)single manager case
Compute the spherical expansion given several options.
Compute the spherical expansion
Spherical Invariants
- class rascal::CalculatorSphericalInvariants : public rascal::CalculatorBase
Public Functions
- CalculatorSphericalInvariants(const CalculatorSphericalInvariants &other) = delete
Copy constructor.
- inline CalculatorSphericalInvariants(CalculatorSphericalInvariants &&other) noexcept
Move constructor.
- virtual ~CalculatorSphericalInvariants() = default
Destructor.
- CalculatorSphericalInvariants &operator=(const CalculatorSphericalInvariants &other) = delete
Copy assignment operator.
- CalculatorSphericalInvariants &operator=(CalculatorSphericalInvariants &&other) = default
Move assignment operator.
- inline virtual void set_hyperparameters(const Hypers_t &hypers) override
Pure Virtual Function to set hyperparameters of the representation.
- inline void set_hyperparameters_powerspectrum(const Hypers_t &hypers)
Set hyperparameters when computing the PowerSpectrum.
- Parameters
hypers – a json type object containing fields:
coefficient_subselection (optional) if not present then all the coefficients are computed following max_radial, max_angular and the atomic species present. it should have the following form `{‘a’: […], ‘b’: […], ‘n1’: […], ‘n2’: […], ‘l’: […]}` where ‘a’ and ‘b’ are lists of atomic species, ‘n1’ and ‘n2’ are lists of radial expension indices and ‘l’ is the list of spherical expansion index. Each of these lists have the same size and their ith element refers to one PowerSpectrum coefficient that will be computed. Note that values in ‘n1’, ‘n2’, ‘l’ should not exceed max_radial-1 and max_angular.
- inline virtual bool does_gradients() const override
Returns if the calculator is able to compute gradients of the representation w.r.t. atomic positions ?
- template<class StructureManager>
void compute(StructureManager &managers)Compute representation for a given structure manager.
TODO(felix) add mechanism to check if the StructureManager is compatible with the representation
- Template Parameters
StructureManager – a (single or collection) of structure manager(s) (in an iterator) held in shared_ptr
- template<internal::SphericalInvariantsType BodyOrder, class StructureManager, std::enable_if_t<internal::is_proper_iterator<StructureManager>::value, int> = 0>
inline void compute_loop(StructureManager &managers)loop over a collection of manangers if it is an iterator. Or just call compute_impl
- template<internal::SphericalInvariantsType BodyOrder, class StructureManager, std::enable_if_t<not (internal::is_proper_iterator<StructureManager>::value), int> = 0>
inline void compute_loop(StructureManager &manager)single manager case
compute representation \( \nu == 1 \)
compute representation \( \nu == 2 \)
compute representation \( \nu == 3 \)
initialize the soap vectors with only the keys needed for each center
Update the gradients p^{i} to include normalization, N_i, resulting in {p}^{i}. We have: {p}^{i} = p^{i} / N_i
{p}^{i} [{p}^{i} p^{i} / N_i], where $$ is a dot product between vectors. Note that this expects the soap vectors to be normalized already, and the norm stored separately.
Public Members
- std::set<internal::SortedKey<Key_t>, internal::CompareSortedKeyLess> unique_pair_list = {}
list of possible input pairs when using coefficient_subselection
- std::map<internal::SortedKey<Key_t>, std::vector<PowerSpectrumCoeffIndex>, internal::CompareSortedKeyLess> coeff_indices_map = {}
list of coefficient that will be computed, mapping keys to a list invariant coefficients that will be computed
- std::map<internal::SortedKey<Key_t>, internal::SortedKey<Key_t>, internal::CompareSortedKeyLess> key_map = {}
map the possible keys of the coefficient to the keys of the powerspectrum. If sparsification then it maps to (0,0) always otherwise it maps onto itself
- std::vector<PowerSpectrumCoeffIndex> coeff_indices = {}
list of coefficient that will be computed if there is no sparsification
- bool is_sparsified = {false}
tell if the calculator has been sparsified using the coefficient_subselection input
- struct PowerSpectrumCoeffIndex
Spherical Covariants
- class rascal::CalculatorSphericalCovariants : public rascal::CalculatorBase
Public Functions
- CalculatorSphericalCovariants(const CalculatorSphericalCovariants &other) = delete
Copy constructor.
- inline CalculatorSphericalCovariants(CalculatorSphericalCovariants &&other) noexcept
Move constructor.
- virtual ~CalculatorSphericalCovariants() = default
Destructor.
- CalculatorSphericalCovariants &operator=(const CalculatorSphericalCovariants &other) = delete
Copy assignment operator.
- CalculatorSphericalCovariants &operator=(CalculatorSphericalCovariants &&other) = default
Move assignment operator.
- inline virtual void set_hyperparameters(const Hypers_t &hypers) override
Pure Virtual Function to set hyperparameters of the representation.
- template<class StructureManager>
void compute(StructureManager &managers)Compute representation for a given structure manager.
TODO(felix) add mechanism to check if the StructureManager is compatible with the representation
- Template Parameters
StructureManager – a (single or collection) of structure manager(s) (in an iterator) held in shared_ptr
- template<internal::SphericalCovariantsType Type, class StructureManager, std::enable_if_t<internal::is_proper_iterator<StructureManager>::value, int> = 0>
inline void compute_loop(StructureManager &managers)loop over a collection of manangers if it is an iterator. Or just call compute_impl
- template<internal::SphericalCovariantsType Type, class StructureManager, std::enable_if_t<not (internal::is_proper_iterator<StructureManager>::value), int> = 0>
inline void compute_loop(StructureManager &manager)single manager case
compute representation lambda spectrum
Kernels
Kernel
- class rascal::Kernel
Public Members
- std::vector<std::string> identifiers = {}
list of names identifying the properties that should be used to compute the kernels
- Hypers_t parameters = {}
parameters of the kernel
- internal::TargetType target_type = {}
Defines if the similarity is defined on the level of structures or per atom
- template<>
struct rascal::internal::KernelImpl<internal::KernelType::Cosine> : public rascal::internal::KernelImplBasePublic Functions
- template<class Property_t, internal::TargetType Type, std::enable_if_t<Type == internal::TargetType::Structure, int> = 0, class StructureManagers>
inline math::Matrix_t compute(StructureManagers &managers_a, StructureManagers &managers_b, const std::string &representation_name)Compute the kernel between 2 set of structure(s), structure wise.
- Template Parameters
StructureManagers – should be an iterable over shared pointer of structure managers like ManagerCollection
- Parameters
managers_a – a ManagerCollection or similar collection of structure managers
managers_b – a ManagerCollection or similar collection of structure managers
representation_name – name under which the representation data has been registered in the elements of managers_a and managers_b
- Returns
kernel matrix
- template<class Property_t, internal::TargetType Type, std::enable_if_t<Type == internal::TargetType::Structure, int> = 0, class StructureManagers>
inline math::Matrix_t compute(StructureManagers &managers_a, const std::string &representation_name)Compute the kernel between 1 set of structure(s) with itself, structure wise.
- Template Parameters
StructureManagers – should be an iterable over shared pointer of structure managers like ManagerCollection
- Parameters
managers_a – a ManagerCollection or similar collection of structure managers
representation_name – name under which the representation data has been registered in the elements of managers_a and managers_b
- Returns
kernel matrix
- template<class Property_t, internal::TargetType Type, std::enable_if_t<Type == internal::TargetType::Atom, int> = 0, class StructureManagers>
inline math::Matrix_t compute(const StructureManagers &managers_a, const StructureManagers &managers_b, const std::string &representation_name)Compute the kernel between 2 set of structures for a given representation specified by the name, atom wise.
- Parameters
managers_a – a ManagerCollection or similar collection of structure managers
managers_b – a ManagerCollection or similar collection of structure managers
representation_name – name under which the representation data has been registered in the elements of managers_a and managers_b
- Returns
kernel matrix
- template<class Property_t, internal::TargetType Type, std::enable_if_t<Type == internal::TargetType::Atom, int> = 0, class StructureManagers>
inline math::Matrix_t compute(const StructureManagers &managers_a, const std::string &representation_name)Compute the kernel between 1 set of structure(s) with itself for a given representation specified by the name, atom wise.
- Parameters
managers_a – a ManagerCollection or similar collection of structure managers
representation_name – name under which the representation data has been registered in the elements of managers_a and managers_b
- Returns
kernel matrix
Public Members
- size_t zeta = {1}
exponent of the cosine kernel
SparseKernel
- class rascal::SparseKernel
Public Functions
- inline SparseKernel(SparseKernel &&other) noexcept
Move constructor.
- template<class Calculator, class StructureManagers, class SparsePoints>
inline math::Matrix_t compute(const Calculator &calculator, const StructureManagers &managers, const SparsePoints &sparse_points)The root compute kernel function. It computes the kernel between 2 set of structures for a given representation specified by the calculator.
- Parameters
calculator – the calculator which has been used to calculate the representation on the two managers has been registered in the elements of managers and managers_b
managers – a ManagerCollection or similar collection of structure managers
managers_b – a ManagerCollection or similar collection of structure managers or a set of pseudo points
- template<class Calculator, class StructureManagers, class SparsePoints>
inline math::Matrix_t compute_derivative(const Calculator &calculator, const StructureManagers &managers, const SparsePoints &sparse_points, const bool compute_neg_stress)The root compute kernel function. It computes the kernel between the representation gradients of a set of structures with the set of pseudo points. The energy is defined as a sum of atomic contributions
\[ E(A) = \sum_{i \in A} \epsilon_{a_i}(X_i), \]where \(\epsilon_{a_i}\) is an atomic energy function for atoms of type \(a_i\) modeled with a GPR model with sparse points \(T_m\)
\[ \epsilon_{a_i} (X_i) = \sum_m \alpha_m \delta_{b_m a_i} k(X_i,T_m), \]where \(b_m\) is the atom type associated with the sparse point \(T_m\). To summarize our model, the energy is given by
\[ E(A) = \sum_m \alpha_m \sum_{i \in A} \delta_{b_m a_i} k(X_i,T_m), \]thus the forces with respect to the position of atom \(i\) is in the kernel formulation
\[ \vec{\nabla}_i E = \sum_m \alpha_m \sum_{i \in A} \delta_{b_m a_i} \sum_{j \in i} \vec{\nabla}_i k(X_j,T_m), \]and the virial negative stress
\[ \frac{ \partial E }{ \partial\eta_{\alpha\beta} } = \sum_m \alpha_m \sum_{i \in A} \delta_{b_m a_i} \frac{ \partial k(X_i, T_m) }{ \partial\eta_{\alpha\beta} }, \]where \(\eta_{\alpha\beta}\) correspond to the 3x3 deformation (strain) tensor in the \(\alpha\beta \in \{xx, yy, zz, yz, xz, xy\}\) spatial dimensions (following Voigt convention).
- Parameters
calculator – the calculator which has been used to calculate the representation on the two managers has been registered in the elements of managers and managers_b
sparse_points – class of pseudo points
managers_b – a ManagerCollection or similar collection of structure managers
Public Members
- std::vector<std::string> identifiers = {}
list of names identifying the properties that should be used to compute the kernels
- Hypers_t parameters = {}
parameters of the kernel
- internal::TargetType target_type = {}
Defines if the similarity is defined on the level of structures or per atom
- template<>
struct rascal::internal::SparseKernelImpl<internal::SparseKernelType::GAP> : public rascal::internal::KernelImplBaseImplementation of the sparse kernel used in GAP. The kernel between local environments \(X_i^a\) and \(X_j^b\) with central atom types \(a\) and \(b\) is:
\[ k(X_i^a, X_j^b) = \delta_{ab} k(X_i, X_j), \]where \(k(X_i, X_j)\) is the cosine kernel. When building a model for properties associated with the structure we assume that the training will be done on the property itself (not divided by the number of atoms).
It is particularly designed to build the \(K_{MM}\) and \(K_{NM}\) matrices needed by the sparse kernel formulation where the kernel matrix is given by:
\[ K = K_{MM} + K_{MN} \Lambda^{-2} K_{NM} \]with \(\Lambda\) the regularization matrix.
Public Functions
- template<class Property_t, internal::TargetType Type, std::enable_if_t<Type == internal::TargetType::Structure, int> = 0, class StructureManagers, class SparsePoints>
inline math::Matrix_t compute(StructureManagers &managers, SparsePoints &sparse_points, const std::string &representation_name)Compute the kernel between a set of structure(s) and a set of pseudo points, per structure.
- Template Parameters
StructureManagers – should be an iterable over shared pointer of structure managers like ManagerCollection
- Parameters
sparse_points – a SparsePoints* class
managers – a ManagerCollection or similar collection of structure managers
representation_name – name under which the representation data has been registered in the elements of managers and managers_b
- Returns
kernel matrix
- template<class SparsePoints>
inline math::Matrix_t compute(SparsePoints &sparse_points)Compute the kernel between a set of pseudo points.
- Template Parameters
SparsePoints – should be a set a set of SparsePoints
- Parameters
sparse_points – a SparsePoints* class
- Returns
kernel matrix MxM
- template<class Property_t, internal::TargetType Type, std::enable_if_t<Type == internal::TargetType::Atom, int> = 0, class StructureManagers, class SparsePoints>
inline math::Matrix_t compute(const StructureManagers &managers, const SparsePoints &sparse_points, const std::string &representation_name)Compute the kernel between a set of structure(s) and a set of pseudo points.
- Template Parameters
StructureManagers – should be an iterable over shared pointer of structure managers like ManagerCollection
- Parameters
sparse_points – a SparsePoints* class
managers – a ManagerCollection or similar collection of structure managers
representation_name – name under which the representation data has been registered in the elements of managers and managers_b
- Returns
kernel matrix
- template<class Property_t, class PropertyGradient_t, internal::TargetType Type, std::enable_if_t<Type == internal::TargetType::Atom, int> = 0, class StructureManagers, class SparsePoints>
inline math::Matrix_t compute_derivative(StructureManagers &managers, SparsePoints &sparse_points, const std::string &representation_name, const std::string &representation_grad_name, const bool compute_neg_stress)This documentation contains specific information for the GAP implementation See SparseKernel::compute_derivative for general kernel gradient derivation.
The storage of the kernel forces would scale with indices \(m\) x \(i\) x \(j\), but we don’t need to store individual neighbour contributions and can therefore contract over all neighbors of a particular center. This routine returns the already contracted kernel derivative for center \(X_i\)
\[ \sum_{j \in A_i} \vec{\nabla}_i k(X_j, T_m) \]so the resulting matrix has the shape of the number of centers (index \(i\)) times 3 (three Cartesian dimensions) times the number of sparse points (index \(m\)). The number of centers and Cartesian dimensions are merged to one dimension, such that the x, y, z spatial dimensions appear in successive order in the row dimension.
The derivative of the kernel of environment \(X_j\) with respect to the position of \(\mathbf{r}_i\) atom \(i\) and the sparse point \(T_m\) is obtained by the chain rule
\[ \vec{\nabla}_i k(X_j, T_m) = \frac{ \partial k(X_j, T_m) }{ \partial \mathbf{r}_i } = \frac{ \partial k(X_j, T_m) }{ \partial X_{j} } \cdot \frac{ \partial X_j }{ \partial \mathbf{r}_i }, \]where \(\cdot\) corresponds to the contraction of the chain rule. For the derivative of the GAP kernel we have:
\[ \frac{ \partial k(X_{j}, T_m) }{ \partial X_{j}} = \zeta (\sum_n X_{jn} T_{mn})^{\zeta-1} T_m \]Besides that, the negative stress tensor in the kernel formulation is computed by also using the chain rule and contracting over the number of atoms dimension as
\[ \frac{ \partial k(X_j, T_m) }{ \partial\eta_{\alpha\beta} } = \sum_{i\in A} \sum_{j\in i} [\mathbf{r}_{ji} \otimes \vec{\nabla}_j k(X_i, T_m)]_{\alpha\beta}. \]See https://aip.scitation.org/doi/full/10.1063/1.2214719 for more details with a short range potential. The elements are stored at the end of the returned matrix using the Voigt format (xx, yy, zz, zy, zx, yx) in the order of managers.
- Template Parameters
StructureManagers – should be an iterable over shared pointer of structure managers like ManagerCollection
- Parameters
sparse_points – a SparsePoints* class
managers – a ManagerCollection or similar collection of structure managers
representation_name – name under which the representation gradient data has been registered in the elements of managers
compute_neg_stress – the computed negative stresses are appended at the end of the kernel matrix
- Returns
kernel matrix
Public Members
- size_t zeta = {1}
exponent of the cosine kernel
Math utilities (namespace rascal::math
)
- class rascal::math::SphericalHarmonics
Compute a full set of spherical harmonics (optimized version)
Follows the algorithm described in https://arxiv.org/abs/1410.1748 except for an additonal \((-1)^m\) factor to follow the wikipedia article convention https://en.wikipedia.org/wiki/Spherical_harmonics#Real_form. It effectively cancels out the Condon-Shortley phase in the final real spherical harmonics.
In brief, this class computes the real spherical harmonics where the imaginary components of the usual complex functions are instead stored in the negative-m indices:
\[\begin{split}\begin{equation} Y_\ell^m(\theta, \phi) = \begin{cases} \sqrt{\frac{2\ell + 1}{2\pi} \frac{(\ell + m)!}{(\ell - m)!}} P_\ell^{-m}(\cos\theta) (-1)^m \sin(-m\phi) & \text{for } m < 0\\ \sqrt{\frac{2\ell + 1}{4\pi}} P_\ell(\cos\theta) & \text{for } m = 0\\ \sqrt{\frac{2\ell + 1}{2\pi} \frac{(\ell - m)!}{(\ell + m)!}} P_\ell^{m}(\cos\theta) (-1)^m \cos(m\phi) & \text{for } m > 0 \end{cases} \end{equation}\end{split}\]Note that \(P_\ell^{m}\) includes the Condon-Shortley phase. In case you’re wondering why it’s \(\frac{1}{2π}\) on the \(m \neq 0\) components (instead of \(\frac{1}{4π}\)), there’s an extra factor of 1/2 that comes from integrating cos² or sin² over the full circle of φ, so these are indeed normalized in the same sense as the complex spherical harmonics:\[ \iint_{\mathcal{S}^2} dΩ\; Y_\ell^m(θ, \phi) Y_{\ell'}^{m'}(θ, \phi) = δ_{\ell\ell'}δ_{mm'} \](this extra factor of \(\frac{1}{\sqrt{2}}\) is not included in the normalization of the associated Legendre polynomials defined above; however, all other normalization factors are.)
The class can also compute \((Y^m_l)^*\), with the real and imaginary parts of the complex conjugate are stored in a real-valued vector following the same convention.
Cartesian gradients can optionally be computed in addition.
Part of the efficiency derives from moving the direction-independent calculations into a separate precompute() method; you must therefore call precompute() (which also sets \(\ell_\text{max}\)) before any call to calc().
Once calc() has been called for a direction vector, the results can be retrieved with get_harmonics() (and the gradients, if computed, with get_harmonics_derivatives())
Note the storage order of the harmonics components here follows the “compressed” format, with the \(\ell\) index varying the slowest, from 0 to \(\ell_\text{max}\), and \(m\) varying from \(-\ell\) to \(\ell\) for each value of \(\ell\), for a total of \((\ell_\text{max}+1)^2\) components. For example, the first few entries of the array would have the \((\ell, m)\) numbers: (0,0) (1,-1) (1,0) (1, 1) (2, -2)….
Public Functions
- inline explicit SphericalHarmonics(bool calculate_derivatives = false)
Construct a SphericalHarmonics class with a default setting for whether to calculate the gradients
Remember to call precompute to finish initialization
- void precompute(size_t max_angular, bool calculate_derivatives = false)
Precomputes as many parameters as possible
- Parameters
max_angular – Maximum angular momentum number \(\ell_\text{max}\)
calculate_derivatives – Whether to precompute for the derivatives as well. If the internal default (set at construction) is false, but the value provided here is true, the internal default will be set to true. If the value provided here is false (default argument) then the internal default is not changed; derivatives will be precomputed only if the internal default is true.
- void calc(const Eigen::Ref<const Eigen::Vector3d> &direction, bool calculate_derivatives, bool conjugate = false)
Compute a full set of spherical harmonics given a direction vector. If calculate_derivatives flag is on, the derivatives are additionally computed. This function returns void, results have to be retrieved with get functions. The components are stored in real-valued format.
Warning
Prints warning and normalizes direction if it is not already normalized.
- Parameters
direction – unit vector defining the angles (arguments for the \(Y_\ell^m\))
calculate_derivatives – Compute the gradients too?
conjugate – Compute \((Y^m_l)^*\)?
- inline void calc(const Eigen::Ref<const Eigen::Vector3d> &direction, bool conjugate = false)
Same as calc(), but using the internal default to decide whether to compute derivatives.
- inline const Matrix_Ref get_assoc_legendre_polynom_raw()
Returns the (max_angular+1, max_angular+2) matrix related to the associated legendre polynomial with only zeros entries in the last column. Used for testing purposes.
- inline const Vector_Ref get_harmonics()
Access the computed spherical harmonics.
- Returns
(Eigen)matrix containing the results. Sized \((\ell_\text{max}+1)^2\), the index collects \(\ell\) and \(m\) quantum numbers stored in compact format ( \(m\) varies fastest, from \(-\ell\) to \(\ell\), and \(\ell\) from 0 to \(\ell_\text{max}\)).
- inline const Matrix_Ref get_harmonics_derivatives()
Access the Cartesian gradients of the harmonics, if computed
- Todo:
(alex) what happens if they haven’t been computed and this gets called anyway?
- Returns
(Eigen)matrix containing the results. Sized 3 by \((\ell_\text{max}+1)^2\); the first index runs over the the x, y, and z gradient components and the second index collects \(\ell\) and \(m\) quantum numbers, stored in compact format ( \(m\) varies fastest, from \(-\ell\) to \(\ell\), and \(\ell\) from 0 to \(\ell_\text{max}\)).
Private Functions
- void compute_assoc_legendre_polynom(double cos_theta)
Compute a set of normalized associated Legendre polynomials, namely \(P_\ell^{m}\).
These are normalized for use in computing the real spherical harmonics; see the class documentation for details. In particular, the \(m=0\) harmonics require an extra factor of \(\frac{1}{\sqrt{2}}\). The negative-m functions are not computed due to symmetry.
Note that \(P_\ell^{m}\) includes the Condon-Shortley phase.
Stores the results as an (Eigen)matrix containing the evaluated polynomials, sized \(\ell_\text{max}\) by \((2\ell_\text{max} + 1)\); the row is indexed by \(\ell\) and the column by \(m \geq 0\).
- Parameters
cos_theta – (aka x) Where to evaluate the polynomial
- void compute_cos_sin_angle_multiples(double cos_phi, double sin_phi)
Compute \((-1)^m\cos(m\phi)\) and \((-1)^m\sin(m\phi)\) from the recurrence relations
The relations are (these are the same recurrence relations used to calculate the Chebyshev polynomials):
\[\begin{split}\begin{eqnarray} \cos(m\phi) &=& 2\cos(\phi)\cos((m-1)\phi) - \cos((m-2)\phi)\\ \sin(m\phi) &=& 2\cos(\phi)\sin((m-1)\phi) - \sin((m-2)\phi) \end{eqnarray}\end{split}\]and they require only \(\cos(\phi)\) and \(\sin(\phi)\) to start.
Stores the results as an (Eigen)matrix, sized \(m_\text{max}\) by 2 with the \((-1)^m\cos(m\phi)\) stored in the first column and \((-1)^m\sin(m\phi)\) in the second column, with \(m\) being the row index
- Parameters
cos_phi – Value of \(\cos(\phi)\) to start the relation
sin_phi – Value of \(\sin(\phi)\) to start the relation
- void compute_spherical_harmonics()
Combine the associated Legendre polynomials with the cos/sin(mφ) to compute the final spherical harmonics
Stores the results as an (Eigen)matrix, sized \((\ell_\text{max}+1)^2\). The index collects \(\ell\) and \(m\) quantum numbers stored in compact format ( \(m\) varies fastest, from \(-\ell\) to \(\ell\), and \(\ell\) from 0 to \(\ell_\text{max}\)).
- void compute_spherical_harmonics_derivatives(double sin_theta, double cos_theta, double sin_phi, double cos_phi)
Compute a full set of spherical harmonics and their Cartesian gradients
Spherical harmonics are defined as described in compute_spherical_harmonics(). Gradients are defined with respect to motion of the neighbor atom, which is in accordance with the usual definition with respect to the arguments of the \(Y_\ell^m\). The actual Cartesian gradients include an extra factor of \(\frac{1}{r}\) that is not included here; the rest is independent of radius.
Results are stored as in compute_spherical_harmonics(), but with an extra (row) index for the x, y, and z Cartesian components.
- class rascal::math::Hyp1f1
Computes the confluent hypergeometric function \({}_1F_1(a,b,z)\) for a given a and b and variable argument.
The class to bundles the two definitions of the 1F1 (Hyp1f1Asymptotic and Hyp1f1Series) and implements a switch rational (with bisection) to go between the two at construction. It works because we probe test at construction the domain of applicability of the two definitions.
Public Functions
- inline double calc(double z, bool derivative = false)
Compute \({}_1F_1(a,b,z)\).
- double calc(double z, double z2, double ez2, bool derivative = false)
Computes G(a,b,z)
Warning
the derivative outputed from this function is not \(dG/dz\) but \( \frac{\mathrm{d}\,{}_1F_1}{\mathrm{d}\,z} * \frac{\Gamma(a)}{\Gamma(b)} * \exp{-\alpha r_{ij}^2} \). We do this to avoid computing both \(d{}_1F_1/dz\) and \({}_1F_1\) when asking for gradients and perform this step in Hyp1f1SphericalExpansion.
- Parameters
z – -> \( pow(alpha * r_ij, 2) / (alpha + beta) \)
z2 – -> argument of \( exp(-alpha*r_ij^2) \)
ez2 – -> \( exp(-alpha*r_ij^2) \)
Index
- namespace rascal
Typedefs
- using LayerIncreaser_t = typename LayerIncreaser<std::index_sequence<LayersByOrder...>>::type
- using LayerExtender_t = typename LayerExtender<std::index_sequence<LayersByOrder...>>::type
- using Dim_t = int
- typedef boost::mpl::list<MultipleStructureFixture<MultipleStructureManagerNLFixture>> multiple_fixtures
- typedef boost::mpl::list<FilterFixture<StructureManagerCenters, 1>, FilterFixture<StructureManagerLammps, 2>> Fixtures
- typedef boost::mpl::list<FilterFixture<StructureManagerCenters, 1>> FixturesMax1
- typedef boost::mpl::list<FilterFixture<StructureManagerLammps, 2>> FixturesMax2
- typedef boost::mpl::list<> FixturesMax3
- using Fixtures_no_center = boost::mpl::list<MultipleStructureFixture<MultipleStructureManagerNLCCFixtureCenterMask>>
- typedef boost::mpl::list<DemoTestFixture<2>, DemoTestFixture<3>> fixtures
- using spherical_fixtures = boost::mpl::list<CalculatorFixture<MultipleStructureSphericalExpansion<MultipleStructureManagerNLCCStrictFixture>>, CalculatorFixture<MultipleStructureSphericalInvariants<MultipleStructureManagerNLCCStrictFixture>>>
- using fixtures_ref_test = boost::mpl::list<CalculatorFixture<SortedCoulombTestData>, CalculatorFixture<SphericalExpansionTestData>, CalculatorFixture<SphericalInvariantsTestData>, CalculatorFixture<SphericalCovariantsTestData>>
- using multiple_center_mask_fixtures = boost::mpl::list<CalculatorFixture<MultipleStructureSphericalExpansion<MultipleStructureManagerNLCCStrictFixtureCenterMask>>, CalculatorFixture<MultipleStructureSphericalCovariants<MultipleStructureManagerNLCCStrictFixtureCenterMask>>, CalculatorFixture<MultipleStructureSphericalInvariants<MultipleStructureManagerNLCCStrictFixtureCenterMask>>>
- using grad_sparse_fixtures = boost::mpl::list<CalculatorFixture<ComplexHypersSphericalInvariants>>
- using fixtures_with_gradients = boost::mpl::list<RadialIntegralHandlerFixture<MultipleHypersSphericalExpansion, internal::RadialBasisType::GTO, internal::AtomicSmearingType::Constant, internal::OptimizationType::None>, RadialIntegralHandlerFixture<MultipleHypersSphericalExpansion, internal::RadialBasisType::GTO, internal::AtomicSmearingType::Constant, internal::OptimizationType::Spline>, RadialIntegralHandlerFixture<MultipleHypersSphericalExpansion, internal::RadialBasisType::GTO, internal::AtomicSmearingType::Constant, internal::OptimizationType::RadialDimReductionSpline>, RadialIntegralHandlerFixture<MultipleHypersSphericalExpansion, internal::RadialBasisType::DVR, internal::AtomicSmearingType::Constant, internal::OptimizationType::None>, RadialIntegralHandlerFixture<MultipleHypersSphericalExpansion, internal::RadialBasisType::DVR, internal::AtomicSmearingType::Constant, internal::OptimizationType::Spline>, RadialIntegralHandlerFixture<MultipleHypersSphericalExpansion, internal::RadialBasisType::DVR, internal::AtomicSmearingType::Constant, internal::OptimizationType::RadialDimReductionSpline>>
- using gradient_fixtures = boost::mpl::list<CalculatorFixture<SingleHypersSphericalExpansion<SimplePeriodicNLCCStrictFixture>>, CalculatorFixture<SingleHypersSphericalInvariants<SimplePeriodicNLCCStrictFixture>>>
- using sparsification_fixtures = boost::mpl::list<CalculatorFixture<SparsificationSphericalInvariantsFixture>>
- using gradient_half_fixtures = boost::mpl::list<MergeHalfAndFull<SimpleFullFixture, SimpleHalfFixture, CalculatorSphericalExpansion>, MergeHalfAndFull<SimpleFullFixture, SimpleHalfFixture, CalculatorSphericalInvariants>>
- using multiple_ref_fixtures = boost::mpl::list<KernelFixture<DataSphericalInvariantsKernelFixture>>
- using KeyFixtures = boost::mpl::list<KeyFixture<1, 2>, KeyFixture<2, 2>, KeyFixture<1, 3>, KeyFixture<2, 3>, KeyFixture<3, 3>, KeyFixture<7, 8>>
- using Vec3_t = Eigen::Matrix<double, Dim, 1>
- using Cell_t = typename AtomicStructure<Dim>::Cell_t
- using fixtures_test = boost::mpl::list<CollectionFixture<StrictNLCCCollectionFixture>>
- using IntpScalarUniformCubicSpline = math::InterpolatorScalarUniformCubicSpline<math::RefinementMethod_t::Exponential>
- using IntpScalarUniformCubicSplineRelativeError = math::InterpolatorScalarUniformCubicSpline<math::RefinementMethod_t::Exponential, math::ErrorMethod<math::ErrorMetric_t::Relative>>
- using IntpMatrixUniformCubicSpline = math::InterpolatorMatrixUniformCubicSpline<math::RefinementMethod_t::Exponential>
- using interpolator_fixtures = boost::mpl::list<InterpolatorFixture<IntpScalarUniformCubicSpline>, InterpolatorFixture<IntpScalarUniformCubicSplineRelativeError>, InterpolatorFixture<IntpMatrixUniformCubicSpline>>
- using Vector_Ref = math::Vector_Ref
- using Matrix_Ref = math::Matrix_Ref
- using AbsoluteErrorMethod = math::ErrorMethod<math::ErrorMetric_t::Absolute>
- using RelativeErrorMethod = math::ErrorMethod<math::ErrorMetric_t::Relative>
- using atom_vector_property_fixtures = OrderOnePropertyBoostList::type
- using pair_property_fixtures = OrderTwoPropertyBoostList::type
- using triple_property_fixtures = OrderThreePropertyBoostList::type
- using ANLWithGhosts_SMC_StackFixture = AdaptorNeighbourListStackFixture<StructureManagerCentersStackFixture>
- using ManagerCollection_t = ManagerCollection<StructureManagerCenters, AdaptorNeighbourList, AdaptorCenterContribution, AdaptorStrict>
- using sparse_grad_fixtures = boost::mpl::list<SparseKernelGradFixture>
- using pair_fixtures = boost::mpl::list<ManagerFixture<StructureManagerLammps>>
- using PyCalculator = py::class_<Calculator, CalculatorBase>
- using LayerByOrder = typename SMI::traits::LayerByOrder
- using ClusterRefkey_t = ClusterRefKey<Order, HelperLayer<SMI, Order>::layer>
- using ClusterRef_t = typename StructureManager<SMI>::template ClusterRef<Order>
- using PyClusterRef = py::class_<ClusterRef_t<SMI, Order>, ClusterRefkey_t<SMI, Order>>
- using PyManager = py::class_<StructureManagerImplementation, StructureManager<StructureManagerImplementation>, std::shared_ptr<StructureManagerImplementation>>
- using ArrayConstRef_t = const Eigen::Ref<const Eigen::Array<T, Eigen::Dynamic, 1>>
Functions
- constexpr std::size_t operator
""_size_t(unsigned long long int n)
- template<internal::KernelType Type, class Hypers>
std::shared_ptr<internal::KernelImplBase> make_kernel_impl(const Hypers &hypers)
- template<internal::KernelType Type>
std::shared_ptr<internal::KernelImpl<Type>> downcast_kernel_impl(std::shared_ptr<internal::KernelImplBase> &kernel_impl)
- template<class KernelImpl, class Calculator, class Manager, class SparsePoints>
math::Matrix_t compute_kernel_for_displaced_strain_tensor(KernelImpl &kernel, Calculator &calculator, Manager &manager, const SparsePoints &sparse_points, const int &alpha_spatial_dim, const int &beta_spatial_dim, const double &h_disp)
- template<class KernelImpl, class Calculator, class Manager, class SparsePoints, typename Derived>
math::Matrix_t compute_displaced_kernel(KernelImpl &kernel, Calculator &calculator, Manager &manager, const SparsePoints &sparse_points, const size_t &i_atom, const Eigen::MatrixBase<Derived> &disp)
- template<class KernelImpl, class Calculator, class Manager, class SparsePoints>
math::Matrix_t compute_numerical_kernel_gradient(KernelImpl &kernel, Calculator &calculator, Manager &manager, const SparsePoints &sparse_points, const double &h_disp)
- template<class KernelImpl, class Calculator, class Manager, class SparsePoints>
math::Matrix_t compute_numerical_kernel_stress(KernelImpl &kernel, Calculator &calculator, Manager &manager, const SparsePoints &sparse_points, const double &h_disp)
- template<class KernelImpl, class Calculator, class Managers, class SparsePoints>
math::Matrix_t compute_numerical_kernel_gradients(KernelImpl &kernel, Calculator &calculator, Managers &managers, const SparsePoints &sparse_points, double h_disp = 1e-5, const bool compute_stress = false)
- template<class Property_t, class PropertyGradient_t, class StructureManager, class SparsePoints>
void compute_partial_gradients_gap(StructureManager &manager, SparsePoints &sparse_points, math::Vector_t &weights, const size_t zeta, const std::string &representation_name, const std::string &representation_grad_name, const std::string &pair_grad_atom_i_r_j_name)
- template<class Calculator, class StructureManagers, class SparsePoints>
std::string compute_sparse_kernel_gradients(const Calculator &calculator, SparseKernel &kernel, StructureManagers &managers, SparsePoints &sparse_points, math::Vector_t &weights)
- template<class Calculator, class StructureManagers, class SparsePoints>
std::string compute_sparse_kernel_neg_stress(const Calculator &calculator, SparseKernel &kernel, StructureManagers &managers, SparsePoints &sparse_points, math::Vector_t &weights)
- template<internal::SparseKernelType Type, class Hypers>
std::shared_ptr<internal::KernelImplBase> make_sparse_kernel_impl(const Hypers &hypers)
- template<internal::SparseKernelType Type>
std::shared_ptr<internal::SparseKernelImpl<Type>> downcast_sparse_kernel_impl(std::shared_ptr<internal::KernelImplBase> &kernel_impl)
- template<class Calculator>
void to_json(json &j, const SparsePointsBlockSparse<Calculator> &sparse_points)
- template<class Calculator>
void from_json(const json &j, SparsePointsBlockSparse<Calculator> &sparse_points)
- template<internal::RadialBasisType Type, class Hypers>
auto make_radial_integral(const Hypers &basis_hypers)
- template<internal::RadialBasisType Type>
auto downcast_radial_integral(const std::shared_ptr<internal::RadialContributionBase> &radial_integral)
- template<internal::RadialBasisType RBT, internal::AtomicSmearingType AST, internal::OptimizationType OT, class Hypers>
auto make_radial_integral_handler(const Hypers &basis_hypers)
- template<internal::RadialBasisType RBT, internal::AtomicSmearingType AST, internal::OptimizationType OT>
auto downcast_radial_integral_handler(const std::shared_ptr<internal::RadialContributionBase> &radial_integral)
- template<internal::CutoffFunctionType Type, class Hypers>
auto make_cutoff_function(const Hypers &fc_hypers)
- template<internal::CutoffFunctionType Type>
auto downcast_cutoff_function(std::shared_ptr<internal::CutoffFunctionBase> &cutoff_function)
- template<int Dim>
void to_json(json &j, const AtomicStructure<Dim> &s)
- template<int Dim>
void from_json(const json &j, AtomicStructure<Dim> &s)
- template<size_t Index, size_t... Ints>
constexpr size_t get_index_from_sequence(const std::index_sequence<Ints...>&)
- template<size_t Order, size_t... Ints>
constexpr size_t get_layer(const std::index_sequence<Ints...> &layers_by_order)
- template<size_t MaxOrder, size_t... Ints>
constexpr size_t get_dyn_layer(size_t order, const std::index_sequence<Ints...> &layers_by_order)
- template<size_t... Ints>
constexpr std::array<size_t, sizeof...(Ints)> index_sequence_to_array(const std::index_sequence<Ints...>&)
- template<size_t ActiveMaxOrder, size_t... LayersByOrder>
constexpr size_t get_min_layer(const std::index_sequence<LayersByOrder...>&)
- template<typename Manager>
std::shared_ptr<Manager> make_structure_manager()
- template<template<class> class Adaptor, typename Manager, typename ...Args>
std::shared_ptr<Adaptor<Manager>> make_adapted_manager(std::shared_ptr<Manager> &arg, const Args&... args)
- template<template<class> class Adaptor, typename Manager, typename Hypers_t>
std::shared_ptr<Adaptor<Manager>> make_adapted_manager_hypers(std::shared_ptr<Manager> &arg, const Hypers_t &adaptor_hypers)
- template<typename Manager, template<class> class ...AdaptorImplementationPack, typename Hypers_t>
auto make_structure_manager_stack(const Hypers_t &structure_inputs, const Hypers_t &adaptor_inputs)
- template<typename Manager, template<class> class ...AdaptorImplementationPack, typename Hypers_t>
auto stack_adaptors(std::shared_ptr<Manager> &manager_base, const Hypers_t &hypers)
- template<int TargetLevel, typename StructureManager>
auto extract_underlying_manager(std::shared_ptr<StructureManager> manager)
- BOOST_AUTO_TEST_SUITE(adaptor_center_contribution_test)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(constructor_test, Fix, multiple_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(update_test, Fix, multiple_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(iterator_test, Fix, multiple_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(get_atom_j_test, Fix, multiple_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(get_atom_ii_test, Fix, multiple_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(get_atom_jj_test, Fix, multiple_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(atom_ii_property_test, Fix, multiple_fixtures, Fix)
- BOOST_AUTO_TEST_SUITE_END()
- BOOST_AUTO_TEST_SUITE(test_adaptor_filter)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(constructor_test, Fix, Fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(filter_1_test, Fix, FixturesMax1, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(filter_2_test, Fix, FixturesMax2, Fix)
- BOOST_AUTO_TEST_SUITE(half_neighbourlist_adaptor_test)
- BOOST_FIXTURE_TEST_CASE(constructor_test, ManagerFixture<StructureManagerLammps>)
- BOOST_FIXTURE_TEST_CASE(iteration_and_distance_half_list, ManagerFixture<StructureManagerLammps>)
- BOOST_FIXTURE_TEST_CASE(full_to_half_to_full_neighbour_list, ManagerFixture<StructureManagerLammps>)
- BOOST_AUTO_TEST_SUITE(maxlevel_increase_adaptor_test)
- BOOST_FIXTURE_TEST_CASE(constructor_test, PairFixtureFile<StructureManagerCenters>)
- BOOST_FIXTURE_TEST_CASE(iterator_test, PairFixtureFile<StructureManagerCenters>)
- BOOST_FIXTURE_TEST_CASE(pair_to_triplet_extension, ManagerFixture<StructureManagerLammps>)
- BOOST_AUTO_TEST_SUITE(kspace_adaptor_test)
- BOOST_FIXTURE_TEST_CASE(get_atom_j_test, ManagerFixture<StructureManagerCenters>)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(test_build_neighbour_multiple, Fix, multiple_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(test_idx_consistency, Fix, multiple_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(test_index_completeness, Fix, multiple_fixtures, Fix)
- BOOST_AUTO_TEST_SUITE(neighbour_list_adaptor_test)
- BOOST_FIXTURE_TEST_CASE(simple_cubic_9_neighbour_list, PairFixtureSimple<StructureManagerCenters>)
- BOOST_FIXTURE_TEST_CASE(constructor_test_hcp, ManagerFixtureTwoHcp)
- BOOST_FIXTURE_TEST_CASE(constructor_test_fcc, ManagerFixtureTwoFcc)
- BOOST_FIXTURE_TEST_CASE(test_build_neighbour_simple, PairFixtureSimple<StructureManagerCenters>)
- BOOST_FIXTURE_TEST_CASE(neighbourlist_test_hcp, ManagerFixtureTwoHcp)
- BOOST_FIXTURE_TEST_CASE(neighbourlist_test_fcc, ManagerFixtureTwoFcc)
- BOOST_FIXTURE_TEST_CASE(test_neighbour_list_skewed, ManagerFixtureSkew)
- BOOST_FIXTURE_TEST_CASE(neighbourlist_edge_case_epsilon_rcut, ManagerFixtureSkewDeltaRcut)
- BOOST_AUTO_TEST_SUITE(adaptor_strict_test)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(multiple_strict_test, Fix, multiple_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(multiple_no_center_test, Fix, Fixtures_no_center, Fix)
- BOOST_FIXTURE_TEST_CASE(strict_test_hcp, ManagerFixtureTwoHcp)
- BOOST_AUTO_TEST_SUITE(AtomicStructureTests)
- BOOST_FIXTURE_TEST_CASE(atomic_structure_test, AtomicStructureFixture)
- BOOST_FIXTURE_TEST_CASE(wrap_positions_test, AtomicStructureFixture)
- BOOST_FIXTURE_TEST_CASE(empty_unit_cell_test, AtomicStructureFixture)
- BOOST_AUTO_TEST_SUITE(base_tests)
- BOOST_AUTO_TEST_CASE(base_test)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(templated_basic_fixture_test, Fix, fixtures, Fix)
- BOOST_AUTO_TEST_SUITE(representation_test)
- double extract_interaction_cutoff_from_representation_hyper(json hyper)
- BOOST_AUTO_TEST_CASE(rownorm_sort_test)
- BOOST_AUTO_TEST_CASE(distance_sort_test)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(multiple_constructor_test, Fix, multiple_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(multiple_dense_feature_comparison, Fix, multiple_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(spherical_number_feature_comparison, Fix, spherical_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(serialization_test, Fix, multiple_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(multiple_no_center_test, Fix, multiple_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(multiple_center_mask_test, Fix, multiple_center_mask_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(sparse_grad_test, Fix, grad_sparse_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(multiple_reference_test, Fix, fixtures_ref_test, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(spherical_expansion_radial_derivative, Fix, fixtures_with_gradients, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(spherical_representation_gradients, Fix, gradient_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(sparsification_test, Fix, sparsification_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(half_full_representation_test, Fix, gradient_half_fixtures, Fix)
- BOOST_AUTO_TEST_SUITE(test_cluster_ref_key)
- BOOST_AUTO_TEST_CASE(test_get_min_layer)
- BOOST_FIXTURE_TEST_CASE(test_get_layer, LayerFixture)
- BOOST_FIXTURE_TEST_CASE(test_index_sequence_to_array, LayerFixture)
- BOOST_AUTO_TEST_CASE(test_layer_extender)
- BOOST_AUTO_TEST_CASE(test_layer_increaser)
- template<size_t... Ints>
void print_index_sequence(std::index_sequence<Ints...>)
- template<size_t Length, size_t... Ints>
static void print_index_sequence(std::index_sequence<Ints...>)
- BOOST_AUTO_TEST_SUITE(cutoff_tests)
- BOOST_AUTO_TEST_CASE(shifted_cosine_gradient_test)
- BOOST_AUTO_TEST_CASE(radial_scaling_gradient_test)
- BOOST_AUTO_TEST_CASE(radial_scaling_exponent_zero_test)
- BOOST_AUTO_TEST_SUITE(kernels_test)
- BOOST_FIXTURE_TEST_CASE(kernel_target_type_test, KernelFixture<DataSphericalInvariantsKernelFixture>)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(kernel_ref_data_test, Fix, multiple_ref_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(species_method_test, Fix, multiple_ref_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(multiple_kernel_compute_test, Fix, multiple_fixtures, Fix)
- template<typename T, size_t Order>
std::ostream &operator<<(std::ostream &os, const KeyStandardisation<T, Order> &index)
- BOOST_AUTO_TEST_SUITE(key_standardisation_test)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(constructor_test, Fix, KeyFixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(iterator_test, Fix, KeyFixtures, Fix)
- BOOST_AUTO_TEST_SUITE(LatticeTests)
- BOOST_FIXTURE_TEST_CASE(lattice_constructor_test, ManagerFixtureLattice)
- BOOST_FIXTURE_TEST_CASE(cell_length_test, ManagerFixtureLattice)
- BOOST_FIXTURE_TEST_CASE(cell_angles_test, ManagerFixtureLattice)
- BOOST_FIXTURE_TEST_CASE(transformation_matrix_test, ManagerFixtureLattice)
- BOOST_FIXTURE_TEST_CASE(get_cartesian2scaled_test, ManagerFixtureLattice)
- BOOST_FIXTURE_TEST_CASE(get_scaled2cartesian_test, ManagerFixtureLattice)
- BOOST_FIXTURE_TEST_CASE(crossproduct_test, ManagerFixtureLattice)
- BOOST_FIXTURE_TEST_CASE(set_reciprocal_vectors_test, ManagerFixtureLattice)
- BOOST_AUTO_TEST_SUITE(manager_collection_test)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(load_multiple_structures_test, Fix, fixtures_test, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(iterate_structures_test, Fix, fixtures_test, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(add_structures_test, Fix, fixtures_test, Fix)
- template<typename FunctionProvider_t, typename TestFixture_t>
void test_gradients(FunctionProvider_t function_calculator, TestFixture_t params)
- BOOST_AUTO_TEST_SUITE(MathGaussLegendreTests)
- BOOST_FIXTURE_TEST_CASE(math_gauss_legendre_test, GaussLegendreRefFixture)
- BOOST_AUTO_TEST_SUITE(MathHyp1f1Tests)
- BOOST_FIXTURE_TEST_CASE(math_hyp1f1_test, Hyp1F1RefFixture)
- BOOST_FIXTURE_TEST_CASE(math_hyp1f1_spherical_expansion_test, Hyp1f1SphericalExpansionFixture)
- BOOST_AUTO_TEST_CASE(hyp1f1_gradient_test)
- BOOST_AUTO_TEST_SUITE(MathInterpolatorTests)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(interpolator_constructor_test, Fix, interpolator_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(functions_interpolator_test, Fix, interpolator_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(hyp1f1_interpolator_test, Fix, interpolator_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE(radial_contribution_test, InterpolatorFixture<IntpScalarUniformCubicSpline>)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(functions_derivative_interpolator_test, Fix, interpolator_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE(radial_contribution_matrix_interpolator_test, InterpolatorFixture<IntpMatrixUniformCubicSpline>)
- static double convert_to_scalar(const double x)
- template<class ErrorMethod, class Interpolator>
static double compute_intp_error(std::shared_ptr<Interpolator> &intp, std::function<double(double)> ref_func, const math::Vector_Ref &ref_points)
- template<class ErrorMethod, class Interpolator>
static double compute_intp_derivative_error(const std::shared_ptr<Interpolator> &intp, std::function<double(double)> derivative_func, const math::Vector_Ref &ref_points)
- template<class ErrorMethod, class Interpolator>
static double compute_intp_finite_diff_error(const std::shared_ptr<Interpolator> &intp, std::function<double(double)> derivative_func, const math::Vector_Ref &ref_points)
- template<class ErrorMethod>
static double compute_finite_diff_error(std::function<double(double)> func, std::function<double(double)> derivative_func, const math::Vector_Ref &ref_points)
- BOOST_AUTO_TEST_SUITE(test_kvecgenerator)
- BOOST_AUTO_TEST_CASE(kvecgen_smallcells_test)
- BOOST_FIXTURE_TEST_CASE(kvecgen_allvecs_in_ball_test, KvecgenRefFixture)
- BOOST_FIXTURE_TEST_CASE(kvecgen_numvectors_reasonable_test, KvecgenRefFixture)
- BOOST_FIXTURE_TEST_CASE(kvecgen_scaling_test, KvecgenRefFixture)
- BOOST_AUTO_TEST_CASE(kvecgen_rotation_test)
- BOOST_AUTO_TEST_SUITE(MathBesselFirstKindTests)
- BOOST_FIXTURE_TEST_CASE(math_bessel_test, ModifiedBesselFirstKindRefFixture)
- BOOST_AUTO_TEST_CASE(MBFs_gradient_test)
- BOOST_AUTO_TEST_SUITE(MathSphericalHarmonicsTests)
- BOOST_FIXTURE_TEST_CASE(math_spherical_harmonics_test, SphericalHarmonicsClassRefFixture)
- BOOST_FIXTURE_TEST_CASE(math_associated_legendre_polynomial_test, SphericalHarmonicsClassRefFixture)
- BOOST_AUTO_TEST_CASE(spherical_harmonics_gradient_test)
- BOOST_AUTO_TEST_SUITE(property_tests)
- BOOST_FIXTURE_TEST_CASE(atom_order_one_constructor_tests, AtomPropertyFixture<StructureManagerCentersStackFixture>)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(atom_constructor_tests, Fix, atom_vector_property_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(pair_constructor_tests, Fix, pair_property_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(triple_constructor_tests, Fix, triple_property_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE(property_typed_runtime_error, AtomPropertyFixture<StructureManagerCentersStackFixture>)
- BOOST_FIXTURE_TEST_CASE(fill_atom_vector_property_order_one_test, AtomPropertyFixture<StructureManagerCentersStackFixture>)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(structure_dynamic_property_test, Fix, atom_vector_property_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(fill_sequence_test, Fix, atom_vector_property_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(fill_atom_vector_property_test, Fix, atom_vector_property_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(fill_pair_property_test, Fix, pair_property_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(fill_triple_property_test, Fix, triple_property_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(atom_vector_property_fixtures_tests, Fix, atom_vector_property_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(atom_vector_property_access_with_pair_tests, Fix, pair_property_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(order_three_constructor_tests, Fix, triple_property_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(atom_vector_property_access_with_triple_tests, Fix, triple_property_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(fill_test_simple_order_one_property, Fix, pair_property_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(meta_data_test, Fix, atom_vector_property_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(fill_test_complex, Fix, pair_property_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(compute_distances, Fix, pair_property_fixtures, Fix)
- BOOST_AUTO_TEST_SUITE(property_structure_manager_property_tests)
- BOOST_FIXTURE_TEST_CASE(create_property, StructureManagerCentersStackFixture)
- BOOST_FIXTURE_TEST_CASE(property_forwarding_two_layers, ANLWithGhosts_SMC_StackFixture)
- BOOST_FIXTURE_TEST_CASE(property_forwarding_three_layers, AdaptorStrictStackFixture<ANLWithGhosts_SMC_StackFixture>)
- BOOST_AUTO_TEST_SUITE(Property_partially_sparse_tests)
- BOOST_FIXTURE_TEST_CASE(constructor_test, BlockSparsePropertyFixture<1>)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(fill_test_simple, Fix, Fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE(meta_data_test, BlockSparsePropertyFixture<1>)
- BOOST_AUTO_TEST_SUITE(tests_without_reference_data)
- BOOST_FIXTURE_TEST_CASE(caller_layer_test, ManagerFixture<StructureManagerLammps>)
- BOOST_AUTO_TEST_SUITE(sparse_points_test)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(data_matching_test, Fix, multiple_fixtures, Fix)
- BOOST_AUTO_TEST_SUITE(RascalUtilityTests)
- BOOST_AUTO_TEST_CASE(combine_enums_test)
- BOOST_AUTO_TEST_SUITE(sparse_kernels_test)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(grad_test, Fix, sparse_grad_fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(grad_stress_test, Fix, sparse_grad_fixtures, Fix)
- BOOST_AUTO_TEST_SUITE(adaptor_filter_species_test)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(atom_species_test, Fix, FixturesMax1, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(pair_species_test, Fix, FixturesMax2, Fix)
- BOOST_AUTO_TEST_SUITE(ManagerCentersTests)
- BOOST_FIXTURE_TEST_CASE(manager_centers_constructor_test, ManagerFixture<StructureManagerCenters>)
- BOOST_FIXTURE_TEST_CASE(iterator_test, ManagerFixture<StructureManagerCenters>)
- BOOST_FIXTURE_TEST_CASE(atom_bound_test, ManagerFixture<StructureManagerCenters>)
- BOOST_FIXTURE_TEST_CASE(simple_cubic_9_neighbour_list, ManagerFixtureFile<StructureManagerCenters>)
- BOOST_FIXTURE_TEST_CASE(manager_update_test, ManagerFixture<StructureManagerCenters>)
- BOOST_AUTO_TEST_SUITE(structure_managers_interface)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(templated_constructor_test, Fix, fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(templated_size_consistency, Fix, fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(templated_atom_taging, Fix, fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(templated_atom_global_indexing, Fix, fixtures, Fix)
- BOOST_FIXTURE_TEST_CASE_TEMPLATE(templated_pair_global_indexing, Fix, pair_fixtures, Fix)
- BOOST_AUTO_TEST_SUITE(ManagerTests)
- BOOST_FIXTURE_TEST_CASE(iterator_test, ManagerFixture<StructureManagerLammps>)
- BOOST_FIXTURE_TEST_CASE(interface_test, ManagerFixture<StructureManagerLammps>)
- BOOST_AUTO_TEST_SUITE(test_utils)
- BOOST_AUTO_TEST_CASE(type_demangling_test)
- template<class Kernel>
static py::class_<Kernel> add_kernel(py::module &mod, py::module&)
- template<internal::KernelType Type, class Calculator, class StructureManagers, class CalculatorBind>
void bind_kernel_compute_function(CalculatorBind &kernel)
- template<internal::SparseKernelType Type, class Calculator, class StructureManagers, class SparsePoints, class CalculatorBind>
void bind_sparse_kernel_compute_function(CalculatorBind &kernel)
- template<class SparsePoints>
static py::class_<SparsePoints> add_sparse_points(py::module &mod, py::module&)
- template<class ManagerCollection, class Calculator, class SparsePoints>
void bind_sparse_points_push_back(py::class_<SparsePoints> &sparse_points)
- template<class KernelImpl, class Calculator, class Managers, class SparsePoints>
void bind_compute_numerical_kernel_gradients(py::module &mod)
- template<class ManagerCollection, class Calculator, class SparsePoints>
void bind_compute_gradients(py::module &mod, py::module&)
- void add_models(py::module &mod, py::module &m_internal)
- template<typename Calculator>
auto add_representation_calculator(py::module &mod, py::module&)
- template<class Calculator, typename Manager, template<class> class ...Adaptor>
void bind_get_num_coefficients_function(PyCalculator<Calculator> &representation)
- template<class Calculator, typename Manager, template<class> class ...Adaptor>
void bind_compute_function(PyCalculator<Calculator> &representation)
- template<typename StructureManagerTypeHolder_, class Calculator>
void bind_compute_function_helper(PyCalculator<Calculator> &representation)
- template<typename StructureManagerTypeHolder_, class Calculator>
void bind_get_num_coefficients_function_helper(PyCalculator<Calculator> &representation)
- void add_representation_calculators(py::module &mod, py::module &m_internal)
- template<size_t Order, size_t Layer>
void add_cluster_ref(py::module &m)
- template<size_t Order, typename SMI>
auto add_cluster(py::module &m)
- template<class StructureManagerImplementation, class PyCluterRef_t, size_t Order, size_t... Orders>
void add_iterators_helpers(py::module &m, PyCluterRef_t &py_cluster, std::index_sequence<Order, Orders...>)
- template<class StructureManagerImplementation, class PyCluterRef_t>
void add_iterators_helpers(py::module&, PyCluterRef_t&, std::index_sequence<>)
- template<class StructureManagerImplementation, class PyCluterRef_t>
void add_iterators(py::module &m, PyCluterRef_t &py_cluster)
- template<typename Manager_t>
auto add_manager(py::module &mod)
- template<typename Manager_t>
auto add_manager_safe(py::module &mod, const std::string &manager_name)
- template<typename StructureManagerImplementation>
auto add_structure_manager_interface(py::module &m)
- template<typename StructureManagerImplementation>
auto add_structure_manager_implementation(py::module &m, py::module &m_internal)
- template<typename StructureManagerImplementation>
void bind_update_unpacked(PyManager<StructureManagerImplementation> &manager)
- template<typename StructureManagerImplementation>
void bind_update_empty(PyManager<StructureManagerImplementation> &manager)
- template<typename Manager_t>
void bind_make_structure_manager(py::module &m_str_mng)
- template<template<class> class Adaptor, typename Manager_t>
void bind_make_adapted_manager(py::module &m_adaptor)
- template<class Calculator, class ManagerCollection_t, class ManagerCollectionBinder>
void bind_feature_matrix_getter(ManagerCollectionBinder &manager_collection)
- template<class ManagerCollection_t, class ManagerCollectionBinder, bool HasDistances, std::enable_if_t<HasDistances, int> = 0>
void bind_get_distance(ManagerCollectionBinder &manager_collection)
- template<class ManagerCollection_t, class ManagerCollectionBinder, bool HasDirectionVector, std::enable_if_t<HasDirectionVector, int> = 0>
void bind_get_direction_vector(ManagerCollectionBinder &manager_collection)
- template<class Calculator, class ManagerCollection_t, class ManagerCollectionBinder>
void bind_sparse_feature_matrix_getter(ManagerCollectionBinder &manager_collection)
- template<typename Manager, template<class> class ...Adaptor>
void bind_structure_manager_collection(py::module &m_str_mng)
- template<typename StructureManagerImplementation>
void bind_structure_manager(py::module &mod, py::module &m_internal)
- void bind_cluster_refs(py::module &m_internal)
- void bind_atomic_structure(py::module &mod)
- void add_structure_managers(py::module &m_nl, py::module &m_internal)
Variables
- constexpr int ThreeD = {3}
- constexpr int AtomOrder = {1}
- constexpr int PairOrder = {2}
- constexpr int TripletOrder = {3}
- constexpr int QuadrupletOrder = {4}
- constexpr int MaxChemElements = {130}
- static constexpr double lattice_tol = {1e-10 * 100}
- static constexpr auto Dim = {3}
- template<class ManagerImplementation>
class AdaptorCenterContribution : public rascal::StructureManager<AdaptorCenterContribution<ManagerImplementation>>, public std::enable_shared_from_this<AdaptorCenterContribution<ManagerImplementation>>Public Functions
- AdaptorCenterContribution() = delete
- AdaptorCenterContribution(const AdaptorCenterContribution &other) = delete
- AdaptorCenterContribution(AdaptorCenterContribution &&other) = default
- virtual ~AdaptorCenterContribution() = default
- AdaptorCenterContribution &operator=(const AdaptorCenterContribution &other) = delete
- AdaptorCenterContribution &operator=(AdaptorCenterContribution &&other) = default
- virtual void update_self()
- template<class ...Args>
void update(Args&&... arguments)
- inline double get_cutoff() const
- template<size_t Order, size_t Layer>
inline int get_neighbour_atom_tag(const ClusterRefKey<Order, Layer> &cluster, int index) const
- inline int get_neighbour_atom_tag(const Parent&, size_t index) const
- inline size_t get_atom_index(const int atom_tag) const
- inline int get_atom_type(const AtomRef_t &atom) const
- inline int get_atom_type(int atom_id) const
- template<size_t Order>
inline size_t get_offset_impl(const std::array<size_t, Order> &counters) const
- template<size_t TargetOrder, size_t Order, size_t Layer>
inline size_t get_cluster_size_impl(const ClusterRefKey<Order, Layer> &cluster) const
- inline ImplementationPtr_t get_previous_manager_impl()
- inline ConstImplementationPtr_t get_previous_manager_impl() const
- inline const std::vector<int> get_manager_atom_tag_list()
- inline const std::vector<int> get_neighbours_atom_tag()
- template<class ManagerImplementation, size_t MaxOrder>
class AdaptorFilter : public rascal::FilterBase, public rascal::StructureManager<AdaptorFilter<ManagerImplementation, MaxOrder>>, public std::enable_shared_from_this<AdaptorFilter<ManagerImplementation, MaxOrder>>Subclassed by rascal::FilterFixture< ManagerImplementation, MaxOrder >::Filter_t
Public Functions
- AdaptorFilter() = delete
- inline explicit AdaptorFilter(ImplementationPtr_t manager)
- AdaptorFilter(const AdaptorFilter &other) = delete
- AdaptorFilter(AdaptorFilter &&other) = default
- virtual ~AdaptorFilter() = default
- AdaptorFilter &operator=(const AdaptorFilter &other) = delete
- AdaptorFilter &operator=(AdaptorFilter &&other) = default
- virtual void reset_initial_state()
- inline virtual void update_self()
- virtual void perform_filtering() = 0
- inline size_t get_nb_clusters(int order) const
- inline size_t get_size() const
- inline Vector_ref get_position(int index)
- inline size_t get_size_with_ghosts() const
- template<size_t Order, size_t Layer>
inline int get_neighbour_atom_tag(const ClusterRefKey<Order, Layer> &cluster, int index) const
- inline int get_neighbour_atom_tag(const Parent&, size_t index) const
- inline int &get_atom_type(const AtomRef_t &atom)
- inline int get_atom_type(const AtomRef_t &atom) const
- inline int &get_atom_type(int atom_id)
- inline int get_atom_type(int &atom_id) const
- template<size_t Order>
inline size_t get_offset_impl(const std::array<size_t, Order> &counters) const
- template<size_t TargetOrder, size_t Order, size_t Layer>
inline size_t get_cluster_size_impl(const ClusterRefKey<Order, Layer> &cluster) const
- template<size_t Order>
void add_cluster(const InputClusterRef_t<Order> &cluster)
- inline ImplementationPtr_t get_previous_manager_impl()
- inline ConstImplementationPtr_t get_previous_manager_impl() const
- template<class ManagerImplementation>
class AdaptorFullList : public rascal::StructureManager<AdaptorFullList<ManagerImplementation>>, public std::enable_shared_from_this<AdaptorFullList<ManagerImplementation>>Public Functions
- AdaptorFullList() = delete
- explicit AdaptorFullList(ImplementationPtr_t manager)
- AdaptorFullList(const AdaptorFullList &other) = delete
- AdaptorFullList(AdaptorFullList &&other) = default
- virtual ~AdaptorFullList() = default
- AdaptorFullList &operator=(const AdaptorFullList &other) = delete
- AdaptorFullList &operator=(AdaptorFullList &&other) = default
- virtual void update_self()
- template<class ...Args>
void update(Args&&... arguments)
- inline double get_cutoff() const
- inline size_t get_nb_clusters(int order) const
- inline size_t get_size() const
- inline size_t get_size_with_ghosts() const
- inline Vector_ref get_position(int index)
- inline Vector_ref get_position(const AtomRef_t &atom)
- template<size_t Order, size_t Layer>
inline int get_neighbour_atom_tag(const ClusterRefKey<Order, Layer> &cluster, size_t index) const
- inline int get_neighbour_atom_tag(const Parent&, size_t index) const
- inline int &get_atom_type(const AtomRef_t &atom)
- inline int get_atom_type(const AtomRef_t &atom) const
- inline int &get_atom_type(int atom_id)
- inline int get_atom_type(int atom_id) const
- template<size_t Order>
inline size_t get_offset_impl(const std::array<size_t, Order> &counters) const
- template<size_t TargetOrder, size_t Order, size_t Layer>
inline std::enable_if_t<TargetOrder == 2, size_t> get_cluster_size_impl(const ClusterRefKey<Order, Layer> &cluster) const
- inline ImplementationPtr_t get_previous_manager_impl()
- inline ConstImplementationPtr_t get_previous_manager_impl() const
- template<class ManagerImplementation>
class AdaptorHalfList : public rascal::StructureManager<AdaptorHalfList<ManagerImplementation>>, public std::enable_shared_from_this<AdaptorHalfList<ManagerImplementation>>Public Functions
- AdaptorHalfList() = delete
- explicit AdaptorHalfList(ImplementationPtr_t manager)
- AdaptorHalfList(const AdaptorHalfList &other) = delete
- AdaptorHalfList(AdaptorHalfList &&other) = default
- virtual ~AdaptorHalfList() = default
- AdaptorHalfList &operator=(const AdaptorHalfList &other) = delete
- AdaptorHalfList &operator=(AdaptorHalfList &&other) = default
- virtual void update_self()
- template<class ...Args>
void update(Args&&... arguments)
- inline double get_cutoff() const
- inline size_t get_nb_clusters(int order) const
- inline size_t get_size() const
- inline size_t get_size_with_ghosts() const
- inline Vector_ref get_position(int index)
- inline Vector_ref get_position(const AtomRef_t &atom)
- template<size_t Order, size_t Layer>
inline int get_neighbour_atom_tag(const ClusterRefKey<Order, Layer> &cluster, size_t index) const
- inline int get_neighbour_atom_tag(const Parent&, size_t index) const
- inline int get_atom_type(const AtomRef_t &atom)
- inline int get_atom_type(const AtomRef_t &atom) const
- inline int get_atom_type(int atom_id)
- inline int get_atom_type(int atom_id) const
- template<size_t Order>
inline size_t get_offset_impl(const std::array<size_t, Order> &counters) const
- template<size_t TargetOrder, size_t Order, size_t Layer>
inline std::enable_if_t<TargetOrder == 2, size_t> get_cluster_size_impl(const ClusterRefKey<Order, Layer> &cluster) const
- inline ImplementationPtr_t get_previous_manager_impl()
- inline ConstImplementationPtr_t get_previous_manager_impl() const
- template<class StackFixture>
struct AdaptorHalfListStackFixture : public StackFixture
- template<class ManagerImplementation>
class AdaptorKspace : public rascal::StructureManager<AdaptorKspace<ManagerImplementation>>, public std::enable_shared_from_this<AdaptorKspace<ManagerImplementation>>Public Functions
- AdaptorKspace() = delete
- explicit AdaptorKspace(ImplementationPtr_t manager)
- AdaptorKspace(const AdaptorKspace &other) = delete
- AdaptorKspace(AdaptorKspace &&other) = default
- virtual ~AdaptorKspace() = default
- AdaptorKspace &operator=(const AdaptorKspace &other) = delete
- AdaptorKspace &operator=(AdaptorKspace &&other) = default
- virtual void update_self()
- template<class ...Args>
void update(Args&&... arguments)
- template<size_t Order>
size_t get_offset_impl(const std::array<size_t, Order> &counters) const
- inline size_t get_nb_clusters(size_t order) const
- inline size_t get_size() const
- inline Vector_ref get_position(size_t atom_tag)
- inline Vector_ref get_position(const AtomRef_t &atom)
- inline int get_neighbour_atom_tag(const Parent&, size_t iteration_index) const
- template<size_t Order, size_t Layer>
inline int get_neighbour_atom_tag(const ClusterRefKey<Order, Layer> &cluster, size_t iteration_index) const
- inline int get_atom_type(int atom_tag) const
- inline size_t get_atom_index(const int atom_tag) const
- template<size_t TargetOrder, size_t Order, size_t Layer>
inline std::enable_if_t<TargetOrder == 2, size_t> get_cluster_size_impl(const ClusterRefKey<Order, Layer> &cluster) const
- inline ImplementationPtr_t get_previous_manager_impl()
- inline ConstImplementationPtr_t get_previous_manager_impl() const
- template<class ManagerImplementation>
class AdaptorMaxOrder : public rascal::StructureManager<AdaptorMaxOrder<ManagerImplementation>>, public std::enable_shared_from_this<AdaptorMaxOrder<ManagerImplementation>>Public Functions
- AdaptorMaxOrder() = delete
- explicit AdaptorMaxOrder(ImplementationPtr_t manager)
- AdaptorMaxOrder(const AdaptorMaxOrder &other) = delete
- AdaptorMaxOrder(AdaptorMaxOrder &&other) = default
- virtual ~AdaptorMaxOrder() = default
- AdaptorMaxOrder &operator=(const AdaptorMaxOrder &other) = delete
- AdaptorMaxOrder &operator=(AdaptorMaxOrder &&other) = default
- virtual void update_self()
- template<class ...Args>
void update(Args&&... arguments)
- template<size_t Order, bool C = (Order < 2), std::enable_if_t<C, int> = 0>
inline size_t get_offset_impl(const std::array<size_t, Order> &counters) const
- inline size_t get_nb_clusters(size_t order) const
- inline size_t get_size() const
- inline Vector_ref get_position(size_t atom_tag)
- inline Vector_ref get_position(const AtomRef_t &atom)
- inline int get_atom_type(int atom_tag) const
- inline int get_atom_type(const AtomRef_t &atom) const
- inline int get_neighbour_atom_tag(const Parent&, size_t index) const
- template<size_t Layer>
inline int get_neighbour_atom_tag(const ClusterRefKey<1, Layer> &cluster, size_t index) const
- template<size_t Layer>
inline std::array<int, AdditionalOrder - 1> get_neighbour_atom_tag_current(const ClusterRefKey<1, Layer> &cluster, size_t index) const
- template<size_t TargetOrder, size_t Order, size_t Layer> std::enable_if_t< TargetOrder< traits::MaxOrder, size_t > get_cluster_size_impl(const ClusterRefKey< Order, Layer > &cluster) const { return this-> manager template get_cluster_size (cluster)
- template<size_t TargetOrder, size_t Order, size_t Layer>
inline std::enable_if_t<TargetOrder == traits::MaxOrder, size_t> get_cluster_size_impl(const ClusterRefKey<Order, Layer> &cluster) const
- inline ImplementationPtr_t get_previous_manager_impl()
- inline ConstImplementationPtr_t get_previous_manager_impl() const
Public Static Attributes
- static constexpr size_t AdditionalOrder = {traits::MaxOrder}
- template<size_t Order, AdaptorTraits::NeighbourListType NeighbourListType, bool IsCompactCluster>
struct ForwardClusterIndices<Order, NeighbourListType, IsCompactCluster, false>Public Static Functions
- static inline void loop(AtomClusterRef_t&, AdaptorMaxOrder<ManagerImplementation>&)
- template<class StackFixture>
struct AdaptorMaxOrderStackFixture : public StackFixture
- template<class ManagerImplementation>
class AdaptorNeighbourList : public rascal::StructureManager<AdaptorNeighbourList<ManagerImplementation>>, public std::enable_shared_from_this<AdaptorNeighbourList<ManagerImplementation>>Public Functions
- AdaptorNeighbourList() = delete
- AdaptorNeighbourList(ImplementationPtr_t manager, double cutoff, double skin = 0.)
- AdaptorNeighbourList(const AdaptorNeighbourList &other) = delete
- AdaptorNeighbourList(AdaptorNeighbourList &&other) = default
- virtual ~AdaptorNeighbourList() = default
- AdaptorNeighbourList &operator=(const AdaptorNeighbourList &other) = delete
- AdaptorNeighbourList &operator=(AdaptorNeighbourList &&other) = default
- virtual void update_self()
- template<class ...Args>
void update(Args&&... arguments)
- inline double get_cutoff() const
- template<size_t Order>
size_t get_offset_impl(const std::array<size_t, Order> &counters) const
- inline size_t get_nb_clusters(size_t order) const
- inline size_t get_size() const
- inline size_t get_size_with_ghosts() const
- inline Vector_ref get_position(size_t atom_tag)
- inline Vector_ref get_ghost_position(const size_t ghost_atom_index)
- inline int get_ghost_type(size_t atom_tag) const
- inline int &get_ghost_type(size_t atom_tag)
- inline std::vector<int> &get_ghost_types()
- inline const std::vector<int> &get_ghost_types() const
- inline Vector_ref get_position(const AtomRef_t &atom)
- inline int get_neighbour_atom_tag(const Parent&, size_t iteration_index) const
- template<size_t Order, size_t Layer>
inline int get_neighbour_atom_tag(const ClusterRefKey<Order, Layer> &cluster, size_t iteration_index) const
- inline int get_atom_type(int atom_tag) const
- inline size_t get_atom_index(const int atom_tag) const
- template<size_t TargetOrder, size_t Order, size_t Layer>
inline std::enable_if_t<TargetOrder == 2, size_t> get_cluster_size_impl(const ClusterRefKey<Order, Layer> &cluster) const
- inline ImplementationPtr_t get_previous_manager_impl()
- inline ConstImplementationPtr_t get_previous_manager_impl() const
- template<class StackFixture>
struct AdaptorNeighbourListStackFixture : public StackFixture
- template<class ManagerImplementation>
class AdaptorStrict : public rascal::StructureManager<AdaptorStrict<ManagerImplementation>>, public std::enable_shared_from_this<AdaptorStrict<ManagerImplementation>>Public Functions
- AdaptorStrict() = delete
- AdaptorStrict(ImplementationPtr_t manager, double cutoff)
- AdaptorStrict(const AdaptorStrict &other) = delete
- AdaptorStrict(AdaptorStrict &&other) = default
- virtual ~AdaptorStrict() = default
- AdaptorStrict &operator=(const AdaptorStrict &other) = delete
- AdaptorStrict &operator=(AdaptorStrict &&other) = default
- virtual void update_self()
- template<class ...Args>
void update(Args&&... arguments)
- inline double get_cutoff() const
- template<size_t Order, size_t Layer>
inline int get_neighbour_atom_tag(const ClusterRefKey<Order, Layer> &cluster, int index) const
- inline int get_neighbour_atom_tag(const Parent&, size_t index) const
- inline size_t get_atom_index(const int atom_tag) const
- inline int get_atom_type(const AtomRef_t &atom) const
- inline int get_atom_type(int atom_id) const
- template<size_t Order>
inline size_t get_offset_impl(const std::array<size_t, Order> &counters) const
- template<size_t TargetOrder, size_t Order, size_t Layer>
inline std::enable_if_t<TargetOrder == 2, size_t> get_cluster_size_impl(const ClusterRefKey<Order, Layer> &cluster) const
- inline ImplementationPtr_t get_previous_manager_impl()
- inline ConstImplementationPtr_t get_previous_manager_impl() const
- template<size_t Order, size_t Layer>
inline const double &get_distance(const ClusterRefKey<Order, Layer> &pair) const
- template<size_t Order, size_t Layer>
inline const Vector_ref get_direction_vector(const ClusterRefKey<Order, Layer> &pair) const
- template<class StackFixture>
struct AdaptorStrictStackFixture : public StackFixture
- template<template<class> class ...AdaptorImplementation>
struct AdaptorTypeHolder
- template<size_t Order, size_t Layer, size_t LayerEnd>
struct add_cluster_refsPublic Static Functions
- static inline void static_for(py::module &m)
- template<class ClusterRef, size_t MaxOrder>
struct AddProperty
- template<class ClusterRef>
struct AddProperty<ClusterRef, 1>
- template<int Dim>
struct AtomicStructurePublic Functions
- AtomicStructure() = default
- template<typename Derived>
inline void displace_position(const size_t &i_atom, const Eigen::MatrixBase<Derived> &disp)
- inline double get_volume()
- inline void displace_strain_tensor(const int &alpha_spatial_dim, const int &beta_spatial_dim, const double &h_disp)
- inline void wrap()
- inline void set_structure(const PositionsInput_t &positions, const AtomTypesInput_t &atom_types, const CellInput_t cell, const PBCInput_t &pbc)
- template<typename T>
inline void set_atom_property(std::string name, ArrayConstRef_t<T> array)
- inline void set_structure(const PositionsInput_t &positions, const AtomTypesInput_t &atom_types, const CellInput_t cell, const PBCInput_t &pbc, const ArrayB_t ¢er_atoms_mask)
- inline bool is_similar(double threshold2) const
Public Members
- Positions_t positions = {}
- AtomTypes_t atom_types = {}
- Cell_t cell = {}
- PBC_t pbc = {}
- ArrayB_t center_atoms_mask = {}
- struct AtomicStructureFixture
- template<class StackFixture>
struct AtomPropertyFixture : public StackFixtureSubclassed by rascal::PairPropertyFixture< StackFixture >
- template<template<class> class Adaptor, typename Implementation_t>
struct BindAdaptor
- template<typename Implementation_t>
struct BindAdaptor<AdaptorCenterContribution, Implementation_t>
- template<typename Implementation_t>
struct BindAdaptor<AdaptorFullList, Implementation_t>
- template<typename Implementation_t>
struct BindAdaptor<AdaptorHalfList, Implementation_t>
- template<typename Implementation_t>
struct BindAdaptor<AdaptorKspace, Implementation_t>
- template<typename Implementation_t>
struct BindAdaptor<AdaptorMaxOrder, Implementation_t>
- template<typename Implementation_t>
struct BindAdaptor<AdaptorNeighbourList, Implementation_t>
- template<typename Implementation_t>
struct BindAdaptor<AdaptorStrict, Implementation_t>
- template<typename ManagerImplementation, template<class> class AdaptorImplementation, template<class> class ...AdaptorImplementationPack>
struct BindAdaptorStack
- template<typename ManagerImplementation, template<class> class AdaptorImplementation>
struct BindAdaptorStack<ManagerImplementation, AdaptorImplementation>
- template<class StructureManagerImplementation, size_t Order>
struct BindIteratorPublic Static Functions
- template<class PyClusterRef_t>
static inline auto add_iterator(py::module &m, PyClusterRef_t &py_cluster)
- template<class StructureManagerImplementation>
struct BindIterator<StructureManagerImplementation, 1>Public Static Functions
- template<class PyManager_t>
static inline auto add_iterator(py::module &m, PyManager_t &manager)
- template<typename Precision_t, size_t Order_, class Manager, typename Key>
class BlockSparseProperty : public rascal::PropertyBasePublic Functions
- inline BlockSparseProperty(Manager_t &manager, std::string metadata =
"no metadata", bool exclude_ghosts = false)
- BlockSparseProperty() = delete
- BlockSparseProperty(const BlockSparseProperty &other) = delete
- BlockSparseProperty(BlockSparseProperty &&other) = default
- ~BlockSparseProperty() = default
- BlockSparseProperty &operator=(const BlockSparseProperty &other) = delete
- BlockSparseProperty &operator=(BlockSparseProperty &&other) = default
- inline virtual const std::string &get_type_info() const final
- template<size_t Order__ = Order, std::enable_if_t<(Order__ > 1> inline void resize ()
- template<size_t Order__ = Order, std::enable_if_t<(Order__ == 0), int> = 0>
inline void resize()
- template<size_t Order__ = Order, std::enable_if_t<(Order__ == 1), int> = 0>
inline void resize()
- template<template<typename...> class Keys_List, typename ...Args1, typename ...Args2>
inline void resize(const Keys_List<std::set<Args2...>, Args1...> &keys_list)
- template<typename ...Args>
inline void resize(const std::set<Args...> &keys)
- inline void check_for_uniform_keys()
- inline void clear()
- template<size_t CallerLayer>
inline InputData_t &operator[](const ClusterRefKey<Order, CallerLayer> &id)
- template<size_t CallerOrder, size_t CallerLayer, bool C = (IsOrderOne and (CallerOrder == 2)), std::enable_if_t<C, int> = 0>
inline InputData_t &operator[](const ClusterRefKey<CallerOrder, CallerLayer> &id)
- inline InputData_t &operator[](size_t index)
- inline MatrixMap_Ref_t operator()(size_t index, const Key_t &key)
- template<size_t CallerLayer>
inline Matrix_t get_dense_row(const ClusterRefKey<Order, CallerLayer> &id)
- inline void fill_dense_feature_matrix(Eigen::Ref<Matrix_t> features, const Keys_t &all_keys) const
- inline Matrix_t get_features()
- inline void fill_dense_feature_matrix_gradient(Eigen::Ref<Matrix_t> features, const Keys_t &all_keys) const
- inline Keys_t get_keys() const
- inline size_t get_nb_item() const
- inline MatrixMapConst_Ref_t get_raw_data_view() const
- inline Matrix_t dot(Self_t &B)
- inline Matrix_t dot()
- template<size_t Order>
struct BlockSparsePropertyFixture : public rascal::MultipleStructureFixture<MultipleStructureManagerNLFixture>
- class CalculatorBase
Subclassed by rascal::CalculatorSortedCoulomb, rascal::CalculatorSphericalCovariants, rascal::CalculatorSphericalExpansion, rascal::CalculatorSphericalInvariants
Public Types
- using Hypers_t = json
- using Precision_t = double
- using ReferenceHypers_t = std::map<std::string, std::vector<std::string>>
Public Functions
- CalculatorBase(const CalculatorBase &other) = delete
- inline CalculatorBase(CalculatorBase &&other) noexcept
- virtual ~CalculatorBase() = default
- CalculatorBase &operator=(const CalculatorBase &other) = delete
- CalculatorBase &operator=(CalculatorBase &&other) = default
- virtual void set_hyperparameters(const Hypers_t&) = 0
- inline const std::string &get_name() const
- inline std::string get_gradient_name() const
- inline void set_name(const std::string &name)
- inline void set_default_prefix(const std::string &default_prefix)
- inline void set_name(const Hypers_t &hyper)
- inline virtual bool does_gradients() const
- std::string get_options_string()
- std::string get_hypers_string()
Public Members
- std::string name = {
""}
- std::string default_prefix = {
""}
- Hypers_t hypers = {}
- std::map<std::string, std::string> options = {}
- template<class BaseFixture>
struct CalculatorFixture : public rascal::MultipleStructureFixture<BaseFixture>Subclassed by rascal::KernelFixture< BaseFixture >, rascal::SparseKernelFixture< BaseFixture >
- class CalculatorSortedCoulomb : public rascal::CalculatorBase
Public Functions
- inline explicit CalculatorSortedCoulomb(const Hypers_t &hyper)
- CalculatorSortedCoulomb(const CalculatorSortedCoulomb &other) = delete
- inline CalculatorSortedCoulomb(CalculatorSortedCoulomb &&other) noexcept
- virtual ~CalculatorSortedCoulomb() = default
- CalculatorSortedCoulomb &operator=(const CalculatorSortedCoulomb &other) = delete
- CalculatorSortedCoulomb &operator=(CalculatorSortedCoulomb &&other) = default
- template<class StructureManager>
void compute(StructureManager &managers)
- inline virtual void set_hyperparameters(const Hypers_t&) override
- template<class StructureManager>
inline void check_size_compatibility(StructureManager &manager)
- template<internal::CMSortAlgorithm AlgorithmType, class StructureManager, std::enable_if_t<internal::is_proper_iterator<StructureManager>::value, int> = 0>
inline void compute_loop(StructureManager &managers)
- template<internal::CMSortAlgorithm AlgorithmType, class StructureManager, std::enable_if_t<not (internal::is_proper_iterator<StructureManager>::value), int> = 0>
inline void compute_loop(StructureManager &manager)
- template<internal::CMSortAlgorithm AlgorithmType, class StructureManager>
inline void compute_impl(std::shared_ptr<StructureManager> &manager)
- template<class StructureManager>
void get_distance_matrix(std::shared_ptr<StructureManager> &manager, ClusterRef_t<StructureManager, 1> ¢er, Eigen::Ref<Eigen::MatrixXd> distance_mat, Eigen::Ref<Eigen::MatrixXd> type_factor_mat)
- template<typename DerivedA, typename DerivedB>
inline void sort_and_linearize_coulomb_matrix(const Eigen::DenseBase<DerivedA> &square_coulomb, Eigen::DenseBase<DerivedB> &linear_coulomb, const std::vector<std::pair<size_t, internal::distiter>> &order_coulomb)
- inline double get_cutoff_factor(double distance, double cutoff, double decay)
- inline size_t get_n_feature()
Public Members
- ReferenceHypers_t reference_hypers{{
"central_cutoff", {}}, {"central_decay", {}}, {"interaction_cutoff", {}}, {"interaction_decay", {}}, {"size", {}}, {"sorting_algorithm", {"distance","row_norm"}},}
- class CalculatorSphericalCovariants : public rascal::CalculatorBase
Public Functions
- CalculatorSphericalCovariants(const CalculatorSphericalCovariants &other) = delete
- inline CalculatorSphericalCovariants(CalculatorSphericalCovariants &&other) noexcept
- virtual ~CalculatorSphericalCovariants() = default
- CalculatorSphericalCovariants &operator=(const CalculatorSphericalCovariants &other) = delete
- CalculatorSphericalCovariants &operator=(CalculatorSphericalCovariants &&other) = default
- inline virtual void set_hyperparameters(const Hypers_t &hypers) override
- template<class StructureManager>
void compute(StructureManager &managers)
- template<internal::SphericalCovariantsType Type, class StructureManager, std::enable_if_t<internal::is_proper_iterator<StructureManager>::value, int> = 0>
inline void compute_loop(StructureManager &managers)
- template<internal::SphericalCovariantsType Type, class StructureManager, std::enable_if_t<not (internal::is_proper_iterator<StructureManager>::value), int> = 0>
inline void compute_loop(StructureManager &manager)
- template<internal::SphericalCovariantsType Type, std::enable_if_t<Type == internal::SphericalCovariantsType::LambdaSpectrum, int> = 0, class StructureManager>
void compute_impl(std::shared_ptr<StructureManager> manager)
- class CalculatorSphericalExpansion : public rascal::CalculatorBase
Public Functions
- inline virtual void set_hyperparameters(const Hypers_t &hypers) override
- inline virtual bool does_gradients() const override
- inline explicit CalculatorSphericalExpansion(const Hypers_t &hyper)
- CalculatorSphericalExpansion(const CalculatorSphericalExpansion &other) = delete
- inline CalculatorSphericalExpansion(CalculatorSphericalExpansion &&other) noexcept
- virtual ~CalculatorSphericalExpansion() = default
- CalculatorSphericalExpansion &operator=(const CalculatorSphericalExpansion &other) = delete
- CalculatorSphericalExpansion &operator=(CalculatorSphericalExpansion &&other) = default
- template<class StructureManager>
void compute(StructureManager &managers)
- template<internal::CutoffFunctionType FcType, class StructureManager>
void compute_by_radial_contribution(StructureManager &managers)
- template<internal::CutoffFunctionType FcType, internal::RadialBasisType RadialType, internal::AtomicSmearingType SmearingType, class StructureManager>
void compute_by_radial_contribution(StructureManager &managers)
- template<internal::CutoffFunctionType FcType, internal::RadialBasisType RadialType, internal::AtomicSmearingType SmearingType, internal::OptimizationType OptType, class StructureManager, std::enable_if_t<internal::is_proper_iterator<StructureManager>::value, int> = 0>
inline void compute_loop(StructureManager &managers)
- template<internal::CutoffFunctionType FcType, internal::RadialBasisType RadialType, internal::AtomicSmearingType SmearingType, internal::OptimizationType OptType, class StructureManager, std::enable_if_t<not (internal::is_proper_iterator<StructureManager>::value), int> = 0>
inline void compute_loop(StructureManager &manager)
- template<internal::CutoffFunctionType FcType, internal::RadialBasisType RadialType, internal::AtomicSmearingType SmearingType, internal::OptimizationType OptType, class StructureManager>
void compute_impl(std::shared_ptr<StructureManager> manager)
- class CalculatorSphericalInvariants : public rascal::CalculatorBase
Public Functions
- CalculatorSphericalInvariants(const CalculatorSphericalInvariants &other) = delete
- inline CalculatorSphericalInvariants(CalculatorSphericalInvariants &&other) noexcept
- virtual ~CalculatorSphericalInvariants() = default
- CalculatorSphericalInvariants &operator=(const CalculatorSphericalInvariants &other) = delete
- CalculatorSphericalInvariants &operator=(CalculatorSphericalInvariants &&other) = default
- inline virtual void set_hyperparameters(const Hypers_t &hypers) override
- inline void set_hyperparameters_powerspectrum(const Hypers_t &hypers)
- inline virtual bool does_gradients() const override
- template<class StructureManager>
void compute(StructureManager &managers)
- template<internal::SphericalInvariantsType BodyOrder, class StructureManager, std::enable_if_t<internal::is_proper_iterator<StructureManager>::value, int> = 0>
inline void compute_loop(StructureManager &managers)
- template<internal::SphericalInvariantsType BodyOrder, class StructureManager, std::enable_if_t<not (internal::is_proper_iterator<StructureManager>::value), int> = 0>
inline void compute_loop(StructureManager &manager)
- template<internal::SphericalInvariantsType BodyOrder, std::enable_if_t<BodyOrder == internal::SphericalInvariantsType::RadialSpectrum, int> = 0, class StructureManager>
void compute_impl(std::shared_ptr<StructureManager> manager)
- template<internal::SphericalInvariantsType BodyOrder, std::enable_if_t<BodyOrder == internal::SphericalInvariantsType::PowerSpectrum, int> = 0, class StructureManager>
void compute_impl(std::shared_ptr<StructureManager> manager)
- template<internal::SphericalInvariantsType BodyOrder, std::enable_if_t<BodyOrder == internal::SphericalInvariantsType::BiSpectrum, int> = 0, class StructureManager>
void compute_impl(std::shared_ptr<StructureManager> manager)
- template<class StructureManager, class Invariants, class InvariantsDerivative, class ExpansionCoeff>
void initialize_per_center_powerspectrum_soap_vectors(Invariants &soap_vector, InvariantsDerivative &soap_vector_gradients, ExpansionCoeff &expansions_coefficients, std::shared_ptr<StructureManager> manager)
- template<class StructureManager, class SpectrumNorm>
inline void update_gradients_for_normalization(Property_t<StructureManager> &soap_vectors, PropertyGradient_t<StructureManager> &soap_vector_gradients, std::shared_ptr<StructureManager> manager, SpectrumNorm &inv_norms, const size_t &grad_component_size)Public Members
- std::set<internal::SortedKey<Key_t>, internal::CompareSortedKeyLess> unique_pair_list = {}
- std::map<internal::SortedKey<Key_t>, std::vector<PowerSpectrumCoeffIndex>, internal::CompareSortedKeyLess> coeff_indices_map = {}
- std::map<internal::SortedKey<Key_t>, internal::SortedKey<Key_t>, internal::CompareSortedKeyLess> key_map = {}
- std::vector<PowerSpectrumCoeffIndex> coeff_indices = {}
- bool is_sparsified = {false}
- struct PowerSpectrumCoeffIndex
- class ClusterRefBase
Subclassed by rascal::ClusterRefKey< Order, ManagerImplementation::template cluster_layer_from_order< Order >()>, rascal::ClusterRefKey< Order, Layer >
Public Functions
- ClusterRefBase() = delete
- ClusterRefBase(const ClusterRefBase &other) = delete
- ClusterRefBase(ClusterRefBase &&other) = default
- virtual ~ClusterRefBase() = default
- ClusterRefBase &operator=(const ClusterRefBase &other) = delete
- ClusterRefBase &operator=(ClusterRefBase &&other) = delete
- inline size_t get_order() const
- inline size_t get_cluster_layer() const
- template<size_t Order, size_t Layer>
class ClusterRefKey : public rascal::ClusterRefBasePublic Types
- using Parent = ClusterRefBase
Public Functions
- ClusterRefKey() = delete
- inline ClusterRefKey(AtomIndex_t atom_tag_list, IndexConstArray cluster_indices)
- inline ClusterRefKey(const ClusterRefKey &other)
- inline ClusterRefKey(ClusterRefKey &&other)
- virtual ~ClusterRefKey() = default
- ClusterRefKey &operator=(const ClusterRefKey &other) = delete
- inline ClusterRefKey &operator=(ClusterRefKey &&other)
- inline const AtomIndex_t &get_atom_tag_list() const
- inline int front() const
- inline int back() const
- inline size_t get_cluster_index(const size_t layer) const
- inline size_t get_cluster_index() const
- inline IndexConstArray get_cluster_indices() const
Public Static Functions
- static inline constexpr size_t order()
- static inline constexpr size_t cluster_layer()
- template<class BaseFixture>
struct CollectionFixture : public BaseFixtureSubclassed by rascal::KernelFixture< BaseFixture >, rascal::SparseKernelFixture< BaseFixture >
- struct ComplexHypersSphericalInvariants : public rascal::ComplexPeriodicNLCCStrictFixture
- struct ComplexPeriodicNLCCStrictFixture
Subclassed by rascal::ComplexHypersSphericalInvariants
- template<class CutoffFunction>
struct CutoffGradientProvider
- struct DataSphericalInvariantsKernelFixture
- template<int Dim>
struct DemoTestFixture
- class FilterBase
Subclassed by rascal::AdaptorFilter< ManagerImplementation, Order >, rascal::AdaptorFilter< ManagerImplementation, MaxOrder >
Public Functions
- FilterBase() = default
- FilterBase(const FilterBase &other) = delete
- FilterBase(FilterBase &&other) = default
- virtual ~FilterBase() = default
- FilterBase &operator=(const FilterBase &other) = delete
- FilterBase &operator=(FilterBase &&other) = default
- virtual void reset_initial_state() = 0
- template<class ManagerImplementation, size_t MaxOrder>
struct FilterFixture
- class Filter_t : public rascal::AdaptorFilter<ManagerImplementation, MaxOrder>
- struct GaussLegendreRefFixture
- class GradientTestFixture
Subclassed by rascal::RepresentationCalculatorGradientFixture< Calculator, StructureManager >
Public Types
- enum VerbosityValue
Values:
- enumerator NORMAL
- enumerator INFO
- enumerator DEBUG
Public Members
- double fd_error_tol = {1E-6}
- template<typename SMI, size_t Order>
struct HelperLayer
- struct Hyp1f1GradientProvider
- struct Hyp1F1RefFixture
- struct Hyp1f1SphericalExpansionFixture
- template<size_t Order>
struct IndexFixture
- template<class Interpolator, bool ClampedBoundaryConditions = false>
struct InterpolatorFixture
- class Kernel
Public Functions
- inline Kernel(Kernel &&other) noexcept
Public Members
- std::vector<std::string> identifiers = {}
- Hypers_t parameters = {}
- internal::TargetType target_type = {}
- template<class BaseFixture>
struct KernelFixture : public rascal::CollectionFixture<BaseFixture>, public rascal::CalculatorFixture<BaseFixture>
- template<size_t Order, size_t MaxOrder>
struct KeyFixture
- template<typename T, size_t MaxOrder>
class KeyStandardisationPublic Functions
- KeyStandardisation() = delete
- KeyStandardisation(const KeyStandardisation &other) = default
- KeyStandardisation(KeyStandardisation &&other) = default
- virtual ~KeyStandardisation() = default
- KeyStandardisation &operator=(const KeyStandardisation &other) = default
- KeyStandardisation &operator=(KeyStandardisation &&other) = default
- struct KvecgenRefFixture
- template<size_t Dim>
class LatticePublic Functions
- Lattice() = default
- inline explicit Lattice(const Cell_t &cell)
- Lattice(const Lattice &other) = delete
- Lattice(Lattice &&other) = default
- virtual ~Lattice() = default
- inline void set_cell(const Cell_t &cell)
- inline const Vec_t get_cell_lengths()
- inline const Vec_t get_cell_angles()
- inline const Cell_t get_cartesian2scaled_matrix()
- inline const Cell_t get_scaled2cartesian_matrix()
- inline const Cell_t get_reciprocal_vectors()
- inline const Vec_t get_reciprocal_lengths()
- inline void set_reciprocal_vectors()
- inline void set_transformation_matrix()
- template<class T>
struct LayerExtender
- template<size_t... LayersByOrder> index_sequence< LayersByOrder... > >
- struct LayerFixture
- template<size_t MaxOrder, size_t Order, bool End, size_t... Ints>
struct LayerHelper
- template<size_t MaxOrder, size_t Order, size_t... Ints>
struct LayerHelper<MaxOrder, Order, true, Ints...>
- template<class T>
struct LayerIncreaser
- template<size_t... LayersByOrder> index_sequence< LayersByOrder... > >
- template<typename StructureManagerTypeHolder_>
struct make_structure_manager_stack_with_hypers_and_typeholder
- template<typename... T> tuple< T... > >
- template<typename Manager, template<class> class ...AdaptorImplementationPack>
class ManagerCollectionPublic Types
- using iterator = typename Data_t::iterator
Public Functions
- ManagerCollection(const ManagerCollection &other) = delete
- ManagerCollection(ManagerCollection &&other) = default
- ~ManagerCollection() = default
- ManagerCollection &operator=(const ManagerCollection &other) = delete
- ManagerCollection &operator=(ManagerCollection &&other) = default
- template<typename Int>
inline Self_t get_subset(const std::vector<Int> &selected_ids)
- inline void set_adaptor_parameters(const Hypers_t &adaptor_parameters)
- inline Eigen::Matrix<int, Eigen::Dynamic, 5> get_gradients_info() const
- inline void add_structure(const Hypers_t &structure, const Hypers_t &adaptor_parameters)
- inline void add_structures(const std::vector<AtomicStructure<3>> &atomic_structures)
- inline void add_structures(const std::string &filename, int start = 0, int length = -1)
- inline size_t size() const
- template<typename T>
inline ManagerPtr_t operator[](T index)
- template<class Calculator>
inline Matrix_t get_features(const Calculator &calculator)
- template<class Calculator>
inline std::string get_calculator_name(const Calculator &calculator, bool is_gradients)
- template<class Calculator>
inline auto get_keys(const Calculator &calculator, bool is_gradients = false)
- template<class Prop_t>
inline size_t get_number_of_elements(const std::string &property_name)
- template<class ManagerImplementation>
struct ManagerFixtureSubclassed by rascal::ManagerFixtureFile< ManagerImplementation >
- template<>
struct ManagerFixture<StructureManagerCenters>Subclassed by rascal::ManagerFixtureSimple, rascal::ManagerFixtureSkewDeltaRcut
- template<>
struct ManagerFixture<StructureManagerLammps>
- template<class ManagerImplementation>
struct ManagerFixtureFile : public rascal::ManagerFixture<ManagerImplementation>
- struct ManagerFixtureLattice
- struct ManagerFixtureSimple : public rascal::ManagerFixture<StructureManagerCenters>
- struct ManagerFixtureSkew
- struct ManagerFixtureSkewDeltaRcut : public rascal::ManagerFixture<StructureManagerCenters>
- template<class ManagerImplementation>
struct ManagerFixtureTwo
- struct ManagerFixtureTwoFcc : public rascal::ManagerFixtureTwo<StructureManagerCenters>
- struct ManagerFixtureTwoHcp : public rascal::ManagerFixtureTwo<StructureManagerCenters>
- template<class FixtureFull, class FixtureHalf, class Calculator>
struct MergeHalfAndFull : public rascal::MultipleStructureFixture<FixtureFull>, public rascal::MultipleStructureFixture<FixtureHalf>
- struct ModifiedBesselFirstKindGradientsProvider
- struct ModifiedBesselFirstKindRefFixture
- struct MultipleHypersSphericalExpansion : public rascal::SimpleStructureManagerNLCCStrictFixture
- template<class BaseFixture>
struct MultipleStructureFixture : public BaseFixtureSubclassed by rascal::CalculatorFixture< BaseFixture >, rascal::MultipleStructureSortedCoulomb< MultipleStructureFixture >, rascal::MultipleStructureSphericalCovariants< MultipleStructureFixture >, rascal::MultipleStructureSphericalExpansion< MultipleStructureFixture >, rascal::MultipleStructureSphericalInvariants< MultipleStructureFixture >, rascal::RadialIntegralHandlerFixture< BaseFixture, RadialType, SmearingType, OptType >
- struct MultipleStructureManagerCentersFixture
- struct MultipleStructureManagerKspaceFixture
- struct MultipleStructureManagerNLCCFixture
- struct MultipleStructureManagerNLCCFixtureCenterMask
- struct MultipleStructureManagerNLCCStrictFixture
Subclassed by rascal::StrictNLCCCollectionFixture
- struct MultipleStructureManagerNLCCStrictFixtureCenterMask
- struct MultipleStructureManagerNLFixture
Subclassed by rascal::MultipleStructureFixture< MultipleStructureManagerNLFixture >
- struct MultipleStructureManagerNLRattleFixture
- struct MultipleStructureManagerNLStrictFixture
- template<class MultipleStructureFixture>
struct MultipleStructureSortedCoulomb : public rascal::MultipleStructureFixture<BaseFixture>
- template<typename MultipleStructureFixture>
struct MultipleStructureSphericalCovariants : public rascal::MultipleStructureFixture<BaseFixture>
- template<class MultipleStructureFixture>
struct MultipleStructureSphericalExpansion : public rascal::MultipleStructureFixture<BaseFixture>
- template<typename MultipleStructureFixture>
struct MultipleStructureSphericalInvariants : public rascal::MultipleStructureFixture<BaseFixture>
- struct OrderOnePropertyBoostList
- struct OrderTwoFixtureStacksTuple
- struct OrderThreePropertyBoostList
- struct OrderTwoPropertyBoostList
- struct OrderTwoFixtureStacksTuple
- template<typename ta>
struct pack_into_list
- template<typename... a> tuple< a... > >
- template<class ManagerImplementation>
struct PairFixture
- struct PairFixtureCenters
- template<class ManagerImplementation>
struct PairFixtureFile
- template<class ManagerImplementation>
struct PairFixtureSimple
- template<class ManagerImplementation>
struct PairFixtureSimpleCenterPairs
- template<class ManagerImplementation>
struct PairFixtureStrict
- template<class ManagerImplementation>
struct PairFixtureStrictWithGhosts
- template<class StackFixture>
struct PairPropertyFixture : public rascal::AtomPropertyFixture<StackFixture>Subclassed by rascal::TriplePropertyFixture< StackFixture >
- template<typename T, size_t Order, class Manager, Dim_t NbRow = 1, Dim_t NbCol = 1>
class Property : public rascal::TypedProperty<T, Order, Manager>Public Functions
- Property() = delete
- inline explicit Property(Manager_t &manager, std::string metadata =
"no metadata", const bool &exclude_ghosts = false)
- Property(const Property &other) = delete
- Property(Property &&other) = default
- virtual ~Property() = default
- inline virtual const std::string &get_type_info() const final
- inline void push_back(reference ref)
- template<typename Derived>
inline void push_back(const Eigen::DenseBase<Derived> &ref)
- template<size_t CallerLayer>
inline reference operator[](const ClusterRefKey<Order, CallerLayer> &id)
- inline reference operator[](size_t index)
Public Static Functions
- static inline void check_compatibility(PropertyBase &other)
- struct DynamicSize
- struct StaticSize
- class PropertyBase
Subclassed by rascal::BlockSparseProperty< Precision_t, Order_, Manager, Key >, rascal::TypedProperty< T, Order_, Manager >, rascal::TypedProperty< T, Order, Manager >
Public Functions
- PropertyBase() = delete
- PropertyBase(const PropertyBase &other) = delete
- PropertyBase(PropertyBase &&other) = default
- virtual ~PropertyBase() = default
- PropertyBase &operator=(const PropertyBase &other) = delete
- PropertyBase &operator=(PropertyBase &&other) = delete
- virtual const std::string &get_type_info() const = 0
- inline Dim_t get_nb_comp() const
- inline void update_nb_comp()
- inline Dim_t get_nb_row() const
- inline void set_nb_row(const Dim_t &nb_row)
- inline Dim_t get_nb_col() const
- inline void set_nb_col(const Dim_t &nb_col)
- inline Dim_t get_order() const
- inline Dim_t get_property_layer() const
- inline std::string get_metadata() const
- inline bool is_updated() const
- template<class BaseFixture, internal::RadialBasisType RadialType, internal::AtomicSmearingType SmearingType, internal::OptimizationType OptType>
struct RadialIntegralHandlerFixture : public rascal::MultipleStructureFixture<BaseFixture>
- template<typename Calculator, class StructureManager>
class RepresentationCalculatorGradientFixture : public rascal::GradientTestFixturePublic Functions
- inline RepresentationCalculatorGradientFixture(std::string filename, std::shared_ptr<StructureManager> structure, Provider_t &calc)
- inline void advance_center()
Public Members
- double fd_error_tol = {1E-4}
- template<typename Calculator, class StructureManager>
class RepresentationCalculatorGradientProvider
- struct SimpleFullFixture
- struct SimpleHalfFixture
- struct SimplePeriodicNLCCStrictFixture
- struct SimplePeriodicNLHalfCCStrictFixture
- struct SimpleStructureManagerNLCCStrictFixture
Subclassed by rascal::MultipleHypersSphericalExpansion
- template<typename DataFixture>
struct SingleHypersSphericalExpansion : public DataFixture
- template<typename DataFixture>
struct SingleHypersSphericalInvariants : public DataFixture
- struct SortedCoulombTestData
- class SparseKernel
Public Functions
- inline SparseKernel(SparseKernel &&other) noexcept
- template<class Calculator, class StructureManagers, class SparsePoints>
inline math::Matrix_t compute(const Calculator &calculator, const StructureManagers &managers, const SparsePoints &sparse_points)
- template<class Calculator, class StructureManagers, class SparsePoints>
inline math::Matrix_t compute_derivative(const Calculator &calculator, const StructureManagers &managers, const SparsePoints &sparse_points, const bool compute_neg_stress)Public Members
- std::vector<std::string> identifiers = {}
- Hypers_t parameters = {}
- internal::TargetType target_type = {}
- template<class BaseFixture>
struct SparseKernelFixture : public rascal::CollectionFixture<BaseFixture>, public rascal::CalculatorFixture<BaseFixture>
- struct SparseKernelGradFixture
- template<class Calculator>
class SparsePointsBlockSparsePublic Functions
- SparsePointsBlockSparse(const SparsePointsBlockSparse &other) = default
- SparsePointsBlockSparse(SparsePointsBlockSparse &&other) = default
- inline size_t size() const
- inline size_t size_by_species(const int &sp) const
- inline const std::set<int> &species() const
- inline std::vector<int> species_by_points() const
- template<class Val>
inline ColVector_t dot(const int &sp, internal::InternallySortedKeyMap<Key_t, Val> &representation) const
- inline SparsePointsBlockSparse<Calculator> dot(const int &sp, math::Vector_t &vec) const
- template<class Val>
inline ColVectorDer_t dot_derivative(const int &sp, internal::InternallySortedKeyMap<Key_t, Val> &representation_grad) const
- inline std::map<int, int> get_offsets() const
- template<class ManagerCollection>
inline void push_back(const Calculator &calculator, const ManagerCollection &collection, const std::vector<std::vector<int>> &selected_center_indices)Public Members
- Data_t values = {}
- Indices_t indices = {}
- Counters_t counters = {}
- size_t inner_size = {0}
- std::set<int> center_species = {}
- Keys_t keys = {}
- std::map<int, std::set<Key_t>> keys_sp = {}
- template<class Representation, class ManagerCollection, template<class> class SparsePoints>
struct SparsePointsFixture
- struct SparsificationSphericalInvariantsFixture
- template<class ManagerImplementation, size_t MaxOrder>
class SpeciesManager : public rascal::Updateable, public std::enable_shared_from_this<SpeciesManager<ManagerImplementation, MaxOrder>>Public Functions
- SpeciesManager() = delete
- SpeciesManager(const SpeciesManager &other) = delete
- SpeciesManager(SpeciesManager &&other) = default
- virtual ~SpeciesManager() = default
- SpeciesManager &operator=(const SpeciesManager &other) = delete
- SpeciesManager &operator=(SpeciesManager &&other) = default
- virtual void update_self()
- template<class ...Args>
inline void update(Args&&... arguments)
- inline virtual void send_changed_structure_signal() final
- inline virtual void update_children() final
- template<size_t Order>
class Filter : public rascal::AdaptorFilter<ManagerImplementation, Order>
- template<class ManagerImplementation, size_t MaxOrder>
struct SpeciesManagerFixture
- template<class RadialIntegral, class ClusterRef>
struct SphericalExpansionRadialDerivative
- struct SphericalHarmonicsClassRefFixture
- template<size_t max_angular>
struct SphericalHarmonicsGradientsCalculator
- struct SphericalHarmonicsRefFixture
- struct StrictNLCCCollectionFixture : public rascal::MultipleStructureManagerNLCCStrictFixture
Subclassed by rascal::StrictNLKernelFixture, rascal::StrictNLSparseKernelFixture
- struct StrictNLKernelFixture : public rascal::StrictNLCCCollectionFixture
- struct StrictNLSparseKernelFixture : public rascal::StrictNLCCCollectionFixture
- template<class ManagerImplementation>
class StructureManager : public rascal::StructureManagerBasePublic Types
- using Vector_t = Eigen::Matrix<double, traits::Dim, 1>
- using Property_t = Property<T, Order, StructureManager_t, NbRow, NbCol>
- using TypedProperty_t = TypedProperty<T, Order, StructureManager_t>
- using Key_t = std::vector<int>
- using Hypers_t = json
Public Functions
- inline StructureManager()
- StructureManager(const StructureManager &other) = delete
- StructureManager(StructureManager &&other) = default
- virtual ~StructureManager() = default
- StructureManager &operator=(const StructureManager &other) = delete
- StructureManager &operator=(StructureManager &&other) = default
- virtual void update_self() = 0
- inline Iterator_t get_iterator_at(const size_t index, const size_t offset = 0)
- inline Iterator_t begin()
- inline Iterator_t end()
- inline ProxyWithGhosts with_ghosts()
- inline ProxyOnlyGhosts only_ghosts()
- inline size_t size() const
- template<size_t Layer>
inline bool is_center_atom(const ClusterRefKey<1, Layer> &cluster) const
- template<size_t Layer>
inline bool is_center_atom(const ClusterRefKey<2, Layer> &cluster)
- inline size_t size_with_ghosts() const
- inline virtual size_t nb_clusters(size_t order) const final
- inline Vector_ref position(int atom_tag)
- inline Vector_ref position(const AtomRef &atom)
- inline int atom_type(int atom_tag) const
- inline bool is_property_in_current_level(const std::string &name) const
- template<bool IsRoot = IsRootImplementation, std::enable_if_t<IsRoot, int> = 0>
inline bool is_property_in_stack(const std::string &name)
- template<typename UserProperty_t>
inline UserProperty_t &create_property(const std::string &name, const bool exclude_ghosts = false, const std::string &metadata ="no metadata")
- template<typename UserProperty_t>
inline bool check_property_t(const std::string &name) const
- template<typename UserProperty_t>
inline void validate_property_t(std::shared_ptr<PropertyBase> property) const
- template<typename UserProperty_t>
inline std::shared_ptr<UserProperty_t> get_property(const std::string &name, const bool validate_property = true, const bool force_creation = false, const bool exclude_ghosts = false, const std::string &metadata ="no metadata")
- template<bool IsRoot = IsRootImplementation, std::enable_if_t<IsRoot, int> = 0>
inline void set_updated_property_status(const bool is_updated)
- template<typename UserProperty_t, bool IsRoot = IsRootImplementation, std::enable_if_t<IsRoot, int> = 0>
inline std::shared_ptr<UserProperty_t> forward_get_property_request(const std::string &name, const bool validate_property)
- template<typename UserProperty_t, bool IsRoot = IsRootImplementation, std::enable_if_t<not (IsRoot), int> = 0>
inline std::shared_ptr<UserProperty_t> forward_get_property_request(const std::string &name, bool validate_property)
- inline Eigen::Matrix<int, Eigen::Dynamic, 5> get_gradients_info()
- inline std::shared_ptr<ManagerImplementation> get_shared_ptr()
- inline std::weak_ptr<ManagerImplementation> get_weak_ptr()
- template<size_t TargetOrder, size_t Order, size_t Layer>
inline size_t get_cluster_size(const ClusterRefKey<Order, Layer> &cluster) const
- template<size_t Order>
inline bool is_ghost_atom(const ClusterRef<Order> &cluster)
- template<size_t Order, size_t Layer>
inline int get_neighbour_atom_tag(const ClusterRefKey<Order, Layer> &cluster, size_t index) const
- inline int get_neighbour_atom_tag(const StructureManager &cluster, size_t &index) const
- template<size_t Order, size_t Layer>
inline size_t get_offset(const ClusterRefKey<Order, Layer> &cluster) const
- template<size_t Order>
inline size_t get_offset(const std::array<size_t, Order> &counters) const
- inline virtual void send_changed_structure_signal() final
Public Static Functions
- template<size_t TargetOrder>
static inline constexpr bool has_order()
- static inline std::string get_name()
Public Static Attributes
- static constexpr bool IsRootImplementation = std::is_same<PreviousManager_t, ManagerImplementation>::value
- class AtomRef
- template<size_t Order>
class ClusterRef : public rascal::ClusterRefKey<Order, ManagerImplementation::template cluster_layer_from_order<Order>()>Public Functions
- ClusterRef() = delete
- inline ClusterRef(ClusterRefKey<1, 0> &cluster, Manager_t &manager)
- ClusterRef(const ClusterRef &other) = delete
- ClusterRef(ClusterRef &&other) = default
- virtual ~ClusterRef() = default
- ClusterRef &operator=(const ClusterRef &other) = default
- ClusterRef &operator=(ClusterRef &&other) = default
- inline const std::array<AtomRef_t, Order> &get_atoms() const
- template<bool C = HasCenterPairAndIsOrderOne, std::enable_if_t<C, int> = 0>
inline auto get_atom_ii()
- template<bool C = HasCenterPairAndIsOrderTwo, std::enable_if_t<C, int> = 0>
inline auto get_atom_jj()
- inline auto get_position()
- inline int get_atom_type() const
- std::array<int, Order> get_atom_types() const
- inline int get_atom_tag() const
- inline Manager_t &get_manager()
- inline const Manager_t &get_manager() const
- inline size_t get_index() const
- inline size_t get_global_index() const
- inline const std::array<int, Order> &get_atom_tag_list() const
- template<size_t Order_, bool C = IsOrderOne, std::enable_if_t<C, int> = 0>
inline CustomProxy<Order_> get_clusters_of_order(size_t start = 0)
- template<bool C = IsOrderOneAndHasOrder<2>, std::enable_if_t<C, int> = 0>
inline CustomProxy<2> pairs()
- template<bool C = IsOrderOneAndHasOrder<2>, std::enable_if_t<C, int> = 0>
inline CustomProxy<2> pairs_with_self_pair()
- template<bool C = IsOrderOneAndHasOrder<3>, std::enable_if_t<C, int> = 0>
inline CustomProxy<3> triplets()
- template<bool C = IsOrderOneAndHasOrder<4>, std::enable_if_t<C, int> = 0>
inline CustomProxy<4> quadruplets()Public Static Attributes
- static constexpr bool HasCenterPairAndIsOrderOne {traits::HasCenterPair andIsOrderOne}
- static constexpr bool HasCenterPairAndIsOrderTwo {traits::HasCenterPair andOrder == 2}
- template<size_t Order>
class IteratorPublic Functions
- Iterator() = delete
- Iterator(const Iterator &other) = default
- Iterator(Iterator &&other) = default
- virtual ~Iterator() = default
- inline Iterator &operator++()
- inline Iterator &operator--()
- inline bool operator==(const Iterator &other) const
- inline bool operator!=(const Iterator &other) const
- inline const Container_t &get_container() const
- class ProxyOnlyGhosts : public rascal::StructureManager<ManagerImplementation>::ProxyWithGhosts
Public Functions
- ProxyOnlyGhosts() = delete
- ProxyOnlyGhosts(const ProxyOnlyGhosts &other) = delete
- ProxyOnlyGhosts(ProxyOnlyGhosts &&other) = default
- virtual ~ProxyOnlyGhosts() = default
- ProxyOnlyGhosts &operator=(const ProxyOnlyGhosts &other) = delete
- ProxyOnlyGhosts &operator=(ProxyOnlyGhosts &&other) = default
- inline Iterator_t begin()
- class ProxyWithGhosts
Subclassed by rascal::StructureManager< ManagerImplementation >::ProxyOnlyGhosts
Public Functions
- ProxyWithGhosts() = delete
- inline ProxyWithGhosts(ManagerImplementation &manager)
- ProxyWithGhosts(const ProxyWithGhosts &other) = delete
- ProxyWithGhosts(ProxyWithGhosts &&other) = default
- virtual ~ProxyWithGhosts() = default
- ProxyWithGhosts &operator=(const ProxyWithGhosts &other) = delete
- ProxyWithGhosts &operator=(ProxyWithGhosts &&other) = default
- inline Iterator_t begin()
- inline Iterator_t end()
- template<class ManagerImplementation>
struct StructureManager_traits
- template<class ManagerImplementation>
struct StructureManager_traits<AdaptorCenterContribution<ManagerImplementation>>
- template<class ManagerImplementation, size_t MaxOrder_>
struct StructureManager_traits<AdaptorFilter<ManagerImplementation, MaxOrder_>>Public Types
- using LayerByOrder = typename LayerIncreaser<typename parent_traits::LayerByOrder>::type
Public Static Attributes
- static constexpr size_t MaxOrder = {MaxOrder_}
- template<class ManagerImplementation>
struct StructureManager_traits<AdaptorFullList<ManagerImplementation>>
- template<class ManagerImplementation>
struct StructureManager_traits<AdaptorHalfList<ManagerImplementation>>
- template<class ManagerImplementation>
struct StructureManager_traits<AdaptorKspace<ManagerImplementation>>
- template<class ManagerImplementation>
struct StructureManager_traits<AdaptorMaxOrder<ManagerImplementation>>
- template<class ManagerImplementation>
struct StructureManager_traits<AdaptorNeighbourList<ManagerImplementation>>
- template<class ManagerImplementation>
struct StructureManager_traits<AdaptorStrict<ManagerImplementation>>
- template<>
struct StructureManager_traits<StructureManagerCenters>
- template<>
struct StructureManager_traits<StructureManagerLammps>
- class StructureManagerBase : public rascal::Updateable
Subclassed by rascal::StructureManager< ManagerImplementation >, rascal::StructureManager< AdaptorCenterContribution< ManagerImplementation > >, rascal::StructureManager< AdaptorFilter< ManagerImplementation, MaxOrder > >, rascal::StructureManager< AdaptorFullList< ManagerImplementation > >, rascal::StructureManager< AdaptorHalfList< ManagerImplementation > >, rascal::StructureManager< AdaptorKspace< ManagerImplementation > >, rascal::StructureManager< AdaptorMaxOrder< ManagerImplementation > >, rascal::StructureManager< AdaptorNeighbourList< ManagerImplementation > >, rascal::StructureManager< AdaptorStrict< ManagerImplementation > >, rascal::StructureManager< StructureManagerCenters >, rascal::StructureManager< StructureManagerLammps >
Public Functions
- virtual void update_self() = 0
- class StructureManagerCenters : public rascal::StructureManager<StructureManagerCenters>, public std::enable_shared_from_this<StructureManagerCenters>
Public Types
- using Cell_t = AtomicStructure<traits::Dim>::Cell_t
- using ClusterRef_t = typename Parent::template ClusterRef<Order>
Public Functions
- inline StructureManagerCenters()
- StructureManagerCenters(const StructureManagerCenters &other) = delete
- StructureManagerCenters(StructureManagerCenters &&other) = delete
- virtual ~StructureManagerCenters() = default
- StructureManagerCenters &operator=(const StructureManagerCenters &other) = delete
- StructureManagerCenters &operator=(StructureManagerCenters &&other) = delete
- template<class ...Args>
inline void update(Args&&... arguments)
- inline Cell_ref get_cell()
- inline int get_atom_type(int atom_tag) const
- inline ConstAtomTypes_ref get_atom_types() const
- inline PBC_ref get_periodic_boundary_conditions()
- inline Vector_ref get_position(const AtomRef_t &atom)
- inline Vector_ref get_position(int atom_tag)
- inline Positions_ref get_positions()
- inline size_t get_size() const
- inline size_t get_size_with_ghosts() const
- inline int get_neighbour_atom_tag(const Parent&, size_t index) const
- template<size_t Order, size_t Layer>
inline int get_neighbour_atom_tag(const ClusterRefKey<Order, Layer>&, size_t) const
- template<size_t Order>
size_t get_offset_impl(const std::array<size_t, Order> &counters) const
- size_t get_nb_clusters(size_t order) const
- Eigen::Matrix<int, Eigen::Dynamic, 5> get_gradients_info() const
- inline virtual void update_self()
- template<class ...Args>
inline void update_self(Args&&... arguments)Public Static Functions
- static inline constexpr int dim()
- struct StructureManagerCentersStackFixture
- class StructureManagerLammps : public rascal::StructureManager<StructureManagerLammps>, public std::enable_shared_from_this<StructureManagerLammps>
Public Functions
- StructureManagerLammps() = default
- StructureManagerLammps(const StructureManagerLammps &other) = delete
- StructureManagerLammps(StructureManagerLammps &&other) = delete
- virtual ~StructureManagerLammps() = default
- StructureManagerLammps &operator=(const StructureManagerLammps &other) = delete
- StructureManagerLammps &operator=(StructureManagerLammps &&other) = delete
- template<class ...Args>
inline void update(Args&&... arguments)
- inline Vector_ref get_position(int atom_tag)
- inline Vector_ref get_position(const AtomRef_t &atom)
- inline int get_atom_type(int atom_tag) const
- inline size_t get_size() const
- inline size_t get_size_with_ghosts() const
- template<size_t TargetOrder, size_t Order, size_t Layer>
inline std::enable_if_t<TargetOrder == 2, size_t> get_cluster_size_impl(const ClusterRefKey<Order, Layer> &cluster) const
- template<size_t Order, size_t Layer>
inline int get_neighbour_atom_tag(const ClusterRefKey<Order, Layer> &cluster, size_t index) const
- inline int get_neighbour_atom_tag(const Parent&, size_t cluster_index) const
- template<size_t Order>
size_t get_offset_impl(const std::array<size_t, Order> &counters) const
- size_t get_nb_clusters(int order) const
- inline virtual void update_self()
- void update_self(int inum, int tot_num, int *ilist, int *numneigh, int **firstneigh, double **x, double **f, int *type, double *eatom, double **vatom)
- template<typename Manager, template<class> class ...AdaptorImplementation>
struct StructureManagerTypeHolder
- struct TestData
Subclassed by rascal::SphericalCovariantsTestData, rascal::SphericalExpansionTestData, rascal::SphericalInvariantsTestData
- template<class StackFixture>
struct TriplePropertyFixture : public rascal::PairPropertyFixture<StackFixture>
- template<typename ta, typename tb>
struct tuple_cat
- template<typename... a, typename... b> tuple< b... > >
- template<typename T, size_t Order_, class Manager>
class TypedProperty : public rascal::PropertyBasePublic Functions
- TypedProperty() = delete
- TypedProperty(const TypedProperty &other) = delete
- TypedProperty(TypedProperty &&other) = default
- ~TypedProperty() = default
- TypedProperty &operator=(const TypedProperty &other) = delete
- TypedProperty &operator=(TypedProperty &&other) = default
- inline virtual const std::string &get_type_info() const
- template<size_t Order__ = Order, std::enable_if_t<(Order__ > 1> inline void resize ()
- template<size_t Order__ = Order, std::enable_if_t<(Order__ == 0), int> = 0>
inline void resize()
- template<size_t Order__ = Order, std::enable_if_t<(Order__ == 1), int> = 0>
inline void resize()
- inline void fill_sequence()
- template<size_t Order__ = Order, std::enable_if_t<(Order__ == 0), int> = 0>
inline size_t size() const
- template<size_t Order__ = Order, std::enable_if_t<(Order__ > 0> inline size_t size () const
- inline void clear()
- template<size_t CallerLayer, size_t Order__ = Order>
inline std::enable_if_t<(Order__ > 0), reference> operator[](const ClusterRefKey<Order, CallerLayer> &id)
- inline reference operator[](size_t index)
- template<size_t Order__ = Order, std::enable_if_t<(Order__ == 0), int> = 0>
inline T &operator()(int i_row, int i_col = 0)
- inline size_t get_nb_item() const
- inline reference back()
- inline const Eigen::Map<const Matrix_t> view()
- template<template<typename Manager, template<class> class ...AdaptorImplementation> class Collection, typename StructureManagerTypeHolder_>
struct TypeHolderInjector
- class Updateable
Subclassed by rascal::SpeciesManager< ManagerImplementation, MaxOrder >, rascal::StructureManagerBase
Public Functions
- inline Updateable()
- Updateable(const Updateable &other) = delete
- Updateable(Updateable &&other) = default
- virtual ~Updateable() = default
- Updateable &operator=(const Updateable &other) = delete
- Updateable &operator=(Updateable &&other) = default
- virtual void update_children() = 0
- inline void add_child(Children_t child)
- virtual void update_self() = 0
- virtual void send_changed_structure_signal() = 0
- inline void set_update_status(const bool sig)
- inline bool get_update_status() const
- namespace AdaptorTraits
Enums
- enum SortedByDistance
Values:
- enumerator yes
- enumerator no
- enum NeighbourListType
Values:
- enumerator full
- enumerator half
- enum Strict
Values:
- enumerator yes
- enumerator no
- namespace detail
- template<template<typename Manager, template<class> class ...AdaptorImplementation> class Collection, typename SM, typename AdaptorTypeHolder_>
struct InjectTypeHolderHelper
- template<template<typename Manager, template<class> class ...AdaptorImplementation> class Collection, typename SM, template<class> class ...Ti>
struct InjectTypeHolderHelper<Collection, SM, AdaptorTypeHolder<Ti...>>
- template<template<typename Manager, template<class> class ...AdaptorImplementation> class Collection, typename StructureManagerTypeHolder_>
struct InjectTypeHolderUtil
- template<template< typename Manager, template< class > class... AdaptorImplementation > class Collection, typename... T> tuple< T... > >
- namespace internal
Typedefs
- using distiter = typename std::vector<double>::const_iterator
- using void_t = typename make_void<Ts...>::type
- using make_index_range = decltype(add_to_sequence<Min>(std::make_index_sequence<Max - Min + 1>()))
Enums
- enum KernelType
Values:
- enumerator Cosine
- enum TargetType
Values:
- enumerator Structure
- enumerator Atom
- enum SparseKernelType
Values:
- enumerator GAP
- enum CMSortAlgorithm
Values:
- enumerator Distance
- enumerator RowNorm
- enum SphericalCovariantsType
Values:
- enumerator LambdaSpectrum
- enum RadialBasisType
Values:
- enumerator GTO
- enumerator DVR
- enumerator End_
- enum AtomicSmearingType
Values:
- enumerator Constant
- enumerator PerSpecies
- enumerator Radial
- enumerator End_
- enum OptimizationType
Values:
- enumerator None
- enumerator Spline
- enumerator RadialDimReductionSpline
- enumerator End_
- enum SphericalInvariantsType
Values:
- enumerator RadialSpectrum
- enumerator PowerSpectrum
- enumerator BiSpectrum
- enum CutoffFunctionType
Values:
- enumerator ShiftedCosine
- enumerator RadialScaling
Functions
- inline Eigen::ArrayXd precompute_wigner_3js(size_t max_angular, bool inversion_symmetry, size_t lambda)
- template<AtomicSmearingType Type, class Hypers>
auto make_atomic_smearing(const Hypers &sigma_hypers)
- template<AtomicSmearingType Type>
auto downcast_atomic_smearing(const std::shared_ptr<AtomicSmearingSpecificationBase> &atomic_smearing)
- inline Eigen::VectorXd precompute_l_factors(size_t max_angular)
- inline Eigen::ArrayXd precompute_wigner_w3js(size_t max_angular, bool inversion_symmetry)
- inline double switching_function_cosine(double r, double cutoff, double smooth_width)
- inline double derivative_switching_funtion_cosine(double r, double cutoff, double smooth_width)
- template<size_t Dim, class Container_t>
void fill_neighbours_atom_tag(const int current_atom_tag, const std::array<int, Dim> &ccoord, const Container_t &boxes, std::vector<int> &neighbours_atom_tag)
- template<class Vector_t>
std::array<int, Vector_t::SizeAtCompileTime> get_box_index(const Vector_t &position, double rc)
- template<size_t Dim>
constexpr Dim_t get_index(const std::array<int, Dim> &sizes, const std::array<int, Dim> &ccoord)
- template<int Dim>
bool position_in_bounds(const Eigen::Matrix<double, Dim, 1> &min, const Eigen::Matrix<double, Dim, 1> &max, const Eigen::Matrix<double, Dim, 1> &pos, const double epsilon = 1e-4)
- template<class ManagerImplementation>
bool check_cutoff(const std::shared_ptr<ManagerImplementation> &manager, double cutoff)
- template<typename PropertyType, typename Manager>
PropertyType make_individual_property(Manager &manager)
- template<typename T, size_t Size, int... Indices>
std::array<T, Size + 1> append_array_helper(const std::array<T, Size> &arr, T &&t, std::integer_sequence<int, Indices...>)
- template<typename T, size_t Size>
std::array<T, Size + 1> append_array(const std::array<T, Size> &arr, T &&t)
- template<typename T, size_t Size1, int... Indices1, size_t Size2, int... Indices2>
std::array<T, Size1 + Size2> concat_array_helper(const std::array<T, Size1> &arr1, const std::array<T, Size2> &arr2, std::integer_sequence<int, Indices1...>, std::integer_sequence<int, Indices2...>)
- template<typename T, size_t Size1, size_t Size2>
std::array<T, Size1 + Size2> concat_array(const std::array<T, Size1> &arr1, const std::array<T, Size2> &arr2)
- template<class Manager, size_t Order, size_t... Indices>
std::array<int, Order> species_aggregator_helper(const std::array<int, Order> &array, const Manager &manager, std::index_sequence<Indices...>)
- template<class Manager, size_t Order, size_t... Indices>
std::array<int, Order> species_aggregator(const std::array<int, Order> &index_array, const Manager &manager)
- template<size_t TargetOrder, size_t... Orders>
static constexpr bool is_order_available(std::index_sequence<Orders...>)
- template<size_t... Orders>
constexpr size_t get_last_element_in_sequence(std::index_sequence<Orders...>)
- template<typename Enum>
constexpr size_t enum_value(Enum e)
- template<typename Enum>
constexpr size_t enum_size()
- template<typename Enum1, typename Enum2, typename Enum3>
constexpr size_t combine_enums(Enum1 e1, Enum2 e2, Enum3 e3)
- template<size_t N, size_t... Seq>
constexpr std::index_sequence<N + Seq...> add_to_sequence(std::index_sequence<Seq...>)
- template<size_t Min, size_t Max, class F>
constexpr auto index_apply(F func)
- template<size_t Min, size_t Max, class Tuple>
constexpr auto take_range(Tuple t)
- template<typename Func, typename Head, typename ...Tail>
inline void for_each_impl(Func &&f, Head &&head, Tail&&... tail)
- template<typename Func, size_t... Indices, typename ...Args>
inline void for_each_helper(Func &&f, std::index_sequence<Indices...>, std::tuple<Args...> &&tup)
- std::string type_name_demangled(const char *name)
- void replace(std::string &string, const std::string &pattern, const std::string &replacement)
- template<typename T>
std::string type_name()
- std::vector<uint8_t> read_binary_file(const std::string &filename)
- std::string get_filename_extension(const std::string &filename)
- template<class Object, class ...Bases>
void bind_dict_representation(py::class_<Object, Bases...> &obj)
- template<typename T>
std::string GetBindingTypeName()
- template<size_t CurrentPosition, typename ManagerImplementation, template<class> class AdaptorImplementation, template<class> class ...AdaptorImplementationPack>
struct AdaptorFactory_hypersPublic Functions
- template<typename ...Args, typename Hypers_t>
inline AdaptorFactory_hypers(ImplementationPtr_t &m, const Hypers_t &adaptors_hypers)
- template<size_t CurrentPosition, typename ManagerImplementation, template<class> class AdaptorImplementation>
struct AdaptorFactory_hypers<CurrentPosition, ManagerImplementation, AdaptorImplementation>
- template<typename ManagerImplementation, template<class> class AdaptorImplementation, template<class> class ...AdaptorImplementationPack>
struct AdaptorTypeStacker
- template<typename ManagerImplementation, template<class> class AdaptorImplementation>
struct AdaptorTypeStacker<ManagerImplementation, AdaptorImplementation>
- template<typename Calculator_t, typename = void>
struct Argument_t
- template<typename Calculator_t> value > >
- template<AtomicSmearingType SigmaType>
struct AtomicSmearingSpecification
- template<> Constant > : public rascal::internal::AtomicSmearingSpecificationBase
- template<> PerSpecies > : public rascal::internal::AtomicSmearingSpecificationBase
- template<> Radial > : public rascal::internal::AtomicSmearingSpecificationBase
- struct AtomicSmearingSpecificationBase
Subclassed by rascal::internal::AtomicSmearingSpecification< AtomicSmearingType::Constant >, rascal::internal::AtomicSmearingSpecification< AtomicSmearingType::PerSpecies >, rascal::internal::AtomicSmearingSpecification< AtomicSmearingType::Radial >
Public Functions
- AtomicSmearingSpecificationBase() = default
- virtual ~AtomicSmearingSpecificationBase() = default
- AtomicSmearingSpecificationBase(const AtomicSmearingSpecificationBase &other) = delete
- AtomicSmearingSpecificationBase(AtomicSmearingSpecificationBase &&other) = default
- AtomicSmearingSpecificationBase &operator=(const AtomicSmearingSpecificationBase &other) = delete
- AtomicSmearingSpecificationBase &operator=(AtomicSmearingSpecificationBase &&other) = default
- template<size_t Order, class ManagerImplementation, size_t MaxOrder>
struct ClusterAdder
- template<class ManagerImplementation, size_t MaxOrder>
struct ClusterAdder<1, ManagerImplementation, MaxOrder>
- template<typename Tup, typename Manager>
struct ClusterIndexConstructor
- template<typename... PropertyTypes, typename Manager> tuple< PropertyTypes... >, Manager >
- template<typename Manager, typename sequence>
struct ClusterIndexPropertyComputer
- template<typename Manager, size_t... Layers> index_sequence< Layers... > >
- template<typename Manager, size_t Order, typename sequence, typename Tup>
struct ClusterIndexPropertyComputer_Helper
- template<typename Manager, size_t Order, size_t LayersHead, typename... TupComp> tuple< TupComp... > >
- template<typename Manager, size_t Order, size_t LayersHead, size_t... LayersTail, typename... TupComp> tuple< TupComp... > >
- template<class ParentClass, typename ClusterIndicesType, size_t Layer>
struct ClusterIndicesConstCaster
- struct CompareSortedKeyLess
- template<bool IsStrict, class ManagerImplementation>
struct CutOffChecker
- template<class ManagerImplementation>
struct CutOffChecker<false, ManagerImplementation>
- template<CutoffFunctionType Type>
struct CutoffFunction : public rascal::internal::CutoffFunctionBase
- template<> RadialScaling > : public rascal::internal::CutoffFunctionBase
Public Functions
- inline virtual void set_hyperparameters(const Hypers_t &hypers) override
Public Members
- Hypers_t hypers = {}
- double cutoff = {0.}
- double smooth_width = {0.}
- double rate = {0.}
- double exponent = {0}
- double scale = {1.}
- template<> ShiftedCosine > : public rascal::internal::CutoffFunctionBase
Public Functions
- inline virtual void set_hyperparameters(const Hypers_t &hypers) override
Public Members
- Hypers_t hypers = {}
- double cutoff = {0.}
- double smooth_width = {0.}
- struct CutoffFunctionBase
Subclassed by rascal::internal::CutoffFunction< Type >, rascal::internal::CutoffFunction< internal::CutoffFunctionType::RadialScaling >, rascal::internal::CutoffFunction< internal::CutoffFunctionType::ShiftedCosine >
Public Functions
- CutoffFunctionBase() = default
- virtual ~CutoffFunctionBase() = default
- CutoffFunctionBase(const CutoffFunctionBase &other) = delete
- CutoffFunctionBase(CutoffFunctionBase &&other) = default
- CutoffFunctionBase &operator=(const CutoffFunctionBase &other) = delete
- CutoffFunctionBase &operator=(CutoffFunctionBase &&other) = default
- virtual void set_hyperparameters(const Hypers_t&) = 0
- template<class ManagerImplementation, size_t MaxOrder, size_t CurrentOrder = 2, bool Stop = false>
struct FilterSpeciesLoop
- template<class ManagerImplementation, size_t MaxOrder, size_t CurrentOrder>
struct FilterSpeciesLoop<ManagerImplementation, MaxOrder, CurrentOrder, true>
- template<class KeyType, typename T = int>
struct Hash
- template<bool AtMaxOrder>
struct IncreaseHelper
- template<>
struct IncreaseHelper<false>
- template<int Dim>
class IndexContainerPublic Functions
- IndexContainer() = delete
- inline explicit IndexContainer(const std::array<int, Dim> &nboxes)
- IndexContainer(const IndexContainer &other) = delete
- IndexContainer(IndexContainer &&other) = delete
- inline ~IndexContainer()
- IndexContainer &operator=(const IndexContainer &other) = delete
- IndexContainer &operator=(IndexContainer &&other) = default
- inline std::vector<int> &operator[](const std::array<int, Dim> &ccoord)
- template<class K, class V>
class InternallySortedKeyMapPublic Functions
- inline explicit InternallySortedKeyMap(Array_t &data, const size_t &global_offset = 0)
- InternallySortedKeyMap(const InternallySortedKeyMap &other) = default
- InternallySortedKeyMap(InternallySortedKeyMap &&other) = default
- ~InternallySortedKeyMap() = default
- inline Self_t &operator=(const Self_t &other)
- inline Self_t &operator=(Self_t &&other)
- inline reference at(const key_type &key)
- inline reference operator[](const key_type &key)
- inline reference at(const SortedKey_t &skey)
- inline reference operator[](const SortedKey_t &skey)
- template<template<typename...> class Key_List, typename ...Args>
inline void resize_view(const Key_List<key_type, Args...> &keys, int n_row, int n_col, const size_t &global_offset)
- inline size_t count(const key_type &key) const
- inline void clear() noexcept
- inline size_t get_key_hash() const
- inline std::vector<key_type> get_keys() const
- inline Precision_t norm() const
- inline double normalize_and_get_norm()
- inline void multiply_off_diagonal_elements_by(double fac)
- inline Precision_t dot(Self_t &B)
- template<typename Derived>
inline void lhs_dot(const Eigen::EigenBase<Derived> &left_side_mat)Public Members
- Array_t &data
- Map_t map = {}
- size_t global_offset
- size_t total_length = {0}
- bool normalized = {false}
- size_t key_hash = {0}
- template<class, class = void_t<>>
struct is_iterable : public false_type
- template<class T> const_iterator > > : public true_type
- template<class, class = void_t<>>
struct is_map : public false_type
- template<class T> key_type > > : public true_type
- template<class T>
struct is_proper_iterator
- template<internal::KernelType Type>
struct KernelImpl
- template<> Cosine > : public rascal::internal::KernelImplBase
Public Functions
- template<class Property_t, internal::TargetType Type, std::enable_if_t<Type == internal::TargetType::Structure, int> = 0, class StructureManagers>
inline math::Matrix_t compute(StructureManagers &managers_a, StructureManagers &managers_b, const std::string &representation_name)
- template<class Property_t, internal::TargetType Type, std::enable_if_t<Type == internal::TargetType::Structure, int> = 0, class StructureManagers>
inline math::Matrix_t compute(StructureManagers &managers_a, const std::string &representation_name)
- template<class Property_t, internal::TargetType Type, std::enable_if_t<Type == internal::TargetType::Atom, int> = 0, class StructureManagers>
inline math::Matrix_t compute(const StructureManagers &managers_a, const StructureManagers &managers_b, const std::string &representation_name)
- template<class Property_t, internal::TargetType Type, std::enable_if_t<Type == internal::TargetType::Atom, int> = 0, class StructureManagers>
inline math::Matrix_t compute(const StructureManagers &managers_a, const std::string &representation_name)Public Members
- size_t zeta = {1}
- struct KernelImplBase
Subclassed by rascal::internal::KernelImpl< internal::KernelType::Cosine >, rascal::internal::SparseKernelImpl< internal::SparseKernelType::GAP >
- template<template<class> class Adaptor, size_t HyperPos>
struct make_adapted_manager_hypers_util
- template<typename SM, typename AdaptorTypeHolder_>
struct make_structure_manager_stack_with_hypers_util
- template<typename SM, template<class> class ...Ti>
struct make_structure_manager_stack_with_hypers_util<SM, AdaptorTypeHolder<Ti...>>
- template<typename ...Ts>
struct make_void
- template<size_t Dim>
class MeshBoundsPublic Functions
- inline explicit MeshBounds(const std::array<double, 2 * Dim> &extent)
- MeshBounds(const MeshBounds &other) = default
- MeshBounds &operator=(const MeshBounds &other) = default
- inline iterator begin() const
- inline iterator end() const
- inline size_t size() const
- class iterator
Public Types
- using value_type = std::array<double, Dim>
- using const_value_type = const value_type
- using pointer = value_type*
- using iterator_category = std::forward_iterator_tag
Public Functions
- inline explicit iterator(const MeshBounds &mesh_bounds, bool begin = true)
- inline ~iterator()
- inline value_type operator*() const
- inline iterator &operator++()
- inline bool operator!=(const iterator &other) const
- struct ordering
- template<size_t Dim>
class PeriodicImagesPublic Functions
- inline PeriodicImages(const std::array<int, Dim> &origin, const std::array<int, Dim> &nrepetitions, size_t ntot)
- PeriodicImages(const PeriodicImages &other) = default
- PeriodicImages &operator=(const PeriodicImages &other) = default
- inline iterator begin() const
- inline iterator end() const
- inline size_t size() const
- class iterator
Public Types
- using const_value_type = const value_type
- using pointer = value_type*
- using iterator_category = std::forward_iterator_tag
Public Functions
- inline explicit iterator(const PeriodicImages &periodic_images, bool begin = true)
- inline value_type operator*() const
- inline iterator &operator++()
- inline bool operator!=(const iterator &other) const
- template<RadialBasisType RBT>
struct RadialContributionSubclassed by rascal::internal::RadialContributionHandler< RBT, AtomicSmearingType::Constant, OptimizationType::None >, rascal::internal::RadialContributionHandler< RBT, AtomicSmearingType::Constant, OptimizationType::RadialDimReductionSpline >, rascal::internal::RadialContributionHandler< RBT, AtomicSmearingType::Constant, OptimizationType::Spline >
- template<> DVR > : public rascal::internal::RadialContributionBase
Public Functions
- inline explicit RadialContribution(const Hypers_t &hypers)
- virtual ~RadialContribution() = default
- RadialContribution(const RadialContribution &other) = delete
- RadialContribution(RadialContribution &&other) = default
- RadialContribution &operator=(const RadialContribution &other) = delete
- RadialContribution &operator=(RadialContribution &&other) = default
- inline virtual void set_hyperparameters(const Hypers_t &hypers) override
- inline Vector_Ref compute_center_contribution(const double fac_a)
- template<AtomicSmearingType AST, size_t Order, size_t Layer>
inline Matrix_Ref compute_neighbour_contribution(const double distance, const ClusterRefKey<Order, Layer> &pair)
- template<size_t Order, size_t Layer>
inline Matrix_Ref compute_neighbour_derivative(const double, const ClusterRefKey<Order, Layer>&, int)
- template<> GTO > : public rascal::internal::RadialContributionBase
Public Functions
- inline virtual void set_hyperparameters(const Hypers_t &hypers) override
- template<AtomicSmearingType AST>
inline Matrix_t compute_contribution(const double distance, const double sigma)
- template<AtomicSmearingType AST, size_t Order, size_t Layer>
inline Vector_Ref compute_center_contribution(ClusterRefKey<Order, Layer> ¢er, int)
- inline Vector_Ref compute_center_contribution(double fac_a)
- template<AtomicSmearingType AST, size_t Order, size_t Layer>
inline Matrix_Ref compute_neighbour_contribution(const double distance, const ClusterRefKey<Order, Layer> &pair)
- template<size_t Order, size_t Layer>
inline Matrix_Ref compute_neighbour_derivative(const double distance, const ClusterRefKey<Order, Layer>&, int)
- inline void finalize_radial_integral_neighbour()
- inline void precompute_radial_sigmas()
- inline void precompute_radial_overlap()
- struct RadialContributionBase
Subclassed by rascal::internal::RadialContribution< RadialBasisType::DVR >, rascal::internal::RadialContribution< RadialBasisType::GTO >
Public Functions
- RadialContributionBase() = default
- virtual ~RadialContributionBase() = default
- RadialContributionBase(const RadialContributionBase &other) = delete
- RadialContributionBase(RadialContributionBase &&other) = default
- RadialContributionBase &operator=(const RadialContributionBase &other) = delete
- RadialContributionBase &operator=(RadialContributionBase &&other) = default
- virtual void set_hyperparameters(const Hypers_t&) = 0
- template<AtomicSmearingType AST, size_t Order, size_t Layer>
inline Vector_Ref compute_center_contribution(ClusterRefKey<Order, Layer>&, int)
- template<AtomicSmearingType AST, size_t Order, size_t Layer>
inline Matrix_Ref compute_neighbour_contribution(const double, const ClusterRefKey<Order, Layer>&, int)
- template<size_t Order, size_t Layer>
inline Matrix_Ref compute_neighbour_derivative(const double, const ClusterRefKey<Order, Layer>&, int)
- template<RadialBasisType RBT, AtomicSmearingType AST, OptimizationType OT>
struct RadialContributionHandler
- template<RadialBasisType RBT> None > : public rascal::internal::RadialContribution< RBT >
- template<RadialBasisType RBT> RadialDimReductionSpline > : public rascal::internal::RadialContribution< RBT >
- template<RadialBasisType RBT> Spline > : public rascal::internal::RadialContribution< RBT >
- struct ResizePropertyToZero
- template<CMSortAlgorithm Method>
struct SortCoulomMatrix
- template<> Distance >
Public Static Functions
- static inline std::vector<std::pair<size_t, distiter>> get_coulomb_matrix_sorting_order(const Eigen::Ref<const Eigen::MatrixXd> &distance_mat, const Eigen::Ref<const Eigen::MatrixXd>&)
- template<> RowNorm >
Public Static Functions
- static inline std::vector<std::pair<size_t, distiter>> get_coulomb_matrix_sorting_order(const Eigen::Ref<const Eigen::MatrixXd>&, const Eigen::Ref<const Eigen::MatrixXd> &coulomb_mat)
- template<bool IsSorted>
struct Sorted
- template<class KeyType>
struct SortedKeyPublic Functions
- template<class Int>
inline Value_t &operator[](const Int &id)
- template<internal::SparseKernelType Type>
struct SparseKernelImpl
- template<> GAP > : public rascal::internal::KernelImplBase
Public Functions
- template<class Property_t, internal::TargetType Type, std::enable_if_t<Type == internal::TargetType::Structure, int> = 0, class StructureManagers, class SparsePoints>
inline math::Matrix_t compute(StructureManagers &managers, SparsePoints &sparse_points, const std::string &representation_name)
- template<class SparsePoints>
inline math::Matrix_t compute(SparsePoints &sparse_points)
- template<class Property_t, internal::TargetType Type, std::enable_if_t<Type == internal::TargetType::Atom, int> = 0, class StructureManagers, class SparsePoints>
inline math::Matrix_t compute(const StructureManagers &managers, const SparsePoints &sparse_points, const std::string &representation_name)
- template<class Property_t, class PropertyGradient_t, internal::TargetType Type, std::enable_if_t<Type == internal::TargetType::Atom, int> = 0, class StructureManagers, class SparsePoints>
inline math::Matrix_t compute_derivative(StructureManagers &managers, SparsePoints &sparse_points, const std::string &representation_name, const std::string &representation_grad_name, const bool compute_neg_stress)Public Members
- size_t zeta = {1}
- template<size_t Dim>
class StencilPublic Functions
- inline explicit Stencil(const std::array<int, Dim> &origin)
- Stencil(const Stencil &other) = default
- ~Stencil() = default
- inline iterator begin() const
- inline iterator end() const
- inline size_t size() const
- class iterator
Public Types
- using value_type = std::array<int, Dim>
- using const_value_type = const value_type
- using pointer = value_type*
- using iterator_category = std::forward_iterator_tag
Public Functions
- inline explicit iterator(const Stencil &stencil, bool begin = true)
- inline ~iterator()
- inline value_type operator*() const
- inline iterator &operator++()
- inline bool operator!=(const iterator &other) const
- template<typename StructureManager, int TargetLevel>
struct UnderlyingManagerExtractor
- template<typename StructureManager>
struct UnderlyingManagerExtractor<StructureManager, 0>
- template<typename T, Dim_t NbRow, Dim_t NbCol>
struct ValuePublic Static Functions
- static inline reference get_ref(T &value, int nb_row, int nb_col)
- static inline reference get_ref(T &value)
- static inline void push_in_vector(std::vector<T> &vec, reference ref)
- template<typename T>
struct Value<T, 1, 1>
- namespace detail
- namespace details
- template<size_t TargetOrder, size_t Order, size_t... Orders>
struct IsOrderAvailableHelper
- template<size_t TargetOrder, size_t Order>
struct IsOrderAvailableHelper<TargetOrder, Order>
- namespace json_io
Functions
- json load(const std::string &filename)
- json load_txt(const std::string &filename)
- json load_bin(const std::string &filename)
- void to_json(json &j, AtomicJsonData &s)
- void from_json(const json &j, AtomicJsonData &s)
- double check_units(const std::string &expected_unit, const json ¶meter)
- struct AtomicJsonData
Public Members
- std::vector<std::vector<double>> cell = {}
- std::vector<int> type = {}
- std::vector<int> pbc = {}
- std::vector<std::vector<double>> position = {}
- namespace math
Typedefs
- using Matrix_t = Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>
- using MatrixX2_t = Eigen::Matrix<double, Eigen::Dynamic, 2>
- using Vector_t = Eigen::Matrix<double, 1, Eigen::Dynamic>
- using Matrix_Ref = typename Eigen::Ref<const Matrix_t>
- using MatrixX2_Ref = typename Eigen::Ref<const MatrixX2_t>
- using Vector_Ref = typename Eigen::Ref<const Vector_t>
Enums
- enum RefinementMethod_t
Values:
- enumerator Exponential
- enumerator Linear
- enum InterpolationMethod_t
Values:
- enumerator CubicSplineScalarUniform
- enumerator CubicSplineVectorUniform
- enum ErrorMetric_t
Values:
- enumerator Absolute
- enumerator Relative
- enumerator AbsoluteRelative
Functions
- MatrixX2_t compute_gauss_legendre_points_weights(double r_st, double r_nd, int order_n)
- bool is_grid_uniform(const Vector_Ref &grid)
- inline double pow(double x, int n)
- inline double pow(int x, int n)
- inline double pow(size_t x, int n)
- inline double pow(double x, size_t n)
- inline int pow(int x, size_t n)
- inline size_t pow(size_t x, size_t n)
- inline double pow(double x, double n)
- template<typename Derived>
Matrix_t relative_error(const Eigen::MatrixBase<Derived> &reference, const Eigen::MatrixBase<Derived> &test, const double &delta = 1e-10, const double &epsilon = DBL_FTOL, const bool &verbose = true)
- inline double relative_error(const double &reference, const double &test, const double &delta = 1e-10, const double &epsilon = DBL_FTOL, const bool &verbose = true)
Variables
- constexpr double SPHERICAL_BESSEL_FUNCTION_FTOL = 1e-5
- constexpr double PI = 3.14159265358979323846264338327950288
- constexpr double SQRT_PI = 1.772453850905516027298167483341145182
- constexpr double SQRT_TWO = 1.41421356237309504880168872420969808
- constexpr double INV_SQRT_TWO = 0.707106781186547524400844362104849039
- constexpr double SQRT_THREE = 1.7320508075688772935274463415058723
- constexpr double DBL_FTOL = 100.0 * std::numeric_limits<double>::epsilon()
- constexpr double DOVERFLOW = std::numeric_limits<double>::infinity()
- template<ErrorMetric_t Metric>
struct ErrorMethod
- template<> Absolute >
Public Static Functions
- template<class Eigen_Ref>
static inline double compute_global_error(const Eigen_Ref &values, const Eigen_Ref &references)
- static inline Vector_t compute_pointwise_error(const Vector_Ref &values, const Vector_Ref &references)
- static inline Matrix_t compute_pointwise_error(const Matrix_Ref &values, const Matrix_Ref &references)
- template<> AbsoluteRelative >
- template<> Relative >
Public Static Functions
- template<class Eigen_Ref>
static inline double compute_global_error(const Eigen_Ref &values, const Eigen_Ref &references)
- static inline Vector_t compute_pointwise_error(const Vector_Ref &values, const Vector_Ref &references)
- static inline Matrix_t compute_pointwise_error(const Matrix_Ref &values, const Matrix_Ref &references)
- class Hyp1f1
Public Functions
- inline double calc(double z, bool derivative = false)
- double calc(double z, double z2, double ez2, bool derivative = false)
- class Hyp1f1SphericalExpansion
Public Functions
- void precompute(size_t max_radial, size_t max_angular)
- inline double calc(size_t n_radial, size_t l_angular, double z)
- double calc(size_t n_radial, size_t l_angular, double r_ij, double alpha, double beta)
- void calc(double r_ij, double alpha, const Vector_Ref &fac_b, bool derivative = false)
- void calc_recursion(double r_ij, double alpha, const Vector_Ref &fac_b)
- void calc_direct(double r_ij, double alpha, const Vector_Ref &fac_b, bool derivative)
- inline Matrix_Ref get_values()
- inline Matrix_Ref get_derivatives()
- template<InterpolationMethod_t Type>
struct InterpolationMethodPublic Functions
- void initialize(const Vector_Ref &grid, const Vector_Ref &evaluated_grid)
- void initialize(const Vector_Ref &grid, const Matrix_Ref &evaluated_grid)
- inline double interpolate(const Vector_Ref &grid, const Vector_Ref &evaluated_grid, double x, int nearest_grid_index_to_x)
- inline double interpolate(const Vector_Ref &grid, const Matrix_Ref &evaluated_grid, double x, int nearest_grid_index_to_x)
- template<> CubicSplineScalarUniform >
Public Functions
- inline double interpolate(const Vector_Ref &grid, const Vector_Ref &evaluated_grid, double x, int nearest_grid_index_to_x) const
- inline double interpolate_derivative(const Vector_Ref &grid, const Vector_Ref &evaluated_grid, double x, int nearest_grid_index_to_x) const
- template<> CubicSplineVectorUniform >
Public Functions
- inline Vector_t interpolate(const Vector_Ref &grid, const Matrix_Ref &evaluated_grid, double x, int nearest_grid_index_to_x) const
- inline Vector_t interpolate_derivative(const Vector_Ref &grid, const Matrix_Ref &evaluated_grid, double x, int nearest_grid_index_to_x) const
- template<class InterpolationMethod, class UniformGridRational, class ErrorMethod>
class InterpolatorPublic Functions
- inline Interpolator(double x1, double x2, double error_bound, int max_grid_points, int initial_degree_of_fineness)
- inline explicit Interpolator(Vector_t grid)
- template<RefinementMethod_t RefinementMethod, class ErrorMethod_t = ErrorMethod<ErrorMetric_t::Absolute>>
class InterpolatorMatrixUniformCubicSpline : public rascal::math::Interpolator<InterpolationMethod<InterpolationMethod_t::CubicSplineVectorUniform>, UniformGridRational<RefinementMethod>, ErrorMethod_t>Public Functions
- inline InterpolatorMatrixUniformCubicSpline(std::function<Matrix_t(double)> function, double x1, double x2, double error_bound, int cols, int rows, int max_grid_points = 100000, int initial_degree_of_fineness = 5, bool clamped_boundary_conditions = false, double dfx1 = 0, double dfx2 = 0)
- inline InterpolatorMatrixUniformCubicSpline(std::function<double(double)> function, double x1, double x2, double error_bound, int max_grid_points = 100000, int initial_degree_of_fineness = 5, bool clamped_boundary_conditions = false, double dfx1 = 0, double dfx2 = 0)
- inline InterpolatorMatrixUniformCubicSpline(Vector_t grid, Matrix_t evaluated_grid, int cols, int rows)
- inline Matrix_t interpolate(double x)
- inline Matrix_t interpolate_derivative(double x)
- inline Vector_t interpolate_to_vector(double x)
- inline Matrix_t interpolate_to_vector(const Vector_Ref &points)
- inline Vector_t interpolate_to_vector_derivative(const double x)
- inline Matrix_t interpolate_to_vector_derivative(const Vector_Ref &points)
- inline Matrix_t interpolate_dummy(const double x) const
- inline Vector_t eval(const double x)
- inline Matrix_t eval(const Vector_Ref &grid)
- template<RefinementMethod_t RefinementMethod, class ErrorMethod_t = ErrorMethod<ErrorMetric_t::Absolute>>
class InterpolatorScalarUniformCubicSpline : public rascal::math::Interpolator<InterpolationMethod<InterpolationMethod_t::CubicSplineScalarUniform>, UniformGridRational<RefinementMethod>, ErrorMethod_t>Public Functions
- inline InterpolatorScalarUniformCubicSpline(std::function<double(double)> function, double x1, double x2, double error_bound, int max_grid_points = 100000, int initial_degree_of_fineness = 5, bool clamped_boundary_conditions = false, double dfx1 = 0, double dfx2 = 0)
- inline double interpolate(double x)
- inline double interpolate_derivative(double x)
- class Kvectors
- class ModifiedSphericalBessel
Public Functions
- void calc(double distance, double fac_a)
- void precompute(size_t l_max, const Eigen::Ref<const Eigen::VectorXd> &x_v, bool compute_gradients = false)
- inline ArrayConstRef_t get_values()
- inline ArrayConstRef_t get_gradients()
- class SphericalHarmonics
Public Functions
- inline explicit SphericalHarmonics(bool calculate_derivatives = false)
- void precompute(size_t max_angular, bool calculate_derivatives = false)
- void calc(const Eigen::Ref<const Eigen::Vector3d> &direction, bool calculate_derivatives, bool conjugate = false)
- inline void calc(const Eigen::Ref<const Eigen::Vector3d> &direction, bool conjugate = false)
- inline const Matrix_Ref get_assoc_legendre_polynom_raw()
- inline const Vector_Ref get_harmonics()
- inline const Matrix_Ref get_harmonics_derivatives()
- template<RefinementMethod_t Method>
struct UniformGridRational
- template<> Exponential >
- template<> Linear >
- class UniformSearchMethod
Public Functions
- void initialize(const Vector_Ref &grid, size_t nb_support_points)
- int search(double x, const Vector_Ref&) const
- namespace details
Functions
- inline double pow_u(double x, size_t n)
- inline double pow_i(double x, int n)
- namespace internal
- class Hyp1f1Asymptotic
Public Functions
- double calc(double z, double z2, bool derivative = false, int n_terms = -1)
- double calc(double z, bool derivative = false, int n_terms = -1)
- double hyp2f0(double z, bool derivative, int n_terms)
- class Hyp1f1Series
Public Functions
- double calc(double z, double z2, double ez2, bool derivative = false, int n_terms = -1)
- double hyp1f1(double z, bool derivative, int n_terms)
- namespace py_internal
- template<typename SM, typename AdaptorTypeHolder_>
struct bind_compute_function_helper
- template<typename SM, template<class> class ...Ti>
struct bind_compute_function_helper<SM, AdaptorTypeHolder<Ti...>>
- template<typename StructureManagerTypeHolder_>
struct bind_compute_function_util
- template<typename... T> tuple< T... > >
- template<typename SM, typename AdaptorTypeHolder_>
struct bind_get_num_coefficients_function_helper
- template<typename SM, template<class> class ...Ti>
struct bind_get_num_coefficients_function_helper<SM, AdaptorTypeHolder<Ti...>>
- template<typename StructureManagerTypeHolder_>
struct bind_get_num_coefficients_function_util
- template<typename... T> tuple< T... > >
- namespace units
Variables
- static const std::string undefined = {
"undefined"}
- const UnitStyle metal{
"(g/mol)","Å","ps","eV","(Å/ps)","(eV/Å)","eV","K","bar","P","e","(e*Å)","(V/Å)","((g/cm)^(3))"}
- class UnitStyle
Public Functions
- UnitStyle() = delete
- UnitStyle(const std::string &mass, const std::string &distance, const std::string &time, const std::string &energy, const std::string &velocity, const std::string &force, const std::string &torque, const std::string &temperature, const std::string &pressure, const std::string &dynamic_viscosity, const std::string &charge, const std::string &dipole, const std::string &electric_field, const std::string &density)
- UnitStyle(const UnitStyle &other) = default
- UnitStyle(UnitStyle &&other) = default
- virtual ~UnitStyle() = default
- const std::string mass(int numerator = 1, int denominator = 1) const