Descriptors
- r_cut (real)
-
The cut-off of the descriptor (in Å).
Default
r_cut=5.0
- desc_forces (logical)
-
Compute or not the force descriptors. Also the writting of the force descriptors is desactivated. Active for all descriptors. In the case
desc_forces=.false.
only the positions are read.Default
desc_forces=.true.
- descriptor_type (integer)
-
Type of descriptor to be used.
descriptor_type=1
G2descriptor_type=2
G3descriptor_type=3
Behlerdescriptor_type=4
Angular Fourier Series (AFS)descriptor_type=5
Smooth Overlap of Atomic Positions (SOAP)descriptor_type=6
Power Spectrum SO3descriptor_type=7
Bispectrum SO3descriptor_type=8
Power Spectrum SO4descriptor_type=9
bispectrum SO4descriptor_type=14
hybrid G2 + AFSdescriptor_type=19
hybrid G2 + bispectrum SO4descriptor_type=100
MTP\(^3\) (up to order \(M_{\mu,\nu}\), with \(\nu \le 3\))descriptor_type=200
PiP permutationally invariant polynomials.
Default
1
.
G2
To use G2, set descriptor_type=1
.
Parameters
- eta_max_g2 (integer)
-
The max value of \(\eta\). The grid will be taken between \(10^{-2}\) and this value.
Default
eta_max_g2=0.8
- n_g2_eta (integer)
-
The grid for \(\eta\) with the following generatig formulae:
\[\eta_p = 10^{-2} + \frac{p-1}{\textrm{n_g2_eta}}( \textrm{eta_max_g2}- 10^{-2})\]where \(p\) range strats to 1 up to
n_g2_eta
.Default
3
- n_g2_rs (integer)
-
The grid for \(r_s\) with the following generating formulae:
\[r_s^p = p-1\]where \(p\) range starts to 1 up to
n_g2_rs
.Default
1
G3
To use G3, set descriptor_type=2
.
Parameters
- n_g3_eta (integer)
-
The grid for \(\eta\) with the following generatig formulae:
\[\eta_p = 10^{-2} + \frac{p-1}{\textrm{n_g2_eta}}(1 - 10^{-2})\]where \(p\) range strats to 1 up to
n_g2_eta
.Default
3
- n_g3_lambda (integer)
-
the grid for \(\lambda\) with the following generating formulae:
\[\lambda_p = -1 + 2(p-1)\]where \(p\) range starts to 1 up to
n_g3_lambda
. Is highly recommended the valuen_g3_lambda
\(=2\) i. e. \(\lambda\) will have the value \(1\) and \(-1\).Default
2
- n_g3_zeta (integer)
-
The grid for \(\zeta\) with the following generating formulae:
\[\zeta_p = 2^{p-1}\]where \(p\) range starts to 1 up to
n_g3_zeta
.Default
2
Behler
To use Behler, set descriptor_type=3
.
Parameters
The parameters of the descriptors are controlled by the options of the case \(G2\) and \(G3\). Additional options are available:
- strict_behler (logical)
-
All the parameters are set-up automatically following one of the Behler’s paper.
Default
F
AFS
To use AFS, set descriptor_type=4
.
Parameters
The parameters of the descriptors are controlled by the options of the number of radial
channels and Tchbychev polynomials. There are two types of AFS
descriptors introduced by the option afs_type
.
- afs_type (integer)
-
afs_type=1
:integer
this option activates the orginal AFS published in the PRB paper cite{bartok2013}:\[\textrm{AFS}_{n,l}^j = \sum_{i,k} g_n(r_{ji}) g_n(r_{jk}) T_l (\cos{\theta_{ijk}})\]and has the dimension equal to
n_rbf
\(\times\)(n_cheb + 1)
. The \(g_n\) and \(T_l\) are the radial channels and Tchebychev polynomials, respectivelly. -
afs_type=2
:integer
this option activates a new AFS descriptor with strong coupling between the radial channels:\[\textrm{AFS}_{n,n^\prime, l}^j = \sum_{i,k} g_n(r_{ji}) g_{n^{\prime}}(r_{jk}) T_l (\cos{\theta_{ijk}})\]The dimension of this descriptor is equal to
n_rbf
\(^2\) \(\times\)(n_cheb + 1)
.
Default afs_type = 1
- n_rbf (integer)
-
The number of radial channels.
Default
n_rbf=4
- n_cheb (integer)
-
The number of Tchebychev polynomials.
Default
n_cheb=5
SOAP
To use SOAP, set descriptor_type=5
.
Parameters
The parameters of the descriptor are controlled by the options of the number of Gaussian
radial functions n_soap
and maximum of the spherical harmonics
l_max
.
If the nspecies_soap
is set, the number of components
are, if lsoap_diag=.true.
: (l_max + 1)
\(\times\)
n_soap
\(\cdot\) nspecies_soap
\(\times\)
(n_soap
\(\cdot\) nspecies_soap
+1)/2, whilst, if
lsoap_diag=.false.
the number of components is much less
(l_max + 1)
\(\times\) n_soap
\(\times\)
nspecies_soap
\(\times\) (nspecies_soap
+1)/2.
- n_soap (integer)
-
The number of Gaussians.
Default
n_soap=4
- l_max (integer)
-
The max l of the spherical harmonics.
Default
l_max=5
- lsoap_diag (logical)
-
The SOAP descriptor is diagonal in radial functions.
Default
lsoap_diag=.false.
- lsoap_lnorm (logical)
-
The SOAP descriptor is normalized in each \(l\)-angular channel by a factor \(1/(2l+1)\).
Default
lsoap_lnorm=.false.
- lsoap_norm (logical)
-
The SOAP descriptor is normalized.
Default
lsoap_norm=.false.
- r_cut_width_soap (double precision)
-
The intermediate regime for the cutoff function.
Default
r_cut_width_soap=0.5d0
Power Spectrum SO3
To use power spectrum SO3, set descriptor_type=6
.
Parameters
The parameters of this descriptor are controlled by the
number of radial functions, n_rbf
, and the angular momentum of spherical harmonics l_max
.
This descriptor has two radial function choices given by radial_pow_so3
flag.
The
dimension of the descriptor will be: n_rbf
\(\times\)
(l_max + 1)
if radial_pow_so3 = 1
and n_rbf + 1
\(\times\)
(l_max + 1)
if radial_pow_so3 = 2
- radial_pow_so3 (integer)
-
The type of radial function.
radial_pow_so3 = 1
is the default choice and give the original polynomial radial basis (the same as the default basis of AFS descritor) whilstradial_pow_so3 = 2
gives the radial basis based on Chebyshev polynomials described in refXXX. This option is common and acitve for others two descriptors: Power Spectrum SO3-3body and Bispectrum SO3 descriptors.Default
radial_pow_so3 = 1
- n_rbf (integer)
-
The number of Gaussian (radial) functions.
Default
n_rbf=4
- l_max (integer)
-
The max values of the angular moment.
Default
l_max=4
The \(n_{rbf} \times (1 + l_{\textrm{max}})\) or \((n_{rbf} + 1) \times (1 + l_{\textrm{max}})\) components of the power spectrum SO(3) descriptor of the \(j^{th}\) atom is written:
with \(n\) in the range \(0/1\) to \(n_{rbf}\), whilst \(l = 0, \ldots l_{max}\). The Wigner coefficients can be written:
the functions \(g_n(r_{ij})\) are polynomial basis functions (the same as the radial function on which AFS is built) or Chebyshev polynomials from refXXX. \(Y_{lm}\) is the spherical function in the Cartesian form.
Power Spectrum SO3 3body
To use power spectrum SO3 3body, set descriptor_type=603
. This descriptor follows the ideea
of 3 body descriptor proposed by refXXXdeGironcoli.
Parameters
The parameters of this descriptor are controlled by the
number of radial functions, n_rbf
, and the angular momentum of spherical harmonics l_max
.
This descriptor has two radial function choices given by radial_pow_so3
flag.
The dimension of the descriptor will be: \(n_{\textrm{rbf}}^2 \times (l_{\textrm{max}})\)
if radial_pow_so3 = 1
or \((1 + n_{\textrm{rbf}})^2 \times (l_{\textrm{max}})\)
if radial_pow_so3 = 2
- radial_pow_so3 (integer)
-
The same utility as described before for Power Spectrum SO3 descriptor.
Default
radial_pow_so3 = 1
- n_rbf (integer)
-
The same utility as described before for Power Spectrum SO3 descriptor.
Default
n_rbf=4
- l_max (integer)
-
The max values of the angular moment.
Default
l_max=4
The \(n_{rbf}^2 \times (1 + l_{\textrm{max}})\) or \((n_{rbf} + 1)^2 \times (1 + l_{\textrm{max}})\) components of the power spectrum SO(3) 3 body descriptor of the \(j^{th}\) atom is written:
with \(n_{1,é}\) are in the range of \(0/1\) to \(n_{rbf}\), whilst \(l = 0, \ldots l_{max}\). The Wigner coefficients are the same described for Power Spectrum SO3.
Bispectrum SO3
To use bispectrum SO3, set descriptor_type=7
.
Parameters
The parameters of the descriptor are controlled by the number of Gaussian radial
functions, n_rbf
, and maximal angular momentum of spherical
harmonics, (l_max
. The bispectrum SO3 descriptor components of
the \(i^{th}\) atom are obtained from the power spectrum SO3
coefficients \(c_{nlm}^i\):
where \(C_{m m_1 m_2}^{l l_1 l_2}\) is the 3-dimensional
Clebsch-Gordan coefficients. The dimension of this desriptor is
difficult to know beforehand. The naive estimation of the dimension
is n_rbf
\(\times\) (l_max + 1)
\(^3\). However, the
selection rules of the Clebsch-Gordan coefficients reduce drastically
this number e.g. for n_rbf=7
and l_max=5
the number of
components is 140
(instead ). This number follow the GC/Karakala
convention and take only the diagonal CG coefficients i.e.
\(l_1=l_2\) in previous equation. This condition can be released
using lbso3_diag=.false.
(in the above mentioned the dimension
becomes 483
). For numerical reasons, is highly recommended to use
ONLY the diagonal form.
- n_rbf (integer)
-
The number of Gaussian (radial) functions.
Default
n_rbf=4
- l_max (integer)
-
The max values of the angular moment.
Default
l_max=4
- lbso3_diag (logical)
-
If are taken the full bispectrum coeffcient (overcomplete),
.false.
or only diagonal \(l_1=l_2\).true.
Default
lbso3_diag=.false.
Bispectrum SO4
To use bispectrum SO4, set descriptor_type=9
.
Parameters
The parameters of the descriptors are controlled by maximum angular moment \(j_{max}\). The dimension is not easy to guess. Moreover, it depends on the choice on diagonal (\(j_1=j_2\)) or full the complete set of \(j_1, j_2\).
- j_max (integer)
-
The maximum componenet of the spectral function.
Default
j_max=1.5
- inv_r0_input (real)
-
The value of the maximum projection at north pole in \(\pi\) units. The final value that will be used in code will be multiplied by \(\pi\). The value should be slightly lower that 1 but strictly positive. The default value is suggested by the brilliant paper of Bartok et al. If you do not have ideea about the \(SO(4)\) theory, trust the default value.
Default
inv_r0_input=
1.d0 - 0.02/
\(\pi\)
- lbso4_diag (logical)
-
If
.true.
only the diagonal components are selected (as in GAP). If.false.
is SNAP-like way and all the components are selected. It should be notted that the bi-spectrum is overcomplete descriptor and only diagonal components are mathematically justified. However, in the original SNAP potential of Thompsson is was used in full version.Default
lbso4_diag=.false.
MTP
To use MTP, set descriptor_type=100
.
Parameters
The parameters of the descriptors are controlled by minimum and the maximum degree of the
polynomials mtp_poly_min
and mtp_poly_max
. The degree of the
generating radial function will be the internal parameter
mtp_rad_order =mtp_poly_max - mtp_poly_min +1
. The dimension of
the descriptor i.e. number of basis function is given by
mtp_dim=mtp_rad_order + 2*mtp_rad_order**2 + mtp_rad_order**3
.
- mtp_poly_min (integer)
-
The minimum degree of the radial function
Default
mtp_poly_min=2
- mtp_poly_max (integer)
-
The minimum degree of the radial function
Default
mtp_poly_max=4
- lambda_krr (real)
-
The regularization using \(L^2\) or \(L^1\) norm. It is active only for cases
mld_fit_type=0
(for a fixed positive value oflambda_krr
andmld_fit_type=10
(for a grid). For details see the correspoding documentation. For negative values this option is skipped and standard fit is performed.Default
lambda_krr=-1.d0
PiP
To use PiP (permutationally invariant polynomials), set descriptor_type=200
.
Note
The current implementation of PiP treat only one single type of atoms
Parameters
This descriptors is based by a cluster expansion of the system energy:
The total energy is expressed as a sum of one-atom \(V_1\) ,
pair \(V_2\), threeatom (angle) \(V_3\) terms, and so forth. The order of expansion, or even a
combination of expantion terms are driven by l_body_order
. This version of Milady
enables a developement
up to the fourth order. The number of PiP terms for each term are driven by body_D_max
,
bond_dist_transform
, bond_beta
and bond_dist_ann
.
- l_body_order (logical vector)
-
This logical vertor of dimention 4 design the order of cluster expension. For example
l_body_order(2)=.true.
,l_body_order(3)=.true.
,l_body_order(4)=.false.
enable a cluster expension up to the third order.Default
l_body_order(:)=.true.
- body_D_max (integer vector)
-
This integer vector fix the number of PiP terms for each term of expansion.
body_D_max(2)
for \(V_2\),body_D_max(3)
for \(V_3\) andbody_D_max(4)
for \(V_4\). A reasonable choice can be 20, 9, 7. Try more less depending on th design that you made for your expension.Default
body_D_max(i)=i
- bond_dist_transform (integer)
-
TODO: choose 3
Default:
bond_dist_transform=3
- bond_beta (real)
-
TODO: choose 2.0
Default:
bond_beta=2.0
- bond_dist_ann
-
TODO: choose bond_dist_ann=1.0
Default:
bond_dist_ann=1.0