occ
Loading...
Searching...
No Matches
occ::descriptors::RinseParams Struct Reference

Hyper-parameters for the RINSE descriptor. More...

#include <rinse.h>

Public Member Functions

double q_max () const
 |G| cutoff in A^-1, implied by radial_scale, n_max and the basis.
double q_cutoff () const
 |G| out to which reflections are gathered, qmax_factor * q_max(), in A^-1.
double sin_theta_over_lambda_max () const
 The resolution of the gathered reflections, sin(theta)/lambda = q_cutoff()/2, in A^-1.
std::vector< int > l_values () const
 The angular levels, l_min, l_min+2, ..., l_max-2.
int num_l_levels () const
 Number of angular levels.
int size () const
 Length of the flattened descriptor, n_max * num_l_levels().
void validate () const

Public Attributes

int n_max {16}
 Number of radial shells; radial orders are n = 0 .. n_max-1.
int l_min {4}
 First angular level. 4 drops the monopole and quadrupole terms.
int l_max {20}
 One past the last angular level, so l runs over l_min, l_min+2, ..., l_max-2.
double radial_scale {0.3}
 Per-shell scale in A^-1.
double qmax_factor {1.2}
 Reflections are gathered out to qmax_factor * q_max(), not q_max(), so that the Gaussian tails of the outermost shells are represented.
RinseRadialBasis radial_basis {RinseRadialBasis::CVGaussian}
std::optional< double > fixed_uiso {}
 Discard the ADPs in the structure and give every atom this isotropic U, in A^2.
bool monopole_normalisation {true}
 Divide each radial level's power by its monopole (l = 0) power, which is that shell's spherically-averaged scattering.
bool log1p {false}
 Compress the power spectrum with log1p.
bool l2 {true}
 Scale the whole descriptor to unit L2 norm.

Detailed Description

Hyper-parameters for the RINSE descriptor.

The defaults, those of rinse-descriptor 3.2.0, give the 16 x 8 = 128 element descriptor: radial orders n = 0..15 and angular levels l = 4, 6, ..., 18.

Member Function Documentation

◆ l_values()

std::vector< int > occ::descriptors::RinseParams::l_values ( ) const

The angular levels, l_min, l_min+2, ..., l_max-2.

◆ num_l_levels()

int occ::descriptors::RinseParams::num_l_levels ( ) const

Number of angular levels.

◆ q_cutoff()

double occ::descriptors::RinseParams::q_cutoff ( ) const

|G| out to which reflections are gathered, qmax_factor * q_max(), in A^-1.

◆ q_max()

double occ::descriptors::RinseParams::q_max ( ) const

|G| cutoff in A^-1, implied by radial_scale, n_max and the basis.

◆ sin_theta_over_lambda_max()

double occ::descriptors::RinseParams::sin_theta_over_lambda_max ( ) const

The resolution of the gathered reflections, sin(theta)/lambda = q_cutoff()/2, in A^-1.

◆ size()

int occ::descriptors::RinseParams::size ( ) const

Length of the flattened descriptor, n_max * num_l_levels().

◆ validate()

void occ::descriptors::RinseParams::validate ( ) const
Exceptions
std::invalid_argumentif the parameters are not a usable set.

Member Data Documentation

◆ fixed_uiso

std::optional<double> occ::descriptors::RinseParams::fixed_uiso {}

Discard the ADPs in the structure and give every atom this isotropic U, in A^2.

Unset (the default) uses the ADPs as read.

The descriptor is sensitive to ADPs: dropping them can move it a sizeable fraction of the way to a different polymorph. Set this when comparing structures that do not all carry ADPs – a predicted or DFT-relaxed structure against an experimental one, say – with the same value for every structure compared.

◆ l2

bool occ::descriptors::RinseParams::l2 {true}

Scale the whole descriptor to unit L2 norm.

◆ l_max

int occ::descriptors::RinseParams::l_max {20}

One past the last angular level, so l runs over l_min, l_min+2, ..., l_max-2.

◆ l_min

int occ::descriptors::RinseParams::l_min {4}

First angular level. 4 drops the monopole and quadrupole terms.

◆ log1p

bool occ::descriptors::RinseParams::log1p {false}

Compress the power spectrum with log1p.

Off by default; useful mainly when the monopole term is included.

◆ monopole_normalisation

bool occ::descriptors::RinseParams::monopole_normalisation {true}

Divide each radial level's power by its monopole (l = 0) power, which is that shell's spherically-averaged scattering.

This is what removes the resolution-dependent intensity envelope, and unlike a fitted envelope it is unbothered by systematic absences. Applied before log1p and l2.

◆ n_max

int occ::descriptors::RinseParams::n_max {16}

Number of radial shells; radial orders are n = 0 .. n_max-1.

◆ qmax_factor

double occ::descriptors::RinseParams::qmax_factor {1.2}

Reflections are gathered out to qmax_factor * q_max(), not q_max(), so that the Gaussian tails of the outermost shells are represented.

At least 1.

◆ radial_basis

RinseRadialBasis occ::descriptors::RinseParams::radial_basis {RinseRadialBasis::CVGaussian}

◆ radial_scale

double occ::descriptors::RinseParams::radial_scale {0.3}

Per-shell scale in A^-1.

Sets the shell spacing, and with n_max the resolution cutoff (see q_max()).


The documentation for this struct was generated from the following file:
  • /home/runner/work/occ/occ/include/occ/descriptors/rinse.h