libAtoms/QUIP

Using Coulomb potential as a baseline

yonghyuklee opened this issue · 2 comments

Dear developers,

I want to train a GAP with a long-range Coulomb potential as a baseline. I edited the ip.parms.Coulomb.xml file by hand to only have an Ewald method and then trained the GAP with the following commands.

gap_fit at_file=training_set.xyz energy_parameter_name=dft_energy force_parameter_name=dft_forces do_copy_at_file=F sparse_separate_file=F gp_file=gap.xml default_sigma={0.001 0.1 0 0} core_param_file=ip.parms.Coulomb.xml core_ip_args={IP Coulomb} gap={distance_2b cutoff=6.0 n_sparse=10 covariance_type=ard_se delta=0.528 theta_uniform=2.0 sparse_method=uniform add_species=T \ :soap cutoff=6.0 cutoff_transition_width=1.0 l_max=3 n_max=9 covariance_type=dot_product add_species=T delta=0.327 atom_sigma=0.5 zeta=4 sparse_method=cur_points n_sparse=4000} > gap_fit &

The training was successful without an error message, but the resulting potential became unreliable.
Do I make any serious mistakes here?
Will it be more sensible for me to train a delta-GAP instead of using the baseline model? e.g., subtract Coulomb energy/forces from the DFT training database, train the gap, and separately add up this contribution with LAMMPS (hybrid/overlay)?
Does it make sense to use this Coulomb potential?

Thank you very much in advance.

albapa commented

Hi,

In what sense is the potential unreliable? The Coulomb potential has a singularity at r=0, so atoms sticking together is a real danger, unless something counteracts it. We have the smooth_coulomb_cutoff parameter which smoothly switches off the Coulomb interaction at small distances - this may help.

Delta-GAP is a good option, especially so that I suspect LAMMPS' Coulomb implementation is more efficient than QUIP's. However, you still need to find a way to avoid the singularity.

Cheers
Albert