libAtoms / QUIP

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

gpCoordinates_sparsify: does not exist #550

Open MES-physics opened 1 year ago

MES-physics commented 1 year ago

Dear QUIP People, I'm getting this error when trying soap_turbo parameters instead of regular soap. Any advice? Also see gap_fit command below. I did include the .idx file from the serial sparsification run done beforehand, as well as the sparse input files. The gap_fit command follows the Carbon_GAP_20 parameters, except for changing to soap_turbo. Regular soap worked on this. Thanks.

SYSTEM ABORT: proc=0 Traceback (most recent call last)
File "gp_fit.f95", line 193 kind unspecified
gpCoordinates_sparsify:  does not exist           
Abort(1) on node 0 (rank 0 in comm 0): application called MPI_Abort(MPI_COMM_WORLD, 1) - process 0
srun: error: amd081: task 1: Exited with exit code 1
gap_fit \
atoms_filename=Carbon_GAP_20_Training_Set.xyz \
at_file=Carbon_GAP_20_Training_Set.xyz \
gap = \
{distance_2b \
n_sparse=15 \
theta_uniform=1.0 \
sparse_method=FILE \
sparse_input=1.input \
covariance_type=ard_se \
cutoff=4.5 \
delta=2.0 \
: \
angle_3b \
n_sparse=200 \
theta_uniform=1.0 \
sparse_method=FILE \
sparse_file=2.input \
covariance_type=ard_se \
cutoff=2.5 \
delta=0.05 \
: \
soap_turbo \
alpha_max={{12}} \
l_max=4 \
atom_sigma_r={{0.5}} \
atom_sigma_t={{0.5}} \
atom_sigma_r_scaling={{0}} \
atom_sigma_t_scaling={{0}} \
radial_enhancement=1 \
amplitude_scaling={{1}} \
rcut_hard=4.5 \
rcut_soft=4 \
species_Z={{6}} \
add_species=F \
central_weight={{1.0 }} \
n_sparse=9000 \
delta={{0.2}} \
covariance_type=dot_product \
zeta=4 \
sparse_method=FILE \
sparse_input=3.input \
radial_decay={{-0.5}}} \
default_sigma={0.001 0.01 0.05 0.0} \
default_kernel_regularisation={0.001 0.01 0.05 0.0} \
energy_parameter_name=energy \
force_parameter_name=force \
virial_parameter_name=virial \
do_copy_at_file=F \
sparse_jitter=1.0e-8 \
sparsify_only_no_fit=F \
sparse_separate_file=T \
openmp_chunk_size=10000 \
gp_file=Carbon_GAP_20oursTurbo.xml \
core_ip_args={IP Glue} \
core_param_file=r6_innercut.xml \
config_type_sigma={Liquid:0.050:0.5:0.5:0.0: \
Liquid_Interface:0.050:0.5:0.5:0.0: \
Amorphous_Bulk:0.005:0.2:0.2:0.0: \
Amorphous_Surfaces:0.005:0.2:0.2:0.0: \
Surfaces:0.002:0.1:0.2:0.0: \
Dimer:0.002:0.1:0.2:0.0: \
Fullerenes:0.002:0.1:0.2:0.0: \
Defects:0.001:0.01:0.05:0.0: \
Crystalline_Bulk:0.001:0.01:0.05:0.0: \
Nanotubes:0.001:0.01:0.05:0.0: \
Graphite:0.001:0.01:0.05:0.0: \
Diamond:0.001:0.01:0.05:0.0: \
Graphene:0.001:0.01:0.05:0.0: \
Graphite_Layer_Sep:0.001:0.01:0.05:0.0: \
Single_Atom:0.0001:0.001:0.05:0.0} \
albapa commented 1 year ago

Was your serial run also with soap_turbo?

MES-physics commented 1 year ago

Yes it was, and worked fine as far as I can tell. Thanks.

mcaroba commented 1 year ago

It's recommended to limit alpha_max to values below 10. At 12 there are linear dependencies in the radial basis orthonormalization procedure that make the calculation numerically unstable. I was doing some testing last week regarding precalculating and tabulating the basis parameters but it looks like a fundamental issue with this type of polynomial basis. Also, I don't think you can use radial_decay with soap_turbo. See the README in github.com/libatoms/soap_turbo for a practical recipe to translate hypers between soap and soap_turbo, and feel free to ask me about it.

There have been some reported issues (by @noambernstein, someone from FHI, and also one of our group members hit a similar problem with a different compiler) which seem to be compiler version dependent. I have been trying to get to the root of it, but they appear super inconsistently and go away when I modify the code to try to debug it. If refining the hypers doesn't help please report the issue again (maybe in the soap_turbo issue tracker), maybe it's another instance of this problem..

MES-physics commented 1 year ago

Ok thanks, I will redo and get back.

MES-physics commented 1 year ago

Now I tried again, eliminating the radial_decay= and setting the alpha_max={{9}} instead, on both serial and MPI runs. The same error happens as above.