libAtoms / QUIP

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

import quippy Error #152

Closed ChangChunHe closed 4 years ago

ChangChunHe commented 4 years ago

When I finished make install-quippy under the python virtual environment of vasp,

Installed /home/hecc/.virtualenvs/vasp/lib/python3.7/site-packages/quippy-https_github.com_libAtoms_QUIP.git_f538cd9fe_dirty-py3.7-linux-x86_64.egg
Processing dependencies for quippy===https-github.com-libAtoms-QUIP.git-f538cd9fe-dirty
Finished processing dependencies for quippy===https-github.com-libAtoms-QUIP.git-f538cd9fe-dirty
make[1]: Leaving directory '/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran'
rm /home/hecc/Documents/QUIP/build/linux_x86_64_gfortran/Makefile

I got the below ImportError

(vasp) 
~                                                                                                                     
▶ python
Python 3.7.4 (default, Jul 16 2019, 07:12:58) 
[GCC 9.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import quippy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/hecc/.virtualenvs/vasp/lib/python3.7/site-packages/quippy-https_github.com_libAtoms_QUIP.git_f538cd9fe_dirty-py3.7-linux-x86_64.egg/quippy/__init__.py", line 2, in <module>
    import _quippy
ImportError: dynamic module does not define module export function (PyInit__quippy)
>>> 

Note that, there is a dynamic module _quippy.cpython-37m-x86_64-linux-gnu.so under the my python environment lib

▶ ll .virtualenvs/vasp/lib/python3.7/site-packages/quippy-https_github.com_libAtoms_QUIP.git_f538cd9fe_dirty-py3.7-linux-x86_64.egg
total 12M
drwxr-xr-x 2 hecc hecc 4.0K Oct  1 15:32 EGG-INFO
drwxr-xr-x 2 hecc hecc 4.0K Oct  1 15:32 __pycache__
drwxr-xr-x 3 hecc hecc 4.0K Oct  1 15:32 quippy
-rwxr-xr-x 1 hecc hecc  12M Oct  1 15:32 _quippy.cpython-37m-x86_64-linux-gnu.so
-rw-r--r-- 1 hecc hecc  312 Oct  1 15:32 _quippy.py

Here, when make config, all options are set to the default, and all dependent packages have been installed, I wonder where I was going wrong...

houzf commented 4 years ago

The same problem has been met. Who do you know how to solve it?

jameskermode commented 4 years ago

Do the tests pass from the QUIP source directory? (Run make test from QUIP main directory). If so it suggests it's an installation/Python path problem.

ChangChunHe commented 4 years ago

When I run make test, there are some errors

 Making quippy 

********************************************
rm -f /home/hecc/Documents/QUIP/build/linux_x86_64_gfortran/Makefile
cp /home/hecc/Documents/QUIP/quippy/Makefile /home/hecc/Documents/QUIP/build/linux_x86_64_gfortran/Makefile
make -C /home/hecc/Documents/QUIP/build/linux_x86_64_gfortran QUIP_ROOT=/home/hecc/Documents/QUIP -I/home/hecc/Documents/QUIP -I/home/hecc/Documents/QUIP/arch build
make[1]: Entering directory '/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran'
cp -r ../../quippy/quippy/*.py quippy
make[1]: Leaving directory '/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran'
rm /home/hecc/Documents/QUIP/build/linux_x86_64_gfortran/Makefile
#- cd tests
#- make
#- cd ..
make -C tests -I/home/hecc/Documents/QUIP -I/home/hecc/Documents/QUIP/arch -I/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran
make[1]: Entering directory '/home/hecc/Documents/QUIP/tests'
QUIP_ARCH=linux_x86_64_gfortran python3 run_all.py -v
QUIP_ARCH linux_x86_64_gfortran
platform linux-x86_64-3.7
/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran/
Successfully imported quippy3
.E.WARNING: Potential_calc: cutoff of Atoms object (-1.0000000000000000) < Potential cutoff (3.7711800000000002) - increasing it now
....EException ignored in: <function Potential.__del__ at 0x7f1a931a1b90>
Traceback (most recent call last):
  File "/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran/quippy/potential_module.py", line 285, in __del__
    _quippy.f90wrap_potential_finalise(this=self._handle, error=error)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
EException ignored in: <function Potential.__del__ at 0x7f1a931a1b90>
Traceback (most recent call last):
  File "/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran/quippy/potential_module.py", line 285, in __del__
    _quippy.f90wrap_potential_finalise(this=self._handle, error=error)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
........EException ignored in: <function Potential.__del__ at 0x7f1a931a1b90>
Traceback (most recent call last):
  File "/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran/quippy/potential_module.py", line 285, in __del__
    _quippy.f90wrap_potential_finalise(this=self._handle, error=error)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'

======================================================================
ERROR: test_descriptor_type (test_descriptor.Test_Descriptor)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/hecc/Documents/QUIP/tests/test_descriptor.py", line 40, in test_descriptor_type
    generic_descriptor = quippy.descriptors_module.descriptor('distance_2b cutoff=4.0')
AttributeError: module 'quippy' has no attribute 'descriptors_module'

======================================================================
ERROR: test_energy (test_gappot.TestCalculator_GAP_Potential)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/hecc/Documents/QUIP/tests/test_gappot.py", line 28, in setUp
    self.pot_calculator = quippy.potential.Potential("IP GAP", param_filename="GAP.xml")
  File "/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran/quippy/potential.py", line 75, in __init__
    param_filename=param_filename)
  File "/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran/quippy/potential_module.py", line 144, in filename_initialise
    bulk_scale._handle, error=error)
RuntimeError: IPModel_GAP_Initialise_str: must be compiled with HAVE_GAP

======================================================================
ERROR: test_forces (test_gappot.TestCalculator_GAP_Potential)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/hecc/Documents/QUIP/tests/test_gappot.py", line 28, in setUp
    self.pot_calculator = quippy.potential.Potential("IP GAP", param_filename="GAP.xml")
  File "/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran/quippy/potential.py", line 75, in __init__
    param_filename=param_filename)
  File "/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran/quippy/potential_module.py", line 144, in filename_initialise
    bulk_scale._handle, error=error)
RuntimeError: Traceback (most recent call last)
  File "/home/hecc/Documents/QUIP/src/libAtoms/System.f95", line 429 kind unspecified
    IO error opening "GAP.xml" on unit 8, error number: 5004                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

======================================================================
ERROR: test_pot_calculation_with_changing_cell_size (test_potential_cell.Test_Descriptor)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/hecc/Documents/QUIP/tests/test_potential_cell.py", line 33, in setUp
    self.pot = quippy.potential.Potential('', param_filename='GAP.xml')
  File "/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran/quippy/potential.py", line 75, in __init__
    param_filename=param_filename)
  File "/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran/quippy/potential_module.py", line 144, in filename_initialise
    bulk_scale._handle, error=error)
RuntimeError: Traceback (most recent call last)
  File "/home/hecc/Documents/QUIP/src/libAtoms/System.f95", line 429 kind unspecified
    IO error opening "GAP.xml" on unit 8, error number: 5004                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

----------------------------------------------------------------------
Ran 18 tests in 0.096s

FAILED (errors=4)
make[1]: Leaving directory '/home/hecc/Documents/QUIP/tests'

I change the last line of Makefile in quippy to

install: build
    python ../../quippy/setup.py install --prefix=/home/hecc/.virtualenvs/vasp

because I want to install this package to the vasp virtual environment. @jameskermode Any reply will be appreciated.

jameskermode commented 4 years ago

This output confirms _quippy can be imported from the build directory and runs OK for standard QUIP calculators. Your earlier problem must be related to the installation directory. Check carefully where you are installing to and where Python is looking for packages (e.g. PYTHONPATH environment variable, virtual environment search path)

The 4 test errors show you are missing GAP support. If you want to use GAP you need to check out the GAP repo under QUIP/src - I think you then need tomake deepclean and then rerun make config answering yes to the GAP question or edit build.${QUIP_ARCH}/Makefile.inc to set HAVE_GAP=1.

ChangChunHe commented 4 years ago

This time, I add GAP repo under src , and do another make after make deepclean, there is no error after running make test

 Making quippy 

********************************************
rm -f /home/hecc/Documents/QUIP/build/linux_x86_64_gfortran/Makefile
cp /home/hecc/Documents/QUIP/quippy/Makefile /home/hecc/Documents/QUIP/build/linux_x86_64_gfortran/Makefile
make -C /home/hecc/Documents/QUIP/build/linux_x86_64_gfortran QUIP_ROOT=/home/hecc/Documents/QUIP -I/home/hecc/Documents/QUIP -I/home/hecc/Documents/QUIP/arch build
make[1]: Entering directory '/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran'
cp -r ../../quippy/quippy/*.py quippy
make[1]: Leaving directory '/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran'
rm /home/hecc/Documents/QUIP/build/linux_x86_64_gfortran/Makefile
#- cd tests
#- make
#- cd ..
make -C tests -I/home/hecc/Documents/QUIP -I/home/hecc/Documents/QUIP/arch -I/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran
make[1]: Entering directory '/home/hecc/Documents/QUIP/tests'
QUIP_ARCH=linux_x86_64_gfortran python3 run_all.py -v
QUIP_ARCH linux_x86_64_gfortran
platform linux-x86_64-3.7
/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran/
Successfully imported quippy3
...WARNING: Potential_calc: cutoff of Atoms object (-1.0000000000000000) < Potential cutoff (3.7711800000000002) - increasing it now
..............WARNING: Potential_initialise using default init_args "Potential xml_label=GAP_2018_10_7_60_14_59_24_970"
.
----------------------------------------------------------------------
Ran 18 tests in 0.309s

OK
make[1]: Leaving directory '/home/hecc/Documents/QUIP/tests'
(vasp) 

but

▶ cd
(vasp) 
~                                                                                                                     
▶ python
Python 3.7.4 (default, Jul 16 2019, 07:12:58) 
[GCC 9.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import quippy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/hecc/.virtualenvs/vasp/lib/python3.7/site-packages/quippy-https_github.com_libAtoms_QUIP.git_f538cd9fe_dirty-py3.7-linux-x86_64.egg/quippy/__init__.py", line 2, in <module>
    import _quippy
ImportError: dynamic module does not define module export function (PyInit__quippy)

I only change the last line of Makefile in quippy because I want to install this package to my vasp virtual environment.

I found that it is totally the same whether I change the last line or not . @jameskermode , sorry to bother you again, if _quippy can be imported successfully, then the quippy package can be used successfully?

ChangChunHe commented 4 years ago

At last, I found that if I append the absolute build path build/${QUIP_ARCH}/ in python by sys.path.insert(0, '/home/hecc/Documents/QUIP/build/linux_x86_64_gfortran') , I can successfully run the test_*.py, but this is the right or normal way to run quippy?

jameskermode commented 4 years ago

No, this is not the normal way to install quippy - we do this in the testing to avoid having to install before running the tests. To use quippy in a standard way you need to put it somewhere on the default search path (sys.path in Python). How you manage this with virtual environments is up to you, I can't really advise on that.

ChangChunHe commented 4 years ago

OK, I have solved this problem with your help, many thanks to you and sorry to bother you @jameskermode

ChangChunHe commented 4 years ago

emmmm, DeepinScreenshot_select-area_20191001203831

jameskermode commented 4 years ago

This is expected - quippy.atoms.Atoms is no longer exposed, use ase.atoms.Atoms instance. Documentation updates coming ASAP...

ChangChunHe commented 4 years ago

Oh, got it...

ChangChunHe commented 4 years ago

I found that I cannot

In [8]: from quippy.potential import Potential   
In [9]: from quippy.potential import Minim                                                                             
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-9-c557a11c411f> in <module>
----> 1 from quippy.potential import Minim

ImportError: cannot import name 'Minim' from 'quippy.potential' 

is it normal? or this is the deprecated class?

And for GAP fitting, I cannot use

quippy.gap_fit_parse_command_line(*args, **kwargs)
jameskermode commented 4 years ago

Minim also deprecated; use the ASE minimisers. Quippy now essentially provides only Potential and Descriptors interfaces

jameskermode commented 4 years ago

(I don't know what the plan is for exposing gap_fit to quippy, maybe @gabor1 can advise there)

gabor1 commented 4 years ago

Not planned to be exposed for use, just the innards to help the autodoc. Use the command line.

-- Gábor

On 2 Oct 2019, at 10:00, James Kermode notifications@github.com wrote:

(I don't know what the plan is for exposing gap_fit to quippy, maybe @gabor1 can advise there)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

gabor1 commented 4 years ago

you can always use a system command (! in a notebook) to keep your training line in the python if you want to (but training can take many hours for a very large database)

On 2 Oct 2019, at 10:05, Gabor Csanyi gc121@cam.ac.uk wrote:

Not planned to be exposed for use, just the innards to help the autodoc. Use the command line.

-- Gábor

On 2 Oct 2019, at 10:00, James Kermode notifications@github.com wrote:

(I don't know what the plan is for exposing gap_fit to quippy, maybe @gabor1 can advise there)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

-- Gábor

Gábor Csányi Professor of Molecular Modelling Engineering Laboratory Pembroke College University of Cambridge

Pembroke College supports CARA. A Lifeline to Academics at Risk. http://www.cara.ngo/

ChangChunHe commented 4 years ago

you can always use a system command (! in a notebook) to keep your training line in the python if you want to (but training can take many hours for a very large database) On 2 Oct 2019, at 10:05, Gabor Csanyi @.> wrote: Not planned to be exposed for use, just the innards to help the autodoc. Use the command line. -- Gábor On 2 Oct 2019, at 10:00, James Kermode @.> wrote: > (I don't know what the plan is for exposing gap_fit to quippy, maybe @gabor1 can advise there) > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub, or mute the thread. > -- Gábor Gábor Csányi Professor of Molecular Modelling Engineering Laboratory Pembroke College University of Cambridge Pembroke College supports CARA. A Lifeline to Academics at Risk. http://www.cara.ngo/

Oh, got it, and also I suggest that maybe these should update in your quippy docs so that the newer will not be confused with those ImportError

jameskermode commented 4 years ago

Yes, we know documentation updates are urgently needed, as acknowledged earlier in this issue...

gabor1 commented 4 years ago

Of course. The docs are in a bit of a problem state since the switchover to python3.

On 2 Oct 2019, at 11:43, hecc notifications@github.com wrote:

you can always use a system command (! in a notebook) to keep your training line in the python if you want to (but training can take many hours for a very large database) … On 2 Oct 2019, at 10:05, Gabor Csanyi @.> wrote: Not planned to be exposed for use, just the innards to help the autodoc. Use the command line. -- Gábor On 2 Oct 2019, at 10:00, James Kermode @.> wrote: > (I don't know what the plan is for exposing gap_fit to quippy, maybe @gabor1 can advise there) > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub, or mute the thread. > -- Gábor Gábor Csányi Professor of Molecular Modelling Engineering Laboratory Pembroke College University of Cambridge Pembroke College supports CARA. A Lifeline to Academics at Risk. http://www.cara.ngo/

Oh, got it, and also I suggest that maybe these should update in your quippy docs so that the newer will not be confused with those ImportError

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

-- Gábor

Gábor Csányi Professor of Molecular Modelling Engineering Laboratory Pembroke College University of Cambridge

Pembroke College supports CARA. A Lifeline to Academics at Risk. http://www.cara.ngo/

ChangChunHe commented 4 years ago

Thanks a lot for both of you, @gabor1 @jameskermode

ChangChunHe commented 4 years ago

And I can update some docs for this package, because I will do some training using GAP in the following days, so I can do some PRs for this package

gabor1 commented 4 years ago

What's preventing the immediate update of the docs is that the auto-doc function of the python wrapper doesn't yet compile the gap_fit_module which has all the options and help strings in it

ChangChunHe commented 4 years ago

DeepinScreenshot_select-area_20191002220327

emmmmm, can someone tell me how to use gap_fit, I have been confused with the help of gap_fit, where should I input my configurations information and energy information? Thanks for anyone's reply

I konow quip can be used by quip atoms_filename=filename.in.xyz, but this failed...

gabor1 commented 4 years ago

look at command lines that are published with all our papers which have potentials. If you have the xml file, you can just grep for “command” and it will show you the entire command line.

note that “teach_sparse” got renamed to “gap_fit” recently.

On 2 Oct 2019, at 15:06, hecc notifications@github.com wrote:

emmmmm, can someone tell me how to use gap_fit, I have been confused with the help of gap_fit, where should I input my configurations information and energy information? Thanks for anyone's reply

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

-- Gábor

Gábor Csányi Professor of Molecular Modelling Engineering Laboratory Pembroke College University of Cambridge

Pembroke College supports CARA. A Lifeline to Academics at Risk. http://www.cara.ngo/

ChangChunHe commented 4 years ago

So, could you anyone can support a simple example to show me how to run gap_fit...Maybe I should l some fundamental knowledge about Fortran, I am just familiar with Python, C/C++..., thanks again for anyone's reply

gabor1 commented 4 years ago

I am very happy to help you refine your gap_fit command to suit your needs, but please do have a look at our published xml files associated with recent publications. They all contain the command line used to fit the potential (grep for "command"). Many articles also include the command line explicitly, sometimes in the supplementary information.

-- Gábor

On 3 Oct 2019, at 17:14, hecc notifications@github.com wrote:

 So, could you anyone can support a simple example to show me how to run gap_fit...Maybe I should l some fundamental knowledge about Fortran, I am just familiar with Python, C/C++..., thanks again for anyone's reply

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

ChangChunHe commented 4 years ago

OK, thanks @gabor1 for guiding me to search the explicit command from supplementary information, and I used the below script to try to train B_GAP-RSS data

▶ cat fit_soap_box.sh 
#!/bin/bash

# export PATH=~/QUIP/build/linux_x86_64_gfortran_openmp:$PATH

AT_FILE=sps_all.xyz
GP_FILE=gp-mebox-pbe-ts-mbd.xml

gap_fit at_file=$AT_FILE \
    gap={soap atom_sigma=0.5 l_max=8 n_max=8 cutoff=6.0 cutoff_transition_width=1.0 delta=0.01 add_species n_species=1 species_z={{ 5 }} n_sparse=2000 covariance_type=dot_product sparse_method=cur_points zeta=4.0} \
    default_sigma={0.0001 0.002 1.0 1.0} sparse_jitter=1e-10 virial_parameter_name=none gp_file=$GP_FILE

all items under the directory are

▶ ll
total 256M
-rw-r--r-- 1 hecc hecc  76M Oct  4 10:34 B_GAP-RSS.tar.gz
-rw-r--r-- 1 hecc hecc 530K Apr 11  2018 B.xml
-rw-r--r-- 1 hecc hecc  270 Apr 11  2018 B.xml.sparseX.GAP_2017_12_22_0_2_45_36_7361
-rw-r--r-- 1 hecc hecc 8.0K Apr 11  2018 B.xml.sparseX.GAP_2017_12_22_0_2_45_36_7362
-rw-r--r-- 1 hecc hecc 159M Apr 11  2018 B.xml.sparseX.GAP_2017_12_22_0_2_45_36_7363
-rwxr-xr-x 1 hecc hecc  478 Oct  4 10:39 fit_soap_box.sh
-rw-r--r-- 1 hecc hecc 1.4K Apr 11  2018 README
-rw-r--r-- 1 hecc hecc  20M Apr 11  2018 sps_all.xyz
-rw-r--r-- 1 hecc hecc  55K Oct  4 10:39 sps_all.xyz.idx

however, there are some errors in training,

▶ ./fit_soap_box.sh  
libAtoms::Hello World: 04/10/2019   10:44:42
libAtoms::Hello World: git version  https://github.com/libAtoms/QUIP.git,f538cd9fe-dirty
libAtoms::Hello World: QUIP_ARCH    linux_x86_64_gfortran
libAtoms::Hello World: compiled on  Oct  1 2019 at 17:41:32
libAtoms::Hello World: Random Seed = 38682164
libAtoms::Hello World: global verbosity = 0

Calls to system_timer will do nothing by default

================================ Input parameters ==============================

at_file = sps_all.xyz
gap = "soap atom_sigma=0.5 l_max=8 n_max=8 cutoff=6.0 cutoff_transition_width=1.0 delta=0.01 add_species n_species=1 species_z={{ 5 }} n_sparse=2000 covariance_type=dot_product sparse_method=cur_points zeta=4.0"
e0 = 0.0
local_property0 = 0.0
e0_offset = 0.0
e0_method = isolated
default_sigma = "0.0001 0.002 1.0 1.0"
sparse_jitter = 1e-10
hessian_delta = 1.0e-2
core_param_file = quip_params.xml
core_ip_args =
energy_parameter_name = energy
local_property_parameter_name = local_property
force_parameter_name = force
virial_parameter_name = none
hessian_parameter_name = hessian
config_type_parameter_name = config_type
sigma_parameter_name = sigma
config_type_sigma =
sigma_per_atom = T
do_copy_at_file = T
sparse_separate_file = T
sparse_use_actual_gpcov = F
gp_file = gp-mebox-pbe-ts-mbd.xml
verbosity = NORMAL
rnd_seed = -1
do_ip_timing = F
template_file = template.xyz
sparsify_only_no_fit = F

========================================  ======================================

============== Gaussian Approximation Potentials - Database fitting ============

Initial parsing of command line arguments finished.
Found 1 GAPs.
Descriptors have been parsed
XYZ file read
Old GAP: {soap atom_sigma=0.5 l_max=8 n_max=8 cutoff=6.0 cutoff_transition_width=1.0 delta=0.01 add_species n_species=1 species_z={ 5 } n_sparse=2000 covariance_type=dot_product sparse_method=cur_points zeta=4.0}
New GAP: {soap atom_sigma=0.5 l_max=8 n_max=8 cutoff=6.0 cutoff_transition_width=1.0 delta=0.01             n_species=1 species_z={ 5 } n_sparse=2000 covariance_type=dot_product sparse_method=cur_points zeta=4.0 n_species=1 Z=5 species_Z={5 }}
Multispecies support added where requested

===================== Report on number of descriptors found ====================

---------------------------------------------------------------------
Descriptor: soap atom_sigma=0.5 l_max=8 n_max=8 cutoff=6.0 cutoff_transition_width=1.0 delta=0.01             n_species=1 species_z={ 5 } n_sparse=2000 covariance_type=dot_product sparse_method=cur_points zeta=4.0 n_species=1 Z=5 species_Z={5 }
Number of descriptors:                        97554
Number of partial derivatives of descriptors: 39891096

========================================  ======================================

Atom species 5 present in teaching XYZ, but not found corresponding isolated representative
SYSTEM ABORT: Determination of e0 was requested to be based on isolated atom energies, but not all  atom types
present in the XYZ had an isolated representative.     

Maybe I missed some fatal information?

gabor1 commented 4 years ago

There is only one problem. Are you training total energies? You need to indicate the energy of the isolated atom. This is best done by including the isolated atom in the training set. This is the default and the error is telling you that it couldn’t find it. There are alternatives. If you type gap_fit —help and look for “e0” there are a number of options.

If you are training total energies then your delta (and sigmas) are two small by 1-2 orders of magnitude. Remember delta is the scale of the function you are training (per atom) and sigma is the expected error. Given your likely k-point sampling and energy cutoff, the energy sigma is unlikely to be less than a few MeV

-- Gábor

On 4 Oct 2019, at 05:03, hecc notifications@github.com wrote:

 OK, thanks @gabor1 for guide me to search the explicit command from supplementary information, and I used the below script to try to train B_GAP-RSS data

▶ cat fit_soap_box.sh

!/bin/bash

export PATH=~/QUIP/build/linux_x86_64_gfortran_openmp:$PATH

AT_FILE=sps_all.xyz GP_FILE=gp-mebox-pbe-ts-mbd.xml

gap_fit at_file=$AT_FILE \ gap={soap atom_sigma=0.5 l_max=8 n_max=8 cutoff=6.0 cutoff_transition_width=1.0 delta=0.01 add_species n_species=1 species_z={{ 5 }} n_sparse=2000 covariance_type=dot_product sparse_method=cur_points zeta=4.0} \ default_sigma={0.0001 0.002 1.0 1.0} sparse_jitter=1e-10 virial_parameter_name=none gp_file=$GP_FILE

all items under the directory are

▶ ll total 256M -rw-r--r-- 1 hecc hecc 76M Oct 4 10:34 B_GAP-RSS.tar.gz -rw-r--r-- 1 hecc hecc 530K Apr 11 2018 B.xml -rw-r--r-- 1 hecc hecc 270 Apr 11 2018 B.xml.sparseX.GAP_2017_12_22_0_2_45_36_7361 -rw-r--r-- 1 hecc hecc 8.0K Apr 11 2018 B.xml.sparseX.GAP_2017_12_22_0_2_45_36_7362 -rw-r--r-- 1 hecc hecc 159M Apr 11 2018 B.xml.sparseX.GAP_2017_12_22_0_2_45_36_7363 -rwxr-xr-x 1 hecc hecc 478 Oct 4 10:39 fit_soap_box.sh -rw-r--r-- 1 hecc hecc 1.4K Apr 11 2018 README -rw-r--r-- 1 hecc hecc 20M Apr 11 2018 sps_all.xyz -rw-r--r-- 1 hecc hecc 55K Oct 4 10:39 sps_all.xyz.idx however, there are some errors in training,

▶ ./fit_soap_box.sh
libAtoms::Hello World: 04/10/2019 10:44:42 libAtoms::Hello World: git version https://github.com/libAtoms/QUIP.git,f538cd9fe-dirty libAtoms::Hello World: QUIP_ARCH linux_x86_64_gfortran libAtoms::Hello World: compiled on Oct 1 2019 at 17:41:32 libAtoms::Hello World: Random Seed = 38682164 libAtoms::Hello World: global verbosity = 0

Calls to system_timer will do nothing by default

================================ Input parameters ==============================

at_file = sps_all.xyz gap = "soap atom_sigma=0.5 l_max=8 n_max=8 cutoff=6.0 cutoff_transition_width=1.0 delta=0.01 add_species n_species=1 species_z={{ 5 }} n_sparse=2000 covariance_type=dot_product sparse_method=cur_points zeta=4.0" e0 = 0.0 local_property0 = 0.0 e0_offset = 0.0 e0_method = isolated default_sigma = "0.0001 0.002 1.0 1.0" sparse_jitter = 1e-10 hessian_delta = 1.0e-2 core_param_file = quip_params.xml core_ip_args = energy_parameter_name = energy local_property_parameter_name = local_property force_parameter_name = force virial_parameter_name = none hessian_parameter_name = hessian config_type_parameter_name = config_type sigma_parameter_name = sigma config_type_sigma = sigma_per_atom = T do_copy_at_file = T sparse_separate_file = T sparse_use_actual_gpcov = F gp_file = gp-mebox-pbe-ts-mbd.xml verbosity = NORMAL rnd_seed = -1 do_ip_timing = F template_file = template.xyz sparsify_only_no_fit = F

======================================== ======================================

============== Gaussian Approximation Potentials - Database fitting ============

Initial parsing of command line arguments finished. Found 1 GAPs. Descriptors have been parsed XYZ file read Old GAP: {soap atom_sigma=0.5 l_max=8 n_max=8 cutoff=6.0 cutoff_transition_width=1.0 delta=0.01 add_species n_species=1 species_z={ 5 } n_sparse=2000 covariance_type=dot_product sparse_method=cur_points zeta=4.0} New GAP: {soap atom_sigma=0.5 l_max=8 n_max=8 cutoff=6.0 cutoff_transition_width=1.0 delta=0.01 n_species=1 species_z={ 5 } n_sparse=2000 covariance_type=dot_product sparse_method=cur_points zeta=4.0 n_species=1 Z=5 species_Z={5 }} Multispecies support added where requested

===================== Report on number of descriptors found ====================


Descriptor: soap atom_sigma=0.5 l_max=8 n_max=8 cutoff=6.0 cutoff_transition_width=1.0 delta=0.01 n_species=1 species_z={ 5 } n_sparse=2000 covariance_type=dot_product sparse_method=cur_points zeta=4.0 n_species=1 Z=5 species_Z={5 } Number of descriptors: 97554 Number of partial derivatives of descriptors: 39891096

======================================== ======================================

Atom species 5 present in teaching XYZ, but not found corresponding isolated representative SYSTEM ABORT: Determination of e0 was requested to be based on isolated atom energies, but not all atom types present in the XYZ had an isolated representative.

Maybe I missed some fatal information?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

ChangChunHe commented 4 years ago

Yes, thanks for your advice @gabor1 , I have successfully trained a model

Finished CUR decomposition
Cartesian coordinates transformed to descriptors
Started sparse covariance matrix calculation of coordinate 1
Covariance matrix  96% |******************* |   4.0 /   4.1 m
Finished sparse covariance matrix calculation of coordinate 1
TIMER: gpFull_covarianceMatrix_sparse_Coordinate1_sparse  done in 247.81674100000001 cpu secs, 247.82970409200061 wall clock secs.
TIMER: gpFull_covarianceMatrix_sparse_Coordinate1         done in 247.81677100000002 cpu secs, 247.82973094000772 wall clock secs.
TIMER: gpFull_covarianceMatrix_sparse_LinearAlgebra       done in 26.857536000000039 cpu secs, 26.859018431990989 wall clock secs.
TIMER: gpFull_covarianceMatrix_sparse_FunctionValues      done in .12999999967178155E-004 cpu secs, .13862998457625508E-004 wall clock secs.
TIMER: gpFull_covarianceMatrix_sparse                     done in 274.77176400000002 cpu secs, 274.78620921399852 wall clock secs.
TIMER: GP sparsify                                        done in 302.31727999999998 cpu secs, 302.41105439000239 wall clock secs.

libAtoms::Finalise: 04/10/2019   22:00:02
libAtoms::Finalise: Bye-Bye!

and may I ask a question, where can I know the explicit meaning in the output file .xml? and the format of input file xyz ?

ChangChunHe commented 4 years ago

Well I have found those information I need in your docs, thanks again, and wish you everything goes well

Arunimaghosh693 commented 4 years ago

Hi, I am very new to this area. I have installed Quippy but I am getting the error that command gap_fit is not found. How can be it resolved? Please let me know. It will be a great help.

gabor1 commented 4 years ago

gap_fit is not a python command. If you typed "make" in the QUIP directory, then the executables (including gap_fit) are in the build/${QUIP_ARCH}/ directory. (Assuming that you downloaded GAP as well and told the "make config" questionnaire that you had GAP..)

Arunimaghosh693 commented 4 years ago

Thanks for your reply. http://www.libatoms.org/gap/gap_download.html is it a correct link for downloading GAP? or can you give me a correct one?

gabor1 commented 4 years ago

That website is in the process of migration this week. While that is happenning, please use the docker, which also has a copy of the entire QUIP and GAP source code.

https://hub.docker.com/r/libatomsquip/quip/

-- Gábor

Gábor Csányi Professor of Molecular Modelling Engineering Laboratory, University of Cambridge Pembroke College Cambridge

Pembroke College supports CARA. A Lifeline to Academics at Risk. http://www.cara.ngo/

On 13 Jul 2020, at 13:52, Arunimaghosh693 notifications@github.com wrote:

Thanks for your reply. http://www.libatoms.org/gap/gap_download.html is it a correct link for downloading GAP? or can you give me a correct one?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.