Symmetry function


SIMPLE-NN uses atom-centered symmetry function [1] as a default descriptor vector. Radial symmetry function G2 and angular symmetry functions G4 and G5 are used.



To use symmetry function as input vector, you need additional input file ‘params_XX’ and ‘str_list’

params_XX contains the coefficients for symmetry functions. XX is an atom type which included in the target system. The detailed format of ‘param_XX’ is described in below:

2 1 0 6.0 0.003214 0.0 0.0
2 1 0 6.0 0.035711 0.0 0.0
4 1 1 6.0 0.000357 1.0 -1.0
4 1 1 6.0 0.028569 1.0 -1.0
4 1 1 6.0 0.089277 1.0 -1.0

Each parameter indicates (SF means symmetry function)

[type of SF(1)] [atom type index(2)] [cutoff distance(1)] [coefficients for SF(3)]

The number inside the indicates the number of parameters.

First column indicates the type of symmetry function. Currently, G2 (2), G4 (4), and G5 (5) are available.

Second and third column indicates the type index of neighbor atoms which starts from 1. (The order of type index need to be the same as the order of the atom_types tag indicated in input.yaml) For radial symmetry function, only one neighbor atom needed to calculate the symmetry function value, thus third parameter is set to zero. For angular symmetry function, two neighbor atoms are needed. The order of second and third column do not affect the calculation result.

The fourth column means the cutoff radius for cutoff function.

The remaining columns are the parameters applied to each symmetry function. For radial symmetry function, the fifth and sixth column indicates \(\eta\) and \(\mathrm{R_s}\). The value in last column is dummy value. For angular symmetry function, \(\eta\), \(\zeta\), and \(\lambda\) are listed in order.

str_list contains the location of reference calculation data. The format is described below:

[ structure_type_1 ]
/location/of/calculation/data/oneshot_output_file :
/location/of/calculation/data/MDtrajectory_output_file 100:2000:20

[ structure_type_2 : 3.0 ]
/location/of/calculation/data/same_folder_format{1..10}/oneshot_output_file :

You can use the format of braceexpand to set a path to reference file (like last line). The part which is written after the path indicates the index of snapshots. (format is ‘start:end:interval’. ‘:’ means all snapshots.) You can group structures like above for convenience ([ structure_group_name ] above the pathes of reference file). If print_structure_rmse is true, RMSEs for each structure type are also prited in LOG file (see High-dimensional neural network section) In addition, you can set the weights for each structure type ([ structure_group_name : weights ], default: 1.0).


__init__(self, inputs, descriptor=None, model=None)
  • inputs: (str) Name of the input file.
  • descriptor: (object) Object of the feature class
  • model: (object) Object of the model class

Initiator of Simple-nn class. It takes feature and model object and set the default parameters of SIMPLE-NN.


Method for generating symmetry functions and its derivatives.

preprocess(self, calc_scale=True, use_force=False, get_atomic_weights=None, **kwargs)
  • calc_scale: (boolean)
  • use_force: (boolean)
  • get_atomic_weights: (object) Object of model class

Method for preprocessing the training data. Process like calculating scaling factor and calculating atomic weights are contained in this method.


[1]J. Behler, J. Chem. Phys. 134 (2011) 074106
[2]W. Jeong, K. Lee, D. Yoo, D. Lee and S. Han, J. Phys. Chem. C 122 (2018) 22790