Model Options#
- model_options:
- type:
dict
, optionalargument path:model_options
The parameters to define the nnsk,`mix` and dptb model.
- embedding:
- type:
dict
, optionalargument 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
possible choices:se2
,baseline
,deeph-e3
,e3baseline_5
,e3baseline_6
,slem
,lem
,e3baseline_nonlocal
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
- 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
:- 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
:- 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
:- 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
:- 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
:- 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
, optionalargument path:model_options/prediction
The parameters to define the prediction model
Depending on the value of method, different sub args are accepted.
- method:
-
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
, optionalargument 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
- 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
, optionalargument 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.