Model Options

Model Options#

model_options:
type: dict, optional
argument path: model_options

The parameters to define the nnsk,`mix` and dptb model.

embedding:
type: dict, optional
argument path: model_options/embedding

The parameters to define the embedding model.

Depending on the value of method, different sub args are accepted.

method:
type: str (flag key), default: se2
argument path: model_options/embedding/method

The parameters to define the embedding model.

When method is set to se2:

rs:
type: float | int
argument path: model_options/embedding[se2]/rs

The soft cutoff where the smooth function starts.

rc:
type: float | int
argument path: model_options/embedding[se2]/rc

The hard cutoff where the smooth function value ~0.0

radial_net:
type: dict
argument path: model_options/embedding[se2]/radial_net

network to build the descriptors.

neurons:
type: list
argument path: model_options/embedding[se2]/radial_net/neurons

the size of nn for descriptor

activation:
type: str, optional, default: tanh
argument path: model_options/embedding[se2]/radial_net/activation

activation

if_batch_normalized:
type: bool, optional, default: False
argument path: model_options/embedding[se2]/radial_net/if_batch_normalized

whether to turn on the batch normalization.

n_axis:
type: int | NoneType, optional, default: None
argument path: model_options/embedding[se2]/n_axis

the out axis shape of the deepmd-se2 descriptor.

When method is set to baseline:

p:
type: float | int
argument path: model_options/embedding[baseline]/p
rc:
type: float | int
argument path: model_options/embedding[baseline]/rc
n_basis:
type: int
argument path: model_options/embedding[baseline]/n_basis
n_radial:
type: int
argument path: model_options/embedding[baseline]/n_radial
n_sqrt_radial:
type: int
argument path: model_options/embedding[baseline]/n_sqrt_radial
n_layer:
type: int
argument path: model_options/embedding[baseline]/n_layer
radial_net:
type: dict
argument path: model_options/embedding[baseline]/radial_net
neurons:
type: list
argument path: model_options/embedding[baseline]/radial_net/neurons
activation:
type: str, optional, default: tanh
argument path: model_options/embedding[baseline]/radial_net/activation
if_batch_normalized:
type: bool, optional, default: False
argument path: model_options/embedding[baseline]/radial_net/if_batch_normalized
hidden_net:
type: dict
argument path: model_options/embedding[baseline]/hidden_net
neurons:
type: list
argument path: model_options/embedding[baseline]/hidden_net/neurons
activation:
type: str, optional, default: tanh
argument path: model_options/embedding[baseline]/hidden_net/activation
if_batch_normalized:
type: bool, optional, default: False
argument path: model_options/embedding[baseline]/hidden_net/if_batch_normalized
n_axis:
type: int | NoneType, optional, default: None
argument path: model_options/embedding[baseline]/n_axis

When method is set to deeph-e3:

irreps_embed:
type: str, optional, default: 64x0e
argument path: model_options/embedding[deeph-e3]/irreps_embed
irreps_mid:
type: str, optional, default: 64x0e+32x1o+16x2e+8x3o+8x4e+4x5o
argument path: model_options/embedding[deeph-e3]/irreps_mid
lmax:
type: int, optional, default: 3
argument path: model_options/embedding[deeph-e3]/lmax
n_basis:
type: int, optional, default: 128
argument path: model_options/embedding[deeph-e3]/n_basis
rc:
type: float
argument path: model_options/embedding[deeph-e3]/rc
n_layer:
type: int, optional, default: 3
argument path: model_options/embedding[deeph-e3]/n_layer

When method is set to e3baseline_5:

irreps_hidden:
type: str
argument path: model_options/embedding[e3baseline_5]/irreps_hidden
lmax:
type: int
argument path: model_options/embedding[e3baseline_5]/lmax
avg_num_neighbors:
type: float | int
argument path: model_options/embedding[e3baseline_5]/avg_num_neighbors
r_max:
type: dict | float | int
argument path: model_options/embedding[e3baseline_5]/r_max
n_layers:
type: int
argument path: model_options/embedding[e3baseline_5]/n_layers
n_radial_basis:
type: int, optional, default: 10
argument path: model_options/embedding[e3baseline_5]/n_radial_basis
PolynomialCutoff_p:
type: int, optional, default: 6
argument path: model_options/embedding[e3baseline_5]/PolynomialCutoff_p

The order of polynomial cutoff function. Default: 6

cutoff_type:
type: str, optional, default: polynomial
argument path: model_options/embedding[e3baseline_5]/cutoff_type

The type of cutoff function. Default: polynomial

env_embed_multiplicity:
type: int, optional, default: 1
argument path: model_options/embedding[e3baseline_5]/env_embed_multiplicity
tp_radial_emb:
type: bool, optional, default: False
argument path: model_options/embedding[e3baseline_5]/tp_radial_emb

Whether to use tensor product radial embedding.

tp_radial_channels:
type: list, optional, default: [128, 128]
argument path: model_options/embedding[e3baseline_5]/tp_radial_channels

The number of channels in tensor product radial embedding.

latent_channels:
type: list, optional, default: [128, 128]
argument path: model_options/embedding[e3baseline_5]/latent_channels

The number of channels in latent embedding.

latent_dim:
type: int, optional, default: 256
argument path: model_options/embedding[e3baseline_5]/latent_dim

The dimension of latent embedding.

res_update:
type: bool, optional, default: True
argument path: model_options/embedding[e3baseline_5]/res_update

Whether to use residual update.

res_update_ratios:
type: float, optional, default: 0.5
argument path: model_options/embedding[e3baseline_5]/res_update_ratios

The ratios of residual update, should in (0,1).

res_update_ratios_learnable:
type: bool, optional, default: False
argument path: model_options/embedding[e3baseline_5]/res_update_ratios_learnable

Whether to make the ratios of residual update learnable.

When method is set to e3baseline_6:

irreps_hidden:
type: str
argument path: model_options/embedding[e3baseline_6]/irreps_hidden
lmax:
type: int
argument path: model_options/embedding[e3baseline_6]/lmax
avg_num_neighbors:
type: float | int
argument path: model_options/embedding[e3baseline_6]/avg_num_neighbors
r_max:
type: dict | float | int
argument path: model_options/embedding[e3baseline_6]/r_max
n_layers:
type: int
argument path: model_options/embedding[e3baseline_6]/n_layers
n_radial_basis:
type: int, optional, default: 10
argument path: model_options/embedding[e3baseline_6]/n_radial_basis
PolynomialCutoff_p:
type: int, optional, default: 6
argument path: model_options/embedding[e3baseline_6]/PolynomialCutoff_p

The order of polynomial cutoff function. Default: 6

cutoff_type:
type: str, optional, default: polynomial
argument path: model_options/embedding[e3baseline_6]/cutoff_type

The type of cutoff function. Default: polynomial

env_embed_multiplicity:
type: int, optional, default: 1
argument path: model_options/embedding[e3baseline_6]/env_embed_multiplicity
tp_radial_emb:
type: bool, optional, default: False
argument path: model_options/embedding[e3baseline_6]/tp_radial_emb

Whether to use tensor product radial embedding.

tp_radial_channels:
type: list, optional, default: [128, 128]
argument path: model_options/embedding[e3baseline_6]/tp_radial_channels

The number of channels in tensor product radial embedding.

latent_channels:
type: list, optional, default: [128, 128]
argument path: model_options/embedding[e3baseline_6]/latent_channels

The number of channels in latent embedding.

latent_dim:
type: int, optional, default: 256
argument path: model_options/embedding[e3baseline_6]/latent_dim

The dimension of latent embedding.

res_update:
type: bool, optional, default: True
argument path: model_options/embedding[e3baseline_6]/res_update

Whether to use residual update.

res_update_ratios:
type: float, optional, default: 0.5
argument path: model_options/embedding[e3baseline_6]/res_update_ratios

The ratios of residual update, should in (0,1).

res_update_ratios_learnable:
type: bool, optional, default: False
argument path: model_options/embedding[e3baseline_6]/res_update_ratios_learnable

Whether to make the ratios of residual update learnable.

When method is set to slem:

irreps_hidden:
type: str
argument path: model_options/embedding[slem]/irreps_hidden
avg_num_neighbors:
type: float | int
argument path: model_options/embedding[slem]/avg_num_neighbors
r_max:
type: dict | float | int
argument path: model_options/embedding[slem]/r_max
n_layers:
type: int
argument path: model_options/embedding[slem]/n_layers
n_radial_basis:
type: int, optional, default: 10
argument path: model_options/embedding[slem]/n_radial_basis
PolynomialCutoff_p:
type: int, optional, default: 6
argument path: model_options/embedding[slem]/PolynomialCutoff_p

The order of polynomial cutoff function. Default: 6

cutoff_type:
type: str, optional, default: polynomial
argument path: model_options/embedding[slem]/cutoff_type

The type of cutoff function. Default: polynomial

env_embed_multiplicity:
type: int, optional, default: 10
argument path: model_options/embedding[slem]/env_embed_multiplicity
tp_radial_emb:
type: bool, optional, default: False
argument path: model_options/embedding[slem]/tp_radial_emb

Whether to use tensor product radial embedding.

tp_radial_channels:
type: list, optional, default: [32]
argument path: model_options/embedding[slem]/tp_radial_channels

The number of channels in tensor product radial embedding.

latent_channels:
type: list, optional, default: [32]
argument path: model_options/embedding[slem]/latent_channels

The number of channels in latent embedding.

latent_dim:
type: int, optional, default: 64
argument path: model_options/embedding[slem]/latent_dim

The dimension of latent embedding.

res_update:
type: bool, optional, default: True
argument path: model_options/embedding[slem]/res_update

Whether to use residual update.

res_update_ratios:
type: float, optional, default: 0.5
argument path: model_options/embedding[slem]/res_update_ratios

The ratios of residual update, should in (0,1).

res_update_ratios_learnable:
type: bool, optional, default: False
argument path: model_options/embedding[slem]/res_update_ratios_learnable

Whether to make the ratios of residual update learnable.

When method is set to lem:

irreps_hidden:
type: str
argument path: model_options/embedding[lem]/irreps_hidden
avg_num_neighbors:
type: float | int
argument path: model_options/embedding[lem]/avg_num_neighbors
r_max:
type: dict | float | int
argument path: model_options/embedding[lem]/r_max
n_layers:
type: int
argument path: model_options/embedding[lem]/n_layers
n_radial_basis:
type: int, optional, default: 10
argument path: model_options/embedding[lem]/n_radial_basis
PolynomialCutoff_p:
type: int, optional, default: 6
argument path: model_options/embedding[lem]/PolynomialCutoff_p

The order of polynomial cutoff function. Default: 6

cutoff_type:
type: str, optional, default: polynomial
argument path: model_options/embedding[lem]/cutoff_type

The type of cutoff function. Default: polynomial

env_embed_multiplicity:
type: int, optional, default: 10
argument path: model_options/embedding[lem]/env_embed_multiplicity
tp_radial_emb:
type: bool, optional, default: False
argument path: model_options/embedding[lem]/tp_radial_emb

Whether to use tensor product radial embedding.

tp_radial_channels:
type: list, optional, default: [32]
argument path: model_options/embedding[lem]/tp_radial_channels

The number of channels in tensor product radial embedding.

latent_channels:
type: list, optional, default: [32]
argument path: model_options/embedding[lem]/latent_channels

The number of channels in latent embedding.

latent_dim:
type: int, optional, default: 64
argument path: model_options/embedding[lem]/latent_dim

The dimension of latent embedding.

res_update:
type: bool, optional, default: True
argument path: model_options/embedding[lem]/res_update

Whether to use residual update.

res_update_ratios:
type: float, optional, default: 0.5
argument path: model_options/embedding[lem]/res_update_ratios

The ratios of residual update, should in (0,1).

res_update_ratios_learnable:
type: bool, optional, default: False
argument path: model_options/embedding[lem]/res_update_ratios_learnable

Whether to make the ratios of residual update learnable.

When method is set to e3baseline_nonlocal:

irreps_hidden:
type: str
argument path: model_options/embedding[e3baseline_nonlocal]/irreps_hidden
lmax:
type: int
argument path: model_options/embedding[e3baseline_nonlocal]/lmax
avg_num_neighbors:
type: float | int
argument path: model_options/embedding[e3baseline_nonlocal]/avg_num_neighbors
r_max:
type: dict | float | int
argument path: model_options/embedding[e3baseline_nonlocal]/r_max
n_layers:
type: int
argument path: model_options/embedding[e3baseline_nonlocal]/n_layers
n_radial_basis:
type: int, optional, default: 10
argument path: model_options/embedding[e3baseline_nonlocal]/n_radial_basis
PolynomialCutoff_p:
type: int, optional, default: 6
argument path: model_options/embedding[e3baseline_nonlocal]/PolynomialCutoff_p

The order of polynomial cutoff function. Default: 6

cutoff_type:
type: str, optional, default: polynomial
argument path: model_options/embedding[e3baseline_nonlocal]/cutoff_type

The type of cutoff function. Default: polynomial

env_embed_multiplicity:
type: int, optional, default: 1
argument path: model_options/embedding[e3baseline_nonlocal]/env_embed_multiplicity
tp_radial_emb:
type: bool, optional, default: False
argument path: model_options/embedding[e3baseline_nonlocal]/tp_radial_emb

Whether to use tensor product radial embedding.

tp_radial_channels:
type: list, optional, default: [128, 128]
argument path: model_options/embedding[e3baseline_nonlocal]/tp_radial_channels

The number of channels in tensor product radial embedding.

latent_channels:
type: list, optional, default: [128, 128]
argument path: model_options/embedding[e3baseline_nonlocal]/latent_channels

The number of channels in latent embedding.

latent_dim:
type: int, optional, default: 256
argument path: model_options/embedding[e3baseline_nonlocal]/latent_dim

The dimension of latent embedding.

res_update:
type: bool, optional, default: True
argument path: model_options/embedding[e3baseline_nonlocal]/res_update

Whether to use residual update.

res_update_ratios:
type: float, optional, default: 0.5
argument path: model_options/embedding[e3baseline_nonlocal]/res_update_ratios

The ratios of residual update, should in (0,1).

res_update_ratios_learnable:
type: bool, optional, default: False
argument path: model_options/embedding[e3baseline_nonlocal]/res_update_ratios_learnable

Whether to make the ratios of residual update learnable.

prediction:
type: dict, optional
argument path: model_options/prediction

The parameters to define the prediction model

Depending on the value of method, different sub args are accepted.

method:
type: str (flag key)
argument path: model_options/prediction/method
possible choices: sktb, e3tb

The options to indicate the prediction model. Can be sktb or e3tb.

When method is set to sktb:

neural network options for prediction model.

neurons:
type: list
argument path: model_options/prediction[sktb]/neurons

neurons in the neural network.

activation:
type: str, optional, default: tanh
argument path: model_options/prediction[sktb]/activation

activation function.

if_batch_normalized:
type: bool, optional, default: False
argument path: model_options/prediction[sktb]/if_batch_normalized

if to turn on batch normalization

When method is set to e3tb:

neural network options for prediction model.

scales_trainable:
type: bool, optional, default: False
argument path: model_options/prediction[e3tb]/scales_trainable

whether to scale the trianing target.

shifts_trainable:
type: bool, optional, default: False
argument path: model_options/prediction[e3tb]/shifts_trainable

whether to shift the training target.

neurons:
type: list | NoneType, optional, default: None
argument path: model_options/prediction[e3tb]/neurons

neurons in the neural network.

activation:
type: str, optional, default: tanh
argument path: model_options/prediction[e3tb]/activation

activation function.

if_batch_normalized:
type: bool, optional, default: False
argument path: model_options/prediction[e3tb]/if_batch_normalized

if to turn on batch normalization

nnsk:
type: dict, optional
argument path: model_options/nnsk

The parameters to define the nnsk model.

onsite:
type: dict
argument path: model_options/nnsk/onsite

The onsite options to define the onsite of nnsk model.

Depending on the value of method, different sub args are accepted.

method:
type: str (flag key)
argument path: model_options/nnsk/onsite/method
possible choices: strain, uniform, NRL, none
The onsite correction mode, the onsite energy is expressed as the energy of isolated atoms plus the model correction, the correction mode are:

Default: none: use the database onsite energy value. - strain: The strain mode correct the onsite matrix densly by $$H_{i,i}^{lm,l^prime m^prime} = epsilon_l^0 delta_{ll^prime}delta_{mm^prime} + sum_p sum_{zeta} Big[ mathcal{U}_{zeta}(hat{r}_{ip}) epsilon_{ll^prime zeta} Big]_{mm^prime}$$ which is also parameterized as a set of Slater-Koster like integrals.

  • uniform: The correction is a energy shift respect of orbital of each atom. Which is formally written as:

    $$H_{i,i}^{lm,l^prime m^prime} = (epsilon_l^0+epsilon_l^prime) delta_{ll^prime}delta_{mm^prime}$$ Where $epsilon_l^0$ is the isolated energy level from the DeePTB onsite database, and $epsilon_l^prime$ is the parameters to fit.

  • NRL: use the NRL-TB formula.

When method is set to strain:

rs:
type: float, optional, default: 6.0
argument path: model_options/nnsk/onsite[strain]/rs

The smooth cutoff fc for strain model. rs is where fc = 0.5

w:
type: float, optional, default: 0.1
argument path: model_options/nnsk/onsite[strain]/w

The decay factor of fc for strain and nrl model.

When method is set to uniform:

When method is set to NRL:

rs:
type: float, optional, default: 6.0
argument path: model_options/nnsk/onsite[NRL]/rs

The smooth cutoff of fc for nrl model, rc is where fc ~ 0.0

w:
type: float, optional, default: 0.1
argument path: model_options/nnsk/onsite[NRL]/w

The decay factor of fc for strain and nrl model.

lda:
type: float, optional, default: 1.0
argument path: model_options/nnsk/onsite[NRL]/lda

The lambda type encoding value in nrl model. now only support elementary substance

When method is set to none:

hopping:
type: dict
argument path: model_options/nnsk/hopping

The hopping options to define the hopping of nnsk model.

Depending on the value of method, different sub args are accepted.

method:
type: str (flag key)
argument path: model_options/nnsk/hopping/method
The hopping formula.
  • powerlaw: the powerlaw formula for bond length dependence for sk integrals.

  • varTang96: a variational formula based on Tang96 formula.

  • NRL0: the old version of NRL formula for overlap, we set overlap and hopping share same options.

  • NRL1: the new version of NRL formula for overlap.

When method is set to powerlaw:

rs:
type: float, optional, default: 6.0
argument path: model_options/nnsk/hopping[powerlaw]/rs

The cut-off for smooth function fc for powerlaw and varTang96, fc(rs)=0.5

w:
type: float, optional, default: 0.1
argument path: model_options/nnsk/hopping[powerlaw]/w

The decay w in fc

When method is set to poly1pow:

rs:
type: float, optional, default: 6.0
argument path: model_options/nnsk/hopping[poly1pow]/rs

The cut-off for smooth function fc for powerlaw and varTang96, fc(rs)=0.5

w:
type: float, optional, default: 0.1
argument path: model_options/nnsk/hopping[poly1pow]/w

The decay w in fc

When method is set to poly2pow:

rs:
type: float, optional, default: 6.0
argument path: model_options/nnsk/hopping[poly2pow]/rs

The cut-off for smooth function fc for powerlaw and varTang96, fc(rs)=0.5

w:
type: float, optional, default: 0.1
argument path: model_options/nnsk/hopping[poly2pow]/w

The decay w in fc

When method is set to poly3pow:

rs:
type: float, optional, default: 6.0
argument path: model_options/nnsk/hopping[poly3pow]/rs

The cut-off for smooth function fc for powerlaw and varTang96, fc(rs)=0.5

w:
type: float, optional, default: 0.1
argument path: model_options/nnsk/hopping[poly3pow]/w

The decay w in fc

When method is set to poly2exp:

rs:
type: float, optional, default: 6.0
argument path: model_options/nnsk/hopping[poly2exp]/rs

The cut-off for smooth function fc for powerlaw and varTang96, fc(rs)=0.5

w:
type: float, optional, default: 0.1
argument path: model_options/nnsk/hopping[poly2exp]/w

The decay w in fc

When method is set to varTang96:

rs:
type: float, optional, default: 6.0
argument path: model_options/nnsk/hopping[varTang96]/rs

The cut-off for smooth function fc for powerlaw and varTang96, fc(rs)=0.5

w:
type: float, optional, default: 0.1
argument path: model_options/nnsk/hopping[varTang96]/w

The decay w in fc

When method is set to NRL0:

rs:
type: float, optional, default: 6.0
argument path: model_options/nnsk/hopping[NRL0]/rs

The cut-off for smooth function fc for NRL, fc(rc) = 0.

w:
type: float, optional, default: 0.1
argument path: model_options/nnsk/hopping[NRL0]/w

The decay w in fc

When method is set to NRL1:

rs:
type: float, optional, default: 6.0
argument path: model_options/nnsk/hopping[NRL1]/rs

The cut-off for smooth function fc for NRL, fc(rc) = 0.

w:
type: float, optional, default: 0.1
argument path: model_options/nnsk/hopping[NRL1]/w

The decay w in fc

When method is set to custom:

soc:
type: dict, optional, default: {}
argument path: model_options/nnsk/soc
The soc options to define the soc of nnsk model,

Default: {} # empty dict

  • {‘method’:’none’} : use database soc value.

  • {‘method’:uniform} : set lambda_il; assign a soc lambda value for each orbital -l on each atomtype i; l=0,1,2 for s p d.

freeze:
type: str | bool | list, optional, default: False
argument path: model_options/nnsk/freeze

The parameters to define the freeze of nnsk model can be bool and string and list.

Default: False

  • True: freeze all the nnsk parameters

  • False: train all the nnsk parameters

  • ‘hopping’,’onsite’,’overlap’ and ‘soc’ to freeze the corresponding parameters.

  • list of the strings e.g. [‘overlap’,’soc’] to freeze both overlap and soc parameters.

std:
type: float, optional, default: 0.01
argument path: model_options/nnsk/std

The std value to initialize the nnsk parameters. Default: 0.01

push:
type: dict | bool, optional, default: False
argument path: model_options/nnsk/push

The parameters to define the push the soft cutoff of nnsk model.

rs_thr:
type: float | int, optional, default: 0.0
argument path: model_options/nnsk/push/rs_thr

The step size for cutoff value for smooth function in the nnsk anlytical formula.

rc_thr:
type: float | int, optional, default: 0.0
argument path: model_options/nnsk/push/rc_thr

The step size for cutoff value for smooth function in the nnsk anlytical formula.

w_thr:
type: float | int, optional, default: 0.0
argument path: model_options/nnsk/push/w_thr

The step size for decay factor w.

ovp_thr:
type: float | int, optional, default: 0.0
argument path: model_options/nnsk/push/ovp_thr

The step size for overlap reduction

period:
type: int, optional, default: 100
argument path: model_options/nnsk/push/period

the interval of iterations to modify the rs w values.

dftbsk:
type: dict, optional
argument path: model_options/dftbsk

The parameters to define the dftb sk model.

skdata:
type: str
argument path: model_options/dftbsk/skdata

The path to the skfile or sk database.

r_max:
type: float
argument path: model_options/dftbsk/r_max

the cutoff values to use sk files.