Giter Club home page Giter Club logo

merzlab / quick Goto Github PK

View Code? Open in Web Editor NEW
140.0 8.0 40.0 155.14 MB

QUICK: A GPU-enabled ab intio quantum chemistry software package

License: Mozilla Public License 2.0

Makefile 0.14% Fortran 11.92% C 81.05% C++ 1.47% Cuda 2.48% Perl 0.01% Shell 0.07% CMake 0.86% Python 0.01% Awk 0.02% BASIC 1.97%
quantum-chemistry hartree-fock density-functional-theory parallel-computing gpu-acceleration computational-chemistry electronic-structure-calculations cuda gpu chemistry

quick's Introduction

Documentation Status

An open source, GPU enabled, ab initio and density functional theory program developed by Götz lab at University of California San Diego and Merz lab at Michigan State University.

Features

  • Hartree-Fock
  • Density functional theory (LDA, GGA and Hybrid-GGA functionals)
  • Grimme type dispersion corrections
  • Restricted closed-shell and unrestricted open-shell wavefunctions
  • Gradient and geometry optimization calculations (in-house and DL-FIND optimizers available)
  • Includes a wide range of popular Gaussian basis sets
  • Mulliken charge analysis
  • Exports Molden format for visualization of geometry and orbital data
  • Supports QM/MM calculations with Amber22 and later
  • Fortran API to use QUICK as QM energy and force engine
  • MPI parallelization for CPU platforms
  • Massively parallel GPU implementation via CUDA/HIP for Nvidia/AMD GPUs (HIP available in QUICK-23.08, currently disabled)
  • Multi-GPU support via MPI + CUDA/HIP, also across multiple compute nodes

Limitations

  • Supports energy/gradient calculations with basis functions up to f
  • GPU f function code is not highly optimized, requires large amount of RAM (may fail on consumer GPUs)
  • No open shell gradients with f functions on GPUs
  • Supports only Cartesian basis functions (no spherical harmonics)
  • Effective core potentials (ECPs) are not supported
  • DFT calculations are performed exclusively using the SG1 grid system
  • No meta-GGA functionals, no range-separated hybrid functionals
  • HIP (AMD GPU support) is currently disabled (available in QUICK-23.08 but not QUICK-24.03)

Installation

Supported platforms: Linux (x86 and ARM), macOS (x86 and ARM)

Getting Started

Known Issues

A list of installation and runtime issues can be found here.

Citation

Please cite QUICK-24.03 as follows.

Manathunga, M.; O'Hearn, K. A., Shajan, A.; Smith, J.; Miao, Y.; He, X.; Ayers, K; Brothers, E.; Götz, A. W.; Merz, K. M. QUICK-24.03 University of California San Diego, CA and Michigan State University, East Lansing, MI, 2024.

If you perform density functional theory calculations please also cite:

Manathunga, M.; Miao, Y.; Mu, D.; Götz, A. W.; Merz, K. M. Parallel Implementation of Density Functional Theory Methods in the Quantum Interaction Computational Kernel Program. J. Chem. Theory Comput. 16, 4315-4326 (2020).

and in addition for any XC functional except BLYP and B3LYP:

Lehtola, S.; Steigemann, C.; Oliveira, M. J. T.; Marques, M. A. L. Recent developments in Libxc - A comprehensive library of functionals for density functional theory. Software X 7, 1 (2018)

If you use the GPU version please also cite:

Manathunga, M.; Aktulga, H. M.; Götz, A. W.; Merz, K. M. Quantum Mechanics/Molecular Mechanics Simulations on NVIDIA and AMD Graphics Processing Units. J. Chem. Inf. Model. 63, 711-717 (2023).

Miao, Y.; Merz, K. M. Acceleration of High Angular Momentum Electron Repulsion Integrals and Integral Derivatives on Graphics Processing Units. J. Chem. Theory Comput. 11, 1449–1462 (2015).

and for multi-GPU calculations please also cite:

Manathunga, M.; Jin, C; Cruzeiro, V. W. D.; Miao, Y.; Mu, D.; Arumugam, K.; Keipert, K.; Aktulga, H. M.; Merz, K. M.; Götz, A. W. Harnessing the Power of Multi-GPU Acceleration into the Quantum Interaction Computational Kernel Program. J. Chem. Theory Comput. 17, 3955–3966 (2021).

If you use QUICK in QM/MM simulations please cite:

Manathunga, M.; Aktulga, H. M.; Götz, A. W.; Merz, K. M. Quantum Mechanics/Molecular Mechanics Simulations on NVIDIA and AMD Graphics Processing Units. J. Chem. Inf. Model. 63, 711-717 (2023).

Cruzeiro, V. W. D.; Manathunga, M.; Merz, K. M.; Götz, A. W. Open-Source Multi-GPU-Accelerated QM/MM Simulations with AMBER and QUICK. J. Chem. Inf. Model. 61, 2109–2115 (2021).

If you perform geometry optimizations please cite:

Shajan, A.; Manathunga, M.; Götz, A.W.; Merz, K.M. Geometry optimization: A comparison of different open-source geometry optimizers. J. Chem. Theory Comput. 19, 7533-7541 (2023).

If you use the DL-FIND for the geometry optimizations please also cite:

Kästner, J.; Carr, J. M.; Keal, T. W.; Thiel, W.; Wander, A.; Sherwood, P. DL-FIND: An Open-Source Geometry Optimizer for Atomistic Simulations. J. Phys. Chem. A 113, 11856-11865 (2009).

License

QUICK is licensed under Mozilla Public License 2.0. More information can be found here.

Special Note to Users

Although QUICK is tested on a range of hardware with different compiler versions, we cannot guarantee that it will work flawlessly in all your applications. But we are working hard to detect and fix any issues. If you experience any compile or runtime issues, please report to us through the issues section of this repository. We appreciate any feedback and contributions to the code.

quick's People

Contributors

agoetz avatar akhilshajan avatar madu86 avatar merzlab avatar miaoyipu avatar mjw99 avatar multiplemonomials avatar ohearnk avatar tjgiese avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

quick's Issues

Segmentation fault

QUICK cuda-mpi version throws a seg fault for the following input: https://pastebin.com/sqVy2GaU. This happens even before the SCF begins so most likely coming from the legacy fortran code.

Platform: Expanse cluster, default compilers.

Few bugs in MPI version of the HF geometry optimization

Hi all,
I have detected and fixed following bugs to get the MPI version of HF gradient code to work.

  1. https://github.com/merzlab/QUICK/blob/master/src/gradient.f90#L421
    The master computes the energy weighted density matrix and stores in HOLD array. The values are not broadcasted but slaves are supposed to use them on L523.
    Fix: Broadcast the computed HOLD array

2)https://github.com/merzlab/QUICK/blob/master/src/mpi_setup.f90#L160, https://github.com/merzlab/QUICK/blob/master/src/mpi_setup.f90#L161 The size of the arrays (6*nbasis) is incorrect. The arrays won’t be broadcasted.
Fix: Use the correct values

3)https://github.com/merzlab/QUICK/blob/master/src/shell.f90#L1811
quick_molspec%chg is not broadcasted. Therefore, slaves will assume zero values
In MPI version.
Fix: Broadcast quick_molspec%chg from mpi_setup.f90

4)https://github.com/merzlab/QUICK/blob/master/src/optimize.f90#L82
MPI geometry optimization would fail at L82 after the first iteration. This is because slave nodes do not have access to quick_method%iopt value.
Fix: Broadcast quick_method%iopt from mpi_setup.f90

With regards,
Madu

Linking errors with CUDA/9.0

Following linking errors (related to cuSOLVER) are observed when compiling QUICK with CUDA/9.0

/cm/extra/apps/CUDA/9.0.103_384.59/lib64/libcusolver.so: undefined reference to `GOMP_critical_end'
/cm/extra/apps/CUDA/9.0.103_384.59/lib64/libcusolver.so: undefined reference to `omp_get_thread_num'
/cm/extra/apps/CUDA/9.0.103_384.59/lib64/libcusolver.so: undefined reference to `omp_get_num_threads'
/cm/extra/apps/CUDA/9.0.103_384.59/lib64/libcusolver.so: undefined reference to `GOMP_parallel_start'
/cm/extra/apps/CUDA/9.0.103_384.59/lib64/libcusolver.so: undefined reference to `omp_get_max_threads'
/cm/extra/apps/CUDA/9.0.103_384.59/lib64/libcusolver.so: undefined reference to `GOMP_loop_end_nowait'
/cm/extra/apps/CUDA/9.0.103_384.59/lib64/libcusolver.so: undefined reference to `GOMP_critical_start'
/cm/extra/apps/CUDA/9.0.103_384.59/lib64/libcusolver.so: undefined reference to `GOMP_parallel_end'
/cm/extra/apps/CUDA/9.0.103_384.59/lib64/libcusolver.so: undefined reference to `GOMP_loop_dynamic_next'
/cm/extra/apps/CUDA/9.0.103_384.59/lib64/libcusolver.so: undefined reference to `GOMP_loop_dynamic_start'
collect2: error: ld returned 1 exit status
make[1]: *** [cuda] Error 1
make: *** [cuda] Error 2

The reason is that cuSOLVER depends on openmp (https://docs.nvidia.com/cuda/archive/9.0/pdf/CUSOLVER_Library.pdf, page 11). @agoetz Shall we temporarily disable support for CUDA versions < 10.0?

Update v21.03 with cmake build system

Please incorporate CMAKE stuff into v21.03 and test. I think the master branch has had many changes since your last PR. So rebasing and testing is required.

Use Run.tests.amber in GitHub checks

Currently, the tests checked by GitHub only take into consideration energies and forces. By also checking the results of the Run.tests.amber script, a higher degree of check would be introduced.

Configure script fails to detect CUDA 11.1

The following configure error is observed when configuring cuda version with CUDA/11.1.

./configure --cuda --arch volta gnu

Configuring QUICK-21.03 installation started on 02/26/2021 at 09:04:47 AM..
Requested installation type/s:  cuda
Operating system: linux-gnu
Requested compiler: GNU.
  gfortran version 4.8.5 found..
  gcc version 4.8.5 found..
  g++ version 4.8.5 found..
No prefix specified for the installation.
A total of 64 cores will be used for the compilation.
Error: Unsupported CUDA version 11.1 detected. 
       QUICK requires at least CUDA version 8.0

BLAS error in QUICK integrated AMBER

QUICK is looking for libblas.so when attempting to run QM/MM simulations. The paths must be correctly set or libblas.so compiled by QUICK must be moved to AMBER's lib folder.

LAPCK/MKL diagonalization

For some reason, we have lost MKL and LAPACK diagonalization capability in v21.03. Internal diagonalizer is exclusively used in serial and mpi versions. Please fix this.

MPI tests fail

MPI tests are failing on some systems when make test is executed.

Testing cudampi version started on 01/18/2021 at 06:22:30 PM.

_Running test 1 of 17
RHF energy test: s and p basis functions
grep: ene_psb5_rhf_631g.out: No such file or directory
Total energy: , Reference value: -401.844805589. Failed

Running test 2 of 17
RHF energy test: s, p and d basis functions
grep: ene_psb5_rhf_631gss.out: No such file or directory
Total energy: , Reference value: -402.013890161. Failed_

This is due to the fact that mpirun has been hardcoded into runtest script: https://github.com/merzlab/QUICK/blob/master/tools/runtest#L276. The choice of mpi executable and flags should be decided by the user.

Seg fault in cudampi version

The following seg fault is observed on DGXA100 when using more than 2 A100s for the attached example input.

Primary job  terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun noticed that process rank 0 with PID 210243 on node rl-dgxa-d22-u30 exited on signal 11 (Segmentation fault).

Compilers: GCC/8.3.1, OpenMPI/4.0.4, CUDA/11

Example:

DFT B3LYP BASIS=6-31G** cutoff=1.0e-9 denserms=1.0e-8 ncyc=1000 GRADIENT

C -6.3960615647 1.6375500661 -1.0167390582
C -5.5976011922 1.9479656072 .3156763742
C -4.1358423840 1.3888885892 .3061559180
C -4.0900116402 -.2069339772 .0759908147
C -5.3005244050 -.5559695927 -.7831189443
C -5.6408352846 .5560151731 -1.7454174478
C -2.8203119095 -.7723427440 -.5951161079
C -3.4405167500 1.9809801074 1.5954932385
C -1.5722954629 -.0769638917 -.1719253097
O -2.6953275274 -2.1590273791 -.1697708437
O -1.8693493295 1.2308626735 -.7751223509
C -1.3334064307 -.1176307913 1.4101576262
C -.8881044770 1.2874584739 1.4845316346
C .3196036852 1.5770567320 .9640605315
O -4.0360627508 2.4497903759 2.5047989338
O -1.9504980519 2.1870799707 1.7492357544
C -.2198636798 -.3744036919 -.8072269875
C .8361321957 .5392960246 -.0882305557
O -6.3705650302 -.7461436866 .1814962812
C -7.5079885256 -1.5312544379 .1764442320
O -7.7343168261 -2.1872429459 1.1532459677
C -8.4523249942 -1.4157500320 -.9939259615
C -5.4161056771 -1.5091023683 -2.0070002809
O -6.2192571555 -.4454467295 -2.6902950026
O -5.4267626184 3.3774437107 .3776243498
O -1.6122441118 4.1801170473 .0343779432
C -.7940923698 5.2257739597 .2990567126
O -.3048947277 5.8645765943 -.5895332555
C -.5432141747 5.4736984394 1.7763873918
C 1.2298580068 2.7852908502 1.0315034732
O 1.9361230485 -.3334212217 .3599506557
C 3.1923971442 .0392867864 .0732007951
O 3.4564612550 1.0474089559 -.5229789642
C 4.1741649865 -1.0074733119 .5409360653
C 5.5923102950 -.5507792057 .2305424754
C 6.6535032780 -1.6276654266 .4267849964
C 6.3531145194 -2.9590427132 .6578478411
C 7.3484376981 -3.9223474323 .5946432758
C 8.6553264573 -3.5577622028 .3262773335
C 8.9721236891 -2.2174054241 .1751067514
C 7.9780880254 -1.2615408527 .2323472017
O 4.0117554647 -1.2781153298 1.9325731679
N 5.9708266751 .6810003374 .8873415746
C 6.1083010659 1.9571429450 .3956141999
O 6.3193157933 2.8803620623 1.1682891449
C 5.8856236342 2.2294771536 -1.0684368500
C 6.1182756121 1.3530945943 -2.1154261935
C 5.5666092653 1.5985926913 -3.3627521786
C 4.8504992902 2.7660991077 -3.5880645167
C 4.7600523715 3.7102511809 -2.5859738609
C 5.2758308332 3.4419993713 -1.3326644938
C -2.1366949616 -3.0476305872 -1.0300505942
O -2.1451655154 -2.8533797614 -2.2328870532
C -1.5033714554 -4.2030087508 -.3691075134
C -1.4395726939 -4.3266981108 1.0054185593
C -.7638829811 -5.3989751504 1.5627241997
C -.1728504183 -6.3468606504 .7427716273
C -.2555829630 -6.2275386962 -.6353203163
C -.9155593963 -5.1509643641 -1.1911103638
C -.2097392796 -1.1547474452 1.8364340368
C -2.4300502071 -.4562312768 2.4707641203
H -3.6491742439 1.8683152472 -.5155830220
H -4.2442039674 -.7298028968 .9946070928
H -6.1319126304 1.5761651125 1.1739416597
H -6.4278095287 2.5627462321 -1.5682088644
H -7.3896383806 1.3053381318 -.7744956635
H -4.7465705868 .9454137315 -2.2120480815
H -2.8855554103 -.7190312325 -1.6682581370
H -1.1756471657 1.8958446516 -.6850815225
H -1.8481632425 3.6442035335 .8091515684
H -.3040222781 -.0416779115 -1.8339005061
H .0915191278 -1.3952921601 -.8028715623
H 1.2665207958 1.1759763221 -.8367612418
H -7.9447751635 -1.4087835985 -1.9396806789
H -8.9860724820 -.4736978340 -.9254124624
H -9.1714803590 -2.2205724001 -.9250166491
H -5.9696659013 -2.4206608341 -1.8715269767
H -4.4956987862 -1.6916167197 -2.5341522638
H -6.1859306778 3.7990292112 .8057985278
H -.4047348600 4.5302819326 2.2918679722
H -1.4092253680 5.9590265117 2.2201988007
H .3171040869 6.0931663404 1.8871608880
H 1.4832824150 3.0343295148 2.0569031127
H .8689347198 3.6687756404 .5365846962
H 2.1684888568 2.5341563953 .5367744746
H 3.9669613366 -1.8924968836 -.0572581027
H 5.5541772134 -.3516751663 -.8217997298
H 5.3544974548 -3.2557099687 .9038847941
H 7.0989139525 -4.9513958159 .7469287918
H 9.4171939156 -4.3036934271 .2407856159
H 9.9857443995 -1.9177653222 .0023467668
H 8.2254733522 -.2253064772 .1253413078
H 3.1299494847 -1.6337868182 2.1083778803
H 6.0936138326 .6250743708 1.8859547914
H 6.7084379892 .4705180459 -1.9833352247
H 5.6743950704 .8727859493 -4.1412749888
H 4.3798456238 2.9274160428 -4.5335955847
H 4.2563843627 4.6442138650 -2.7660687217
H 5.1747305805 4.1495326330 -.5327311357
H -1.9015964720 -3.5961881882 1.6316249866
H -.6959960683 -5.4955297144 2.6284271470
H .3482320371 -7.1761491687 1.1766068045
H .1934856075 -6.9647950021 -1.2689411336
H -.9826070096 -5.0258752831 -2.2518209168
H .6895305096 -.6503325497 2.1318038533
H .0408559146 -1.8507203279 1.0570933960
H -.5497152190 -1.7387966223 2.6730562622
H -2.6864693812 -1.5071204618 2.3903167090
H -3.3390142876 .1000510598 2.4688669158
H -1.9770019524 -.2959025420 3.4410100992

Not able to build on Mac

I got this error message when I try to build on Mac

ld: warning: ignoring file ./lib/blas.a, file was built for archive which is not the architecture being linked (x86_64): ./lib/blas.a
Undefined symbols for architecture x86_64:
  "_dgemm_", referenced from:
      _electdiis_ in scf.o
ld: symbol(s) not found for architecture x86_64

This looks like BLAS does not have right make arguments for x86_64. A hacky way is to modify
src/BLAS/make.inc

Change

ARCH     = ar
ARCHFLAGS= cr

To

ARCH     = libtool
ARCHFLAGS= -static -o

configure script is deleting existing libraries

If the Quick libraries are already installed, they are being deleted when the configure script is executed. This should not happen. Old libraries should be overwritten only when new ones are installed during make install or deleted during an action like make uninstall, not by the configure script.

Ship LAPACK with QUICK

Add LAPACK to QUICK. Should get compiled if the user does not have system LAPACK or MKL installed.

Improve readme file

It will be nice to have some performance information in the readme file. Perhaps a plot comparing performance on different GPUs and cpu platforms. Additional performance information can go into the documentation.

MPI version fails for large test cases

Following seg fault is observed for large examples when using mpi version. The example is Valinomycin gradient calculation at B3LYP/6-31G** level of theory.

forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
quick.MPI 0000000000B2555D Unknown Unknown Unknown
libpthread-2.17.s 00007FEBF06FF630 Unknown Unknown Unknown
quick.MPI 00000000004CA2C8 Unknown Unknown Unknown
quick.MPI 00000000004C898C Unknown Unknown Unknown
quick.MPI 000000000041FDA9 Unknown Unknown Unknown
quick.MPI 0000000000423FD3 Unknown Unknown Unknown
quick.MPI 0000000000405017 Unknown Unknown Unknown
quick.MPI 0000000000404E9E Unknown Unknown Unknown
libc-2.17.so 00007FEBF003A555 __libc_start_main Unknown Unknown
quick.MPI 0000000000404DA9 Unknown Unknown Unknown

Compiler: Intel/2018.0.5, MPI: intelmpi/2018.0.5
System: Centos 7, 3.10.0-1127.18.2.el7.x86_64
CPU: AMD FX(tm)-8350 Eight-Core Processor
Memory: 8 GB
Execution command: mpirun -np 4 quick.MPI

MPI run fails

I am experiencing the following segfault for taxol B3LYP/6-31G** gradient calculation.

forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line Source
quick.MPI 0000000000B2351D Unknown Unknown Unknown
libpthread-2.17.s 00007F014B0A0630 Unknown Unknown Unknown
quick.MPI 00000000004CAF23 Unknown Unknown Unknown
quick.MPI 00000000004C96CC Unknown Unknown Unknown
quick.MPI 000000000041FC29 Unknown Unknown Unknown
quick.MPI 0000000000423603 Unknown Unknown Unknown
quick.MPI 0000000000405121 Unknown Unknown Unknown
quick.MPI 0000000000404F5E Unknown Unknown Unknown
libc-2.17.so 00007F014A9E3555 __libc_start_main Unknown Unknown
quick.MPI 0000000000404E69 Unknown Unknown Unknown

QUICK version: v21.03, mpi executable
MPI command: mpirun -np 4
Compiler: Intel/2018.0.5, MPI: intelmpi/2018.0.5
System: Centos 7, 3.10.0-1127.18.2.el7.x86_64
CPU: Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
Memory: 64 GB

not finding dgemm when building quick.cuda

Here's what I get when building quick.cuda with GNU 5.5 and cuda 10.1:

gfortran -o ./bin/quick.cuda ./obj/main.o ./obj/initialize.o ./obj/read_job_and_atom.o ./obj/fmm.o ./obj/getMolSad.o ./obj/getMol.o ./obj/shell.o ./obj/schwarz.o ./obj/quick_one_electron_integral.o ./obj/getEnergy.o ./obj/inidivcon.o ./obj/ecp.o ./obj/hfoperator.o ./obj/nuclear.o ./obj/dft.o ./obj/sedftoperator.o ./obj/dipole.o ./obj/scf.o ./obj/uscf.o ./obj/finalize.o ./obj/uhfoperator.o ./obj/udftoperator.o ./obj/usedftoperator.o ./obj/uelectdii.o ./obj/mpi_setup.o ./obj/quick_debug.o ./obj/calMP2.o ./obj/optimize.o ./obj/gradient.o ./obj/hessian.o ./obj/CPHF.o ./obj/frequency.o ./obj/MFCC.o ./obj/basis.o ./obj/fake_amber_interface.o ./obj/scf_operator.o   ./obj/quick_mpi_module.o ./obj/quick_constants_module.o ./obj/quick_method_module.o ./obj/quick_molspec_module.o ./obj/quick_gaussian_class_module.o ./obj/quick_size_module.o ./obj/quick_amber_interface_module.o ./obj/quick_basis_module.o ./obj/quick_calculated_module.o ./obj/quick_divcon_module.o ./obj/quick_ecp_module.o ./obj/quick_electrondensity_module.o ./obj/quick_files_module.o ./obj/quick_gridpoints_module.o ./obj/quick_mfcc_module.o ./obj/quick_params_module.o ./obj/quick_pb_module.o ./obj/quick_scratch_module.o ./obj/quick_timer_module.o ./obj/quick_all_module.o ./obj/gpu_write_info.o ./obj/gpu.o ./obj/gpu_type.o ./obj/gpu_getxc.o ./obj/gpu_get2e.o  ./lib/quicklib.a ./obj/fortran_thunking.o \
./lib/libxcf90.a ./lib/libxc.a -lgfortran -g -L/usr/local/cuda/lib64 -lcuda -lm -L/usr/local/cuda/lib64 -lcudart -lcublas -lstdc++ -O3 -lm -mtune=native  -ffree-form  -DGNU -cpp
./obj/scf.o: In function `electdiis_':
scf.f90:(.text+0x3eb7): undefined reference to `dgemm_'

It's not clear where you are expecting to BLAS from; probably something simple I did wrong, but if it happened to me, it's likely to happen to others.

Add config file for user

We should add a configuration file quick.rc in the install directory that the user can source in their shell. Content should be

export QUICK_INSTALL=/path/to/QUICK/installation
export QUICK_BASIS=$QUICK_INSTALL/basis
export PATH=$QUICK_INSTALL/bin:$PATH

The user can then do

source /path/to/QUICK/installation/quick.rc

New test cases

Please add the following external point charge test case into QUICK test suite.

DFT B3LYP BASIS=DEF2-SVP SCF=200 CHARGE=-1 MULT=1 GRADIENT EXTCHARGES

C -4.1308 2.6295 1.0878
S -2.6244 1.8802 1.5628
C -2.0802 0.8107 0.3515
O -2.7550 0.6737 -0.6541
C -0.8565 0.1859 0.5817
C -0.2527 -0.6193 -0.2767
C 1.1313 -1.1758 -0.0621
C 1.7287 -1.8745 -1.1900
C 2.9421 -2.5739 -1.0123
C 3.6077 -2.4510 0.1934
C 3.0336 -1.8448 1.2563
C 1.8076 -1.1970 1.1971
O 4.8115 -3.0664 0.3197
H -4.8115 2.0049 0.5218
H -4.6212 3.0736 1.9702
H -0.3240 0.5151 1.4775
H -0.8031 -0.8066 -1.1193
H 1.3209 -1.9001 -2.1856
H 3.4505 -3.0736 -1.8355
H 3.5785 -1.9116 2.1856
H 1.3907 -0.8109 2.1186
H -3.9396 3.5347 0.5116

7.8017 -5.6165 7.6596 -0.0252
7.0030 -5.2089 6.9992 0.0698
9.7675 -4.7850 6.3112 0.2719
10.4683 -2.4352 5.5388 0.5973
10.8025 -3.1641 4.6153 -0.5679
10.2609 -1.1515 5.4075 -0.4157
9.7605 -0.7651 6.2056 0.2719
10.5739 -0.4013 4.2080 -0.0597
11.1478 -0.9411 3.4668 0.0869
9.2980 0.1248 3.4671 0.1303
8.7348 0.8685 4.0809 0.0187
9.6629 0.8196 2.0507 -0.3204
10.1497 0.1194 1.3766 0.0882
8.7375 1.1157 1.5645 0.0882
10.3973 1.6649 2.1192 0.0882
8.3813 -1.0603 3.2689 -0.0430
8.7637 -1.8968 2.6195 0.0236
8.1198 -1.4865 4.2608 0.0236
7.0054 -0.6445 2.7316 -0.0660
6.7272 0.2673 3.2696 0.0186
7.0005 -0.4224 1.6757 0.0186
6.2364 -1.3296 2.8435 0.0186
8.0288 4.4954 3.2625 0.1000
9.0924 3.7226 1.0074 0.1000
10.9250 0.4167 -1.6301 0.0882
9.6723 2.8217 -0.7677 0.0236
8.7122 1.9407 -2.5721 -0.0660
8.7578 2.0892 -3.6789 0.0186
8.8828 0.8532 -2.3964 0.0186
7.7758 2.1590 -2.1766 0.0186
12.4223 -2.9741 2.4957 0.0876
12.4911 -3.5630 0.4334 -0.0152
12.4387 -2.5515 0.0567 0.0295
11.1547 -4.3542 0.3893 -0.0011
11.2176 -5.7215 0.1263 -0.1906
12.1764 -6.1706 0.0093 0.1699
9.9851 -6.3959 -0.1301 -0.2341
9.9803 -7.4967 -0.4058 0.1656
8.7721 -5.7050 -0.1228 0.3226
7.5631 -6.3588 -0.0745 -0.5579
7.6734 -7.2939 -0.1919 0.3992
8.7187 -4.3631 0.0294 -0.2341
7.7893 -3.8362 -0.0617 0.1656
9.9257 -3.6707 0.2435 -0.1906
9.9005 -2.6398 0.3541 0.1699
11.5431 -5.2793 3.2058 0.2719
10.3316 -7.6058 3.2724 -0.5679
8.1737 -7.8702 4.9668 -0.4157
9.1478 -7.7102 4.7087 0.2719
7.1730 -6.9791 4.3292 0.0145
6.4368 -6.8880 5.1130 0.0779
7.8735 -5.6768 3.9767 -0.0071
8.4553 -5.2952 4.8453 0.0256
8.6301 -5.8605 3.1415 0.0256
6.8613 -4.6253 3.4944 -0.0174
7.3249 -3.7316 3.1649 0.0430
6.2020 -5.0006 2.7243 0.0430
5.9512 -4.1402 4.6461 0.6801
6.2890 -3.2002 5.4192 -0.5838
4.8090 -4.7202 4.9604 -0.6511
4.5713 -4.2540 5.7778 0.4641
6.6110 -7.7980 3.1388 0.5973
5.3804 -7.6933 2.9470 -0.5679
7.3835 -8.6059 2.4631 -0.4157
8.3573 -8.6141 2.6513 0.2719
6.9235 -9.3677 1.3063 -0.0252
6.4641 -8.6729 0.5843 0.0698
7.8289 -9.8222 0.8789 0.0698
5.8124 -10.3861 1.7017 0.5973
4.8802 -10.6107 0.9481 -0.5679
3.6198 -9.8085 4.3056 -0.4157
4.5933 -9.4845 4.5447 0.2719
2.4490 -8.9290 4.6221 -0.0597
2.9598 -7.7357 5.4579 0.1303
3.7274 -7.1584 4.9983 0.0187
1.7710 -6.8017 5.8002 -0.3204
2.0624 -6.1288 6.5749 0.0882
1.3395 -6.2840 4.9387 0.0882
0.9904 -7.4621 6.2127 0.0882
3.4043 -8.1760 6.8913 -0.0430
4.3323 -7.1346 7.4955 -0.0660
5.3424 -7.1711 7.0860 0.0186
3.9110 -6.1355 7.3743 0.0186
1.7858 -8.5090 3.2954 0.5973
0.5796 -8.4831 3.1989 -0.5679
2.5607 -8.1486 2.2913 -0.4157
3.5361 -8.2877 2.3455 0.2719
2.1282 -7.2872 1.1918 -0.0389
1.0710 -7.1752 1.3089 0.1007
2.9011 -5.9172 1.0476 0.3654
2.3464 -5.2999 0.3324 0.0043
3.0174 -5.3341 2.4566 -0.2438
3.5930 -5.9769 3.1544 0.0642
3.5023 -4.4382 2.4023 0.0642
2.0891 -5.0874 2.8645 0.0642
4.1979 -6.1380 0.4684 -0.6761
4.5786 -5.2743 0.4400 0.4102
2.1974 -7.9525 -0.1964 0.5973
1.9325 -7.2868 -1.1913 -0.5679
2.7389 -9.1267 -0.2907 -0.4157
3.1379 -9.5822 0.5709 0.2719
3.0968 -9.8110 -1.5262 -0.0252
3.1694 -10.8361 -1.3110 0.0698
2.2221 -9.7091 -2.1855 0.0698
4.3678 -9.3955 -2.2782 0.5973
4.7549 -10.2215 -3.1091 -0.5679
4.8899 -8.1220 -2.1646 -0.3479
4.5921 -7.5074 -1.4400 0.2747
5.9816 -7.6405 -3.0338 -0.2637
5.7157 -7.8221 -4.0549 0.1560
5.9325 -6.0921 -2.9060 -0.0007
5.9761 -5.7342 -1.9023 0.0327
6.8306 -5.7779 -3.5115 0.0327
4.8051 -5.3685 -3.6150 0.0390
4.8943 -4.2870 -3.4637 0.0285
4.8839 -5.5955 -4.6418 0.0285
3.4194 -5.6494 -3.1363 0.0486
3.1955 -6.7621 -3.2858 0.0687
3.3989 -5.2948 -2.0316 0.0687
2.5526 -4.7109 -3.9250 -0.5295
2.9815 -4.3677 -4.7574 0.3456
1.3146 -4.3002 -3.6580 0.8076
0.6786 -4.8454 -2.6116 -0.8627
1.1388 -5.5690 -2.0815 0.4478
-0.2471 -4.4826 -2.4492 0.4478
0.6179 -3.4626 -4.4001 -0.8627
1.0108 -3.0283 -5.1893 0.4478
-0.3772 -3.3101 -4.1939 0.4478
7.3509 -8.1802 -2.8114 0.7341
7.6908 -8.6672 -1.7244 -0.5894
8.1874 -8.0038 -3.8200 -0.5163
7.8520 -7.4686 -4.6683 0.2936
10.0267 -6.1725 -4.6975 -0.5819
9.6690 -1.7485 -5.4400 -0.0875
9.0164 -1.1799 -6.0796 0.0969
8.7623 -2.2160 -4.2765 0.2985
8.3432 -1.2437 -3.9189 -0.0297
7.6426 -3.1382 -4.5910 -0.3192
7.0294 -3.3609 -3.7384 0.0791
7.0636 -2.6941 -5.3783 0.0791
8.0470 -4.0562 -4.9182 0.0791
9.6394 -2.7292 -3.0774 -0.3192
10.2417 -3.6039 -3.2372 0.0791
10.3334 -1.8917 -2.7379 0.0791
8.9838 -2.9763 -2.3116 0.0791
7.5768 -0.1631 -7.4052 0.0621
5.6314 4.6412 -1.8357 -0.0024
5.4645 3.6129 -2.2361 0.0978
6.2578 4.6363 -0.4710 -0.0343
7.2224 4.0413 -0.5439 0.0295
5.3569 3.9444 0.5140 0.0118
5.4155 2.5196 0.5409 -0.1256
5.9855 1.8874 -0.1049 0.1330
4.6655 1.8361 1.5729 -0.1704
4.6372 0.7240 1.5965 0.1430
3.7781 2.5063 2.4334 -0.1072
3.2896 1.9875 3.2641 0.1297
3.7693 3.9163 2.3216 -0.1704
3.0996 4.4368 3.0084 0.1430
4.5968 4.6491 1.4184 -0.1256
4.5982 5.6873 1.4477 0.1330
4.2097 5.2808 -1.9424 0.5973
3.2733 4.7097 -2.4203 -0.5679
2.1485 6.8815 -1.2466 0.0978
2.1046 8.1798 1.4129 0.1330
3.5748 2.6312 -6.8019 0.5366
3.3296 1.6638 -7.5745 -0.5819
3.5762 2.4683 -5.4584 -0.4157
3.8284 3.2569 -4.9331 0.2719
3.5084 1.1465 -4.7351 -0.0875
3.5272 0.3622 -5.5329 0.0969
4.7600 0.9106 -3.9300 0.2985
4.8610 1.7938 -3.3067 -0.0297
4.6651 -0.3123 -3.0616 -0.3192
3.8192 -0.1877 -2.3644 0.0791
4.6115 -1.2721 -3.5428 0.0791
5.6030 -0.4409 -2.6039 0.0791
6.0760 0.8296 -4.8111 -0.3192
6.2204 1.8480 -5.1845 0.0791
6.8730 0.5203 -4.1324 0.0791
5.8885 0.0731 -5.5879 0.0791
2.2651 1.0855 -3.8165 0.5973
1.5614 0.0293 -3.9145 -0.5679
2.0265 2.1702 -3.0123 -0.4157
2.7616 2.8455 -2.9656 0.2719
1.0600 2.1448 -1.8996 0.0337
0.4784 1.1918 -1.9843 0.0823
1.8666 2.0289 -0.5379 -0.1825
2.5095 2.9042 -0.3233 0.0603
1.1177 1.9681 0.2429 0.0603
2.4665 1.0793 -0.5796 0.0603
0.1076 3.3195 -1.8394 0.5973
0.1636 4.1511 -0.8846 -0.5679
-0.8473 3.4480 -2.7768 -0.2548
-1.2251 2.4105 -3.7639 0.0192
-1.4370 1.4110 -3.2951 0.0391
-0.5385 2.3019 -4.5236 0.0391
-2.5678 2.9663 -4.3141 0.0189
-3.4048 2.7304 -3.7576 0.0213
-2.7857 2.5684 -5.3332 0.0213
-2.3315 4.5222 -4.3809 -0.0070
-3.2701 5.0107 -4.5103 0.0253
-1.6179 4.8259 -5.1132 0.0253
-1.7401 4.6279 -2.9191 -0.0266
-1.1152 5.5078 -2.8301 0.0641
-2.7438 4.7403 -1.7839 0.5896
-3.3219 5.8522 -1.6053 -0.5748
-3.0009 3.7335 -0.9532 -0.5365
-3.1769 4.9400 1.2198 0.6535
-3.8701 5.4623 2.1149 -0.6257
-2.5589 2.8223 -1.0050 0.3159
-4.8618 4.2338 0.0510 0.1201
-1.8727 5.2853 1.0998 -0.4157
-1.4182 4.7601 0.3160 0.2719
-1.0934 6.1458 1.9818 -0.0389
-1.5257 6.1648 2.9730 0.1007
0.3607 5.5828 2.1976 0.3654
0.9761 6.0086 2.9864 0.0043
0.2150 4.1086 2.6448 -0.2438
-0.6933 4.1004 3.2230 0.0642
0.1314 3.4590 1.8089 0.0642
1.0594 3.7498 3.2502 0.0642
1.1761 5.6664 1.0075 -0.6761
0.8773 4.9606 0.3881 0.4102
-0.9712 7.6583 1.5641 0.5973
-0.4398 8.4587 2.3132 -0.5679
-1.6080 8.0281 0.4372 -0.5163
-2.0115 7.2250 -0.0476 0.2936
-1.6321 9.4230 -0.1432 0.0381
-1.6479 9.4761 -1.5916 -0.0303
-0.8896 8.8571 -2.0395 -0.0122
-2.6122 9.0594 -1.8713 -0.0122
-2.6266 10.3635 0.6004 0.5366
-2.5124 10.4116 1.9328 -0.4157
-1.7445 9.8844 2.4011 0.2719
-4.3159 9.9690 3.2326 0.2117
-5.3042 10.3814 3.5764 0.0352
-4.6044 9.4767 2.3393 0.0352
-3.6946 9.1272 4.2425 -0.6546
-3.9466 8.2129 4.0002 0.4275
-4.8637 9.1723 6.7994 -0.0173
-0.4938 7.4571 5.9535 -0.0343
-1.3797 7.0168 6.3640 0.0295
-0.8376 7.6976 4.9641 0.0295
0.6216 6.3974 5.8740 0.0118
0.3424 5.0393 5.9936 -0.1256
-0.6454 4.6331 6.1218 0.1330
1.4565 4.1210 6.1833 -0.1704
1.1763 3.1128 6.2708 0.1430
2.7946 4.4817 6.1665 -0.1072
3.5191 3.7235 6.0258 0.1297
3.0499 5.8214 5.9261 -0.1704
2.0123 6.7529 5.8320 -0.1256
-3.8878 1.2334 8.9799 -0.0014
-4.7581 1.8342 8.8518 0.0876
-2.6887 1.9768 8.1847 -0.0152
-2.0791 2.5179 9.0054 0.0295
-1.9679 1.2536 7.8105 0.0295
-3.1720 3.0109 7.1835 -0.0011
-2.8364 2.9046 5.7949 -0.1906
-2.4223 1.9669 5.4501 0.1699
-3.0785 3.9605 4.8965 -0.2341
-2.9375 3.8381 3.8615 0.1656
-3.6382 5.1491 5.3991 0.3226
-3.9355 6.1964 4.6275 -0.5579
-4.0651 5.8759 3.6942 0.3992
-3.9380 5.2469 6.8284 -0.2341
-4.3272 6.1809 7.2087 0.1656
-3.7574 4.1598 7.6873 -0.1906
-3.9120 4.2369 8.7670 0.1699
-4.2700 -0.0865 8.3843 0.5973
-4.6120 -0.1790 7.0960 -0.4157
-4.6439 0.7161 6.5201 0.2719
-4.9026 -1.3562 6.2600 -0.0389
-4.7739 -2.2868 6.7513 0.1007
-6.3989 -1.5211 6.0911 0.3654
-6.6402 -0.5921 5.6177 0.0043
-6.7877 -2.7231 5.2089 -0.2438
-6.1722 -2.9201 4.3364 0.0642
-6.8104 -3.7204 5.7030 0.0642
-7.8649 -2.6784 4.8511 0.0642
-7.1041 -1.5531 7.2907 -0.6761
-7.0720 -0.6650 7.6841 0.4102
-4.2493 -1.2079 4.9100 0.5973
-4.3551 -0.2001 4.2521 -0.5679
-3.5450 -2.2821 4.4857 -0.4157
-3.6265 -3.1647 4.9792 0.2719
-3.0622 -2.4745 3.1277 -0.0024
-3.1411 -1.4860 2.5353 0.0978
-1.5231 -2.7788 3.2052 -0.0343
-1.3820 -3.7823 3.5523 0.0295
-1.1816 -2.6315 2.2303 0.0295
-0.6710 -1.8770 4.0454 0.0118
0.5117 -2.5078 4.5513 -0.1256
0.6249 -3.5674 4.4330 0.1330
1.5583 -1.7033 4.9874 -0.1704
2.4073 -2.2076 5.3725 0.1430
1.4733 -0.2435 5.0614 -0.1072
2.1448 0.3358 5.6403 0.1297
0.2605 0.2411 4.6520 -0.1704
0.1527 1.2662 4.6827 0.1430
-0.8576 -0.5035 4.1144 -0.1256
-1.6132 -0.0513 3.5649 0.1330
-3.9676 -3.3292 2.2783 0.5973
-4.5448 -4.2711 2.8023 -0.5679
-4.2066 -2.9518 0.9986 -0.5163
-3.8191 -2.1288 0.6534 0.2936
-5.2486 -3.5435 0.1501 0.0381
-5.3173 -4.5840 0.4029 0.0880
-6.6626 -2.9201 0.4715 -0.0303
-7.5136 -3.6177 0.2082 -0.0122
-6.7763 -2.6734 1.5053 -0.0122
-6.8006 -1.6454 -0.3295 0.7994
-7.5504 -1.6316 -1.3084 -0.8014
-6.2530 -0.5867 0.0564 -0.8014
-4.8555 -3.4492 -1.3810 0.5366
-5.3654 -4.2536 -2.1553 -0.5819
-4.2208 -2.3824 -1.9018 -0.4157
-4.0744 -1.5984 -1.2474 0.2719
-3.9049 -2.2369 -3.3425 -0.0014
-4.7967 -2.0283 -3.8762 0.0876
-3.0486 -1.0105 -3.6938 -0.0152
-3.5634 -0.1664 -3.1931 0.0295
-2.0744 -1.0037 -3.2562 0.0295
-2.7899 -0.6536 -5.1461 -0.0011
-1.4553 -0.6619 -5.5559 -0.1906
-0.6574 -0.7903 -4.8884 0.1699
-1.1457 -0.1878 -6.8260 -0.2341
-0.1184 0.1327 -6.9856 0.1656
-2.1074 0.0365 -7.7847 0.3226
-1.7280 0.4890 -9.0317 -0.5579
-0.8121 0.6212 -9.1601 0.3992
-3.4289 0.0497 -7.4001 -0.2341
-4.2169 0.3317 -8.1030 0.1656
-3.8191 -0.3398 -6.1049 -0.1906
-4.9016 -0.2930 -5.7690 0.1699
-3.1623 -3.4682 -3.8738 0.5973
-2.0777 -3.8004 -3.3830 -0.5679
-3.7559 -4.1430 -4.9204 -0.4157
-4.7435 -3.7736 -5.0971 0.2719
-3.3827 -5.4022 -5.5800 -0.0031
-4.2345 -5.7305 -6.1808 0.0850
-2.3198 -5.1018 -6.6729 -0.0036
-1.3585 -4.8452 -6.1845 0.0171
-2.1085 -5.9971 -7.3006 0.0171
-2.6028 -3.8918 -7.6641 -0.0645
-2.7011 -2.9739 -7.1443 0.0352
-1.7042 -3.7032 -8.3326 0.0352
-3.0964 -6.5464 -4.6553 0.5973
-2.4333 -7.5464 -5.1045 -0.5679
-3.5392 -6.4818 -3.4039 -0.4157
-4.0842 -5.7108 -3.0969 0.2719
-3.3305 -7.5719 -2.3637 -0.0237
-3.0512 -8.4302 -2.9384 0.0880
-2.2250 -7.2502 -1.3292 0.0342
-2.0409 -8.0578 -0.5974 0.0241
-1.2930 -7.1455 -1.8347 0.0241
-2.5089 -5.9773 -0.5231 0.0018
-2.5484 -5.1307 -1.1563 0.0440
-3.4605 -5.9898 -0.0452 0.0440
-1.3223 -5.3840 0.7390 -0.2737
-1.5548 -6.5118 2.1506 -0.0536
-2.5096 -6.3083 2.5312 0.0684
-1.6179 -7.5744 1.8259 0.0684
-0.7463 -6.3820 2.8689 0.0684
-4.8449 -5.7241 4.0592 0.2719
-2.7913 -6.4690 4.9028 0.0043
-3.9039 -4.6820 6.4411 -0.5679
-0.6453 -3.3409 9.1036 0.2985
0.2223 -3.1599 9.5583 -0.0297
-0.5810 -4.5573 8.1675 -0.3192
-1.4992 -4.7036 7.5735 0.0791
0.4056 -4.5450 7.5881 0.0791
-0.9249 -2.0901 8.2472 -0.3192
-0.8951 -1.1305 8.7422 0.0791
-0.1765 -2.0882 7.4319 0.0791
-1.9192 -2.2384 7.8084 0.0791
3.8979 1.6239 9.1904 0.0791
2.6821 3.0028 8.7368 0.0791
0.9891 0.9479 9.5088 -0.3192
1.4872 0.1392 9.0396 0.0791
0.5683 1.6313 8.7510 0.0791
7.7605 2.7703 6.8626 0.2985
7.9647 2.0354 6.1258 -0.0297
6.2499 2.5045 7.1261 -0.3192
5.6738 2.7996 6.2142 0.0791
6.1025 1.3833 7.2064 0.0791
8.4903 0.0059 7.6118 -0.5679
4.7526 -2.8286 9.8154 -0.0875
4.4786 -2.8120 8.2663 0.2985
5.1245 -3.5738 7.7667 -0.0297
2.9649 -3.0719 7.9159 -0.3192
2.9546 -3.5436 6.9058 0.0791
2.5284 -3.8373 8.4716 0.0791
2.3382 -2.2318 7.9605 0.0791
4.8462 -1.5813 7.4451 -0.3192
5.9130 -1.3617 7.4987 0.0791
4.6933 -1.5886 6.3910 0.0791
4.3010 -0.7866 7.8250 0.0791
6.5631 -7.5941 -6.6980 -0.8200
6.3607 -8.4422 -6.1319 0.4100
-10.0318 4.6620 0.8812 -0.8200
-10.9619 4.6492 0.3935 0.4100
-9.5887 5.5663 0.5966 0.4100
-7.8197 4.6735 -1.3682 -0.8200
-8.0588 3.9635 -0.6499 0.4100
-7.3693 5.4264 -0.9484 0.4100
-8.4956 7.0148 7.2871 -0.8200
-7.5213 7.2181 6.9053 0.4100
-8.3448 6.0196 7.6103 0.4100
-7.6422 9.1700 4.0689 -0.8200
-7.4360 9.8201 4.8927 0.4100
-7.5934 8.2246 4.4902 0.4100
-7.1273 0.6570 8.7144 -0.8200
-6.9543 1.5547 8.1901 0.4100
-6.4330 7.0052 5.3590 -0.8200
-5.3940 6.9258 5.4571 0.4100
-6.7207 6.4028 4.5348 0.4100
-6.6185 -0.4464 -3.3567 -0.8200
-7.1636 -0.9077 -2.6075 0.4100
-6.0727 0.3047 -2.8451 0.4100
-6.5282 0.3766 2.4020 -0.8200
-6.4341 -0.0874 1.4428 0.4100
-5.7057 0.1644 2.9899 0.4100
0.8700 1.4951 -9.0667 -0.8200
1.7553 1.4820 -8.5965 0.4100
-4.5063 7.3941 -3.2702 -0.8200
-3.7468 7.9019 -3.7135 0.4100
-4.0461 6.7589 -2.5612 0.4100
-9.8537 2.6529 -2.6218 -0.8200
-8.9862 2.1029 -2.7768 0.4100
-9.8601 3.0456 -1.7157 0.4100
-6.7825 2.5478 6.7983 -0.8200
-7.2962 2.0630 6.0543 0.4100
-6.0899 3.2241 6.4204 0.4100
-8.4342 0.9475 -5.6529 -0.8200
-8.2657 0.0364 -6.1319 0.4100
-7.7795 1.0486 -4.8512 0.4100
-5.3357 1.1712 -1.6460 -0.8200
-4.3276 1.0758 -1.7705 0.4100
-5.5660 0.5318 -0.8453 0.4100
-8.9310 -0.5881 3.3021 -0.8200
-8.1165 -0.0633 2.8670 0.4100
-9.8025 -0.3195 2.8099 0.4100
-10.1938 5.0178 -4.4271 -0.8200
-9.9210 4.2293 -3.8251 0.4100
-5.8859 9.0783 -1.7047 -0.8200
-5.2393 8.4585 -2.1649 0.4100
-6.8222 8.9848 -2.0758 0.4100
-9.2291 9.5140 1.8852 -0.8200
-8.7513 9.3958 2.7590 0.4100
-8.9546 7.8447 -2.4796 -0.8200
-9.3254 7.2297 -3.1616 0.4100
-6.1366 3.6985 -5.6640 -0.8200
-6.5593 4.5794 -5.4354 0.4100
-6.3359 3.1495 -4.8175 0.4100
-2.4322 4.4777 -7.6040 0.4100
-3.9488 4.1245 -7.6644 0.4100
-0.9693 3.7427 -7.5005 -0.8200
-0.1726 4.3062 -7.2038 0.4100
1.9797 -2.6824 -9.5377 -0.8200
1.0625 -2.4299 -10.0676 0.4100
2.7301 -2.0801 -9.9164 0.4100
-10.2658 -1.9299 4.5971 0.4100
0.1378 -7.4462 -4.5947 -0.8200
-0.7477 -7.6348 -4.9951 0.4100
0.5601 -8.2922 -4.1579 0.4100
6.4434 -3.6092 -7.6180 -0.8200
7.3887 -3.3319 -7.5633 0.4100
6.1196 -3.1768 -8.4914 0.4100
-8.2477 -3.8947 -2.7877 -0.8200
-7.5311 -4.6220 -2.7484 0.4100
-7.7986 -2.9739 -2.4634 0.4100
4.2128 -6.7339 -7.3864 -0.8200
4.1571 -5.7381 -7.6105 0.4100
5.2284 -6.9289 -7.1864 0.4100
1.8868 -2.2652 -6.6345 -0.8200
1.8437 -2.4774 -7.6249 0.4100
2.3737 -1.3775 -6.5572 0.4100
1.6489 -10.2059 -4.7529 -0.8200
4.4483 -0.7828 -7.7904 -0.8200
3.8694 0.0904 -7.5876 0.4100
4.2350 -1.1068 -8.7531 0.4100
4.1701 -3.9359 -6.4775 -0.8200
3.7245 -3.0403 -6.4872 0.4100
5.0829 -3.8245 -6.9233 0.4100
1.4665 -6.7755 -7.0159 -0.8200
0.9995 -7.0576 -6.1317 0.4100
2.4777 -6.6496 -6.8615 0.4100
0.2222 -5.2888 -8.8340 -0.8200
0.8495 -4.4670 -9.1053 0.4100
0.6949 -5.9610 -8.2345 0.4100
-9.7362 2.6881 2.7956 -0.8200
-9.9465 3.1715 1.8969 0.4100
-10.6476 2.5887 3.1984 0.4100
-11.6201 3.2146 -2.4049 0.4100
-10.1205 -3.3568 2.6259 -0.8200
-9.2212 -2.9574 3.0403 0.4100
-8.6164 1.0835 5.4634 -0.8200
-8.5989 0.2048 4.8318 0.4100
-9.2365 1.7200 4.9573 0.4100
-8.2740 1.7528 -0.0163 -0.8200
-8.9947 1.0684 0.2549 0.4100
-7.3879 1.3498 0.2703 0.4100
-9.5993 5.9551 3.3108 -0.8200
-9.7329 5.4463 2.4403 0.4100
-8.6102 6.1239 3.5447 0.4100
-8.0543 4.3330 8.2295 -0.8200
-7.5867 3.5728 7.7503 0.4100
-9.0181 4.0456 8.5030 0.4100
-12.4282 3.0447 3.5363 -0.8200
-12.0644 3.5039 4.4011 0.4100
-10.9968 6.9082 3.5320 0.4100
-6.6099 6.3625 -4.8377 -0.8200
-7.3879 7.0288 -4.9897 0.4100
-5.8732 6.7465 -4.1468 0.4100
-7.0078 2.9103 3.3022 -0.8200
-6.6807 2.0472 2.8786 0.4100
-8.0453 2.8114 3.2527 0.4100
-11.2317 -1.1473 0.7470 0.4100
-9.6388 0.4458 7.2727 0.4100
-10.9805 4.5126 5.3087 -0.8200
-10.2423 5.0021 4.7289 0.4100
-6.9797 2.8281 -3.1369 -0.8200
-7.2549 3.7183 -2.6543 0.4100
-6.4360 2.2013 -2.4993 0.4100
-9.0902 7.3577 0.3279 -0.8200
-9.0838 8.2150 0.8943 0.4100
-9.3781 7.4525 -0.6559 0.4100
-7.3372 -1.9092 -5.6153 -0.8200
-8.2206 -2.3444 -5.4186 0.4100
-6.9696 -1.4434 -4.7595 0.4100
-6.8796 5.5249 3.2585 -0.8200
-6.2814 5.6803 2.4370 0.4100
-7.0442 4.5090 3.3362 0.4100
-5.4867 3.2378 -7.2007 0.4100
-6.3818 6.4689 0.2674 -0.8200
-5.8130 7.1929 -0.1916 0.4100
-7.3306 6.7913 0.6257 0.4100
-9.7392 -0.6972 -0.2239 -0.8200
-8.8317 -0.9440 -0.6575 0.4100
-10.5103 -0.6735 -0.9262 0.4100

SCF fails with cc-pvtz basis set

The following calculation fails after two SCF iterations.

Input:
HF BASIS=cc-pvtz cutoff=1.0e-9 denserms=1.0e-6 zmake ENERGY DIPOLE CHARGE=+1

C -2.74724163 -0.83655480 0.85891890
C -1.45690243 -0.47166414 0.99917288
C -0.62772841 -0.22145348 -0.15324144
C 0.68944541 0.15260156 -0.20171919
C 1.48823343 0.36448923 0.95078019
N 2.73140279 0.71794292 0.90370531
H 1.15299007 0.29662735 -1.16123028
H -1.11028708 -0.34629454 -1.10667741
H 1.08266370 0.23672479 1.93583665
H -1.04825008 -0.36804581 1.98774361
H 3.26866760 0.85959058 1.73675486
H 3.20838915 0.86445595 0.03379823
H -3.36885475 -1.02411938 1.71303219
H -3.20113376 -0.95331433 -0.10812450

Output:
@ Begin Energy Calculation

                                     SCF ENERGY

NCYC ENERGY DELTA_E SCF_TIME DII_CYC DII_TIME O_TIME DIAG_TIME MAX_ERR RMS_CHG MAX_CHG

| 1 -250.943537035 ------ 1.449 1 0.05 1.39 0.03 0.2731E+01 0.1150E+02 0.7259E+03
| 2 **************** 0.557176E+08 1.796 2 0.06 1.74 0.03 0.1515E+06 0.2701E+02 0.1714E+04
DIIS FAILED !! PERFORM NORMAL SCF. (NOT FATAL.)
| 3 **************** 0.206646E+09 0.843 3 0.06 0.78 0.03 0.1524E+06 0.1093E+02 0.6932E+03
DIIS FAILED !! PERFORM NORMAL SCF. (NOT FATAL.)

QUICK version: v21.03, serial executable
Compiler: GNU/9.3.1
System: Centos 7, 3.10.0-1127.18.2.el7.x86_64
CPU: Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
Memory: 64 GB

CC-PVDZ calculation fails

The following calculation fails with an error "Segmentation fault - invalid memory reference" with quick, but the same calculation passes with quick.cuda:

B3LYP BASIS=CC-PVDZ SCF=200 CHARGE=0 MULT=1 GRADIENT DIPOLE
 
 H         5.4269280037321330       5.8668001759742197       1.9440424210060896 
 C         5.2778863555062401       6.1653696715003079       0.8517883878991734 
 H         5.9665759620204497       6.8917325525739459       0.4522474046750474 
 H         4.4104954720977245       6.6466044949751728       0.9546987362515305 
 C         5.1169729983679595       4.9326993945007960      -0.0230474591437522 
 O         4.1460063240795630       4.6757957711199207      -0.6787269435924508 
 N         6.1595314449254053       4.0934234816143507       0.1359075710503025 
 H         6.7649147303327437       4.3215394902951143       0.9156516725231513 
 C         6.2481130228304949       2.8038163311913320      -0.5367658543372317 
 H         5.5175447980454653       2.6865231194871195      -1.3190682664333815 
 H         7.1867685623498705       2.6684759996505929      -1.0046972369643465 
 H         6.1319761352814020       2.0088922338612880       0.2503952716044978

MP2 test hanging, should not run for MPI or CUDA-MPI

Test 10 is hanging on Expanse. This is an MP2 test. SERIAL and CUDA works. But the test is also executed for MPI and CUDA-MPI and these are (or seem) not functional. Should disable this MP2 test for those targets.

Geometry optimization tests fail with 4 MPI tasks + 4 GPUs on Expanse

The tests opt_wat_rhf_631g and opt_wat_rhf_ccpvdz fail on Expanse when running with 4 MPI tasks and 4 GPUs.

  • gnu 8.1.3
  • openmpi 4.0.4

The output ends after @ End Reading Molecular Information.

The tests pass with 2 or 3 tasks / GPUs. The tests do fail if using more tasks than available GPUs.

Possible bug related to XC gradients in serial and mpi versions

DFT gradients between cuda/cudampi and serial/mpi versions are significantly different for some molecules. For example, the following differences are observed for morphine B3LYP/6-31G test case.

Serial/MPI version:

39X -3.1557002410 0.0103348688
39Y -2.6446002020 0.0002881292
39Z 0.6672000509 -0.0120197547
40X -3.8483002939 0.0091268736
40Y 1.0686000816 0.0105647101
40Z 1.1031000842 -0.0082148827

CUDA/CUDAMPI version:

39X -3.1557002410 0.1090530496
39Y -2.6446002020 0.0338787728
39Z 0.6672000509 -0.2400229409
40X -3.8483002939 0.0763664437
40Y 1.0686000816 0.2128912033
40Z 1.1031000842 -0.1546795715

This is possibly coming from the host code computing grid weight derivatives.

Test opt_wat_rhf_ccpvdz executable quick.cuda.MPI fails with Intel, OpenMPI

Hard-/software stack

  • chinotto
  • Intel Parallel Studio XE 2020
  • OpenMPI 4.0.5 (compiled with gnu 4.8.5)
  • CUDA 11.0

Revision c0cd590 (PR #96)

Configuration
./configure --serial --mpi --cuda --cudampi --arch turing --prefix install_intel-19.1_openmpi-4.0.5_c0cd5906 intel

Test 18 fails for CUDA-MPI

[agoetz@chinotto foo]$ mpirun -np 2 quick.cuda.MPI opt_wat_rhf_ccpvdz.in
quick.cuda.MPI: /scratch/agoetz/QUICK/src/cuda/cusolver/quick_cusolver.c:165: cuda_diag_: Assertion `CUSOLVER_STATUS_SUCCESS == cusolver_status' failed.
quick.cuda.MPI: /scratch/agoetz/QUICK/src/cuda/cusolver/quick_cusolver.c:165: cuda_diag_: Assertion `CUSOLVER_STATUS_SUCCESS == cusolver_status' failed.
forrtl: error (76): Abort trap signal
Image              PC                Routine            Line        Source             
quick.cuda.MPI     0000000000A19AFB  Unknown               Unknown  Unknown
libpthread-2.17.s  00007FD58D90F630  Unknown               Unknown  Unknown
libc-2.17.so       00007FD58D568387  gsignal               Unknown  Unknown
libc-2.17.so       00007FD58D569A78  abort                 Unknown  Unknown
libc-2.17.so       00007FD58D5611A6  Unknown               Unknown  Unknown
libc-2.17.so       00007FD58D561252  Unknown               Unknown  Unknown
quick.cuda.MPI     00000000005F6176  Unknown               Unknown  Unknown
quick.cuda.MPI     00000000004C91F6  Unknown               Unknown  Unknown
quick.cuda.MPI     0000000000427667  Unknown               Unknown  Unknown
quick.cuda.MPI     00000000004A54BF  Unknown               Unknown  Unknown
quick.cuda.MPI     000000000040D18C  Unknown               Unknown  Unknown
quick.cuda.MPI     000000000040CCB2  Unknown               Unknown  Unknown
libc-2.17.so       00007FD58D554555  __libc_start_main     Unknown  Unknown
quick.cuda.MPI     000000000040CBB2  Unknown               Unknown  Unknown
forrtl: error (76): Abort trap signal
Image              PC                Routine            Line        Source             
quick.cuda.MPI     0000000000A19AFB  Unknown               Unknown  Unknown
libpthread-2.17.s  00007F09C9C90630  Unknown               Unknown  Unknown
libc-2.17.so       00007F09C98E9387  gsignal               Unknown  Unknown
libc-2.17.so       00007F09C98EAA78  abort                 Unknown  Unknown
libc-2.17.so       00007F09C98E21A6  Unknown               Unknown  Unknown
libc-2.17.so       00007F09C98E2252  Unknown               Unknown  Unknown
quick.cuda.MPI     00000000005F6176  Unknown               Unknown  Unknown
quick.cuda.MPI     00000000004E74F7  Unknown               Unknown  Unknown
quick.cuda.MPI     00000000004E2DBD  Unknown               Unknown  Unknown
quick.cuda.MPI     0000000000427769  Unknown               Unknown  Unknown
quick.cuda.MPI     00000000004A54BF  Unknown               Unknown  Unknown
quick.cuda.MPI     000000000040D18C  Unknown               Unknown  Unknown
quick.cuda.MPI     000000000040CCB2  Unknown               Unknown  Unknown
libc-2.17.so       00007F09C98D5555  __libc_start_main     Unknown  Unknown
quick.cuda.MPI     000000000040CBB2  Unknown               Unknown  Unknown
--------------------------------------------------------------------------
Primary job  terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun noticed that process rank 1 with PID 0 on node chinotto exited on signal 6 (Aborted).
--------------------------------------------------------------------------

opt_wat_rhf_ccpvdz.out.txt

QUICK/AMBER FBI based QM/MM calculations fail

The libblas.so file is moved into to AMBERHOME/lib as libblas-quick.so after merging PR #52. This woks fine with API based QM/MM calculations, however, calculations through file based interface are failing since quick and quick.MPI executables still look for libblas.so. This has to be fixed.

QUICK tests fail for some GNU and Intel compiler versions

The following test cases fail with some GNU and Intel compiler versions.

gnu 4.8.5, OpenMPI 4.0.5, serial and parallel fail; CUDA passes
MPI and serial test
Running test 16 of 18
Total energy: -934.662699280, Reference value: -934.662681829. Failed
Final gradient: 0.0168616606, Reference value: 0.0168332627. Failed
etc

Intel Parrallel Studio XE 2020, OpenMPI 4.0.5; all fail

CUDAMPI and CUDA test
Running test 16 of 18
Total energy: -934.662666157, Reference value: -934.662681829. Failed
Final gradient: 0.0168640916, Reference value: 0.0168332627. Failed
MPI and Serial test
Running test 16 of 18
Total energy: -934.662695673, Reference value: -934.662681829. Failed
Final gradient: 0.0170479069, Reference value: 0.0168332627. Failed

CUDAMPI compilation warning

The following compile time warning is thrown for xc_redistribute.cpp when cudampi version is compiled with GCC/9.3.0. This initialization is not allowed by C++11 standard and should be replaced by memset or something.

xc_redistribute.cpp: In function ‘int getAdjustment(int, int, int)’:
xc_redistribute.cpp:41:39: warning: non-constant array size in new, unable to verify length of initializer-list [enabled by default]
   int *residuals  = new int[mpisize]{0};
                                       ^
xc_redistribute.cpp:42:34: warning: non-constant array size in new, unable to verify length of initializer-list [enabled by default]
   ptcount    = new int[mpisize]{0};
                                  ^
xc_redistribute.cpp:45:66: warning: non-constant array size in new, unable to verify length of initializer-list [enabled by default]
   for(int i=0; i<mpisize; ++i) distMatrix[i] = new int[mpisize]{0};

Allowing for specification of atomic quadrature size from input

I couldn't find any mention of this type of functionality in the User Manual, so I apologize if this is already implemented. If it's not, would be useful to be able to specify the number of radial / angular quadrature points for the atomic quadratures from the input file to allow for users to toggle accuracy in the XC integration.

External point charge information in the output

The coordinates and charge columns in the output file are not in the same order as in input.

Input:
1.6492 0.0000 -2.3560 -0.8340
0.5448 0.0000 -3.8000 0.4170
0.5448 0.0000 -0.9121 0.4170

Output:
-- EXTERNAL POINT CHARGES: (Q,X,Y,Z) --
-0.8340 1.6492 0.0000 -2.3560
0.4170 0.5448 0.0000 -3.8000
0.4170 0.5448 0.0000 -0.9121

This should be consistent.

Compile time error with CUDA/10.0

The following error is observed when QUICK is compiled with CUDA/10.0.

    248 bytes stack frame, 244 bytes spill stores, 244 bytes spill loads
/mnt/i/amber-cmake/QUICK/src/libxc/maple2c_device/../../cuda/gpu_type.h(675): error: identifier "cudaErrorNotMappedAsPointer" is undefined

Improve error handling

Currently, error handling in QUICK is weak. The errors must be appropriately propagated and messages must be printed in to the output.

Add error trap for USCF

There should be an error trap for gracefully exiting USCF/UDFT calculations. Otherwise the calculation will hang up.

MPI compilation fails with GCC 10.2.0

The following error is observed for QUICK mpi version compilation with GCC 10.2.0.

quick_method_module.f90:197:27:

165 | call MPI_BCAST(self%HF,1,mpi_logical,0,MPI_COMM_WORLD,mpierror)
| 2
......
197 | call MPI_BCAST(self%gridspacing,1,mpi_double_precision,0,MPI_COMM_WORLD,mpierror)
| 1
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/LOGICAL(4)).
quick_method_module.f90:198:27:

This has to be fixed.

Warnings from NVIDIA compilers

Nvidia fortran and nvc compilers (nvcompilers/2020) throw a lot of "declared but never referenced" warnings during the compilation. These have to be silenced.

Enable MPI parallelization of 1e integrals

Currently, 1e integrals are computed on a single compute rank in MPI version. This task becomes expensive in QM/MM simulations with many MM atoms and therefore, MPI parallelization should be enabled.

Regression tests

Prepare a suitable set of test cases and include into QUICK. Also write a script that would automatically run this set of tests. A user may run this script to verify the correctness of a QUICK installation.

Seg fault in serial and cuda versions

QUICK throws a seg fault for following test case.

B3LYP BASIS=CC-PVDZ SCF=200 CHARGE=-1 MULT=1 GRADIENT DIPOLE
C 10.1480999999999995 3.1926774999999998 -20.3462937000000004
S 11.3903636000000006 2.3537590000000002 -19.3396615999999995
C 12.2701361999999996 1.2397718000000000 -20.3804367999999982
O 11.7912233999999998 0.8581562000000000 -21.4427656000000013
C 13.4296872999999994 0.7206612000000000 -19.8466982999999999
C 14.0794812999999994 -0.1908718000000000 -20.5240289999999987
C 15.4056954000000008 -0.6545447000000000 -19.9790871999999986
C 16.0402550999999995 -1.6393892999999999 -20.6499658000000004
C 17.1477550000000001 -2.3085577000000002 -20.1384493000000013
C 17.7150649999999992 -1.9512316999999999 -18.9546525999999993
C 17.0997695999999983 -0.8614193999999999 -18.2550308000000001
C 15.9585491000000008 -0.2446480000000000 -18.7824249999999999
O 18.7872698000000007 -2.6117100000000000 -18.4245225999999995
H 9.6780652000000007 2.4672782999999998 -20.9941768000000017
H 9.2341005000000003 3.4817423000000001 -19.7119606000000012
H 13.6307372999999998 0.9895720000000000 -18.7835099999999997
H 13.7163257000000005 -0.5291747999999999 -21.4611647000000012
H 15.4916812999999998 -2.0398936000000001 -21.5565515000000012
H 17.5491327999999989 -3.1184185000000002 -20.6608273999999987
H 17.5716490000000007 -0.5914746000000000 -17.3569019000000004
H 15.5044447999999999 0.5031417000000000 -18.1503319999999988
H 10.5078233616905514 4.0964152364487916 -20.8381851583243574

Platform: Expanse cluster, default compilers

Wrong number of primitive functions in the output

The number of primitive functions printed into the output is wrong. For example, for olestra 6-31g (C156H278O19, 2131/4962 contracted/primitive functions), QUICK prints the following.

============== BASIS INFOS ==============
 BASIS FUNCTIONS = 2131
 NSHELL = 1081 NPRIM  = 2862
 JSHELL = 1081 JBASIS = 2862

Please fix this.

Calculations hang up in SAD guess

The following calculations hang up in SAD guess. This should be fixed.

HF BASIS=6-31G** cutoff=1e-9 denserms=1e-8  zmake GRADIENT DIPOLE CHARGE=0

K         -5.21768       -0.11753       -0.13722
I         -2.87768       -0.11753       -0.13722
HF BASIS=6-31G** cutoff=1e-9 denserms=1e-8  zmake GRADIENT DIPOLE CHARGE=0

Ca        -2.81913        0.11414       -1.35525
Cl        -1.71913        0.11414       -1.35525
Cl        -3.91913        0.11414       -1.35525

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.