Model Options#
- model_options:
- type:
dict, optionalargument path:model_optionsThe parameters to define the nnsk,`mix` and dptb model.
- embedding:
- type:
dict, optionalargument path:model_options/embeddingThe parameters to define the embedding model.
Depending on the value of method, different sub args are accepted.
- method:
- type:
str(flag key), default:se2argument path:model_options/embedding/methodpossible choices:se2,baseline,deeph-e3,e3baseline_5,e3baseline_6,slem,lem,e3baseline_nonlocalThe parameters to define the embedding model.
When method is set to
se2:- rs:
- type:
float|intargument path:model_options/embedding[se2]/rsThe soft cutoff where the smooth function starts.
- rc:
- type:
float|intargument path:model_options/embedding[se2]/rcThe hard cutoff where the smooth function value ~0.0
- radial_net:
- type:
dictargument path:model_options/embedding[se2]/radial_netnetwork to build the descriptors.
- neurons:
- type:
listargument path:model_options/embedding[se2]/radial_net/neuronsthe size of nn for descriptor
- activation:
- type:
str, optional, default:tanhargument path:model_options/embedding[se2]/radial_net/activationactivation
- if_batch_normalized:
- type:
bool, optional, default:Falseargument path:model_options/embedding[se2]/radial_net/if_batch_normalizedwhether to turn on the batch normalization.
- n_axis:
- type:
int|NoneType, optional, default:Noneargument path:model_options/embedding[se2]/n_axisthe out axis shape of the deepmd-se2 descriptor.
When method is set to
baseline:- p:
- type:
float|intargument path:model_options/embedding[baseline]/p
- rc:
- type:
float|intargument path:model_options/embedding[baseline]/rc
- n_basis:
- type:
intargument path:model_options/embedding[baseline]/n_basis
- n_radial:
- type:
intargument path:model_options/embedding[baseline]/n_radial
- n_sqrt_radial:
- type:
intargument path:model_options/embedding[baseline]/n_sqrt_radial
- n_layer:
- type:
intargument path:model_options/embedding[baseline]/n_layer
- radial_net:
- type:
dictargument path:model_options/embedding[baseline]/radial_net- neurons:
- type:
listargument path:model_options/embedding[baseline]/radial_net/neurons
- activation:
- type:
str, optional, default:tanhargument path:model_options/embedding[baseline]/radial_net/activation
- if_batch_normalized:
- type:
bool, optional, default:Falseargument path:model_options/embedding[baseline]/radial_net/if_batch_normalized
- n_axis:
- type:
int|NoneType, optional, default:Noneargument path:model_options/embedding[baseline]/n_axis
When method is set to
deeph-e3:- irreps_embed:
- type:
str, optional, default:64x0eargument path:model_options/embedding[deeph-e3]/irreps_embed
- irreps_mid:
- type:
str, optional, default:64x0e+32x1o+16x2e+8x3o+8x4e+4x5oargument path:model_options/embedding[deeph-e3]/irreps_mid
- lmax:
- type:
int, optional, default:3argument path:model_options/embedding[deeph-e3]/lmax
- n_basis:
- type:
int, optional, default:128argument path:model_options/embedding[deeph-e3]/n_basis
- rc:
- type:
floatargument path:model_options/embedding[deeph-e3]/rc
- n_layer:
- type:
int, optional, default:3argument path:model_options/embedding[deeph-e3]/n_layer
When method is set to
e3baseline_5:- lmax:
- type:
intargument path:model_options/embedding[e3baseline_5]/lmax
- avg_num_neighbors:
- type:
float|intargument path:model_options/embedding[e3baseline_5]/avg_num_neighbors
- r_max:
- type:
dict|float|intargument path:model_options/embedding[e3baseline_5]/r_max
- n_layers:
- type:
intargument path:model_options/embedding[e3baseline_5]/n_layers
- n_radial_basis:
- type:
int, optional, default:10argument path:model_options/embedding[e3baseline_5]/n_radial_basis
- PolynomialCutoff_p:
- type:
int, optional, default:6argument path:model_options/embedding[e3baseline_5]/PolynomialCutoff_pThe order of polynomial cutoff function. Default: 6
- cutoff_type:
- type:
str, optional, default:polynomialargument path:model_options/embedding[e3baseline_5]/cutoff_typeThe type of cutoff function. Default: polynomial
- env_embed_multiplicity:
- type:
int, optional, default:1argument path:model_options/embedding[e3baseline_5]/env_embed_multiplicity
- tp_radial_emb:
- type:
bool, optional, default:Falseargument path:model_options/embedding[e3baseline_5]/tp_radial_embWhether to use tensor product radial embedding.
- tp_radial_channels:
- type:
list, optional, default:[128, 128]argument path:model_options/embedding[e3baseline_5]/tp_radial_channelsThe number of channels in tensor product radial embedding.
- latent_channels:
- type:
list, optional, default:[128, 128]argument path:model_options/embedding[e3baseline_5]/latent_channelsThe number of channels in latent embedding.
- latent_dim:
- type:
int, optional, default:256argument path:model_options/embedding[e3baseline_5]/latent_dimThe dimension of latent embedding.
- res_update:
- type:
bool, optional, default:Trueargument path:model_options/embedding[e3baseline_5]/res_updateWhether to use residual update.
- res_update_ratios:
- type:
float, optional, default:0.5argument path:model_options/embedding[e3baseline_5]/res_update_ratiosThe ratios of residual update, should in (0,1).
- res_update_ratios_learnable:
- type:
bool, optional, default:Falseargument path:model_options/embedding[e3baseline_5]/res_update_ratios_learnableWhether to make the ratios of residual update learnable.
When method is set to
e3baseline_6:- lmax:
- type:
intargument path:model_options/embedding[e3baseline_6]/lmax
- avg_num_neighbors:
- type:
float|intargument path:model_options/embedding[e3baseline_6]/avg_num_neighbors
- r_max:
- type:
dict|float|intargument path:model_options/embedding[e3baseline_6]/r_max
- n_layers:
- type:
intargument path:model_options/embedding[e3baseline_6]/n_layers
- n_radial_basis:
- type:
int, optional, default:10argument path:model_options/embedding[e3baseline_6]/n_radial_basis
- PolynomialCutoff_p:
- type:
int, optional, default:6argument path:model_options/embedding[e3baseline_6]/PolynomialCutoff_pThe order of polynomial cutoff function. Default: 6
- cutoff_type:
- type:
str, optional, default:polynomialargument path:model_options/embedding[e3baseline_6]/cutoff_typeThe type of cutoff function. Default: polynomial
- env_embed_multiplicity:
- type:
int, optional, default:1argument path:model_options/embedding[e3baseline_6]/env_embed_multiplicity
- tp_radial_emb:
- type:
bool, optional, default:Falseargument path:model_options/embedding[e3baseline_6]/tp_radial_embWhether to use tensor product radial embedding.
- tp_radial_channels:
- type:
list, optional, default:[128, 128]argument path:model_options/embedding[e3baseline_6]/tp_radial_channelsThe number of channels in tensor product radial embedding.
- latent_channels:
- type:
list, optional, default:[128, 128]argument path:model_options/embedding[e3baseline_6]/latent_channelsThe number of channels in latent embedding.
- latent_dim:
- type:
int, optional, default:256argument path:model_options/embedding[e3baseline_6]/latent_dimThe dimension of latent embedding.
- res_update:
- type:
bool, optional, default:Trueargument path:model_options/embedding[e3baseline_6]/res_updateWhether to use residual update.
- res_update_ratios:
- type:
float, optional, default:0.5argument path:model_options/embedding[e3baseline_6]/res_update_ratiosThe ratios of residual update, should in (0,1).
- res_update_ratios_learnable:
- type:
bool, optional, default:Falseargument path:model_options/embedding[e3baseline_6]/res_update_ratios_learnableWhether to make the ratios of residual update learnable.
When method is set to
slem:- avg_num_neighbors:
- type:
float|intargument path:model_options/embedding[slem]/avg_num_neighbors
- r_max:
- type:
dict|float|intargument path:model_options/embedding[slem]/r_max
- n_layers:
- type:
intargument path:model_options/embedding[slem]/n_layers
- n_radial_basis:
- type:
int, optional, default:10argument path:model_options/embedding[slem]/n_radial_basis
- PolynomialCutoff_p:
- type:
int, optional, default:6argument path:model_options/embedding[slem]/PolynomialCutoff_pThe order of polynomial cutoff function. Default: 6
- cutoff_type:
- type:
str, optional, default:polynomialargument path:model_options/embedding[slem]/cutoff_typeThe type of cutoff function. Default: polynomial
- env_embed_multiplicity:
- type:
int, optional, default:10argument path:model_options/embedding[slem]/env_embed_multiplicity
- tp_radial_emb:
- type:
bool, optional, default:Falseargument path:model_options/embedding[slem]/tp_radial_embWhether to use tensor product radial embedding.
- tp_radial_channels:
- type:
list, optional, default:[32]argument path:model_options/embedding[slem]/tp_radial_channelsThe number of channels in tensor product radial embedding.
- latent_channels:
- type:
list, optional, default:[32]argument path:model_options/embedding[slem]/latent_channelsThe number of channels in latent embedding.
- latent_dim:
- type:
int, optional, default:64argument path:model_options/embedding[slem]/latent_dimThe dimension of latent embedding.
- res_update:
- type:
bool, optional, default:Trueargument path:model_options/embedding[slem]/res_updateWhether to use residual update.
- res_update_ratios:
- type:
float, optional, default:0.5argument path:model_options/embedding[slem]/res_update_ratiosThe ratios of residual update, should in (0,1).
- res_update_ratios_learnable:
- type:
bool, optional, default:Falseargument path:model_options/embedding[slem]/res_update_ratios_learnableWhether to make the ratios of residual update learnable.
When method is set to
lem:- avg_num_neighbors:
- type:
float|intargument path:model_options/embedding[lem]/avg_num_neighbors
- r_max:
- type:
dict|float|intargument path:model_options/embedding[lem]/r_max
- n_layers:
- type:
intargument path:model_options/embedding[lem]/n_layers
- n_radial_basis:
- type:
int, optional, default:10argument path:model_options/embedding[lem]/n_radial_basis
- PolynomialCutoff_p:
- type:
int, optional, default:6argument path:model_options/embedding[lem]/PolynomialCutoff_pThe order of polynomial cutoff function. Default: 6
- cutoff_type:
- type:
str, optional, default:polynomialargument path:model_options/embedding[lem]/cutoff_typeThe type of cutoff function. Default: polynomial
- env_embed_multiplicity:
- type:
int, optional, default:10argument path:model_options/embedding[lem]/env_embed_multiplicity
- tp_radial_emb:
- type:
bool, optional, default:Falseargument path:model_options/embedding[lem]/tp_radial_embWhether to use tensor product radial embedding.
- tp_radial_channels:
- type:
list, optional, default:[32]argument path:model_options/embedding[lem]/tp_radial_channelsThe number of channels in tensor product radial embedding.
- latent_channels:
- type:
list, optional, default:[32]argument path:model_options/embedding[lem]/latent_channelsThe number of channels in latent embedding.
- latent_dim:
- type:
int, optional, default:64argument path:model_options/embedding[lem]/latent_dimThe dimension of latent embedding.
- res_update:
- type:
bool, optional, default:Trueargument path:model_options/embedding[lem]/res_updateWhether to use residual update.
- res_update_ratios:
- type:
float, optional, default:0.5argument path:model_options/embedding[lem]/res_update_ratiosThe ratios of residual update, should in (0,1).
- res_update_ratios_learnable:
- type:
bool, optional, default:Falseargument path:model_options/embedding[lem]/res_update_ratios_learnableWhether to make the ratios of residual update learnable.
When method is set to
e3baseline_nonlocal:- lmax:
- type:
intargument path:model_options/embedding[e3baseline_nonlocal]/lmax
- avg_num_neighbors:
- type:
float|intargument path:model_options/embedding[e3baseline_nonlocal]/avg_num_neighbors
- r_max:
- type:
dict|float|intargument path:model_options/embedding[e3baseline_nonlocal]/r_max
- n_layers:
- type:
intargument path:model_options/embedding[e3baseline_nonlocal]/n_layers
- n_radial_basis:
- type:
int, optional, default:10argument path:model_options/embedding[e3baseline_nonlocal]/n_radial_basis
- PolynomialCutoff_p:
- type:
int, optional, default:6argument path:model_options/embedding[e3baseline_nonlocal]/PolynomialCutoff_pThe order of polynomial cutoff function. Default: 6
- cutoff_type:
- type:
str, optional, default:polynomialargument path:model_options/embedding[e3baseline_nonlocal]/cutoff_typeThe type of cutoff function. Default: polynomial
- env_embed_multiplicity:
- type:
int, optional, default:1argument path:model_options/embedding[e3baseline_nonlocal]/env_embed_multiplicity
- tp_radial_emb:
- type:
bool, optional, default:Falseargument path:model_options/embedding[e3baseline_nonlocal]/tp_radial_embWhether to use tensor product radial embedding.
- tp_radial_channels:
- type:
list, optional, default:[128, 128]argument path:model_options/embedding[e3baseline_nonlocal]/tp_radial_channelsThe number of channels in tensor product radial embedding.
- latent_channels:
- type:
list, optional, default:[128, 128]argument path:model_options/embedding[e3baseline_nonlocal]/latent_channelsThe number of channels in latent embedding.
- latent_dim:
- type:
int, optional, default:256argument path:model_options/embedding[e3baseline_nonlocal]/latent_dimThe dimension of latent embedding.
- res_update:
- type:
bool, optional, default:Trueargument path:model_options/embedding[e3baseline_nonlocal]/res_updateWhether to use residual update.
- res_update_ratios:
- type:
float, optional, default:0.5argument path:model_options/embedding[e3baseline_nonlocal]/res_update_ratiosThe ratios of residual update, should in (0,1).
- res_update_ratios_learnable:
- type:
bool, optional, default:Falseargument path:model_options/embedding[e3baseline_nonlocal]/res_update_ratios_learnableWhether to make the ratios of residual update learnable.
- prediction:
- type:
dict, optionalargument path:model_options/predictionThe 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:
listargument path:model_options/prediction[sktb]/neuronsneurons in the neural network.
- activation:
- type:
str, optional, default:tanhargument path:model_options/prediction[sktb]/activationactivation function.
- if_batch_normalized:
- type:
bool, optional, default:Falseargument path:model_options/prediction[sktb]/if_batch_normalizedif to turn on batch normalization
When method is set to
e3tb:neural network options for prediction model.
- scales_trainable:
- type:
bool, optional, default:Falseargument path:model_options/prediction[e3tb]/scales_trainablewhether to scale the trianing target.
- shifts_trainable:
- type:
bool, optional, default:Falseargument path:model_options/prediction[e3tb]/shifts_trainablewhether to shift the training target.
- neurons:
- type:
list|NoneType, optional, default:Noneargument path:model_options/prediction[e3tb]/neuronsneurons in the neural network.
- activation:
- type:
str, optional, default:tanhargument path:model_options/prediction[e3tb]/activationactivation function.
- if_batch_normalized:
- type:
bool, optional, default:Falseargument path:model_options/prediction[e3tb]/if_batch_normalizedif to turn on batch normalization
- nnsk:
- type:
dict, optionalargument path:model_options/nnskThe parameters to define the nnsk model.
- onsite:
- type:
dictargument path:model_options/nnsk/onsiteThe 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.0argument path:model_options/nnsk/onsite[strain]/rsThe smooth cutoff fc for strain model. rs is where fc = 0.5
- w:
- type:
float, optional, default:0.1argument path:model_options/nnsk/onsite[strain]/wThe 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.0argument path:model_options/nnsk/onsite[NRL]/rsThe smooth cutoff of fc for nrl model, rc is where fc ~ 0.0
- w:
- type:
float, optional, default:0.1argument path:model_options/nnsk/onsite[NRL]/wThe decay factor of fc for strain and nrl model.
- lda:
- type:
float, optional, default:1.0argument path:model_options/nnsk/onsite[NRL]/ldaThe lambda type encoding value in nrl model. now only support elementary substance
When method is set to
none:
- hopping:
- type:
dictargument path:model_options/nnsk/hoppingThe 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.0argument path:model_options/nnsk/hopping[powerlaw]/rsThe cut-off for smooth function fc for powerlaw and varTang96, fc(rs)=0.5
- w:
- type:
float, optional, default:0.1argument path:model_options/nnsk/hopping[powerlaw]/wThe decay w in fc
When method is set to
poly1pow:- rs:
- type:
float, optional, default:6.0argument path:model_options/nnsk/hopping[poly1pow]/rsThe cut-off for smooth function fc for powerlaw and varTang96, fc(rs)=0.5
- w:
- type:
float, optional, default:0.1argument path:model_options/nnsk/hopping[poly1pow]/wThe decay w in fc
When method is set to
poly2pow:- rs:
- type:
float, optional, default:6.0argument path:model_options/nnsk/hopping[poly2pow]/rsThe cut-off for smooth function fc for powerlaw and varTang96, fc(rs)=0.5
- w:
- type:
float, optional, default:0.1argument path:model_options/nnsk/hopping[poly2pow]/wThe decay w in fc
When method is set to
poly3pow:- rs:
- type:
float, optional, default:6.0argument path:model_options/nnsk/hopping[poly3pow]/rsThe cut-off for smooth function fc for powerlaw and varTang96, fc(rs)=0.5
- w:
- type:
float, optional, default:0.1argument path:model_options/nnsk/hopping[poly3pow]/wThe decay w in fc
When method is set to
poly2exp:- rs:
- type:
float, optional, default:6.0argument path:model_options/nnsk/hopping[poly2exp]/rsThe cut-off for smooth function fc for powerlaw and varTang96, fc(rs)=0.5
- w:
- type:
float, optional, default:0.1argument path:model_options/nnsk/hopping[poly2exp]/wThe decay w in fc
When method is set to
varTang96:- rs:
- type:
float, optional, default:6.0argument path:model_options/nnsk/hopping[varTang96]/rsThe cut-off for smooth function fc for powerlaw and varTang96, fc(rs)=0.5
- w:
- type:
float, optional, default:0.1argument path:model_options/nnsk/hopping[varTang96]/wThe decay w in fc
When method is set to
NRL0:- rs:
- type:
float, optional, default:6.0argument path:model_options/nnsk/hopping[NRL0]/rsThe cut-off for smooth function fc for NRL, fc(rc) = 0.
- w:
- type:
float, optional, default:0.1argument path:model_options/nnsk/hopping[NRL0]/wThe decay w in fc
When method is set to
NRL1:- rs:
- type:
float, optional, default:6.0argument path:model_options/nnsk/hopping[NRL1]/rsThe cut-off for smooth function fc for NRL, fc(rc) = 0.
- w:
- type:
float, optional, default:0.1argument path:model_options/nnsk/hopping[NRL1]/wThe 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:Falseargument path:model_options/nnsk/freezeThe 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.01argument path:model_options/nnsk/stdThe std value to initialize the nnsk parameters. Default: 0.01
- push:
- type:
dict|bool, optional, default:Falseargument path:model_options/nnsk/pushThe parameters to define the push the soft cutoff of nnsk model.
- rs_thr:
- type:
float|int, optional, default:0.0argument path:model_options/nnsk/push/rs_thrThe step size for cutoff value for smooth function in the nnsk anlytical formula.
- rc_thr:
- type:
float|int, optional, default:0.0argument path:model_options/nnsk/push/rc_thrThe step size for cutoff value for smooth function in the nnsk anlytical formula.
- w_thr:
- type:
float|int, optional, default:0.0argument path:model_options/nnsk/push/w_thrThe step size for decay factor w.
- ovp_thr:
- type:
float|int, optional, default:0.0argument path:model_options/nnsk/push/ovp_thrThe step size for overlap reduction
- period:
- type:
int, optional, default:100argument path:model_options/nnsk/push/periodthe interval of iterations to modify the rs w values.
- dftbsk:
- type:
dict, optionalargument path:model_options/dftbskThe parameters to define the dftb sk model.
- skdata:
- type:
strargument path:model_options/dftbsk/skdataThe path to the skfile or sk database.
- r_max:
- type:
floatargument path:model_options/dftbsk/r_maxthe cutoff values to use sk files.