libAtoms / QUIP

libAtoms/QUIP molecular dynamics framework: https://libatoms.github.io
347 stars 121 forks source link

Why is it possible to use multiple descriptors in the gap_fit command? #644

Closed Mu-Jinming closed 4 months ago

Mu-Jinming commented 4 months ago

For instance, in the following command, what roles do distance_Nb order=2, distance_Nb order=3, and soap play respectively? What kind of descriptor does the information in the input XYZ file get converted into?

! gap_fit force_parameter_name=forces do_copy_at_file=F sparse_separate_file=F gp_file=./soap/GAP_3b.xml at_file=./soap/train.xyz default_sigma={0.001 0.5 0.0 0.0} gap={distance_Nb order=2 \
                 cutoff=5.0 \
                 covariance_type=ARD_SE \
                 theta_uniform=1.0 \
                 n_sparse=15 \
                 delta=1.0:\
     distance_Nb order=3 \
                 cutoff=4.0 \
                 covariance_type=ARD_SE \
                 theta_uniform=1.0 \
                 n_sparse=50 \
                 delta=0.004:\
     soap cutoff=4.0 \
          covariance_type=dot_product \
          zeta=2 \
          delta=0.016 \
          atom_sigma=0.7 \
          l_max=6 \
          n_max=6 \
          n_sparse=200 \
          sparse_method=cur_points}
gabor1 commented 4 months ago

Each descriptor is used with a corresponding kernel and they are all added up to form the total energy. So the descriptors are not combined, the energy terms are added. The Delta parameter controls the weight of each energy term

albapa commented 4 months ago

I suggest having a look at this review: https://pubs.acs.org/doi/10.1021/acs.chemrev.1c00022

Here it is all explained with examples.