Compare commits

...

139 commits

Author SHA1 Message Date
Edoardo Aprà
550861dc52
typo [ci skip] 2023-01-19 13:46:34 -08:00
edoapra
65bff4fa33
update [ci skip] 2023-01-16 10:54:30 -08:00
edoapra
077113ca1e
update 2023-01-16 10:51:47 -08:00
edoapra
c099e8240f
rt updates 2023-01-16 10:51:35 -08:00
NWChem: Open Source High-Performance Computational Chemistry
283d37d753
Merge pull request #719 from edoapra/release-7-2-0
updates from master
2023-01-15 18:44:50 -08:00
edoapra
401c4ce683
definition of pkg_extra 2023-01-13 18:04:54 -08:00
edoapra
1a0e45ec45
more pkgs in retry loop 2023-01-13 18:04:50 -08:00
edoapra
c269e65f85
more pkgs in retry loop 2023-01-13 18:04:48 -08:00
edoapra
afc1678a0b
retry apt install 2023-01-13 18:04:40 -08:00
edoapra
d424b23449
move mpif90 check 2023-01-13 18:04:38 -08:00
edoapra
51b5685c58
indentation 2023-01-13 18:04:36 -08:00
edoapra
51636ad620
exit 1 when mpif90 is not present 2023-01-13 18:04:28 -08:00
edoapra
0582c31d1f
libxc 6.1.0 2023-01-13 18:04:21 -08:00
edoapra
4e0747abb4
fix error termination 2023-01-13 18:04:17 -08:00
edoapra
eab2c622f2
improved check on patch command 2023-01-13 18:04:13 -08:00
Edoardo Aprà
fcbb5cac7c
update [ci skip] 2023-01-13 14:36:32 -08:00
Edoardo Aprà
326500aa46
update [ci skip] 2023-01-13 14:34:55 -08:00
NWChem: Open Source High-Performance Computational Chemistry
afe804c1d7
Merge pull request #716 from edoapra/release-7-2-0
MP2 updates for Release 7.2.0
2023-01-07 10:26:21 -08:00
edoapra
cbe7f14342
URL change for dftd3 2023-01-06 20:53:44 -08:00
edoapra
88ddd4a5ae
update after commit bbd835402d 2023-01-06 18:57:39 -08:00
edoapra
a201188046
test for basis details keyword 2023-01-06 18:57:38 -08:00
edoapra
5d279ad92b
backing off commit 58800d4f3b 2023-01-06 16:39:20 -08:00
edoapra
2d6a88d37c
force user to set BLAS_SIZE & SCALAPACK_SIZE 2023-01-06 16:23:41 -08:00
edoapra
359e43479e
fix merge operations 2023-01-06 15:32:54 -08:00
edoapra
d8e6e7e92a
mirroring to improve parallelization 2023-01-06 15:32:38 -08:00
edoapra
c41a64019d
more long to size_t 2023-01-06 15:31:22 -08:00
edoapra
069870b42f
typo 2023-01-06 15:31:03 -08:00
edoapra
86f305f5aa
default mp2:copyback back to .false. 2023-01-06 12:43:51 -08:00
edoapra
029eac1f76
trying to improve parallelization 2023-01-06 12:42:59 -08:00
NWChem: Open Source High-Performance Computational Chemistry
bd4351c477
Merge pull request #715 from edoapra/release-7-2-0
master update to Release 7 2 0
2022-12-22 18:17:34 -08:00
edoapra
249971f999
fix for recent clang 2022-12-21 16:49:22 -08:00
edoapra
3969c5c9c5
size_t for LLP64 pointers 2022-12-21 16:49:19 -08:00
edoapra
fd74cdaa93
used ga 582 from https://github.com/GlobalArrays 2022-12-21 16:48:38 -08:00
edoapra
5a5a9844ad
fix for shell conditional 2022-12-21 16:46:50 -08:00
edoapra
c2f089e638
fix for V=1 2022-12-21 16:46:21 -08:00
edoapra
d5246541f1
keep tools compilation quiet with make V=0 or V=-1 2022-12-21 16:45:31 -08:00
edoapra
87dbe4d16d
I_MPI_CC 2022-12-21 16:20:44 -08:00
edoapra
3096932faa
BUILD_MPICH for amdflang 2022-12-21 16:20:44 -08:00
edoapra
d42a8d42d5
BUILD_MPICH for amdflang 2022-12-21 16:20:43 -08:00
edoapra
ff0ca3b60a
use intel icx 2022-12-21 16:20:43 -08:00
edoapra
0f3380227c
use O1 for amdclang 15 since segvs on openblas 2022-12-21 16:20:42 -08:00
edoapra
5904c497e6
amd software updates 2022-12-21 16:18:50 -08:00
edoapra
07b51a4ad6
oneapi 2023 for macos 2022-12-21 16:18:50 -08:00
edoapra
60b2aac892
fix name 2022-12-21 16:18:49 -08:00
edoapra
e395b5504b
linux oneapi 2023 2022-12-21 16:18:20 -08:00
edoapra
7b7669aecd
macos oneapi update 2022-12-21 16:17:41 -08:00
edoapra
b539a98140
switch to latest linux oneapi. ifort 2021.7.1 2022-12-21 16:17:29 -08:00
edoapra
460bbfa679
modify apt install 2022-12-21 16:17:17 -08:00
edoapra
b90eba70fc
less verbose downloads 2022-12-21 16:17:04 -08:00
edoapra
4f55c95777
fedora fixes [ci skip] 2022-12-21 16:14:50 -08:00
edoapra
e88a9b4a1b
fedora fixes [ci skip] 2022-12-21 16:14:40 -08:00
edoapra
1a31c06d81
fedora fixes [ci skip] 2022-12-21 16:14:31 -08:00
edoapra
ac97f8369b
use nvidia hpc_sdk 22.11 2022-12-21 16:14:19 -08:00
Daniel Mejia-Rodriguez
e906d1556f
Adjust sigma threshold (libxc uses the square of this value) 2022-12-21 16:08:38 -08:00
Daniel Mejia-Rodriguez
b8628e3ea6
Changes for LibXC 4.x 2022-12-21 16:08:38 -08:00
Edoardo Aprà
ff16d36128
badge update [ci skip] 2022-12-21 16:07:42 -08:00
edoapra
a5923e59a6
remove duplicate [ci skip] 2022-12-19 11:59:35 -08:00
NWChem: Open Source High-Performance Computational Chemistry
b4bc1edd83
Merge pull request #711 from edoapra/release-7-2-0
libxc updates
2022-12-17 18:50:54 -08:00
edoapra
64eb0f562b
DENABLE_FORTRAN03=ON for version 4 2022-12-17 11:10:00 -08:00
edoapra
2e9ce24982
fixes for libxc 4 2022-12-17 11:10:00 -08:00
edoapra
cb5abdc5fe
added test for ubuntu2004 libxc 2022-12-17 11:09:59 -08:00
edoapra
5e252f987d
fix for stubbing 2022-12-17 11:09:59 -08:00
edoapra
005912cf17
typo 2022-12-17 11:09:59 -08:00
edoapra
f3a6c9a740
detect size of libxc np 2022-12-17 11:09:58 -08:00
edoapra
365d60826d
defined XC_MAJOR_VERSION only when needed 2022-12-17 11:09:58 -08:00
edoapra
68163622d3
extract XC_MAJOR_VERSION 2022-12-17 11:09:57 -08:00
edoapra
e256fd001b
check libxc version only when the define USE_LIBXC exists 2022-12-17 11:09:57 -08:00
edoapra
354c611ffa
removed erroneous #endif 2022-12-17 11:09:57 -08:00
edoapra
b022c6a94e
USE_LIBXC=-1 to use libxc pkgs 2022-12-17 11:09:56 -08:00
edoapra
b55ad84b75
fixes for libxc 3 and 4 2022-12-17 11:09:56 -08:00
edoapra
e212ad6520
external LIBXC: LIBXC_DIR replaced by LIBXC_INCLUDE/LIBXC_LIB 2022-12-17 11:08:11 -08:00
Edoardo Aprà
964077885f
update [ci skip] 2022-12-14 11:05:15 -08:00
edoapra
76b3ae89ab
update [ci skip] 2022-12-13 16:53:35 -08:00
edoapra
2fee89ba3d
output update after commit 0472252ad4 [ci skip] 2022-12-13 16:53:30 -08:00
Edoardo Aprà
4b49776db9
update [ci skip] 2022-12-13 16:07:30 -08:00
NWChem: Open Source High-Performance Computational Chemistry
c1f7d81a73
Merge pull request #708 from edoapra/release-7-2-0
Updates for Release 7.2.0
2022-12-12 10:01:43 -08:00
edoapra
9b8784f94a
move build_mpich section 2022-12-11 20:54:01 -08:00
edoapra
4af6379494
definition of MPI headers moved to config/makefile.h 2022-12-11 20:53:17 -08:00
edoapra
c72354338a
MPI env variables are now ignored unless FORCE_MPI_ENV is set 2022-12-11 20:53:13 -08:00
edoapra
cfcba1c3dc
MPI env variables are now ignored unless FORCE_MPI_ENV is set 2022-12-11 20:49:17 -08:00
edoapra
c13c48cc2e
fixes for asan 2022-12-11 16:27:11 -08:00
edoapra
5171944cc2
completing f4a9d82678 2022-12-11 16:26:43 -08:00
edoapra
8197acccc8
ifx fix 2022-12-11 16:26:23 -08:00
edoapra
14e04e83c6
ifx fix 2022-12-11 16:25:42 -08:00
edoapra
5a420b151d
missing square bracket 2022-12-11 16:24:31 -08:00
edoapra
0d496c22d6
python version 3.11 2022-12-08 18:22:10 -08:00
edoapra
dcaa2c0b1c
macos fixes 2022-12-08 18:22:10 -08:00
edoapra
12842995fe
warning about silent output 2022-12-08 18:22:09 -08:00
edoapra
980c6773a5
tddftgrad_h2o_cis_lda 2022-12-08 18:22:09 -08:00
edoapra
59c304679a
tddft_grad_tdaloc returning .false. 2022-12-08 18:22:08 -08:00
edoapra
e35608f325
added tddftgrad_h2o_cis_lda 2022-12-08 18:22:08 -08:00
edoapra
535d271ae4
reproducer for https://github.com/nwchemgit/nwchem/issues/698 2022-12-08 18:22:07 -08:00
edoapra
6ec303d600
cleanup to address https://github.com/nwchemgit/nwchem/issues/698 2022-12-08 18:20:06 -08:00
edoapra
ff1c7f9739
cleanup to address https://github.com/nwchemgit/nwchem/issues/698 2022-12-08 18:19:49 -08:00
edoapra
bf42d53dfa
bug fix for commit 518b2b72b1 2022-12-05 12:14:44 -08:00
edoapra
45fe17623d
added uhf mp2 case 2022-12-05 12:14:30 -08:00
edoapra
adb5e41671
removed unnecessary files 2022-12-03 18:59:02 -08:00
edoapra
84482224b2
replaced ga_transpose 2022-12-03 18:58:25 -08:00
edoapra
c15b2125cf
removed copy patch 2022-12-03 18:58:25 -08:00
edoapra
2fcf97e696
more time profiling 2022-12-03 18:58:24 -08:00
edoapra
a0f6fcbb23
mp2_copyback by default for better scaling 2022-12-03 18:57:43 -08:00
edoapra
81af0a71da
cross compile 2022-11-29 10:31:26 -08:00
edoapra
acb44fc970
set NWCHEM_LINK_CUDA=1 when TCE_OPENACC+1 2022-11-26 21:13:57 -08:00
edoapra
70aab8838f
stop when using cuda input option and code was not compiled with TCE_CUDA=1 2022-11-26 21:13:45 -08:00
edoapra
63e97f1916
FC=gfortran when FC is not set 2022-11-26 21:11:30 -08:00
edoapra
2a3cb34c29
use OpenBLAS DYNAMIC_ARCH only on x86 2022-11-26 21:10:22 -08:00
edoapra
2440b82ecb
replaced by peigs.pdf [ci skip] 2022-11-17 16:27:39 -08:00
edoapra
cc032adb2e
peigs.pdf update [ci skip] 2022-11-17 16:27:39 -08:00
edoapra
d4bed5492d
updates to compiles with texi2pdf [ci skip] 2022-11-17 16:27:38 -08:00
edoapra
b1a9ce09d1
Peigs documentation. CVS revision 1.1 date: 1995-04-13 17:16:46 -0700 2022-11-17 16:27:34 -08:00
Edoardo Aprà
51bdffa785
updates [ci skip] 2022-11-15 17:11:09 -08:00
edoapra
b76d87a753
check libxc version supplied with LIBXC_VERSION 2022-11-13 22:56:23 -08:00
edoapra
ed60ebd09d
fix variable name 2022-11-13 22:56:10 -08:00
edoapra
c6b69cf4fe
added LIBXC_VERSION to choose libxc version 2022-11-13 22:55:52 -08:00
edoapra
8029d67e2f
libxc 6.0.0 2022-11-13 22:55:33 -08:00
edoapra
27e4371399
fix for laplacian-dependent xc functionals 2022-11-13 22:53:02 -08:00
edoapra
0685b53433
set dolap=t only when XC_FLAGS_NEEDS_LAPLACIAN is set 2022-11-13 22:52:39 -08:00
edoapra
3f10db4e42
remove extra $ 2022-11-13 17:30:23 -08:00
edoapra
ec08f8e9d7
skip rpm install on selfhosted runner [ci skip] 2022-11-13 17:04:14 -08:00
edoapra
0173f34054
disable cpu optimizations when USE_HWOPT=n 2022-11-08 17:34:41 -08:00
edoapra
db623cad7d
mirroring 2022-11-08 17:34:30 -08:00
edoapra
3f90bad855
avoid communication in xlm_make_ao_poles 2022-11-08 17:34:00 -08:00
Edoardo Aprà
c2f1ea0836
Updates 2022-11-08 15:16:49 -08:00
edoapra
f501b3f644
fix xyz output https://github.com/nwchemgit/nwchem/issues/680 2022-11-02 10:22:09 -07:00
edoapra
402b6027b7
fix hwloc detection on mac 2022-11-02 10:22:05 -07:00
edoapra
e5237ec9d5
missing arg 2022-10-31 08:47:17 -07:00
edoapra
f06e9b1dae
fix gfortran detection 2022-10-31 08:47:09 -07:00
edoapra
63dccb56c0
context [ci skip] 2022-10-29 11:05:50 -07:00
edoapra
ed4fb3ac54
context [ci skip] 2022-10-29 11:05:50 -07:00
edoapra
25f7c14fe6
github_env [ci skip] 2022-10-29 11:05:45 -07:00
edoapra
685134ec55
typo [ci skip] 2022-10-29 10:45:50 -07:00
edoapra
15f98ae3ab
indentation [ci skip] 2022-10-29 10:45:50 -07:00
edoapra
b6ab7229db
add NWCHEM_BRANCH build arg [ci skip] 2022-10-29 10:45:50 -07:00
edoapra
72c80e14b5
updates 2022-10-29 10:45:23 -07:00
edoapra
173b83b316
limit np for talc [ci skip] 2022-10-29 10:37:18 -07:00
edoapra
bc68522c25
USE_ASAN conflicts with MALLOC_PERTURB_ [ci skip] 2022-10-28 13:24:56 -07:00
edoapra
583ddb0035
unset USE_OPENMP https://github.com/nwchemgit/nwchem/issues/678 2022-10-27 17:51:28 -07:00
edoapra
6de59b632a
7.2.0 release [ci skip] 2022-10-27 12:54:04 -07:00
edoapra
a5751a200a
ifx fix [ci skip] 2022-10-26 21:42:21 -07:00
82 changed files with 29837 additions and 64862 deletions

View file

@ -36,7 +36,7 @@ jobs:
key: ${{ matrix.folder}}-${{ matrix.fc}}/${{ matrix.archs}}-nwchem-dockeractions-v002
- name: Qemu
id: qemu
uses: docker/setup-qemu-action@v1
uses: docker/setup-qemu-action@v2
with:
image: crazymax/binfmt:v6.0.0
- name: Available platforms
@ -44,15 +44,10 @@ jobs:
echo ${{ steps.qemu.outputs.platforms }}
docker images
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2
with:
driver-opts: |
image=moby/buildkit:master
- name: Get Arch
id: get-arch
run: |
echo "::set-output name=arch::$(echo ${{matrix.archs }} | sed 's/linux//'|sed 's/\///g' )"
shell: bash
- name: fetch cache
if: (steps.setup-cache.outputs.cache-hit == 'true') && ( matrix.folder != 'helloworld' )
run: |
@ -62,14 +57,14 @@ jobs:
rsync -av ~/cache/libext* cache/. ; \
echo "libext cache fetched" ; \
fi
- uses: haya14busa/action-cond@v1
- uses: haya14busa/action-cond@dependabot/npm_and_yarn/actions/core-1.9.1
id: cache-hit-reporter
with:
cond: ${{ steps.setup-cache.outputs.cache-hit != '' }}
if_true: "Y"
if_false: "N"
- name: build_schedule
uses: docker/build-push-action@v2
uses: docker/build-push-action@v3
with:
push: false
context: ${{ matrix.folder }}
@ -79,6 +74,7 @@ jobs:
build-args: |
FC=${{ matrix.fc }}
CACHE_HIT=${{ steps.cache-hit-reporter.outputs.value }}
NWCHEM_BRANCH=${{ github.ref_name }}
- name: store cache
run: |
mkdir -p ~/cache/

View file

@ -129,6 +129,16 @@ jobs:
nwchem_modules: "tce"
fc: gfortran-11
cc: gcc-11
- os: ubuntu-20.04
experimental: true
mpi_impl: mpich
armci_network: MPI-TS
nwchem_modules: "nwdft solvation driver"
fc: gfortran
cc: gcc
use_libxc: -1
blas: "internal"
blas_size: 8
- os: ubuntu-22.04
experimental: true
mpi_impl: mpich
@ -136,6 +146,7 @@ jobs:
nwchem_modules: "qmandpw qmd"
fc: gfortran-11
cc: gcc-11
use_libxc: -1
- os: ubuntu-20.04
experimental: true
mpi_impl: mpich
@ -220,7 +231,7 @@ jobs:
armci_network: MPI-TS
nwchem_modules: "tinyqmpw"
fc: ifort
cc: icc
cc: icx
use_libxc: 1
- os: macos-11
experimental: true
@ -252,7 +263,7 @@ jobs:
armci_network: MPI-TS
nwchem_modules: "nwdft solvation driver"
fc: ifort
cc: icc
cc: icx
use_simint: 1
- os: ubuntu-20.04
experimental: true

View file

@ -14,7 +14,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.10'
python-version: '3.11'
check-latest: true
- run: pip install --upgrade pip wheel
- run: pip install bandit black codespell flake8 flake8-2020 flake8-bugbear

View file

@ -519,8 +519,6 @@ let "myexit+=$?"
let "myexit+=$?"
./runtests.mpi.unix procs $np carbon_fon
let "myexit+=$?"
./runtests.mpi.unix procs $np ch5n_nbo
let "myexit+=$?"
./runtests.mpi.unix procs $np tpss tpssh
let "myexit+=$?"
#
@ -532,7 +530,7 @@ let "myexit+=$?"
./runtests.mpi.unix procs $np h2o2_fde
let "myexit+=$?"
# tddft gradients
./runtests.mpi.unix procs $np tddftgrad_co_cis tddftgrad_n2 tddftgrad_co tddftgrad_n2_uks tddftgrad_ch2o
./runtests.mpi.unix procs $np tddftgrad_co_cis tddftgrad_n2 tddftgrad_co tddftgrad_n2_uks tddftgrad_ch2o tddftgrad_h2o_cis_lda
let "myexit+=$?"
# new xc functionals for 7.0.0
./runtests.mpi.unix procs $np dft_rscan
@ -543,6 +541,12 @@ let "myexit+=$?"
let "myexit+=$?"
./runtests.mpi.unix procs $np rt_tddft_mocap
let "myexit+=$?"
./runtests.mpi.unix procs $np rt_tddft_cytosine_cam_cdfit
let "myexit+=$?"
./runtests.mpi.unix procs $np rt_tddft_tcne_spinkick
let "myexit+=$?"
./runtests.mpi.unix procs $np rt_tddft_water_abs_spec
let "myexit+=$?"
./runtests.mpi.unix procs $np dft_ne_n12
let "myexit+=$?"
./runtests.mpi.unix procs $np dft_mfm_ch3
@ -685,7 +689,8 @@ echo 'Please check the final values for the last optimized structure.'
let "myexit+=$?"
./runtests.mpi.unix procs $np dielsalder
let "myexit+=$?"
./runtests.mpi.unix procs $np talc
np_small=$(get_limit $np 16)
./runtests.mpi.unix procs $np_small talc
let "myexit+=$?"
echo 'The intermediate energy values for the numerical gradient '
echo 'test may cause some differences.'

View file

@ -32,7 +32,9 @@
export HYDRA_DEBUG=0
# find memory leaks using this glibc feature that
# initialized memory blocks to non-zero values
export MALLOC_PERTURB_=$(($RANDOM % 255 + 1))
if [[ -z "${USE_ASAN}" ]]; then
export MALLOC_PERTURB_=$(($RANDOM % 255 + 1))
fi
if [[ -z "${NWCHEM_TARGET}" ]]; then
UNAME_S=$(uname -s)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,64 @@
start
title "test basis details keyword"
echo
geometry
C 0.000000 0.000000 0.000000
H 0.000000 0.000000 1.089000
H 1.026719 0.000000 -0.363000
H -0.513360 -0.889165 -0.363000
H -0.513360 0.889165 -0.363000
end
basis b1
* details library aug-cc-pvdz
end
basis b2 bse
* library aug-cc-pvdz
end
basis b3 spherical
* library aug-cc-pvdz
end
basis b4
* library aug-cc-pvdz
end
set "ao basis" b1
dft
vectors output b1.mos
print low
end
task dft
set "ao basis" b2
dft
vectors input project b1 b1.mos output b2.mos
end
task dft
set "ao basis" b3
dft
vectors input project b2 b2.mos output b3.mos
end
task dft
set "ao basis" b4
dft
vectors input project b3 b3.mos output b4.mos
end
task dft

View file

@ -0,0 +1,836 @@
argument 1 = /Users/edo/nwchem/nwchem-edoapra-master/QA/tests/bas_details/bas_details.nw
NWChem w/ OpenMP: maximum threads = 1
============================== echo of input deck ==============================
start
title "test basis details keyword"
echo
geometry
C 0.000000 0.000000 0.000000
H 0.000000 0.000000 1.089000
H 1.026719 0.000000 -0.363000
H -0.513360 -0.889165 -0.363000
H -0.513360 0.889165 -0.363000
end
basis b1
* details library aug-cc-pvdz
end
basis b2 bse
* library aug-cc-pvdz
end
basis b3 spherical
* library aug-cc-pvdz
end
basis b4
* library aug-cc-pvdz
end
set "ao basis" b1
dft
vectors output b1.mos
print low
end
task dft
set "ao basis" b2
dft
vectors input project b1 b1.mos output b2.mos
end
task dft
set "ao basis" b3
dft
vectors input project b2 b2.mos output b3.mos
end
task dft
set "ao basis" b4
dft
vectors input project b3 b3.mos output b4.mos
end
task dft
================================================================================
Northwest Computational Chemistry Package (NWChem) 7.2.0
--------------------------------------------------------
Environmental Molecular Sciences Laboratory
Pacific Northwest National Laboratory
Richland, WA 99352
Copyright (c) 1994-2022
Pacific Northwest National Laboratory
Battelle Memorial Institute
NWChem is an open-source computational chemistry package
distributed under the terms of the
Educational Community License (ECL) 2.0
A copy of the license is included with this distribution
in the LICENSE.TXT file
ACKNOWLEDGMENT
--------------
This software and its documentation were developed at the
EMSL at Pacific Northwest National Laboratory, a multiprogram
national laboratory, operated for the U.S. Department of Energy
by Battelle under Contract Number DE-AC05-76RL01830. Support
for this work was provided by the Department of Energy Office
of Biological and Environmental Research, Office of Basic
Energy Sciences, and the Office of Advanced Scientific Computing.
Job information
---------------
hostname = WE40672
program = /Users/edo/nwchem/nwchem-edoapra-master/bin/MACX64/nwchem
date = Wed Dec 14 18:04:30 2022
compiled = Wed_Dec_14_18:03:49_2022
source = /Users/edo/nwchem/nwchem-edoapra-master
nwchem branch = 7.2.0
nwchem revision = nwchem_on_git-4232-g9621f8a386
ga revision = 5.8.1
use scalapack = T
input = /Users/edo/nwchem/nwchem-edoapra-master/QA/tests/bas_details/bas_details.nw
prefix = bas_details.
data base = ./bas_details.db
status = startup
nproc = 1
time left = -1s
Memory information
------------------
heap = 26214396 doubles = 200.0 Mbytes
stack = 26214401 doubles = 200.0 Mbytes
global = 52428800 doubles = 400.0 Mbytes (distinct from heap & stack)
total = 104857597 doubles = 800.0 Mbytes
verify = yes
hardfail = no
Directory information
---------------------
0 permanent = .
0 scratch = .
NWChem Input Module
-------------------
test basis details keyword
--------------------------
Scaling coordinates for geometry "geometry" by 1.889725989
(inverse scale = 0.529177249)
TD symmetry detected
------
auto-z
------
Looking for out-of-plane bends
no constraints, skipping 0.000000000000000E+000
no constraints, skipping 0.000000000000000E+000
Geometry "geometry" -> ""
-------------------------
Output coordinates in angstroms (scale by 1.889725989 to convert to a.u.)
No. Tag Charge X Y Z
---- ---------------- ---------- -------------- -------------- --------------
1 C 6.0000 0.00000000 0.00000000 0.00000000
2 H 1.0000 -0.62873455 0.62873455 0.62873455
3 H 1.0000 0.62873455 -0.62873455 0.62873455
4 H 1.0000 -0.62873455 -0.62873455 -0.62873455
5 H 1.0000 0.62873455 0.62873455 -0.62873455
Atomic Mass
-----------
C 12.000000
H 1.007825
Effective nuclear repulsion energy (a.u.) 13.4477252140
Nuclear Dipole moment (a.u.)
----------------------------
X Y Z
---------------- ---------------- ----------------
0.0000000000 0.0000000000 0.0000000000
Symmetry information
--------------------
Group name Td
Group number 42
Group order 24
No. of unique centers 2
Symmetry unique atoms
1 2
Z-matrix (autoz)
--------
Units are Angstrom for bonds and degrees for angles
Type Name I J K L M Value
----------- -------- ----- ----- ----- ----- ----- ----------
1 Stretch 1 2 1.08900
2 Stretch 1 3 1.08900
3 Stretch 1 4 1.08900
4 Stretch 1 5 1.08900
5 Bend 2 1 3 109.47122
6 Bend 2 1 4 109.47122
7 Bend 2 1 5 109.47122
8 Bend 3 1 4 109.47122
9 Bend 3 1 5 109.47122
10 Bend 4 1 5 109.47122
XYZ format geometry
-------------------
5
geometry
C 0.00000000 0.00000000 0.00000000
H -0.62873455 0.62873455 0.62873455
H 0.62873455 -0.62873455 0.62873455
H -0.62873455 -0.62873455 -0.62873455
H 0.62873455 0.62873455 -0.62873455
==============================================================================
internuclear distances
------------------------------------------------------------------------------
center one | center two | atomic units | angstroms
------------------------------------------------------------------------------
2 H | 1 C | 2.05791 | 1.08900
3 H | 1 C | 2.05791 | 1.08900
4 H | 1 C | 2.05791 | 1.08900
5 H | 1 C | 2.05791 | 1.08900
------------------------------------------------------------------------------
number of included internuclear distances: 4
==============================================================================
==============================================================================
internuclear angles
------------------------------------------------------------------------------
center 1 | center 2 | center 3 | degrees
------------------------------------------------------------------------------
2 H | 1 C | 3 H | 109.47
2 H | 1 C | 4 H | 109.47
2 H | 1 C | 5 H | 109.47
3 H | 1 C | 4 H | 109.47
3 H | 1 C | 5 H | 109.47
4 H | 1 C | 5 H | 109.47
------------------------------------------------------------------------------
number of included internuclear angles: 6
==============================================================================
Summary of "b1" -> "" (cartesian)
------------------------------------------------------------------------------
Tag Description Shells Functions and Types
---------------- ------------------------------ ------ ---------------------
* aug-cc-pvdz on all atoms
Summary of "b2" -> "" (cartesian)
------------------------------------------------------------------------------
Tag Description Shells Functions and Types
---------------- ------------------------------ ------ ---------------------
* aug-cc-pvdz on all atoms
Summary of "b3" -> "" (spherical)
------------------------------------------------------------------------------
Tag Description Shells Functions and Types
---------------- ------------------------------ ------ ---------------------
* aug-cc-pvdz on all atoms
Summary of "b4" -> "" (cartesian)
------------------------------------------------------------------------------
Tag Description Shells Functions and Types
---------------- ------------------------------ ------ ---------------------
* aug-cc-pvdz on all atoms
NWChem DFT Module
-----------------
test basis details keyword
Basis "ao basis" -> "b1" (spherical)
-----
C (Carbon)
----------
Exponent Coefficients
-------------- ---------------------------------------------------------
1 S 6.66500000E+03 0.000692
1 S 1.00000000E+03 0.005329
1 S 2.28000000E+02 0.027077
1 S 6.47100000E+01 0.101718
1 S 2.10600000E+01 0.274740
1 S 7.49500000E+00 0.448564
1 S 2.79700000E+00 0.285074
1 S 5.21500000E-01 0.015204
2 S 6.66500000E+03 -0.000146
2 S 1.00000000E+03 -0.001154
2 S 2.28000000E+02 -0.005725
2 S 6.47100000E+01 -0.023312
2 S 2.10600000E+01 -0.063955
2 S 7.49500000E+00 -0.149981
2 S 2.79700000E+00 -0.127262
2 S 5.21500000E-01 0.544529
3 S 1.59600000E-01 1.000000
4 S 4.69000000E-02 1.000000
5 P 9.43900000E+00 0.038109
5 P 2.00200000E+00 0.209480
5 P 5.45600000E-01 0.508557
6 P 1.51700000E-01 1.000000
7 P 4.04100000E-02 1.000000
8 D 5.50000000E-01 1.000000
9 D 1.51000000E-01 1.000000
H (Hydrogen)
------------
Exponent Coefficients
-------------- ---------------------------------------------------------
1 S 1.30100000E+01 0.019685
1 S 1.96200000E+00 0.137977
1 S 4.44600000E-01 0.478148
2 S 1.22000000E-01 1.000000
3 S 2.97400000E-02 1.000000
4 P 7.27000000E-01 1.000000
5 P 1.41000000E-01 1.000000
Summary of "ao basis" -> "b1" (spherical)
------------------------------------------------------------------------------
Tag Description Shells Functions and Types
---------------- ------------------------------ ------ ---------------------
C aug-cc-pvdz 9 23 4s3p2d
H aug-cc-pvdz 5 9 3s2p
Caching 1-el integrals
WARNING: movecs_in_org=atomic not equal to movecs_in=./b1.mos
Time after variat. SCF: 0.4
Time prior to 1st pass: 0.4
Total DFT energy = -40.098721470454
One electron energy = -79.817762448480
Coulomb energy = 32.731732491192
Exchange-Corr. energy = -6.460416727190
Nuclear repulsion energy = 13.447725214025
Numeric. integr. density = 10.000005610713
Total iterative time = 0.3s
Occupations of the irreducible representations
----------------------------------------------
irrep alpha beta
-------- -------- --------
a1 2.0 2.0
a2 0.0 0.0
e 0.0 0.0
t1 0.0 0.0
t2 3.0 3.0
Task times cpu: 0.4s wall: 0.4s
NWChem Input Module
-------------------
NWChem DFT Module
-----------------
test basis details keyword
Basis "ao basis" -> "b2" (spherical)
-----
C (Carbon)
----------
Exponent Coefficients
-------------- ---------------------------------------------------------
1 S 6.66500000E+03 0.000692
1 S 1.00000000E+03 0.005329
1 S 2.28000000E+02 0.027077
1 S 6.47100000E+01 0.101718
1 S 2.10600000E+01 0.274740
1 S 7.49500000E+00 0.448564
1 S 2.79700000E+00 0.285074
1 S 5.21500000E-01 0.015204
2 S 6.66500000E+03 -0.000146
2 S 1.00000000E+03 -0.001154
2 S 2.28000000E+02 -0.005725
2 S 6.47100000E+01 -0.023312
2 S 2.10600000E+01 -0.063955
2 S 7.49500000E+00 -0.149981
2 S 2.79700000E+00 -0.127262
2 S 5.21500000E-01 0.544529
3 S 1.59600000E-01 1.000000
4 S 4.69000000E-02 1.000000
5 P 9.43900000E+00 0.038109
5 P 2.00200000E+00 0.209480
5 P 5.45600000E-01 0.508557
6 P 1.51700000E-01 1.000000
7 P 4.04100000E-02 1.000000
8 D 5.50000000E-01 1.000000
9 D 1.51000000E-01 1.000000
H (Hydrogen)
------------
Exponent Coefficients
-------------- ---------------------------------------------------------
1 S 1.30100000E+01 0.019685
1 S 1.96200000E+00 0.137977
1 S 4.44600000E-01 0.478148
2 S 1.22000000E-01 1.000000
3 S 2.97400000E-02 1.000000
4 P 7.27000000E-01 1.000000
5 P 1.41000000E-01 1.000000
Summary of "ao basis" -> "b2" (spherical)
------------------------------------------------------------------------------
Tag Description Shells Functions and Types
---------------- ------------------------------ ------ ---------------------
C aug-cc-pvdz 9 23 4s3p2d
H aug-cc-pvdz 5 9 3s2p
Caching 1-el integrals
WARNING: movecs_in_org=project not equal to movecs_in=./b2.mos
Time after variat. SCF: 0.7
Time prior to 1st pass: 0.7
Total DFT energy = -40.098721474766
One electron energy = -79.817417679667
Coulomb energy = 32.731340846306
Exchange-Corr. energy = -6.460369855430
Nuclear repulsion energy = 13.447725214025
Numeric. integr. density = 10.000005610781
Total iterative time = 0.2s
Occupations of the irreducible representations
----------------------------------------------
irrep alpha beta
-------- -------- --------
a1 2.0 2.0
a2 0.0 0.0
e 0.0 0.0
t1 0.0 0.0
t2 3.0 3.0
Task times cpu: 0.3s wall: 0.3s
NWChem Input Module
-------------------
NWChem DFT Module
-----------------
test basis details keyword
Basis "ao basis" -> "b3" (spherical)
-----
C (Carbon)
----------
Exponent Coefficients
-------------- ---------------------------------------------------------
1 S 6.66500000E+03 0.000692
1 S 1.00000000E+03 0.005329
1 S 2.28000000E+02 0.027077
1 S 6.47100000E+01 0.101718
1 S 2.10600000E+01 0.274740
1 S 7.49500000E+00 0.448564
1 S 2.79700000E+00 0.285074
1 S 5.21500000E-01 0.015204
2 S 6.66500000E+03 -0.000146
2 S 1.00000000E+03 -0.001154
2 S 2.28000000E+02 -0.005725
2 S 6.47100000E+01 -0.023312
2 S 2.10600000E+01 -0.063955
2 S 7.49500000E+00 -0.149981
2 S 2.79700000E+00 -0.127262
2 S 5.21500000E-01 0.544529
3 S 1.59600000E-01 1.000000
4 S 4.69000000E-02 1.000000
5 P 9.43900000E+00 0.038109
5 P 2.00200000E+00 0.209480
5 P 5.45600000E-01 0.508557
6 P 1.51700000E-01 1.000000
7 P 4.04100000E-02 1.000000
8 D 5.50000000E-01 1.000000
9 D 1.51000000E-01 1.000000
H (Hydrogen)
------------
Exponent Coefficients
-------------- ---------------------------------------------------------
1 S 1.30100000E+01 0.019685
1 S 1.96200000E+00 0.137977
1 S 4.44600000E-01 0.478148
2 S 1.22000000E-01 1.000000
3 S 2.97400000E-02 1.000000
4 P 7.27000000E-01 1.000000
5 P 1.41000000E-01 1.000000
Summary of "ao basis" -> "b3" (spherical)
------------------------------------------------------------------------------
Tag Description Shells Functions and Types
---------------- ------------------------------ ------ ---------------------
C aug-cc-pvdz 9 23 4s3p2d
H aug-cc-pvdz 5 9 3s2p
Caching 1-el integrals
WARNING: movecs_in_org=project not equal to movecs_in=./b3.mos
Time after variat. SCF: 1.0
Time prior to 1st pass: 1.0
Total DFT energy = -40.098721474784
One electron energy = -79.817393093582
Coulomb energy = 32.731313156390
Exchange-Corr. energy = -6.460366751616
Nuclear repulsion energy = 13.447725214025
Numeric. integr. density = 10.000005610778
Total iterative time = 0.2s
Occupations of the irreducible representations
----------------------------------------------
irrep alpha beta
-------- -------- --------
a1 2.0 2.0
a2 0.0 0.0
e 0.0 0.0
t1 0.0 0.0
t2 3.0 3.0
Task times cpu: 0.3s wall: 0.3s
NWChem Input Module
-------------------
NWChem DFT Module
-----------------
test basis details keyword
Basis "ao basis" -> "b4" (cartesian)
-----
C (Carbon)
----------
Exponent Coefficients
-------------- ---------------------------------------------------------
1 S 6.66500000E+03 0.000692
1 S 1.00000000E+03 0.005329
1 S 2.28000000E+02 0.027077
1 S 6.47100000E+01 0.101718
1 S 2.10600000E+01 0.274740
1 S 7.49500000E+00 0.448564
1 S 2.79700000E+00 0.285074
1 S 5.21500000E-01 0.015204
2 S 6.66500000E+03 -0.000146
2 S 1.00000000E+03 -0.001154
2 S 2.28000000E+02 -0.005725
2 S 6.47100000E+01 -0.023312
2 S 2.10600000E+01 -0.063955
2 S 7.49500000E+00 -0.149981
2 S 2.79700000E+00 -0.127262
2 S 5.21500000E-01 0.544529
3 S 1.59600000E-01 1.000000
4 S 4.69000000E-02 1.000000
5 P 9.43900000E+00 0.038109
5 P 2.00200000E+00 0.209480
5 P 5.45600000E-01 0.508557
6 P 1.51700000E-01 1.000000
7 P 4.04100000E-02 1.000000
8 D 5.50000000E-01 1.000000
9 D 1.51000000E-01 1.000000
H (Hydrogen)
------------
Exponent Coefficients
-------------- ---------------------------------------------------------
1 S 1.30100000E+01 0.019685
1 S 1.96200000E+00 0.137977
1 S 4.44600000E-01 0.478148
2 S 1.22000000E-01 1.000000
3 S 2.97400000E-02 1.000000
4 P 7.27000000E-01 1.000000
5 P 1.41000000E-01 1.000000
Summary of "ao basis" -> "b4" (cartesian)
------------------------------------------------------------------------------
Tag Description Shells Functions and Types
---------------- ------------------------------ ------ ---------------------
C aug-cc-pvdz 9 25 4s3p2d
H aug-cc-pvdz 5 9 3s2p
Caching 1-el integrals
WARNING: movecs_in_org=project not equal to movecs_in=./b4.mos
Time after variat. SCF: 1.3
Time prior to 1st pass: 1.3
Total DFT energy = -40.100836427564
One electron energy = -79.804187567806
Coulomb energy = 32.702475992294
Exchange-Corr. energy = -6.446850066076
Nuclear repulsion energy = 13.447725214025
Numeric. integr. density = 10.000005618093
Total iterative time = 0.3s
Occupations of the irreducible representations
----------------------------------------------
irrep alpha beta
-------- -------- --------
a1 2.0 2.0
a2 0.0 0.0
e 0.0 0.0
t1 0.0 0.0
t2 3.0 3.0
Task times cpu: 0.4s wall: 0.4s
NWChem Input Module
-------------------
Summary of allocated global arrays
-----------------------------------
No active global arrays
MA_summarize_allocated_blocks: starting scan ...
heap block 'gridpts', handle 74, address 0x7fedf6985698:
type of elements: double precision
number of elements: 33554432
address of client space: 0x7fedf6985700
index for client space: 17581915250195
total number of bytes: 268435568
MA_summarize_allocated_blocks: scan completed: 1 heap block, 0 stack blocks
MA usage statistics:
allocation statistics:
heap stack
---- -----
current number of blocks 1 0
maximum number of blocks 25 55
current total bytes 268435568 0
maximum total bytes 273176464 22512552
maximum total K-bytes 273177 22513
maximum total M-bytes 274 23
CITATION
--------
Please cite the following reference when publishing
results obtained with NWChem:
E. Apra, E. J. Bylaska, W. A. de Jong, N. Govind, K. Kowalski,
T. P. Straatsma, M. Valiev, H. J. J. van Dam, Y. Alexeev, J. Anchell,
V. Anisimov, F. W. Aquino, R. Atta-Fynn, J. Autschbach, N. P. Bauman,
J. C. Becca, D. E. Bernholdt, K. Bhaskaran-Nair, S. Bogatko, P. Borowski,
J. Boschen, J. Brabec, A. Bruner, E. Cauet, Y. Chen, G. N. Chuev,
C. J. Cramer, J. Daily, M. J. O. Deegan, T. H. Dunning Jr., M. Dupuis,
K. G. Dyall, G. I. Fann, S. A. Fischer, A. Fonari, H. Fruchtl, L. Gagliardi,
J. Garza, N. Gawande, S. Ghosh, K. Glaesemann, A. W. Gotz, J. Hammond,
V. Helms, E. D. Hermes, K. Hirao, S. Hirata, M. Jacquelin, L. Jensen,
B. G. Johnson, H. Jonsson, R. A. Kendall, M. Klemm, R. Kobayashi, V. Konkov,
S. Krishnamoorthy, M. Krishnan, Z. Lin, R. D. Lins, R. J. Littlefield,
A. J. Logsdail, K. Lopata, W. Ma, A. V. Marenich, J. Martin del Campo,
D. Mejia-Rodriguez, J. E. Moore, J. M. Mullin, T. Nakajima, D. R. Nascimento,
J. A. Nichols, P. J. Nichols, J. Nieplocha, A. Otero-de-la-Roza, B. Palmer,
A. Panyala, T. Pirojsirikul, B. Peng, R. Peverati, J. Pittner, L. Pollack,
R. M. Richard, P. Sadayappan, G. C. Schatz, W. A. Shelton, D. W. Silverstein,
D. M. A. Smith, T. A. Soares, D. Song, M. Swart, H. L. Taylor, G. S. Thomas,
V. Tipparaju, D. G. Truhlar, K. Tsemekhman, T. Van Voorhis,
A. Vazquez-Mayagoitia, P. Verma, O. Villa, A. Vishnu, K. D. Vogiatzis,
D. Wang, J. H. Weare, M. J. Williamson, T. L. Windus, K. Wolinski,
A. T. Wong, Q. Wu, C. Yang, Q. Yu, M. Zacharias, Z. Zhang, Y. Zhao,
and R. J. Harrison
"NWChem: Past, present, and future
J. Chem. Phys. 152, 184102 (2020)
doi:10.1063/5.0004997
AUTHORS
-------
E. Apra, E. J. Bylaska, N. Govind, K. Kowalski, M. Valiev, D. Mejia-Rodriguez,
A. Kunitsa, N. P. Bauman, A. Panyala, W. A. de Jong, T. P. Straatsma,
H. J. J. van Dam, D. Wang, T. L. Windus, J. Hammond, J. Autschbach, A. Woods,
K. Bhaskaran-Nair, J. Brabec, K. Lopata, S. A. Fischer, S. Krishnamoorthy,
M. Jacquelin, W. Ma, M. Klemm, O. Villa, Y. Chen, V. Anisimov, F. Aquino,
S. Hirata, M. T. Hackler, E. Hermes, L. Jensen, J. E. Moore, J. C. Becca,
V. Konjkov, T. Risthaus, M. Malagoli, A. Marenich, A. Otero-de-la-Roza,
J. Mullin, P. Nichols, R. Peverati, J. Pittner, Y. Zhao, P.-D. Fan,
A. Fonari, M. J. Williamson, R. J. Harrison, J. R. Rehr, M. Dupuis,
D. Silverstein, D. M. A. Smith, J. Nieplocha, V. Tipparaju, M. Krishnan,
B. E. Van Kuiken, A. Vazquez-Mayagoitia, M. Swart, Q. Wu, T. Van Voorhis,
A. A. Auer, M. Nooijen, L. D. Crosby, E. Brown, G. Cisneros, G. I. Fann,
H. Fruchtl, J. Garza, K. Hirao, R. A. Kendall, J. A. Nichols, K. Tsemekhman,
K. Wolinski, J. Anchell, D. E. Bernholdt, P. Borowski, T. Clark, D. Clerc,
H. Dachsel, M. J. O. Deegan, K. Dyall, D. Elwood, E. Glendening, M. Gutowski,
A. C. Hess, J. Jaffe, B. G. Johnson, J. Ju, R. Kobayashi, R. Kutteh, Z. Lin,
R. Littlefield, X. Long, B. Meng, T. Nakajima, S. Niu, L. Pollack, M. Rosing,
K. Glaesemann, G. Sandrone, M. Stave, H. Taylor, G. Thomas, J. H. van Lenthe,
A. T. Wong, Z. Zhang.
Total times cpu: 1.6s wall: 1.6s

View file

@ -19,7 +19,12 @@ geometry
H .566733 1.075185 -.889981
H -.423217 -1.094815 .824662
H -.423217 -1.094815 -.824662
symmetry c1
# symmetry c1
end
scf
sym off
adapt off
end
task SCF energy

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,6 @@
start dimer
title "Water dimer DFT using fragment initial guess"
geometry print nocenter noautoz dimer
symmetry c1 tol 0.0
geometry print nocenter noautoz noautosym dimer
O -0.595 1.165 -0.048
H 0.110 1.812 -0.170
H -1.452 1.598 -0.154
@ -9,14 +8,12 @@ start dimer
H 0.175 -2.013 0.348
H 0.177 -0.480 0.010
end
geometry print nocenter noautoz h2o1
symmetry c1 tol 0.0
geometry print nocenter noautoz noautosym h2o1
O -0.595 1.165 -0.048
H 0.110 1.812 -0.170
H -1.452 1.598 -0.154
end
geometry print nocenter noautoz h2o2
symmetry c1 tol 0.0
geometry print nocenter noautoz noautosym h2o2
O 0.724 -1.284 0.034
H 0.175 -2.013 0.348
H 0.177 -0.480 0.010
@ -27,19 +24,26 @@ start dimer
end
set dft:no_prune true
dft
sym off
adapt off
grid xfine
tolerances tight
convergence energy 1d-9
end
set geometry h2o1
dft; vectors input atomic output h2o1.movecs; grid xfine; tolerances tight; end
dft; vectors input atomic output h2o1.movecs; end
task dft
set geometry h2o2
dft; vectors input atomic output h2o2.movecs; grid xfine; tolerances tight; end
dft; vectors input atomic output h2o2.movecs; end
task dft
set geometry dimer
dft
vectors input fragment h2o1.movecs h2o2.movecs \
output dimer.movecs; tolerances tight; grid xfine;
output dimer.movecs;
end
task dft
@ -53,23 +57,23 @@ start dimer
# Spin-paired Thomas Fermi
set geometry h2o1
dft; frozemb geometry h2o2 vectors h2o2.movecs; frozemb_ts tf; \
vectors input h2o1.movecs output h2o1.fde.movecs; odft; grid xfine; tolerances tight; end
vectors input h2o1.movecs output h2o1.fde.movecs; odft; end
task dft
# Spin-unpaired
dft; frozemb geometry h2o2 vectors h2o2.movecs; frozemb_ts tf; \
vectors input h2o1.movecs output h2o1.fde.movecs; odft; grid xfine; tolerances tight; end
vectors input h2o1.movecs output h2o1.fde.movecs; odft; end
task dft
# Spin-paired von Weisacker
set geometry h2o1
dft; frozemb geometry h2o2 vectors h2o2.movecs; frozemb_ts vw; \
vectors input h2o1.movecs output h2o1.fde.movecs; odft; grid xfine; tolerances tight; end
vectors input h2o1.movecs output h2o1.fde.movecs; odft; end
task dft
# Spin-unpaired
dft; frozemb geometry h2o2 vectors h2o2.movecs; frozemb_ts vw; \
vectors input h2o1.movecs output h2o1.fde.movecs; odft; grid xfine; tolerances tight; end
vectors input h2o1.movecs output h2o1.fde.movecs; odft; end
task dft
unset dft:frozemb

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,252 @@
##
## Real-time TDDFT QA
## rt_tddft_cytosine_cam_cdfit
##
## This will test range-separated XC and charge density fitting by
## propagating from a converged ground state in the absence of an
## external field. Since we are at a variational minimum, the dipole
## moment and energy should be time-independent and consistent with
## the DFT SCF values.
##
## Suggested checks:
## nw_rtparse -xdipole -px -c myrun.out cytosine.out
## nw_rtparse -xdipole -py -c myrun.out cytosine.out
## nw_rtparse -xdipole -pz -c myrun.out cytosine.out
## nw_rtparse -xenergy -c myrun.out cytosine.out
##
title "Cytosine CD fitting + CAM-B3LYP"
memory 1800 mb
start cytosine
echo
geometry "system" units angstroms noautosym nocenter noautoz
C -0.21392 1.48233 -2.56453
C 1.70616 2.50220 -1.71935
C 2.22400 1.26962 -1.26854
C 1.47919 0.17758 -1.49356
H -0.16957 -0.54127 -2.42952
H 2.00878 4.39665 -1.75063
H 3.23491 3.58949 -1.32727
H 3.09143 1.21549 -0.77806
H 1.72181 -0.74069 -1.17471
N 0.28958 0.27064 -2.13203
N 0.52437 2.60665 -2.33531
N 2.40270 3.63507 -1.53819
O -1.30179 1.51461 -3.16181
end
set geometry "system"
##
## H, C, N, O: cc-pvdz
##
basis spherical
H S
13.0100000 0.0196850
1.9620000 0.1379770
0.4446000 0.4781480
H S
0.1220000 1.0000000
H P
0.7270000 1.0000000
C S
6665.0000000 0.0006920 -0.0001460
1000.0000000 0.0053290 -0.0011540
228.0000000 0.0270770 -0.0057250
64.7100000 0.1017180 -0.0233120
21.0600000 0.2747400 -0.0639550
7.4950000 0.4485640 -0.1499810
2.7970000 0.2850740 -0.1272620
0.5215000 0.0152040 0.5445290
C S
0.1596000 1.0000000
C P
9.4390000 0.0381090
2.0020000 0.2094800
0.5456000 0.5085570
C P
0.1517000 1.0000000
C D
0.5500000 1.0000000
N S
9046.0000000 0.0007000 -0.0001530
1357.0000000 0.0053890 -0.0012080
309.3000000 0.0274060 -0.0059920
87.7300000 0.1032070 -0.0245440
28.5600000 0.2787230 -0.0674590
10.2100000 0.4485400 -0.1580780
3.8380000 0.2782380 -0.1218310
0.7466000 0.0154400 0.5490030
N S
0.2248000 1.0000000
N P
13.5500000 0.0399190
2.9170000 0.2171690
0.7973000 0.5103190
N P
0.2185000 1.0000000
N D
0.8170000 1.0000000
O S
11720.0000000 0.0007100 -0.0001600
1759.0000000 0.0054700 -0.0012630
400.8000000 0.0278370 -0.0062670
113.7000000 0.1048000 -0.0257160
37.0300000 0.2830620 -0.0709240
13.2700000 0.4487190 -0.1654110
5.0250000 0.2709520 -0.1169550
1.0130000 0.0154580 0.5573680
O S
0.3023000 1.0000000
O P
17.7000000 0.0430180
3.8540000 0.2289130
1.0460000 0.5087280
O P
0.2753000 1.0000000
O D
1.1850000 1.0000000
end
# ##
# ## H, C, N, O: ahlrichs coulomb fitting
# ##
basis "cd basis"
H S
9.30813000E+00 0.03446618
2.30671800E+00 0.12253380
H S
7.52012000E-01 1.0000000
H S
2.73978000E-01 1.0000000
H P
2.03270400E+00 1.0000000
H P
7.90252000E-01 1.0000000
H D
2.01954800E+00 1.0000000
C S
5.91553927E+02 0.31582020
1.72117940E+02 0.87503863
5.47992590E+01 2.30760524
C S
1.89590940E+01 1.0000000
C S
7.05993000E+00 1.0000000
C S
2.79484900E+00 1.0000000
C S
1.15863400E+00 1.0000000
C S
4.94324000E-01 1.0000000
C S
2.12969000E-01 1.0000000
C P
3.27847358E-01 1.0000000
C P
7.86833659E-01 1.0000000
C P
1.97101832E+00 1.0000000
C D
4.01330100E+00 1.0000000
C D
1.24750500E+00 1.0000000
C D
4.08148000E-01 1.0000000
C F
9.00000000E-01 1.0000000
N S
7.91076935E+02 0.41567506
2.29450184E+02 1.14750694
7.28869600E+01 3.01935767
N S
2.51815960E+01 1.0000000
N S
9.37169700E+00 1.0000000
N S
3.71065500E+00 1.0000000
N S
1.53946300E+00 1.0000000
N S
6.57553000E-01 1.0000000
N S
2.83654000E-01 1.0000000
N P
4.70739194E-01 1.0000000
N P
1.12977407E+00 1.0000000
N P
2.83008403E+00 1.0000000
N D
5.83298650E+00 1.0000000
N D
1.73268650E+00 1.0000000
N D
5.45242500E-01 1.0000000
N F
1.82648000E+00 1.0000000
O S
9.57843253E+02 0.56249624
2.81967425E+02 1.49108985
9.01998320E+01 3.86547733
O S
3.11382990E+01 1.0000000
O S
1.14937320E+01 1.0000000
O S
4.48404900E+00 1.0000000
O S
1.82350400E+00 1.0000000
O S
7.60903000E-01 1.0000000
O S
3.20292000E-01 1.0000000
O P
6.14708863E-01 1.0000000
O P
1.47530127E+00 1.0000000
O P
3.69562968E+00 1.0000000
O D
7.65267200E+00 1.0000000
O D
2.21786800E+00 1.0000000
O D
6.82337000E-01 1.0000000
O F
2.19178082E+00 1.0000000
end
##
## CAM-B3LYP with tight convergence
##
## (no need for "direct" since coulomb part done with charge density fitting)
##
dft
xc xcamb88 1.00 lyp 0.81 vwn_5 0.19 hfexch 1.00
cam 0.33 cam_alpha 0.19 cam_beta 0.46
convergence density 1d-9
tolerances tight acccoul 10
end
task dft energy
##
## No excitation, just propagate a few steps with full checking and profiling
##
rt_tddft
tmax 1.0
dt 0.2
nchecks *
checklvl 3
nrestarts 0
prof
end
task dft rt_tddft

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,115 @@
##
## Real-time TDDFT QA
## rt_tddft_tcne_spinkick
##
## This tests open shell propagation and spin-dependent excitation
## rules. Here we excite the alpha spin with a positive kick, and the
## beta spin with a negative kick.
##
## Suggested checks:
## nw_rtparse -xdipole -salpha -pz -c myrun.out tcne.out
## nw_rtparse -xdipole -sbeta -pz -c myrun.out tcne.out
## nw_rtparse -xenergy -c myrun.out tcne.out
## nw_rtparse -xS2 -c myrun.out tcne.out
##
title "Tetracyanoethylene anion"
echo
start tcne
echo
##
## optimized with cc-pvdz/B3LYP
##
geometry "system" units angstroms noautosym nocenter noautoz
C -1.77576486 0.66496556 0.00004199
N -2.94676621 0.71379797 0.00004388
C -0.36046718 0.62491168 0.00003506
C 0.36049301 -0.62492429 -0.00004895
C 1.77579907 -0.66504145 -0.00006082
N 2.94680364 -0.71382258 -0.00006592
C -0.31262746 -1.87038951 -0.00011201
N -0.85519492 -2.90926164 -0.00016331
C 0.31276207 1.87031662 0.00010870
N 0.85498782 2.90938919 0.00016857
end
set geometry "system"
##
## C, N: 6-31G
##
basis
C S
3047.5249000 0.0018347
457.3695100 0.0140373
103.9486900 0.0688426
29.2101550 0.2321844
9.2866630 0.4679413
3.1639270 0.3623120
C SP
7.8682724 -0.1193324 0.0689991
1.8812885 -0.1608542 0.3164240
0.5442493 1.1434564 0.7443083
C SP
0.1687144 1.0000000 1.0000000
N S
4173.5110000 0.0018348
627.4579000 0.0139950
142.9021000 0.0685870
40.2343300 0.2322410
12.8202100 0.4690700
4.3904370 0.3604550
N SP
11.6263580 -0.1149610 0.0675800
2.7162800 -0.1691180 0.3239070
0.7722180 1.1458520 0.7408950
N SP
0.2120313 1.0000000 1.0000000
end
charge -1
dft
mult 2
odft
xc b3lyp
end
task dft energy
##
## Excite alpha and beta spins with different kick excitations. Also
## do full checking.
##
rt_tddft
tmax 5.0
dt 0.2
nrestarts 0
nchecks *
checklvl 3
field "ka"
type delta
polarization z
max 0.001
spin alpha
end
field "kb"
type delta
polarization z
max -0.001
spin beta
end
excite "system" with "ka"
excite "system" with "kb"
end
task dft rt_tddft

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,30 @@
echo
title h2o
start h2o
geometry units bohr
symmetry c1
H -1.57866004 0.0 0.40931277
O 0.00000000 0.0 -0.81862553
H 1.57866004 0.0 0.40931277
end
basis "ao basis"
* library 6-31G
end
dft
xc slater 1.0 pw91lda 1.0
# xc slater 1.0 pw91lda 1.0 hfexch 1d-8
end
tddft
cis
nroots 10
algorithm 1
notriplet
civecs
grad
root 1
end
end
#set tddft:tdaloc .false.
task tddft gradient
task tddft gradient numerical

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
<!---[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fnwchemgit%2Fnwchem%2Fbadge%3Fref%3Dmaster&style=flat)](https://actions-badge.atrox.dev/nwchemgit/nwchem/goto?ref=master)--->
[![NWChem_CI](https://img.shields.io/github/workflow/status/nwchemgit/nwchem/NWChem_CI)](https://github.com/nwchemgit/nwchem/actions)
[![NWChem_CI](https://img.shields.io/github/actions/workflow/status/nwchemgit/nwchem/github_actions.yml?style=plastic)](https://github.com/nwchemgit/nwchem/actions)
<!---[![Build Travis-CI Status](https://img.shields.io/travis/nwchemgit/nwchem.svg)](https://travis-ci.org/nwchemgit/nwchem/builds)--->
[![License](https://img.shields.io/badge/license-ECL2-blue.svg)](https://raw.githubusercontent.com/nwchemgit/nwchem/master/LICENSE.md)
[![Github Downloads All Releases](https://img.shields.io/github/downloads/nwchemgit/nwchem/total.svg)](https://github.com/nwchemgit/nwchem/releases)

51
release.notes.7.2.0 Normal file
View file

@ -0,0 +1,51 @@
NWChem Version 7.2.0 Release Notes
NWChem is now available on Github at
https://github.com/nwchemgit/nwchem
Documentation available from the NWChem website at
https://nwchemgit.github.io
NWChem 7.2.0 is released as open-source under the ECL 2.0 license.
NWChem 7.2.0 will be released with the latest Global Arrays Toolkit (v5.8.2).
NEW FUNCTIONALITY
Modules:
Molecular GW with Gaussian basis
Interfaces:
* Plumed
* Libxc
* tblite
Compilation:
Added the enviroment variable USE_HWOPT: when USE_HWOPT=n all hardware (non-dynamic) optimizations are not used (e.g. gcc -march=native)
Solvation module:
* COSMO updates
Gaussian DFT module:
* New functionality: exact two-component relativistic Hamiltonian (X2C)
* New functionality: Auxiliary Density Functional Theory (ADFT) XC method
* New functionality: Resolution of Identity Time-Dependft DFT (RITDFT)
* New DFT XC functionals
- r2SCAN0
- r2scan-D3 and rscan-D3
- n12-sx
- mn15 and mn15-l
- mn12-sx and mm12-l
- revm11
- wb97, wb97-d3 and wb97x
- r2SCAN, r2SCAN-L
Basis set
* added autoaux fitting basis sets to libraries.bse
* new "bse" input option
BUG FIXES/ENHANCEMENTS
TBD

View file

@ -1135,11 +1135,13 @@ c Now read the basis for this magical atom type in using
c the given tag
c
10 if (.not. inp_a(field)) field=' '
#ifdef IGNORE_HEH
c
c ignore spherical vs cartesian from bse for He/H
c since they do assign spherical when the other elements are cartesian
c
if (.not.inp_compare(.false., 'h', string(1:1))) then
#endif
if(read_sphere) then
if (inp_compare(.false., 'spherical', field)) then
if (.not. bas_set_spherical(basis, .true.))
@ -1147,7 +1149,9 @@ c
& (' bas_set_spherical failed ',911, BASIS_ERR)
endif
endif
#ifdef IGNORE_HEH
endif
#endif
if (.not. inp_read()) call errquit
$ ('bas_tag_lib: premature EOF', 0, INPUT_ERR)
c

View file

@ -19,7 +19,7 @@
# For development tree
#RELEASE :=
# For current release tree
RELEASE := 7.0.0
RELEASE := 7.2.0
#
ifndef NWCHEM_TOP
@ -243,10 +243,10 @@ endif
# specified below. Use of MPI requires substituting the tcgmsg-mpi
# wrapper for the normal tcgmsg library.
# the 2 following environmental variables are need for linking
# LIBMPI - represents the name of mpi library (with -l)
# MPI_LIB - represents the path to the mpi library
#LIBMPI = -lmpich
#MPI_LIB= /usr/local/lib
# NWLIBMPI - represents the name of mpi library (with -l)
# NWMPI_LIB - represents the path to the mpi library
#NWLIBMPI = -lmpich
#NWMPI_LIB= /usr/local/lib
#JN: under the new structure, tools should be listed first as
# their header files are needed for dependency analysis of
@ -292,9 +292,6 @@ ifdef BUILD_SCALAPACK
$(error )
endif
ifndef SCALAPACK_SIZE
SCALAPACK_SIZE=8
endif
SCALAPACK=-L$(NWCHEM_TOP)/src/libext/lib -lnwc_scalapack
endif
@ -317,15 +314,6 @@ ifdef BUILD_ELPA
endif
ifdef BUILD_MPICH
NW_CORE_SUBDIRS += libext
PATH := $(NWCHEM_TOP)/src/libext/bin:$(PATH)
MPI_INCLUDE = $(shell PATH=$(NWCHEM_TOP)/src/libext/bin:$(PATH) $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_include)
MPI_LIB = $(shell PATH=$(NWCHEM_TOP)/src/libext/bin:$(PATH) $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_lib)
LIBMPI = $(shell PATH=$(NWCHEM_TOP)/src/libext/bin:$(PATH) $(NWCHEM_TOP)/src/tools/guess-mpidefs --libmpi)
LIBMPI += $(shell /usr/local/bin/pkg-config --libs-only-L hwloc 2> /dev/null)
endif
ifndef EXTERNAL_GA_PATH
NW_CORE_SUBDIRS += tools
@ -2456,12 +2444,12 @@ ifneq ($(TARGET),LINUX)
#
ifeq ($(_IFCV15ORNEWER), Y)
IFORTVER=$(shell ifort -v 2>&1|cut -d " " -f 3)
ifeq ($(IFORTVER),2021.7.0)
$(info )
$(info ifort 2021.7.0 not validated)
$(info )
$(error )
endif
# ifeq ($(IFORTVER),2021.7.0)
# $(info )
# $(info ifort 2021.7.0 not validated)
# $(info )
# $(error )
# endif
# fpp seems to get lost with ifort 15 in the offload bit
# only use EXPLICITF for offload because otherwise we want debugging to be easy
# FOPTIONS += -Qoption,fpp,-P -Qoption,fpp,-c_com=no -allow nofpp_comments
@ -3317,7 +3305,7 @@ ifeq ($(BUILDING_PYTHON),python)
ifndef GOT_PYTHONCONFIG
PYMAJOR:=$(word 1, $(subst ., ,$(PYTHONVERSION)))
errorpythonconfig:$
errorpythonconfig:
$(info )
$(info python-config not found in your PATH)
$(info Please install the packages)
@ -3455,14 +3443,6 @@ else
CORE_LIBS += $(BLASOPT)
endif
ifdef NWCHEM_LINK_CUDA
ifeq ($(_FC),pgf90)
CORE_LIBS += -acc -cuda -cudalib=cublas
endif
ifeq ($(_FC),gfortran)
CORE_LIBS += -fopenacc -lcublas
endif
endif
ifdef BLASOPT
@ -3532,39 +3512,91 @@ endif
ifdef USE_MPI
#ifeq ($(FC),$(findstring $(FC),mpifrt mpfort mpif77 mpxlf mpif90 ftn scorep-ftn))
ifeq ($(FC),$(findstring $(FC), ftn scorep-ftn))
LIBMPI =
MPI_INCLUDE =
MPI_LIB =
else
NWLIBMPI =
NWMPI_INCLUDE =
NWMPI_LIB =
else ifdef BUILD_MPICH
NW_CORE_SUBDIRS += libext
PATH := $(NWCHEM_TOP)/src/libext/bin:$(PATH)
NWMPI_INCLUDE = $(shell PATH=$(NWCHEM_TOP)/src/libext/bin:$(PATH) $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_include)
NWMPI_LIB = $(shell PATH=$(NWCHEM_TOP)/src/libext/bin:$(PATH) $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_lib)
NWLIBMPI = $(shell PATH=$(NWCHEM_TOP)/src/libext/bin:$(PATH) $(NWCHEM_TOP)/src/tools/guess-mpidefs --libmpi)
NWLIBMPI += $(shell /usr/local/bin/pkg-config --libs-only-L hwloc 2> /dev/null)
else ifdef FORCE_MPI_ENV
ifndef MPI_INCLUDE
# check if mpif90 is present
MPIF90YN = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_include)
ifeq ($(MPIF90YN),mpif90notfound)
errormpif90:
$(info )
$(info mpif90 not found. Please add its location to PATH)
$(info e.g. export PATH=/usr/local/bin:/usr/lib64/openmpi/bin:...)
$(info )
endif
MPI_INCLUDE = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_include)
errormpi1:
$(info )
$(info FORCE_MPI_ENV set but MPI_INCLUDE not set)
$(info )
$(error )
else
NWMPI_INCLUDE = $(MPI_INCLUDE)
endif
ifndef MPI_LIB
MPI_LIB = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_lib)
endif
errormpi2:
$(info )
$(info FORCE_MPI_ENV set but MPI_LIB not set)
$(info )
$(error )
else
NWMPI_LIB = $(MPI_LIB)
endif
ifndef LIBMPI
LIBMPI = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --libmpi)
errormpi3:
$(info )
$(info FORCE_MPI_ENV set but LIBMPI not set)
$(info )
$(error )
else
NWLIBMPI = $(LIBMPI)
endif
else
ifeq ($(shell pwd), $(NWCHEM_TOP)/src)
ifndef FORCE_MPI_ENV
ifdef LIBMPI
$(info ***warning LIBMPI ignored since FORCE_MPI_ENV not set***)
endif
ifdef MPI_LIB
$(info ***warning MPI_LIB ignored since FORCE_MPI_ENV not set***)
endif
ifdef MPI_INCLUDE
$(info ***warning MPI_INCLUDE ignored since FORCE_MPI_ENV not set***)
endif
endif
endif
# check if mpif90 is present
MPIF90YN = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_include)
ifeq ($(MPIF90YN),mpif90notfound)
errormpif90:
$(info )
$(info mpif90 not found. Please add its location to PATH)
$(info e.g. export PATH=/usr/local/bin:/usr/lib64/openmpi/bin:...)
$(info )
$(error )
endif
NWMPI_INCLUDE = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_include)
NWMPI_LIB = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_lib)
NWLIBMPI = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --libmpi)
endif
ifdef MPI_LIB
CORE_LIBS += $(patsubst -L-L%,-L%,-L$(MPI_LIB))
ifdef NWMPI_INCLUDE
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(NWMPI_INCLUDE))
endif
ifdef NWMPI_LIB
CORE_LIBS += $(patsubst -L-L%,-L%,-L$(NWMPI_LIB))
endif
ifdef OLD_GA
CORE_LIBS += -ltcgmsg-mpi $(LIBMPI)
CORE_LIBS += -ltcgmsg-mpi $(NWLIBMPI)
else
CORE_LIBS += $(LIBMPI)
CORE_LIBS += $(NWLIBMPI)
endif
else
errornousempi:
$(info )
$(info please set the env. variable USE_MPI)
$(info and provide a working MPI installation)
$(info )
$(error )
ifdef OLD_GA
CORE_LIBS += -ltcgmsg
else
@ -3612,9 +3644,9 @@ ifdef USE_LIBXC
endif
# we use an external libxc library out of LIBXC_DIR
ifdef LIBXC_DIR
ifdef LIBXC_LIB
DEFINES += -DUSE_LIBXC
EXTRA_LIBS += -L$(LIBXC_DIR)/lib
EXTRA_LIBS += -L$(LIBXC_LIB)
EXTRA_LIBS += -lxcf03 -lxc
endif
@ -3737,6 +3769,7 @@ ifdef TCE_OPENACC
FOPTIONS += -acc
LDOPTIONS += -acc
endif
NWCHEM_LINK_CUDA=1
endif
ifndef HIP
@ -3753,6 +3786,15 @@ ifdef USE_F90_ALLOCATABLE
DEFINES += -DUSE_F90_ALLOCATABLE
endif
ifdef NWCHEM_LINK_CUDA
ifeq ($(_FC),pgf90)
CORE_LIBS += -acc -cuda -cudalib=cublas
endif
ifeq ($(_FC),gfortran)
CORE_LIBS += -fopenacc -lcublas
endif
endif
ifdef GWCMPLX
ifdef GWEN
errorgw:
@ -3884,8 +3926,24 @@ ifeq ($(shell echo $(BLASOPT) |awk '/lblas/ {print "Y"; exit}'),Y)
DEFINES += -DBLAS_NOTHREADS
endif
ifndef BLAS_SIZE
LIB_DEFINES += -DUSE_INTEGER8
ifneq ($(or $(SCALAPACK),$(SCALAPACK_LIB)),)
ifndef SCALAPACK_SIZE
$(info )
$(info You must set)
$(info SCALAPACK_SIZE)
$(info )
$(error )
endif
endif
ifneq ($(or $(BLASOPT),$(BLAS_LIB)),)
ifndef BLAS_SIZE
$(info )
$(info You must set)
$(info BLAS_SIZE)
$(info see https://nwchemgit.github.io/Compiling-NWChem.html#how-to-deal-with-integer-size-of-linear-algebra-libraries)
$(info )
$(error )
endif
endif
ifeq ($(BLAS_SIZE),8)
LIB_DEFINES += -DUSE_INTEGER8

View file

@ -18,6 +18,11 @@
integer ijshell, ilo, ihi, jlo, jhi
integer l_buf, l_scr
integer k_buf, k_scr
logical do_mirr
logical util_mirrmat
external util_mirrmat
integer g_x_mirr,g_y_mirr,g_z_mirr
integer g_x_org,g_y_org,g_z_org
!
double precision center(3)
!
@ -27,6 +32,34 @@
call ga_zero(g_x)
call ga_zero(g_y)
call ga_zero(g_z)
g_x_mirr=0
g_y_mirr=0
g_z_mirr=0
do_mirr=util_mirrmat(1,g_x,g_x_mirr,
D .false., .true.)
do_mirr=do_mirr.and.util_mirrmat(1,g_y,g_y_mirr,
D .false., .true.)
do_mirr=do_mirr.and.util_mirrmat(1,g_z,g_z_mirr,
D .false., .true.)
if(do_mirr) then
g_x_org=g_x
g_x=g_x_mirr
g_y_org=g_y
g_y=g_y_mirr
g_z_org=g_z
g_z=g_z_mirr
else
if(g_x_mirr.ne.0) then
if(.not.ga_destroy(g_x_mirr))call errquit(
$ 'could not destroy mirrx handle',1, GA_ERR)
endif
if(g_y_mirr.ne.0) then
if(.not.ga_destroy(g_y_mirr))call errquit(
$ 'could not destroy mirry handle',1, GA_ERR)
endif
endif
if(oscfps) call pstat_on(ps_int_dip)
!
! grab basis set info type stuff
@ -65,7 +98,8 @@
!
! get the integrals we want
!
call int_mpole(ibas, ishell, jbas, jshell,
! call int_mpole(ibas, ishell, jbas, jshell,
call int_mpole(jbas, jshell, ibas, ishell,
$ 1,
$ center,
$ mscratch, dbl_mb(k_scr), max1e, dbl_mb(k_buf))
@ -84,6 +118,20 @@
if(.not.MA_pop_stack(l_buf))
$ call errquit('int_dip_ga:pop failed',0, MA_ERR)
!
if (do_mirr) then
g_x=g_x_org
call util_mirrmerge(g_x_mirr,g_x)
if(.not.ga_destroy(g_x_mirr))call errquit(
$ 'could not destroy g_x_mirr handle',1, GA_ERR)
g_y=g_y_org
call util_mirrmerge(g_y_mirr,g_y)
if(.not.ga_destroy(g_y_mirr))call errquit(
$ 'could not destroy g_y_mirr handle',1, GA_ERR)
g_z=g_z_org
call util_mirrmerge(g_z_mirr,g_z)
if(.not.ga_destroy(g_z_mirr))call errquit(
$ 'could not destroy g_x_mirr handle',1, GA_ERR)
endif
call ga_sync()
!
if (util_print('multipole', print_debug)) then
@ -101,15 +149,16 @@
implicit none
#include "global.fh"
integer g_x, g_y, g_z, ilo, ihi, jlo, jhi
double precision buf(jlo:jhi,3,ilo:ihi)
! double precision buf(jlo:jhi,3,ilo:ihi)
double precision buf(ilo:ihi,3,jlo:jhi)
integer i, j
do i = ilo,ihi
c do i = ilo,ihi
do j = jlo, jhi
call ga_put(g_x,i,i,j,j,buf(j,1,i),1)
call ga_put(g_y,i,i,j,j,buf(j,2,i),1)
call ga_put(g_z,i,i,j,j,buf(j,3,i),1)
call ga_put(g_x,ilo,ihi,j,j,buf(ilo,1,j),1)
call ga_put(g_y,ilo,ihi,j,j,buf(ilo,2,j),1)
call ga_put(g_z,ilo,ihi,j,j,buf(ilo,3,j),1)
end do
end do
c end do
end
subroutine int_qdr_ga(ibas, jbas, g_xx, g_xy, g_xz,

View file

@ -249,7 +249,8 @@ c
c create a global array to store x, y, z and x^2, y^2, z^2 for each AO
c
if (.not. ga_create(mt_dbl, 6*nbf, nbf, 'GXLM',
$ 32,32,g_xlm)) call errquit('mo_r_and_r2: g_xlm',6*nbf*nbf,
c $ 32,32,g_xlm)) call errquit('mo_r_and_r2: g_xlm',6*nbf*nbf,
$ nbf,32,g_xlm)) call errquit('mo_r_and_r2: g_xlm',6*nbf*nbf,
& GA_ERR)
c
c compute dipoles and quadrupole components for each AO
@ -301,6 +302,7 @@ c
#include "geom.fh"
#include "stdio.fh"
#include "util_params.fh"
#include "util.fh"
c
integer basis ! [input] basis
double precision center(3) ! [input] the expansion center
@ -318,6 +320,9 @@ c
integer ilo, ihi, jlo, jhi, idim, jdim, ind, i, j, l, ioff
integer l_scr, k_scr, l_mp, k_mp
integer lmax ! Maximum value of L = 2
integer clo, chi, rlo, rhi
integer type, dim1, dim2
logical doloop, oprint
c
if (.not. bas_geom(basis, geom)) call errquit
$ ('multipole: bad basis', 0, BASIS_ERR)
@ -349,11 +354,30 @@ c
& call errquit('xlm_pole: cannot allocate scratch', maxscr,
& MA_ERR)
c
call ga_distribution(g_xlm,
. ga_nodeid(), rlo, rhi, clo, chi)
doloop=.not.(rlo.eq.0.and.rhi.eq.-1.and.clo.eq.0.and.chi.eq.-1)
call ga_inquire(g_xlm, type, dim1, dim2)
oprint=(ga_nodeid() .eq. 0 .and.
$ util_print('debug_xlm_make', print_debug))
if(oprint) then
write(luout,*) ' dim1 dim2 ',dim1,dim2
write(luout,*) ' rlo rhi ',rlo,rhi
write(luout,*) ' clo chi ',clo,chi
endif
call ga_zero(g_xlm)
nproc=0
if(doloop) nproc=1
call ga_igop(65536,nproc,1,'+')
if(oprint) then
write(luout,*) ' using ',nproc,
C ' nodes out of ',ga_nnodes()
call util_flush(6)
endif
c
if (doloop) then
ijshell = -1
me = ga_nodeid()
nproc = ga_nnodes()
do ishell = 1, nshell
if (.not. bas_cn2bfr(basis, ishell, ilo, ihi)) call errquit
& ('xlm_pole: bas_cn2bfr failed for basis', basis,
@ -429,6 +453,7 @@ c
end do
end do
c
endif
call ga_sync
c
c write(LuOut,*) ' THE AO MPOLES '

View file

@ -8,7 +8,9 @@ c
#include "esp_common.fh"
#include "global.fh"
#include "msgids.fh"
#include "geom.fh"
#include "util.fh"
#include "errquit.fh"
c
real*8 x(3,natoms),q(ndim,4)
real*8 g(*)
@ -83,6 +85,7 @@ c
c
call util_file_name('xyz',.false.,.false.,xyzfil)
open(unit=lfnxyz,file=xyzfil,form='formatted',status='unknown')
#if 0
write(lfnxyz,2000) natoms
2000 format('* Coordinates in XYZ format',/,i5)
do 5 i=1,natoms
@ -90,6 +93,11 @@ c
+ (10.0d0*cau2nm*x(j,i),j=1,3),q(i,4)
2001 format(a,t3,4f12.6)
5 continue
#else
if(.not.geom_print_xyz(igeom, lfnxyz))
A call errquit(' failed geom_print_xyz',
E 0, GEOM_ERR)
#endif
close(lfnxyz)
endif
c

View file

@ -38,7 +38,7 @@ include ../config/makelib.h
FOPTIMIZE += -O0
endif
endif
ifeq ($(FC),ifort)
ifeq ($(_FC),ifort)
FOPTIONS += -save
endif
ifeq ($(_FC),xlf)

View file

@ -9,7 +9,6 @@ SHORTVERSION=2021.11.001
VERSION=new_release_2021.11.001
#https://gitlab.mpcdf.mpg.de/elpa/elpa/-/archive/new_release_2020.11.001/elpa-new_release_2020.11.001.tar.gz
echo mpif90 is `which mpif90`
export ARFLAGS=rU
if [ -f elpa-${VERSION}.tar.gz ]; then
echo "using existing" elpa-${VERSION}.tar.gz
else
@ -21,8 +20,14 @@ tar xzf elpa-${VERSION}.tar.gz
ln -sf elpa-${VERSION} elpa
cd elpa
UNAME_S=$(uname -s)
if [[ ${UNAME_S} == Linux ]]; then
export ARFLAGS=rU
fi
if [[ ${UNAME_S} == Darwin ]]; then
export FORTRAN_CPP=$(find /usr/local/Cellar/gcc/`brew list --versions gcc|cut -c 5-`/bin -name cpp*)
if [[ -z "$HOMEBREW_PREFIX" ]]; then
HOMEBREW_PREFIX=/usr/local
fi
export FORTRAN_CPP=$(find "$HOMEBREW_PREFIX"/Cellar/gcc/`brew list --versions gcc|cut -c 5-`/bin -name cpp*)
if ! [ -x "$(command -v $FORTRAN_CPP)" ]; then
echo
echo cpp from gcc homebrew missing
@ -153,7 +158,11 @@ fi
if [ ! -f configure ]; then
sh ./autogen.sh
fi
fi
# patch affinity
rm -f check_thread_affinity.patch
wget https://raw.githubusercontent.com/conda-forge/elpa-feedstock/main/recipe/check_thread_affinity.patch
patch -p2 -s -N < check_thread_affinity.patch
mkdir -p build
cd build
if [[ ! -z "${BUILD_SCALAPACK}" ]]; then
@ -197,7 +206,7 @@ unset SCALAPACK_FCFLAGS
unset SCALAPACK_LDFLAGS
echo mpif90 is `which mpif90`
echo MPIF90 is "$MPIF90"
make V=1 -j1 FC=$MPIF90 CC=$MPICC -l0.0001
make V=0 -j1 FC=$MPIF90 CC=$MPICC -l0.0001
if [[ "$?" != "0" ]]; then
echo " "
echo "Elpa compilation failed"

View file

@ -6,7 +6,7 @@
include ../../config/makefile.h
install/lib/libxc.a:
./build_libxc.sh
./build_libxc.sh $(LIBXC_VERSION)
LIB_TARGETS += libxc

View file

@ -7,14 +7,25 @@ check_tgz() {
[ -f $1 ] && gunzip -t $1 > /dev/null && myexit=1
echo $myexit
}
VERSION=5.2.2
if [ $# -eq 0 ]; then
VERSION=6.1.0
else
VERSION=$1
fi
VERSION_MAJOR=$(echo $VERSION | cut -d . -f 1)
if [[ "$VERSION_MAJOR" -lt 4 ]]; then
echo
echo "LIBXC unsupported version " "$VERSION"
echo "please use 4.0.0 and later versions"
echo
exit 1
fi
TGZ=libxc-${VERSION}.tar.gz
if [ `check_tgz $TGZ` == 1 ]; then
echo "using existing $TGZ"
else
echo "downloading $TGZ"
curl -L https://gitlab.com/libxc/libxc/-/archive/${VERSION}/libxc-${VERSION}.tar.gz -o $TGZ
curl -sS -L https://gitlab.com/libxc/libxc/-/archive/${VERSION}/libxc-${VERSION}.tar.gz -o $TGZ
if [ `check_tgz $TGZ` != 1 ]; then
rm -f libxc-${VERSION}.tar.gz
curl -L https://github.com/ElectronicStructureLibrary/libxc/archive/refs/tags/${VERSION}.tar.gz -o $TGZ
@ -78,7 +89,7 @@ fi
cd libxc
# patch pk09 to avoid compiler memory problems
patch -p0 -N < ../pk09.patch
#patch -p0 -N < ../pk09.patch
mkdir -p build
cd build
if [[ -z "${NWCHEM_TOP}" ]]; then
@ -100,8 +111,16 @@ else
fcflags=" "
fi
rm -rf libxc/build
if [[ "${USE_HWOPT}" == "n" ]]; then
enable_xhost_flag=OFF
else
enable_xhost_flag=ON
fi
$CMAKE -E env CFLAGS="$cflags" LDFLAGS="$ldflags" FCFLAGS="$fcflags" FFLAGS="$fcflags" \
$CMAKE -DCMAKE_INSTALL_PREFIX=${NWCHEM_TOP}/src/libext/libxc/install -DCMAKE_C_COMPILER=$CC -DENABLE_FORTRAN=ON -DCMAKE_Fortran_COMPILER=$FC -DDISABLE_KXC=OFF \
-DENABLE_XHOST="$enable_xhost_flag" \
-DENABLE_FORTRAN03=ON \
-DCMAKE_INSTALL_LIBDIR="lib" -DCMAKE_BUILD_TYPE=Release ..
make -j4 | tee make.log

View file

@ -65,8 +65,10 @@ if [[ "${NWCHEM_TARGET}" == "LINUX" ]]; then
else
binary=64
fi
if [ -n "${USE_DYNAMIC_ARCH}" ]; then
FORCETARGET+="DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
if [[ -n "${USE_DYNAMIC_ARCH}" ]] || [[ "${USE_HWOPT}" == "n" ]]; then
if [[ "$arch" == "x86_64" ]]; then
FORCETARGET+="DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
fi
fi
#cray ftn wrapper
if [[ ${FC} == ftn ]]; then
@ -136,10 +138,21 @@ elif [[ -n ${FC} ]] && [[ "${FC}" == "ifort" ]] || [[ "${FC}" == "ifx" ]]; then
LAPACK_FPFLAGS_VAL=" -fp-model source -O2 -g "
else
#assuming gfortran
FORCETARGET+=' F_COMPILER=GFORTRAN '
LAPACK_FPFLAGS_VAL=" "
if [[ ${BLAS_SIZE} == 8 ]]; then
LAPACK_FLAGS_VAL+=" -fdefault-integer-8"
fi
LAPACK_FPFLAGS_VAL+=" -fdefault-integer-8"
fi
fi
if [[ -n ${CC} ]] && [[ "${CC}" == "amdclang" ]]; then
let VERSIONEQ15=$(expr `${CC} -dM -E - < /dev/null 2> /dev/null|egrep 15|grep __clang_major__ |cut -d ' ' -f 3 ` \= 15)
if [[ ${VERSIONEQ15} == 1 ]]; then
echo "amdclang 15 buggy. reduced optimization to O1"
FORCETARGET+=' COMMON_OPT=-O1'
fi
fi
if [[ -z "${FC}" ]]; then
FC=gfortran
fi
if [[ -z "${CC}" ]]; then
CC=cc
@ -179,6 +192,13 @@ else
THREADOPT="1"
MYNTS="128"
fi
# cross compilation
GOTMINGW64=$("$CC" -dM -E - </dev/null 2> /dev/null |grep MINGW64|cut -c21)
if [[ "${GOTMINGW64}" == "1" ]]; then
FORCETARGET+=HOSTCC=\"gcc\"
THREADOPT="0"
MYNTS="1"
fi
#we want openblas to use pthreads and not openmp.
#but NWChem and OpenBLAS both use USE_OPENMP
@ -187,7 +207,8 @@ if [[ ! -z "${USE_OPENMP}" ]]; then
unset USE_OPENMP
NWCHEM_USE_OPENMP=1
fi
echo make $FORCETARGET LAPACK_FPFLAGS=$LAPACK_FPFLAGS_VAL INTERFACE64=$sixty4_int BINARY=$binary NUM_THREADS=$MYNTS NO_CBLAS=1 NO_LAPACKE=1 DEBUG=0 USE_THREAD=$THREADOPT libs netlib -j4
echo FC is $FC
echo make FC=$FC $FORCETARGET LAPACK_FPFLAGS=$LAPACK_FPFLAGS_VAL INTERFACE64=$sixty4_int BINARY=$binary NUM_THREADS=$MYNTS NO_CBLAS=1 NO_LAPACKE=1 DEBUG=0 USE_THREAD=$THREADOPT libs netlib -j4
echo
echo OpenBLAS compilation in progress
echo output redirected to libext/openblas/OpenBLAS/openblas.log
@ -195,7 +216,7 @@ echo
if [[ ${_FC} == xlf ]]; then
make FC="xlf -qextname" $FORCETARGET LAPACK_FPFLAGS="$LAPACK_FPFLAGS_VAL" INTERFACE64="$sixty4_int" BINARY="$binary" NUM_THREADS=$MYNTS NO_CBLAS=1 NO_LAPACKE=1 DEBUG=0 USE_THREAD="$THREADOPT" libs netlib -j4 >& openblas.log
else
make $FORCETARGET LAPACK_FPFLAGS="$LAPACK_FPFLAGS_VAL" INTERFACE64="$sixty4_int" BINARY="$binary" NUM_THREADS=128 NO_CBLAS=1 NO_LAPACKE=1 DEBUG=0 USE_THREAD="$THREADOPT" libs netlib -j4 >& openblas.log
make FC=$FC $FORCETARGET LAPACK_FPFLAGS="$LAPACK_FPFLAGS_VAL" INTERFACE64="$sixty4_int" BINARY="$binary" NUM_THREADS=128 NO_CBLAS=1 NO_LAPACKE=1 DEBUG=0 USE_THREAD="$THREADOPT" libs netlib -j4 >& openblas.log
fi
if [[ "$?" != "0" ]]; then
tail -500 openblas.log

View file

@ -193,6 +193,9 @@ echo MPICH_CC is "$MPICH_CC"
if [[ -z "$I_MPI_F90" ]] ; then
export I_MPI_F90="$FC"
fi
if [[ -z "$I_MPI_CC" ]] ; then
export I_MPI_CC="$CC"
fi
echo I_MPI_F90 is "$I_MPI_F90"
if [[ -z "$PE_ENV" ]] ; then
#check if mpif90 and FC are consistent

View file

@ -55,7 +55,8 @@ c
integer l_c_t, k_c_t
integer l_act, k_act, l_actsh, k_actsh
integer twopdmunit
integer junk, ninseg, ierr, i, j, ish, ishlo, ishhi, shmax, tdim
integer junk(2), ninseg, ierr, i, j, ish, ishlo, ishhi, shmax,
t tdim
integer nsh, natoms, nactive, nblock
c
integer k_scr, l_scr, k_lab, l_lab, k_eri, l_eri, leneri, lenscr
@ -482,10 +483,6 @@ c
else
call ga_copy(g_buf_trans,g_buf)
endif
cc call ga_print(g_buf_trans)
cc call ga_print(g_buf)
c call ga_sync()
c call ga_mask_sync(.true.,.false.)
call ga_sync()
c
c Now have locally (a,1:nbfpairlocal). Loop thru local shell pairs
@ -524,7 +521,6 @@ c
ptr = ptr + count*(oseg_hi-oseg_lo+1)
end do
c
cedo call ga_mask_sync(.true.,.false.)
call ga_sync
c
end do ! End of i
@ -1158,27 +1154,12 @@ c check for boundaries of buff()
write(6,*) ga_nodeid(),' i_1.gt.ihi ',i_1,ihi
call errquit(' mp2copybck: i boundary passed ',0,0)
endif
#if 0
call ga_get(g_a_trans,i_0,i_1,
A jlo,jhi,buff(i_0,jlo),i_ld)
#else
call ga_get(g_a_trans,i_0,i_1,
A jlo,jhi,buff,i_ld)
call ga_put(g_a, i_0, i_1, jlo, jhi, buff, i_ld)
#endif
enddo
endif
c everybody needs to have the buffer filled
call ga_sync()
cold if(dowork) call ga_put(g_a, ilo, ihi, jlo, jhi, buff, ihi-ilo+1)
call ga_sync()
#if 0
call ga_sync()
tr=ga_ddot(g_a,g_a)
tr_tr=ga_ddot(g_a_trans,g_a_trans)
if(abs(tr-tr_tr).gt.1d-6)then
if(ga_nodeid().eq.0)write(6,*) 'tr ',tr,' tr_tr ',tr_tr
endif
#endif
return
end

View file

@ -717,6 +717,10 @@ c
endif
endif
call pstat_on(ps_laifock)
if (doprint) then
write(6,111) ' Start laifock', util_wallsec()
call util_flush(6)
end if
call mp2_lai_fock_uhf_prepar(
$ g_p_ab_a,g_p_ab_b,g_p_ij_a,g_p_ij_b,
$ noa,nob,nva,nvb,g_tmpa, g_tmpb,nmo)
@ -725,6 +729,10 @@ c
$ noa,nob,nva,nvb,g_lai_a,g_lai_b,rtdb,tol2e_fock)
call mp2_lai_fock_uhf_tidy(g_tmpa, g_tmpb)
call pstat_off(ps_laifock)
if (doprint) then
write(6,111) ' Done laifock', util_wallsec()
call util_flush(6)
end if
c
if (omatrix) then
call ga_print(g_lai_a)
@ -782,11 +790,20 @@ c
if(.not.ga_create(mt_dbl,nmo,nmo,'tot beta dens',nmo,0,
$ g_p_tot_b))call errquit(
$ 'mp2_energy: ga_create failed',0, GA_ERR)
c
c
if (doprint) then
write(6,111) ' Start make_tot_dens', util_wallsec()
call util_flush(6)
end if
call mp2_make_tot_dens(g_p_ij_a,g_p_ij_b,g_p_ab_a,g_p_ab_b,
$ g_rhs,g_p_tot_a,g_p_tot_b,noa,nva,nob,nvb,nbf,nmo,
$ int_mb(k_map_a), int_mb(k_map_b),
$ g_vecs_a,g_vecs_b,basis,scftype)
if (doprint) then
write(6,111) ' Done make_tot_dens', util_wallsec()
call util_flush(6)
end if
c
if (otrace) then
call mp2_print_trace_norm(g_p_tot_a,'g_p_tot_a',nmo)
@ -931,6 +948,7 @@ c
endif
c
call ga_sync
111 format(a,' at ', f10.1,'s')
c
end
subroutine mp2_print_trace_norm(g, text, n)

View file

@ -22,6 +22,8 @@ c
double precision mp2y, scfy
double precision mp2z, scfz
double precision ndip(3)
logical ga_create_atom_blocked
external ga_create_atom_blocked
integer geom
c
if (.not. bas_cando_mpoles(basis)) return
@ -31,15 +33,9 @@ c
c
c Generate dipole integrals
c
*ga:1:0
if(.not.ga_create(mt_dbl,nbf,nbf,' ao integs x ',
$ 0,0,g_x)) call errquit('mp2_dipole: ga',0, GA_ERR)
*ga:1:0
if(.not.ga_create(mt_dbl,nbf,nbf,' ao integs y ',
$ 0,0,g_y)) call errquit('mp2_dipole: ga',0, GA_ERR)
*ga:1:0
if(.not.ga_create(mt_dbl,nbf,nbf,' ao integs z',
$ 0,0,g_z)) call errquit('mp2_dipole: ga',0, GA_ERR)
g_x = ga_create_atom_blocked(geom, basis,'ao integs x')
g_y = ga_create_atom_blocked(geom, basis,'ao integs y')
g_z = ga_create_atom_blocked(geom, basis,'ao integs z')
c
call int_init(rtdb,1,basis)
call int_dip_ga(basis, basis, g_x, g_y, g_z)
@ -48,8 +44,7 @@ c
c Generate SCF AO density
c
*ga:1:0
if(.not.ga_create(mt_dbl, nbf, nbf,' AO density ',
$ 0,0,g_dens)) call errquit('mp2_dipole: ga',0, GA_ERR)
g_dens = ga_create_atom_blocked(geom, basis,'ao density')
call ga_dgemm('n', 't', nbf, nbf, noa, 1.0d0, g_vecs_a,
$ g_vecs_a, 0.0d0, g_dens)
call ga_dgemm('n', 't', nbf, nbf, nob, 1.0d0, g_vecs_b,
@ -62,8 +57,7 @@ c
c Form the MP2 AO density
c
*ga:1:0
if(.not.ga_create(mt_dbl,nmo,nbf,'scratch',0,0,g_scratch))
$ call errquit('mp2_grad: scratch',1, GA_ERR)
g_scratch = ga_create_atom_blocked(geom, basis,'scratch')
call ga_dgemm('n','t',nmo,nbf,nmo,1.0d0,g_p_tot_a,g_vecs_a,
$ 0.0d0,g_scratch)
call ga_dgemm('n','n',nbf,nbf,nmo,1.0d0,g_vecs_a,g_scratch,

View file

@ -26,6 +26,8 @@
character*256 p_a_ao
character*256 p_b_ao
integer base
integer l_buf,k_buf
integer ilo,ihi,jlo,jhi,dowork
c
call util_file_name('p_a_ao',.true.,.true.,p_a_ao)
call util_file_name('p_b_ao',.true.,.true.,p_b_ao)
@ -48,22 +50,48 @@ c$$$ call ga_put(g_p_tot_a,i,i,a+noa,a+noa,temp,1)
c$$$ end do
c$$$ end do
c
call ga_distribution(g_p_tot_a, ga_nodeid(),
T ilo, ihi, jlo, jhi)
c check if distrib by columns
if ((ilo.eq.0).and.(ihi.eq.-1)) then
dowork=0
else
if(ilo.ne.1.and.ihi.ne.nmo) call
R errquit(' mp2maketotdens bug ',0,0)
dowork=1
endif
ioff = 0
do i = 1+ga_nodeid(),noa,ga_nnodes() ! Loop thru SCF order
if(dowork.eq.1) then
do i = 1,noa
ii = map_a(i)
if(ii.ge.jlo.and.ii.le.jhi) then
do a = 1,nva
ii = map_a(i)
aa = map_a(a+noa)-noa
ia = ioff+a+(i-1)*nva
call ga_get(g_rhs,ia,ia,1,1,xx,1)
call ga_put(g_p_tot_a,aa+noa,aa+noa,ii,ii,xx,1)
call ga_put(g_p_tot_a,ii,ii,aa+noa,aa+noa,xx,1)
end do
endif
end do
c
call ga_copy_patch('n',g_p_ij_a,1,noa,1,noa,g_p_tot_a,
$ 1,noa,1,noa)
call ga_copy_patch('n',g_p_ab_a,1,nva,1,nva,g_p_tot_a,
$ noa+1,nmo,noa+1,nmo)
if (.not. ma_push_get(mt_dbl, nmo, 'mp2: maket',
$ l_buf, k_buf)) call errquit
$ ('mp2: insufficient memory : bug ', nmo, MA_ERR)
do i=jlo,jhi
if(i.le.noa) then
call ga_get(g_p_ij_a,1,noa,i,i,dbl_mb(k_buf),noa)
call ga_put(g_p_tot_a,1,noa,i,i,dbl_mb(k_buf),noa)
else
call ga_get(g_p_ab_a,1,nva,i-noa,i-noa,dbl_mb(k_buf),nva)
call ga_put(g_p_tot_a,noa+1,nmo,i,i,dbl_mb(k_buf),nva)
endif
enddo
if (.not. ma_pop_stack(l_buf)) call errquit
$ ('mp2: pop_stack failed ', nmo, MA_ERR)
endif
call ga_mask_sync(.true.,.false.)
call ga_sync()
c
if (scftype .eq. 'UHF') then
base = (nva*noa)
@ -71,15 +99,18 @@ c
base = 0 ! Alpha is the same as beta
end if
ioff = base
do i = 1+ga_nodeid(),nob,ga_nnodes() ! Loop thru SCF order
if (dowork.eq.1) then
do i = 1,nob
ii = map_b(i)
if(ii.ge.jlo.and.ii.le.jhi) then
do a = 1,nvb
ii = map_b(i)
aa = map_b(a+nob)-nob
ia = ioff+a+(i-1)*nvb
call ga_get(g_rhs,ia,ia,1,1,xx,1)
call ga_put(g_p_tot_b,aa+nob,aa+nob,ii,ii,xx,1)
call ga_put(g_p_tot_b,ii,ii,aa+nob,aa+nob,xx,1)
end do
endif
end do
c$$$ call ga_copy_patch('n',g_rhs,base+1,base+(nvb*nob),
c$$$ $ 1,1,g_p_tot_b,nob+1,nmo,1,nob)
@ -90,11 +121,25 @@ c$$$ call ga_get(g_rhs,indx,indx,1,1,temp,1)
c$$$ call ga_put(g_p_tot_b,i,i,a+nob,a+nob,temp,1)
c$$$ end do
c$$$ end do
c
call ga_copy_patch('n',g_p_ij_b,1,nob,1,nob,g_p_tot_b,
$ 1,nob,1,nob)
call ga_copy_patch('n',g_p_ab_b,1,nvb,1,nvb,g_p_tot_b,
$ nob+1,nmo,nob+1,nmo)
c
if (.not. ma_push_get(mt_dbl, nmo, 'mp2: maket',
$ l_buf, k_buf)) call errquit
$ ('mp2: insufficient memory : bug ', nmo, MA_ERR)
do i=jlo,jhi
if(i.le.nob) then
call ga_get(g_p_ij_b,1,nob,i,i,dbl_mb(k_buf),nob)
call ga_put(g_p_tot_b,1,nob,i,i,dbl_mb(k_buf),nob)
else
call ga_get(g_p_ab_b,1,nvb,i-nob,i-nob,dbl_mb(k_buf),nvb)
call ga_put(g_p_tot_b,nob+1,nmo,i,i,dbl_mb(k_buf),nvb)
endif
enddo
if (.not. ma_pop_stack(l_buf)) call errquit
$ ('mp2: pop_stack failed ', nmo, MA_ERR)
endif
call ga_sync()
c
*ga:1:0
if(.not.ga_create(mt_dbl,nmo,nbf,'scratch',0,0,g_scratch))

View file

@ -46,7 +46,7 @@ c
call ga_copy_patch('n',g_w_ai_a,1,noa_hi,1,nva,g_w_tot_a,
$ 1, noa_hi, noa_hi+1, nmo)
c
call ga_transpose(g_w_ai_a,g_w_ai_a_tr)
call mp2_transpwai(g_w_ai_a,g_w_ai_a_tr)
call ga_copy_patch('n',g_w_ai_a_tr,1,nva,1,noa_hi,g_w_tot_a,
$ noa_hi+1,nmo,1,noa_hi)
call ga_copy_patch('n',g_w_ij_a,1,noa_hi,1,noa_hi,g_w_tot_a,
@ -55,7 +55,7 @@ c
$ noa_hi+1,nmo,noa_hi+1,nmo)
call ga_copy_patch('n',g_w_ai_b,1,nob_hi,1,nvb,g_w_tot_b,
$ 1, nob_hi, nob_hi+1,nmo)
call ga_transpose(g_w_ai_b,g_w_ai_b_tr)
call mp2_transpwai(g_w_ai_b,g_w_ai_b_tr)
call ga_copy_patch('n',g_w_ai_b_tr,1,nvb,1,nob_hi,g_w_tot_b,
$ nob_hi+1,nmo,1,nob_hi)
call ga_copy_patch('n',g_w_ij_b,1,nob_hi,1,nob_hi,g_w_tot_b,
@ -148,3 +148,44 @@ c
c
end
subroutine mp2_transpwai(g,g_tr)
implicit none
#include "mafdecls.fh"
#include "global.fh"
#include "errquit.fh"
integer g,g_tr
c
integer ilo,ihi,jlo,jhi
integer i,j
integer k_buf,l_buf
integer n_row,n_col,gtype
integer dowork
c
call ga_inquire(g_tr, gtype, n_row, n_col)
call ga_distribution(g_tr, ga_nodeid(),
T ilo, ihi, jlo, jhi)
if ((ilo.eq.0).and.(ihi.eq.-1)) then
dowork=0
else
c check if distrib by columns
if(ilo.ne.1.and.ihi.ne.n_row) call
R errquit(' mp2transpwai bug ',0,0)
dowork=1
endif
if(dowork.eq.1) then
if (.not. ma_push_get(mt_dbl, n_row, 'mp2: wdens',
$ l_buf, k_buf)) call errquit
$ ('mp2: insufficient memory : bug ', n_row, MA_ERR)
do j=jlo,jhi
call ga_get(g,j,j,1,n_row,dbl_mb(k_buf),1)
if (.not.ma_verify_allocator_stuff()) stop ' ma ck 2b'
call ga_put(g_tr,1,n_row,j,j,dbl_mb(k_buf),n_row)
if (.not.ma_verify_allocator_stuff()) stop ' ma ck 2b'
enddo
if (.not. ma_pop_stack(l_buf)) call errquit
$ ('mp2transp pop_stack failed ', n_row, MA_ERR)
endif
call ga_sync()
return
end

View file

@ -49,6 +49,10 @@ c
parameter (eps=1d-14)
c
logical otdebug
logical do_mirra,do_mirrb,do_mirr
integer g_ta_mirr,g_tb_mirr,g_ta_org,g_tb_org
logical util_mirrmat
external util_mirrmat
c
integer l_ia_uv, k_ia_uv, l_tmp, k_tmp, l_ia_jb, k_ia_jb
double precision ddot
@ -82,6 +86,24 @@ c
*ga:1:0
if(.not.ga_create(mt_dbl,nob*nvb,nva,'T_b',(nob*nvb),0,g_t_b))
$ call errquit('could not alloc ga for T_b',1, GA_ERR)
do_mirra=util_mirrmat(1,g_t_a,g_ta_mirr,
D .false., .true.)
do_mirrb=util_mirrmat(1,g_t_b,g_tb_mirr,
D .false., .true.)
if(do_mirra.and.do_mirrb) then
if(ga_nodeid().eq.0)
w write(6,*) 'mp2_make_tuhf mirroring'
do_mirr=.true.
g_ta_org=g_t_a
g_tb_org=g_t_b
g_t_a=g_ta_mirr
g_t_b=g_tb_mirr
else
if(do_mirra) then
if(.not.ga_destroy(g_ta_mirr))call errquit(
$ 'could not destroy mirrt_a handle',1, GA_ERR)
endif
endif
tunitptra=1
tunitptrb=1
do i=oseg_lo,oseg_hi
@ -189,6 +211,12 @@ c
enddo
enddo
call ga_sync()
if (do_mirr) then
call ga_mask_sync(.true.,.false.)
call ga_merge_mirrored(g_t_a)
call ga_mask_sync(.true.,.false.)
call ga_merge_mirrored(g_t_b)
endif
do a_a=nva_lo_local,nva_hi_local
counta = 0
do b=nva_lo,nva_hi
@ -265,6 +293,15 @@ c
esing = esing + (-4.0d0*eab + eaa)/4.0d0
etrip = etrip + (-3.0d0*eaa)/4.0d0
c
if(do_mirr) then
if(.not.ga_destroy(g_t_b))call errquit(
$ 'could not destroy t_b handle',1, GA_ERR)
if(.not.ga_destroy(g_t_a))call errquit(
$ 'could not destroy t_a handle',1, GA_ERR)
g_t_a=g_ta_org
g_t_b=g_tb_org
endif
if(.not.ga_destroy(g_t_b))call errquit(
$ 'could not destroy t_b handle',1, GA_ERR)
if(.not.ga_destroy(g_t_a))call errquit(

View file

@ -30,7 +30,7 @@ c
c $Id$
c
c ======================================================================================================
C> \mainpage Northwest Computational Chemistry Package (NWChem) 7.0.1
C> \mainpage Northwest Computational Chemistry Package (NWChem) 7.2.0
C>
C> NWChem is an open-source computational chemistry package distributed under the terms of
C> the Educational Community License (ECL) 2.0
@ -461,7 +461,7 @@ c
write(LuOut,*)
write(LuOut,*)
call util_print_centered(LuOut,
$ 'Northwest Computational Chemistry Package (NWChem) 7.0.1',
$ 'Northwest Computational Chemistry Package (NWChem) 7.2.0',
$ 40, .true.)
write(LuOut,*)
write(LuOut,*)
@ -557,7 +557,7 @@ C
C Print version information to ecce.out file
C
compiled(inp_strlen(compiled)+1:inp_strlen(compiled)+25) =
$ ' Version 7.0.1'
$ ' Version 7.2.0'
call ecce_print_version(compiled(1:inp_strlen(compiled)))
C
If ( Inp_StrLen(BatchID) .gt. 0) then

View file

@ -25,7 +25,8 @@ c
double precision grid_acc(num_gridtypes)
double precision job_grid_acc
character*16 element
character*16 tag
character*16 tag, tag_mod
integer lenb
double precision eps
parameter (eps = 1.d-20)
data gridtypes /'xcoarse', 'coarse', 'medium', 'fine', 'xfine',
@ -418,7 +419,10 @@ c
c hack for nbo
if(tag(3:4).eq.'gh') iptr=5
if(tag(1:1).eq.'X'.or.tag(1:1).eq.'x') iptr=2
if (.not. geom_tag_to_element(tag(iptr:), symbol,
lenb=inp_strlen(tag)
tag_mod=' '
tag_mod(1:lenb-iptr+1)=tag(iptr:lenb)
if (.not. geom_tag_to_element(tag_mod, symbol,
& element, i_atomic_number)) then
if (inp_compare(.false.,tag(1:2),'bq')) then
i_atomic_number = 0

View file

@ -26,7 +26,8 @@ c
logical same_atom, same_bq, isbq
c
character*16 element
character*16 tag
character*16 tag,tag_mod
integer lenb
character*2 symbol
c
logical lnewtype
@ -179,7 +180,10 @@ c Hence they should always have i_atomic_number .eq. 0
c no matter what follows the X.
c
if(tag(1:1).eq.'X'.or.tag(1:1).eq.'x') iptr=2
if (.not. geom_tag_to_element(tag(iptr:), symbol,
lenb=inp_strlen(tag)
tag_mod=' '
tag_mod(1:lenb-iptr+1)=tag(iptr:lenb)
if (.not. geom_tag_to_element(tag_mod, symbol,
& element, i_atomic_number)) then
if (inp_compare(.false.,tag(1:2),'bq')) then
if(bqdontcare) then

View file

@ -12,12 +12,17 @@ LIBRARY = libnwdft.a
LIB_INCLUDES = -I../include
ifdef USE_LIBXC
LIB_DEFINES += -DXC_MAJOR_VERSION=$(shell grep XC_MAJOR_VERSION ../../libext/libxc/install/include/xc_version.h |cut -d " " -f 3)
LIB_DEFINES += -DLIBXC_NP_SIZE=$(shell ./libxc_findsizenp.sh ../../libext/libxc/install/include)
LIB_INCLUDES += -I../../libext/libxc/install/include
endif
ifdef LIBXC_DIR
LIB_INCLUDES += -I$(LIBXC_DIR)/include
ifdef LIBXC_INCLUDE
LIB_DEFINES += -DXC_MAJOR_VERSION=$(shell grep XC_MAJOR_VERSION $(LIBXC_INCLUDE)/xc_version.h |cut -d " " -f 3)
LIB_DEFINES += -DLIBXC_NP_SIZE=$(shell ./libxc_findsizenp.sh $(LIBXC_INCLUDE))
LIB_INCLUDES += -I$(LIBXC_INCLUDE)
endif
LIB_INCLUDES += -I.
include ../../config/makefile.h
include ../../config/makelib.h

View file

@ -1,3 +1,8 @@
#ifdef USE_LIBXC
#if XC_MAJOR_VERSION < 4
#error "need libxc version > 3 "
#endif
#endif
integer, parameter :: maxfunc = 100
integer :: libxc_nfuncs

View file

@ -0,0 +1,18 @@
#!/usr/bin/env bash
npstring=$(egrep np "$1"/xc.h|head -1)
np_array=($npstring)
count=-1
sizenp_string=' '
for substring in "${np_array[@]}"; do
[[ $substring == "np," ]] && sizenp_string=${np_array[$count]} && break
((++count))
done
if [[ "$sizenp_string" == 'int' ]]; then
size_np=4
elif [[ "$sizenp_string" == 'size_t' ]]; then
size_np=8
else
echo "unexpected sizenp_string $sizenp_string"
exit 1
fi
echo $size_np

View file

@ -57,14 +57,20 @@
double precision :: Amat3(nq,NCOL_AMAT3)
double precision :: Cmat3(nq,NCOL_CMAT3)
#ifdef USE_LIBXC
double precision :: fac
double precision, external :: ddot
logical gga,mgga,dolap
logical,external :: nwchem_libxc_family
#if LIBXC_NP_SIZE == 4
integer*4 nqs
#elif LIBXC_NP_SIZE == 8
integer(c_size_t) :: nqs
#ifdef USE_LIBXC
#else
#error "unexpected value for LIBXC_NP_SIZE"
#endif
type(xc_f03_func_t) :: xcfunc
gga = .false.
@ -154,22 +160,39 @@
call xc_f03_func_init(xcfunc,libxc_funcs(ifunc),polarized)
call xc_f03_func_set_dens_threshold(xcfunc, tol_rho)
call xc_f03_func_set_sigma_threshold(xcfunc, tol_rho**2)
#if XC_MAJOR_VERSION > 4
call xc_f03_func_set_sigma_threshold(xcfunc, tol_rho)
call xc_f03_func_set_zeta_threshold(xcfunc, 1d-10)
#endif
select case(libxc_family(ifunc))
#if XC_MAJOR_VERSION > 4
case (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA)
#else
case (XC_FAMILY_LDA)
#endif
if ((.not.do_2nd) .and. (.not.do_3rd)) then
call xc_f03_lda_exc_vxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(kexc),dbl_mb(kvrho))
elseif (.not.do_3rd) then
#if XC_MAJOR_VERSION > 4
call xc_f03_lda_exc_vxc_fxc(xcfunc,nqs,dbl_mb(krho),
$ dbl_mb(kexc),dbl_mb(kvrho),dbl_mb(kv2rho2))
#else
call xc_f03_lda_exc_vxc(xcfunc,nqs,dbl_mb(krho),
$ dbl_mb(kexc),dbl_mb(kvrho))
call xc_f03_lda_fxc(xcfunc,nqs,dbl_mb(krho),dbl_mb(kv2rho2))
#endif
else
#if XC_MAJOR_VERSION > 4
call xc_f03_lda_exc_vxc_fxc_kxc(xcfunc,nqs,dbl_mb(krho),
$ dbl_mb(kexc),dbl_mb(kvrho),dbl_mb(kv2rho2),
$ dbl_mb(kv3rho3))
#else
call xc_f03_lda_exc_vxc(xcfunc,nqs,dbl_mb(krho),
$ dbl_mb(kexc),dbl_mb(kvrho))
call xc_f03_lda_fxc(xcfunc,nqs,dbl_mb(krho),dbl_mb(kv2rho2))
call xc_f03_lda_kxc(xcfunc,nqs,dbl_mb(krho),dbl_mb(kv3rho3))
#endif
endif
@ -186,17 +209,43 @@
$ dbl_mb(kexc),
$ dbl_mb(kvrho),dbl_mb(kvsigma))
elseif (.not.do_3rd) then
#if XC_MAJOR_VERSION > 4
call xc_f03_gga_exc_vxc_fxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),dbl_mb(kexc),
$ dbl_mb(kvrho),dbl_mb(kvsigma),dbl_mb(kv2rho2),
$ dbl_mb(kv2rhosig),dbl_mb(kv2sig2))
#else
call xc_f03_gga_exc_vxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kexc),
$ dbl_mb(kvrho),dbl_mb(kvsigma))
call xc_f03_gga_fxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kv2rho2),dbl_mb(kv2rhosig),
$ dbl_mb(kv2sig2))
#endif
else
#if XC_MAJOR_VERSION > 4
call xc_f03_gga_exc_vxc_fxc_kxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),dbl_mb(kexc),
$ dbl_mb(kvrho),dbl_mb(kvsigma),dbl_mb(kv2rho2),
$ dbl_mb(kv2rhosig),dbl_mb(kv2sig2),
$ dbl_mb(kv3rho3),dbl_mb(kv3rho2sig),
$ dbl_mb(kv3rhosig2),dbl_mb(kv3sig3))
#else
call xc_f03_gga_exc_vxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kexc),
$ dbl_mb(kvrho),dbl_mb(kvsigma))
call xc_f03_gga_fxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kv2rho2),dbl_mb(kv2rhosig),
$ dbl_mb(kv2sig2))
call xc_f03_gga_kxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kv3rho3),dbl_mb(kv3rho2sig),
$ dbl_mb(kv3rhosig2),dbl_mb(kv3sig3))
#endif
endif
else
if ((.not.do_2nd).and.(.not.do_3rd)) then
@ -204,17 +253,41 @@
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kvrho),dbl_mb(kvsigma))
elseif (.not.do_3rd) then
#if XC_MAJOR_VERSION > 4
call xc_f03_gga_vxc_fxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kvrho),dbl_mb(kvsigma),dbl_mb(kv2rho2),
$ dbl_mb(kv2rhosig),dbl_mb(kv2sig2))
#else
call xc_f03_gga_vxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kvrho),dbl_mb(kvsigma))
call xc_f03_gga_fxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kv2rho2),dbl_mb(kv2rhosig),
$ dbl_mb(kv2sig2))
#endif
else
#if XC_MAJOR_VERSION > 4
call xc_f03_gga_vxc_fxc_kxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kvrho),dbl_mb(kvsigma),dbl_mb(kv2rho2),
$ dbl_mb(kv2rhosig),dbl_mb(kv2sig2),
$ dbl_mb(kv3rho3),dbl_mb(kv3rho2sig),
$ dbl_mb(kv3rhosig2),dbl_mb(kv3sig3))
#else
call xc_f03_gga_vxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kvrho),dbl_mb(kvsigma))
call xc_f03_gga_fxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kv2rho2),dbl_mb(kv2rhosig),
$ dbl_mb(kv2sig2))
call xc_f03_gga_kxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kv3rho3),dbl_mb(kv3rho2sig),
$ dbl_mb(kv3rhosig2),dbl_mb(kv3sig3))
#endif
endif
call dfill(nq,0d0,dbl_mb(kexc),1)
endif
@ -222,8 +295,8 @@
case (XC_FAMILY_MGGA, XC_FAMILY_HYB_MGGA)
gga = .true.
mgga = .true.
dolap = .true.
dolap = iand(libxc_flags(ifunc),xc_flags_needs_laplacian).eq.
$ xc_flags_needs_laplacian
if (iand(libxc_flags(ifunc),xc_flags_have_exc).eq.
$ xc_flags_have_exc) then

View file

@ -41,7 +41,11 @@
xcfamily = xc_f03_func_info_get_family(xcinfo)
select case(xcfamily)
#if XC_MAJOR_VERSION > 4
case (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA)
#else
case (XC_FAMILY_LDA)
#endif
case (XC_FAMILY_GGA, XC_FAMILY_HYB_GGA)
case (XC_FAMILY_MGGA, XC_FAMILY_HYB_MGGA)
case default
@ -50,7 +54,11 @@
endselect
select case(xcfamily)
#if XC_MAJOR_VERSION > 4
case (XC_FAMILY_HYB_LDA, XC_FAMILY_HYB_GGA, XC_FAMILY_HYB_MGGA)
#else
case (XC_FAMILY_HYB_GGA, XC_FAMILY_HYB_MGGA)
#endif
if (iand(xcflags,xc_flags_hyb_cam).eq.xc_flags_hyb_cam) then
call xc_f03_hyb_cam_coef(xcfunc,cam_omega,cam_alpha,cam_beta)

View file

@ -73,9 +73,7 @@
subroutine nwchem_libxc_print
use,intrinsic :: iso_c_binding
#ifdef USE_LIBXC
use xc_f03_lib_m, only: xc_f03_version_string,
$ xc_f03_reference,
$ xc_f03_functional_get_name
use xc_f03_lib_m, only: xc_f03_functional_get_name
#endif
implicit none
@ -109,9 +107,7 @@
subroutine nwchem_libxc_print_header
use,intrinsic :: iso_c_binding
#ifdef USE_LIBXC
use xc_f03_lib_m, only: xc_f03_version_string,
$ xc_f03_reference,
$ xc_f03_functional_get_name
use xc_f03_lib_m, only: xc_f03_version_string
#endif
implicit none

View file

@ -616,7 +616,7 @@ c
call tddft_grad_compute_dao(ipol,nao,nocc,g_mo,g_d)
c DEBUG
c call ga_print(g_d)
if (tddft_grad_util_print('tddft grad g',print_debug)) then
if (util_print('tddft grad g',print_debug)) then
if (oroot) write(LuOut,*)'DEBUG: '//pname//'D'
call tddft_grad_print_array(ipol,1,g_d,dble(ipol))
endif
@ -640,7 +640,7 @@ c
enddo
c DEBUG
c call ga_print(g_p_ao)
if (tddft_grad_util_print('tddft grad g',print_debug)) then
if (util_print('tddft grad g',print_debug)) then
if (oroot) write(LuOut,*)'DEBUG: '//pname//'P'
c call tddft_grad_print_array(ipol,1,g_p_ao,dble(ipol))
call tddft_grad_print_array(ipol,1,g_d(3),dble(ipol))
@ -798,7 +798,7 @@ c
c Daniel (11-30-12): Print X+Y and X-Y in the AO basis
c DEBUG
c call ga_print(g_d(5))
if (tddft_grad_util_print('tddft grad g',print_debug)) then
if (util_print('tddft grad g',print_debug)) then
if (oroot) write(LuOut,*)'DEBUG: '//pname//'(X+Y)'
call tddft_grad_print_array(ipol,1,g_d(5),dble(ipol))
endif
@ -818,7 +818,7 @@ c Daniel (11-30-12): Print W (note, this contains the ground state
c density matrix contribution as well).
c DEBUG
c call ga_print(g_wp_ao)
if (tddft_grad_util_print('tddft grad g',print_debug)) then
if (util_print('tddft grad g',print_debug)) then
if (oroot) write(LuOut,*)'DEBUG: '//pname//'W'
call tddft_grad_print_array(1,1,g_wp_ao,dble(ipol))
endif
@ -1140,7 +1140,7 @@ c Daniel (4-8-13): Need conditional statement here for CAM functionals
c
c Print results if so required
c
if (tddft_grad_util_print('tddft grad terms',print_high)) then
if (util_print('tddft grad terms',print_high)) then
if (oroot) then
write(LuOut,5)ir
5 format(' The Excited State Energy Gradient by Terms',

View file

@ -102,7 +102,7 @@ c
call nga_scale_patch(g_tp(ip),blo,bhi,0.5d0)
enddo
c
if (tddft_grad_util_print(pname,print_debug)) then
if (util_print(pname,print_debug)) then
oroot = ga_nodeid().eq.0
if (oroot) write(LuOut,*)'DEBUG: '//pname//'P'
call tddft_grad_print_array(ipol,nroots,g_tp,dble(ipol))

View file

@ -120,17 +120,22 @@ c
c
c Daniel (2-8-13): This is a local TDA variable, so that we don't need
c to change the global tda variable.
logical tdaloc
logical tdaloc, tddft_grad_tdaloc
external tddft_grad_tdaloc
logical oprint
integer g_r_x(2),g_r_org(2)
c
double precision Exc(2) ! Exchange-correlation energy
c
pname="tddft_grad_compute_r: "
iwhich = 0 ! call to tddft_nga_cont()
write(6,*) ' 0 tda ',tda
c
c 1. Do the T contributions
c
c 1.1. Create global array to hold Tuv
c
oprint=util_print('tddft_grad_r',print_debug)
idim(1) = nroot*ipol
idim(2) = nao
idim(3) = nao
@ -180,6 +185,7 @@ c fock_xc:triplet here for restricted triplet calculations to work.
c
call tddft_nga_cont(rtdb,ihdl_geom,ihdl_bfao,g_tuv,g_apbt,g_ambt,
+nao,ipol,tol2e,tda,oskel,kfac,lhashf,.false.,nroot,iwhich,lhascd)
write(6,*) ' 2 tda ',tda
c Daniel (2-26-13): Reset fock_xc:triplet here for restricted triplet
c calculations to work.
if (otriplet) then
@ -217,11 +223,11 @@ c
c
c 1. Done T contributions
cDEBUG
c if (tddft_grad_util_print('tddft grad r',print_debug)) then
c oroot = ga_nodeid().eq.0
c if (oroot) write(LuOut,*)'DEBUG A: tddft_grad_comp_r: R'
c call tddft_grad_print_array(ipol,nroot,g_r,dble(ipol))
c endif
if (oprint) then
oroot = ga_nodeid().eq.0
if (oroot) write(LuOut,*)'DEBUG A: tddft_grad_comp_r: R_T'
call tddft_grad_print_array(ipol,nroot,g_r,dble(ipol))
endif
cDEBUG
c
c 2. Do the (X+Y) and (X-Y) contributions
@ -278,32 +284,10 @@ c
+ call errquit(pname//'failed to create g_apby',0,GA_ERR)
if (.not.nga_create(mt_dbl,3,idim,'vectors (A-B)Y',ichnk,g_amby))
+ call errquit(pname//'failed to create g_amby',0,GA_ERR)
c
tdaloc=tddft_grad_tdaloc(rtdb,tda,lhashf)
c
c 2.5 Compute (A+B)X, (A-B)X, (A+B)Y and (A-B)Y
c
c Daniel (1-5-13): We manipulate the code here because the
c R vector has the same number of terms for RPA and CIS. This is a
c consequence of (X-Y) = X. It might be a good idea to avoid doing this
c part for the Y vector since Y = 0. Note that the coupling matrix
c expressions H^+[V] and H^-[V] can both be nonzero for CIS, so it isn't
c okay to skip the anti-symmetric part in the tddft_nga_cont routine.
c What CIS does is makes the Y vector contribution zero in the following
c routines.
c Daniel (2-8-13): Set the local TDA variable so that we don't change
c the global one.
if (lhashf) then
if (tda) then
tdaloc = .false. ! For CIS calculations
else
tdaloc = .false. ! For RPA calculations
endif
else
if (tda) then
tdaloc = .true. ! For TDDFT/TDA calculations
else
tdaloc = .false. ! For TDDFT calculations
endif
endif
call tddft_nga_cont(rtdb,ihdl_geom,ihdl_bfao,g_x,g_apbx,g_ambx,
+nao,ipol,tol2e,tdaloc,oskel,kfac,lhashf,otriplet,nroot,iwhich,
+lhascd)
@ -349,6 +333,21 @@ c 2.10 Transform (A+B)(X+Y) to MO basis occupied-occupied block only
c
call tddft_grad_trans_ao2mo(ipol,nao,nfc,naoc,nocc,nav,nfv,
+ nroot,1.0d0,0.0d0,"ij",g_mo,g_apbx,g_hij,"ij")
if(oprint)then
c extra ga to keep track of X
if (.not. ga_duplicate(g_r(1), g_r_x(1), 'gtmp2'))
c call errquit('tdgcr: gadupl failed',0,0)
call ga_zero(g_r_x(1))
g_r_org(1)=g_r(1)
g_r(1)=g_r_x(1)
if(ipol.eq.2) then
if (.not. ga_duplicate(g_r(2), g_r_x(2), 'gtmp2'))
c call errquit('tdgcr: gadupl failed',0,0)
call ga_zero(g_r_x(2))
g_r_org(2)=g_r(2)
g_r(2)=g_r_x(2)
endif
endif
c
c 2.11 Add -sum_j (X+Y)ja [(A+B)(X+Y)ji] to Ria
c
@ -546,11 +545,21 @@ c
c 2. Done (X+Y) and (X-Y) contributions
c
cDEBUG
c if (tddft_grad_util_print('tddft grad r',print_debug)) then
c oroot = ga_nodeid().eq.0
c if (oroot) write(LuOut,*)'DEBUG B: tddft_grad_comp_r: R'
c call tddft_grad_print_array(ipol,nroot,g_r,dble(ipol))
c endif
if (oprint) then
oroot = ga_nodeid().eq.0
if (oroot) write(LuOut,*)'DEBUG B: tddft_grad_comp_r: R_x'
call tddft_grad_print_array(ipol,nroot,g_r_x,dble(ipol))
call ga_add(1d0,g_r_x(1),1d0,g_r_org(1),g_r_org(1))
g_r(1)=g_r_org(1)
if (.not.ga_destroy(g_r_x(1)))
+ call errquit(pname//'failed to destroy grx',1,GA_ERR)
if(ipol.eq.2) then
call ga_add(1d0,g_r_x(2),1d0,g_r_org(2),g_r_org(2))
g_r(2)=g_r_org(2)
if (.not.ga_destroy(g_r_x(2)))
+ call errquit(pname//'failed to destroy grx',2,GA_ERR)
endif
endif
cDEBUG
c
c 3. Do the Gxc contributions
@ -664,14 +673,14 @@ c
enddo
call ga_sync()
cDEBUG
c if (tddft_grad_util_print('tddft grad r',print_debug)) then
c oroot = ga_nodeid().eq.0
c if (oroot) write(LuOut,*)'DEBUG C: tddft_grad_comp_r: den'
c call tddft_grad_print_array(ipol,nroot,int_mb(k_den2),
c + dble(ipol))
c call tddft_grad_print_array(ipol,nroot,int_mb(k_den2+1),
c + dble(ipol))
c endif
if (oprint) then
oroot = ga_nodeid().eq.0
if (oroot) write(LuOut,*)'DEBUG C: tddft_grad_comp_r: den'
call tddft_grad_print_array(ipol,nroot,int_mb(k_den2),
+ dble(ipol))
call tddft_grad_print_array(ipol,nroot,int_mb(k_den2+1),
+ dble(ipol))
endif
cDEBUG
c Daniel (1-10-13): For a single restricted root ngxc = 1 and there are 2
c density matrices fed to fock_xc, the GS density matrix D and the
@ -689,7 +698,7 @@ c fock_xc.
+ int_mb(k_gxc), Exc, ipol, .false.)
call ga_sync()
c DEBUG
if (tddft_grad_util_print('tddft grad r',print_debug)) then
if (oprint) then
oroot = ga_nodeid().eq.0
if (oroot) write(LuOut,*)'DEBUG: '//pname//'gxc'
call tddft_grad_print_array(ipol,nroot,int_mb(k_gxc),
@ -734,9 +743,9 @@ c
endif ! xc_gotxc()
c
c Debug print
if (tddft_grad_util_print('tddft grad r',print_debug)) then
if (oprint) then
oroot = ga_nodeid().eq.0
if (oroot) write(LuOut,*)'DEBUG: '//pname//'R'
if (oroot) write(LuOut,*)'DEBUG: '//pname//'R_all'
call tddft_grad_print_array(ipol,nroot,g_r,dble(ipol))
endif
c

View file

@ -147,7 +147,7 @@ c (X-Y)ias(X-Y)ibs
c
enddo ! ip = 1, ipol
c
if (tddft_grad_util_print('tddft grad t',print_debug)) then
if (util_print('tddft grad t',print_debug)) then
oroot = ga_nodeid().eq.0
if (oroot) write(LuOut,*)'DEBUG: '//pname//'T'
call tddft_grad_print_array(ipol,nroot,g_tp,dble(ipol))

View file

@ -141,7 +141,8 @@ c
parameter (oskel=.false.)
double precision Exc(2) ! Exchange-correlation energy
c
logical tdaloc
logical tdaloc, tddft_grad_tdaloc
external tddft_grad_tdaloc
logical doitw,doitz
logical doitxpy1,doitxpy2
logical doitxmy1,doitxmy2
@ -599,7 +600,7 @@ c Daniel (2-12-13): We need to set triplet here for fock_xc.
+ int_mb(k_gxc), Exc, ipol, .false.)
call ga_sync()
c DEBUG
if (tddft_grad_util_print('tddft grad w',print_debug)) then
if (util_print('tddft grad w',print_debug)) then
oroot = ga_nodeid().eq.0
if (oroot) write(LuOut,*)'DEBUG: '//pname//'gxc'
call tddft_grad_print_array(ipol,nroots,int_mb(k_gxc),
@ -746,29 +747,7 @@ c
c
c - Compute (A+B)X, (A-B)X, (A+B)Y and (A-B)Y
c
c Daniel (1-7-13): We manipulate the code here because the
c R vector has the same number of terms for RPA and CIS. This is a
c consequence of (X-Y) = X. It might be a good idea to avoid doing this
c part for the Y vector since Y = 0. Note that the coupling matrix
c expressions H^+[V] and H^-[V] can both be nonzero for CIS, so it isn't
c okay to skip the anti-symmetric part in the tddft_nga_cont routine.
c What CIS does is makes the Y vector contribution zero in the following
c routines.
c Daniel (2-8-13): Set the local TDA variable so that we don't change
c the global one.
if (lhashf) then
if (tda) then
tdaloc = .false. ! For CIS and TDDFT/TDA (hybrid) calculations
else
tdaloc = .false. ! For RPA and TDDFT (hybrid) calculations
endif
else
if (tda) then
tdaloc = .true. ! For TDDFT/TDA (pure) calculations
else
tdaloc = .false. ! For TDDFT (pure) calculations
endif
endif
tdaloc=tddft_grad_tdaloc(rtdb,tda,lhashf)
call tddft_nga_cont(rtdb,ihdl_geom,ihdl_bfao,g_x,g_apbx,g_ambx,
+ nao,ipol,tol2e,tdaloc,oskel,kfac,lhashf,otriplet,nroots,iwhich,
+ lhascd)
@ -1190,7 +1169,7 @@ c
enddo
call ga_sync()
c
if (tddft_grad_util_print('tddft grad w',print_debug)) then
if (util_print('tddft grad w',print_debug)) then
oroot = ga_nodeid().eq.0
if (oroot) write(LuOut,*)'DEBUG: '//pname//'W'
call tddft_grad_print_array(ipol,nroots,g_w,dble(ipol))

View file

@ -60,7 +60,6 @@ c
c
logical odiff,oprint
parameter (odiff=.true.)
parameter (oprint=.true.)
c
c Input:
c
@ -124,35 +123,20 @@ c
logical oroot
c
character*32 pname
logical tdaloc
logical tdaloc, tddft_grad_tdaloc
external tddft_grad_tdaloc
logical oprint_debug
c
pname= "tddft_grad_solve: "
oprint=util_print('tddft_grad_solve',print_medium)
oprint_debug=util_print('tddft_grad_solvecphf',print_debug)
c
c Initialize the common block for tddft_grad_solve_product and
c tddft_grad_solve_precond
c
oroot = ga_nodeid().eq.0
c
c Daniel (1-5-13): For a CIS calculation, we still need to solve the
c full Z vector equation (i.e. we need to have the equation solved when
c B =/= 0). This is confirmed by running an RPA calculation with B = 0,
c since there were no further modifications beyond making B = 0 for
c that formulation of the linear response equations and you obtain the
c correct answer for the CIS gradients that way.
c
if (lhashf) then
if (tda) then
tdaloc = .false. ! For CIS calculations
else
tdaloc = .false. ! For RPA calculations
endif
else
if (tda) then
tdaloc = .true. ! For TDDFT/TDA calculations
else
tdaloc = .false. ! For TDDFT calculations
endif
endif
tdaloc=tddft_grad_tdaloc(rtdb,tda,lhashf)
c End test
tdg_tol2e = tol2e
tdg_kfac = kfac
@ -177,7 +161,6 @@ c End test
tdg_g_mo(1) = g_mo(1)
tdg_g_mo(2) = g_mo(2)
tdg_e_mo = iptr_mo_e
c tdg_tda = tda
tdg_tda = tdaloc
tdg_oskel = oskel
tdg_lhashf = lhashf
@ -224,6 +207,14 @@ c
call ga_copy(g_b,g_x)
call tddft_grad_solve_precond(g_x,0.0d0)
endif
if(oprint_debug) then
if(oroot) write(luout,*) ' LHS'
call util_flush(luout)
call ga_print(g_x)
if(oroot) write(luout,*) ' RHS'
call util_flush(luout)
call ga_print(g_b)
endif
c
call ga_lkain(rtdb,g_x,g_b,tddft_grad_solve_product,
+ tddft_grad_solve_precond,solve_thresh,
@ -254,7 +245,7 @@ c
if (.not.ga_destroy(g_x))
+ call errquit(pname//'failed to destroy g_x',0, GA_ERR)
c
if (tddft_grad_util_print('tddft grad z',print_debug)) then
if (util_print('tddft grad z',print_debug)) then
if (oroot) write(LuOut,*)'DEBUG: '//pname//'Z'
call tddft_grad_print_array(ipol,nroots,g_z,dble(ipol))
endif
@ -266,4 +257,41 @@ c Reset fock_xc:triplet here for restricted triplet calculations
endif
c
end
c $Id$
c We manipulate the code here because the
c R vector has the same number of terms for RPA and CIS. This is a
c consequence of (X-Y) = X. It might be a good idea to avoid doing this
c part for the Y vector since Y = 0. Note that the coupling matrix
c expressions H^+[V] and H^-[V] can both be nonzero for CIS, so it isn't
c okay to skip the anti-symmetric part in the tddft_nga_cont routine.
c What CIS does is makes the Y vector contribution zero in the following
c routines.
c Set the local TDA variable so that we don't change
c the global one.
logical function tddft_grad_tdaloc(rtdb,tda,lhashf)
implicit none
#include "rtdb.fh"
#include "mafdecls.fh"
integer rtdb
logical tda
logical lhashf
c
logical tdaloc_rtdb
c
if (lhashf) then
if (tda) then
tddft_grad_tdaloc = .false. ! For CIS calculations
else
tddft_grad_tdaloc = .false. ! For RPA calculations
endif
else
if (tda) then
cold tddft_grad_tdaloc = .true. ! For TDDFT/TDA calculations
tddft_grad_tdaloc = .false. ! For TDDFT/TDA calculations
else
tddft_grad_tdaloc = .false. ! For TDDFT calculations
endif
endif
if (rtdb_get(rtdb,'tddft:tdaloc',mt_log,1,tdaloc_rtdb))
+ tddft_grad_tdaloc=tdaloc_rtdb
return
end

View file

@ -168,6 +168,9 @@ c Get the start times
c
c Init pstat
call dft_pstat_init(rtdb)
c
call util_print_push
call util_print_rtdb_load(rtdb,'tddft')
c
c Print header
if (oroot) call tddft_grad_print_header(luout)
@ -225,7 +228,7 @@ c Print calculation information
c
c Print start times
if (oroot) then
if (tddft_grad_util_print('tddft grad time',print_default)) then
if (util_print('tddft grad time',print_default)) then
write(luout,*)
write(luout,"(' Start at time cpu:',f11.1,'s wall:',f11.1,
+ 's')")-tddft_grad_cpu,-tddft_grad_wall
@ -435,7 +438,7 @@ c Print end times and wrap up
tddft_grad_cpu = tddft_grad_cpu + util_cpusec()
tddft_grad_wall = tddft_grad_wall + util_wallsec()
if (oroot) then
if (tddft_grad_util_print('tddft grad time',print_default)) then
if (util_print('tddft grad time',print_default)) then
write(LuOut,*)
write(LuOut,"(' TDDFT Gradient time cpu:',f11.1,'s wall:',
+ f11.1,'s')")tddft_grad_cpu,tddft_grad_wall
@ -496,6 +499,7 @@ c
c <-- MN solvation models
c
call dft_pstat_print
call util_print_pop
return
end
c $Id$

View file

@ -11,7 +11,14 @@
LIBRARY = libnwpw.a
$(info USE_OPENMP $(origin USE_OPENMP))
ifdef USE_OPENMP
# QA issues
override undefine USE_OPENMP
endif
$(info USE_OPENMP $(origin USE_OPENMP))
LIB_DEFINES =

View file

@ -42,9 +42,6 @@ endif
ifeq ($(USE_MPIF),y)
LIB_DEFINES += -DMPI
ifneq ($(MPI_INCLUDE),)
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
endif
else
LIB_DEFINES += -DTCGMSG
endif

View file

@ -47,9 +47,6 @@ endif
ifeq ($(USE_MPIF),y)
LIB_DEFINES += -DMPI
ifneq ($(MPI_INCLUDE),)
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
endif
else
LIB_DEFINES += -DTCGMSG
endif

View file

@ -43,9 +43,6 @@ endif
ifeq ($(USE_MPIF),y)
LIB_DEFINES += -DMPI
ifneq ($(MPI_INCLUDE),)
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
endif
else
LIB_DEFINES += -DTCGMSG
endif

View file

@ -43,9 +43,6 @@ endif
ifeq ($(USE_MPIF),y)
LIB_DEFINES += -DMPI
ifneq ($(MPI_INCLUDE),)
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
endif
else
LIB_DEFINES += -DTCGMSG
endif

View file

@ -41,9 +41,6 @@ endif
ifeq ($(USE_MPIF),y)
LIB_DEFINES += -DMPI
ifneq ($(MPI_INCLUDE),)
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
endif
else
USES_BLAS += D3dB-tcgmsg.F
LIB_DEFINES += -DTCGMSG

View file

@ -43,9 +43,6 @@ endif
ifeq ($(USE_MPIF),y)
LIB_DEFINES += -DMPI
ifneq ($(MPI_INCLUDE),)
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
endif
else
LIB_DEFINES += -DTCGMSG
endif

View file

@ -41,9 +41,6 @@ endif
ifeq ($(USE_MPIF),y)
LIB_DEFINES += -DMPI
ifneq ($(MPI_INCLUDE),)
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
endif
else
LIB_DEFINES += -DTCGMSG
endif

View file

@ -40,9 +40,6 @@ include ../../../config/makelib.h
ifeq ($(USE_MPIF),y)
LIB_DEFINES += -DMPI
ifneq ($(MPI_INCLUDE),)
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
endif
ifeq ($(DEV_GA),y)
LIB_DEFINES += -DGA_DEV
endif

View file

@ -5,14 +5,24 @@ do_exit(){
echo ' '
exit 1
}
rm -f dftd3.f nwpwxc_vdw3a.F
export PATH=`pwd`:$PATH
check_patch(){
if [[ ! -x "$(command -v patch)" ]]; then
#try to download busybox for x86_64 linux
if [[ $(uname -s) == "Linux" ]] && [[ $(uname -m) == "x86_64" ]] ; then
if [[ $(uname -s) == "Linux" ]] ; then
echo "patch command missing"
echo "downloading busybox to use patch command"
wget https://www.busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/busybox-x86_64 -O patch
if [[ $(uname -m) == "x86_64" ]] ; then
barch=x86_64
elif [[ $(uname -m) == "aarch64" ]] ; then
barch=armv8l
elif [[ $(uname -m) == "ppc64" ]] ; then
barch=powerpc64
elif [[ $(echo armv6l| awk ' /arm*/ { print "arm"}') == "arm" ]] ; then
barch=armv5l
else
do_exit
fi
wget https://www.busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/busybox-$barch -O patch
if [ "$?" != 0 ]; then
do_exit
else
@ -22,7 +32,13 @@ if [[ ! -x "$(command -v patch)" ]]; then
do_exit
fi
fi
URL1="https://www.chemie.uni-bonn.de/pctc/mulliken-center/software/dft-d3/"
}
check_patch
rm -f dftd3.f nwpwxc_vdw3a.F
export PATH=`pwd`:$PATH
#URL1="https://www.chemie.uni-bonn.de/pctc/mulliken-center/software/dft-d3/"
URL1="https://www.chemiebn.uni-bonn.de/pctc/mulliken-center/software/dft-d3/"
URL2="https://web.archive.org/web/20210527062154if_/https://www.chemie.uni-bonn.de/pctc/mulliken-center/software/dft-d3/"
declare -a urls=("$URL1" "$URL1" "$URL1" "$URL2" "$URL2")
TGZ=dftd3.tgz
@ -47,7 +63,7 @@ else
echo chchc ${COM1} ${urls[$tries]}/"$TGZ" ${COM2}
tries=1 ; until [ "$tries" -ge 5 ] ; do
${COM1} ${urls[$tries]}/"$TGZ" ${COM2} && break
tries=$((tries+1)) ; echo attempt no. $tries ; sleep 5 ; done
tries=$((tries+1)) ; echo attempt no. $tries ; sleep 9 ; done
fi
if [[ ! -f "$TGZ" ]]; then
echo "download failed"

View file

@ -1,12 +1,8 @@
#
# $Id$
#
all: ; texi2dvi peigs.texi
dvips peigs.dvi
all: ; texi2pdf peigs.texi
#.EXPORT_ALL_VARIABLES:
.EXPORT_ALL_VARIABLES:
.PHONY : clean

Binary file not shown.

File diff suppressed because it is too large Load diff

3943
src/peigs/doc/peigs.texi Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
# $Id$
rimp2-grad.dvi dvi: rimp2-grad.tex changebar.sty subeqnarray.sty geometry.sty
rimp2-grad.dvi dvi: rimp2-grad.tex
latex rimp2-grad
latex rimp2-grad

View file

@ -2,14 +2,3 @@ This directory contains
rimp2-grad.tex
RI-MP2 frozen core gradient equations, as a superset of Robert
Harrison's writeup of the exact MP2 frozen core gradient.
changebar.bug, changebar.dtx, changebar.ins, chbar.sh, manifest.txt
Standard latex changebar package (from CTAN)
geometry.sty
Standard latex page geometry package (from CTAN)
subeqnarray.dtx, subeqnarray.ins
Standard latex subequation array package (from CTAN)
Eventually, these standard styles from CTAN

View file

@ -369,7 +369,8 @@ c
endif
if(.not. rtdb_get(rtdb,'task:gradient',MT_DBL,
& rank_hess,dbl_mb(k_gradm)))
& call errquit('stpr_gen_hess_at: rtdb_get failed',38)
& call errquit('stpr_gen_hess_at: rtdb_get failed',38,
R RTDB_ERR)
if(.not. rtdb_get(rtdb,'task:dipole',mt_dbl,
& 3,mdipole)) dipole_okay = .false.
endif

View file

@ -660,6 +660,7 @@ c
double precision c(3,mx_atm)
double precision ctmp(3,mx_atm)
logical allbq
integer lenb
c
logical bsse_rtdb_store
external bsse_rtdb_store
@ -687,14 +688,19 @@ c
c
c initialize all centers as bqX
c
tag_new(l) = 'bq' // tag_old(l)
q_new(l) = 0.0d0
lenb=inp_strlen(tag_old(l))
tag_new(l)= ' '
tag_new(l)(1:lenb+2) = 'bq' // tag_old(l)
T (1:lenb)
if(lenb.lt.14) tag_new(l)(lenb+3:lenb+3)=' '
q_new(l) = 0.0d0
c
do k = 1, mon_atm(j)
c
c only do bsse with atoms
c
is_atm = geom_tag_to_element(tag_old(l),symbol,element,atn)
is_atm = geom_tag_to_element(tag_old(l),symbol,
E element,atn)
if ((.not. is_atm) .and. symbol.ne.'bq')
$ call errquit('bsse_create_geom: not atom or bq',
$ 0,GEOM_ERR)
@ -715,7 +721,8 @@ c Sort out the masses of the various centers
c
allbq=.true.
do l = 1, natoms
is_atm = geom_tag_to_element(tag_new(l),symbol,element,atn)
is_atm = geom_tag_to_element(tag_new(l),
$ symbol,element,atn)
if(symbol.ne.'bq') allbq=.false.
if ((.not. is_atm) .and. symbol.ne.'bq')
$ call errquit('bsse_create_geom: not atom or bq',
@ -979,15 +986,12 @@ c-----------------------------------------------------------------------
bsse_error = 0.0d0
i = 1
do j = 1, nmon,2
do j = 1, nmon
m_error(j) = mon_energy(i) - mon_energy(i+1)
m_error(j) = mon_energy(j) - mon_energy(j+1)
bsse_error = bsse_error + m_error(j)
i= i + 2
enddo
enddo
final_spr_energy = spr_energy + bsse_error
c
@ -1102,8 +1106,6 @@ c
integer rtdb ![input]
c
integer j,i,l,k,n
integer n_cart
integer n_cartmon
integer geom
c
character*255 vec_dbi, vec_dbo
@ -1228,12 +1230,6 @@ c: evaluate gradient
$ call
$ errquit('bsse_gradient: error calling task gradient spr',
$ 0,UNKNOWN_ERR)
if (mod(i,2).eq.0) then
n_cartmon=n_cart
else
n_cartmon=3*mon_atm(j)
endif
c
c: mix monomers grads with supermolecule grad
if (mod(i,2).eq.0) then
@ -1263,18 +1259,14 @@ c
c
enddo
c-----------------------------------------------------------------------
c Evaluate supermolecular energy free of BSSE
c-----------------------------------------------------------------------
bsse_error = 0.0d0
i = 1
do j = 1, nmon
bsse_error = bsse_error + mon_energy(i) - mon_energy(i+1)
i= i + 2
do j = 1, nmon,2
bsse_error = bsse_error+(mon_energy(j) - mon_energy(j+1))
enddo
c
@ -1605,13 +1597,10 @@ c
c
bsse_error = 0.0d0
i = 1
do j = 1, nmon,2
do j = 1, nmon
m_error(j) = mon_energy(i) - mon_energy(i+1)
m_error(j) = mon_energy(j) - mon_energy(j+1)
bsse_error = bsse_error + m_error(j)
i= i + 2
enddo
c

View file

@ -1136,12 +1136,17 @@
! TCE_CUDA Number of CUDA devices per node
!
else if (inp_compare(.false.,test,'cuda')) then
#if defined(TCE_CUDA) || defined(TCE_HIP)
if (.not.inp_i(icuda))
1 call errquit('tce_input: no icuda',0,INPUT_ERR)
if (.not.rtdb_put(rtdb,'tce:cuda',mt_int,1,icuda))
1 call errquit('tce_input: failed writing to rtdb',0,
2 RTDB_ERR)
#else
call errquit('cuda option needs TCE_CUDA compiled code',
A 0, INPUT_ERR)
#endif
!
! MAXITER (the maximum number of Davidson iterations)
!

View file

@ -318,14 +318,14 @@ endif # SOCKETS
ifdef USE_MPI
MPI_COMBINED =
ifneq ($(MPI_INCLUDE),)
MPI_COMBINED += $(patsubst -I-I%,-I%,-I${MPI_INCLUDE})
ifneq ($(NWMPI_INCLUDE),)
MPI_COMBINED += $(patsubst -I-I%,-I%,-I${NWMPI_INCLUDE})
endif
ifneq ($(MPI_LIB),)
MPI_COMBINED += $(patsubst -L-L%,-L%,-L${MPI_LIB})
ifneq ($(NWMPI_LIB),)
MPI_COMBINED += $(patsubst -L-L%,-L%,-L${NWMPI_LIB})
endif
ifneq ($(LIBMPI),)
MPI_COMBINED += $(LIBMPI)
ifneq ($(NWLIBMPI),)
MPI_COMBINED += $(NWLIBMPI)
ifeq ($(ARMCI_NETWORK),ARMCI)
MPI_COMBINED += -lpthread
endif
@ -676,6 +676,10 @@ ifeq ($(FC),$(findstring $(FC),scorep scorep-wrapper scorep-gfortran scorep-mpif
#fix for configure or cmake
MAYBE_HOST += SCOREP_WRAPPER=OFF
endif
ifneq ($(V),1)
MAYBE_HOST += -q --enable-silent-rules
MAKE= make V=0
endif
BUILDDIR = build
INSTALLDIR = install
CONFIGURE_PATH = ../$(GA_DIR)/configure
@ -721,6 +725,9 @@ $(BUILDDIR)/config.status: $(GA_DIR)/configure $(STAMP_FC) $(STAMP_CC) $(STAMP_D
@echo '*** Configuring Parallel Tools ****'
@echo ''
@(test -d $(BUILDDIR)) || mkdir $(BUILDDIR);
@echo ' '
@if [ "$V" != "1" ]; then echo '*** autoconf output redirected to config.log ****' ; echo '*** type make V=1 to get verbose output ***'; fi
@echo ' '
@(cd $(BUILDDIR) && echo $(CONFIGURE_PATH) $(CONFIGURE_ARGS) && $(CONFIGURE_PATH) $(CONFIGURE_ARGS)) || exit 1
$(GA_DIR)/Makefile.in:
@echo "No Global Arrays found: Attempting running ./get-tools"

41
src/tools/gamalloc_patch.sh Executable file
View file

@ -0,0 +1,41 @@
#!/usr/bin/env bash
rm -f gamalloc.patch
cat > gamalloc.patch <<EOF
--- $1/global/src/ga_malloc.c
+++ $1/global/src/ga_malloc.c
@@ -8,7 +8,7 @@
#include "globalp.h"
#include "ga-papi.h"
#include "ga-wapi.h"
-#define GA_MAXMEM_AVAIL ( ( (long)1 << (8*sizeof(Integer)-2) ) -1)
+#define GA_MAXMEM_AVAIL ( ( (size_t)1 << (8*sizeof(Integer)-2) ) -1)
#define CHECK 0
#define ALIGNMENT sizeof(DoubleComplex)
@@ -28,7 +28,7 @@
void* ga_malloc(Integer nelem, int type, char *name)
{
void *ptr;
- unsigned long addr;
+ size_t addr;
Integer handle, adjust=0, bytes, item_size=GAsizeofM(pnga_type_f2c(type));
Integer extra;
@@ -45,11 +45,11 @@
if(ga_usesMA) { /* Uses Memory Allocator (MA) */
if(MA_push_stack(type,nelem,name,&handle)) MA_get_pointer(handle,&ptr);
else pnga_error("ga_malloc: MA_push_stack failed",0);
- addr = (unsigned long)ptr;
+ addr = (size_t)ptr;
}
else { /* else, using external memory allocator */
bytes = nelem*item_size;
- addr = (unsigned long)(*ga_ext_alloc)(
+ addr = (size_t)(*ga_ext_alloc)(
(size_t)bytes, (int)item_size, name);
}
EOF
patch -p0 -s -N < gamalloc.patch
echo gamalloc.patch applied

View file

@ -93,8 +93,8 @@ then
if [ ! -f ga-"$GA_RELEASE_NO".tar.gz ]; then
if test "x$TAR_URL" = x
then
# TAR_URL=https://github.com/GlobalArrays/ga/releases/download/v"$GA_RELEASE_NO"/ga-"$GA_RELEASE_NO".tar.gz
TAR_URL=https://github.com/edoapra/ga/releases/download/v"$GA_RELEASE_NO"/ga-"$GA_RELEASE_NO".tar.gz
TAR_URL=https://github.com/GlobalArrays/ga/releases/download/v"$GA_RELEASE_NO"/ga-"$GA_RELEASE_NO".tar.gz
# TAR_URL=https://github.com/edoapra/ga/releases/download/v"$GA_RELEASE_NO"/ga-"$GA_RELEASE_NO".tar.gz
# TAR_URL=https://github.com/edoapra/ga/releases/download/v"$GA_RELEASE_NO"/ga-5.8.2.v3.tar.gz
# TAR_URL=https://github.com/GlobalArrays/ga/archive/refs/tags/v"$GA_RELEASE_NO".tar.gz
# https://github.com/edoapra/ga/releases/download/v5.7.2/ga-5.7.2.tar.gz
@ -200,6 +200,14 @@ if [[ -z "${CC}" ]]; then
CC=cc
fi
GOTMINGW64=` $CC -dM -E - </dev/null 2> /dev/null |grep MINGW64|cut -c21 `
if [[ -d "ga-5.8.2" ]]; then
if [[ ! -f "ga-5.8.2/patched581" ]]; then
./gamalloc_patch.sh $GA_DIR
./peigstubs_patch.sh $GA_DIR
echo patched
touch ga-5.8.2/patched581
fi
fi
#if [ ! -z "$GOTMINGW64" ]
#then
#echo "CC" $CC
@ -208,19 +216,6 @@ GOTMINGW64=` $CC -dM -E - </dev/null 2> /dev/null |grep MINGW64|cut -c21 `
#./msmpi_patch.sh $GA_DIR
#./mingw64_patch.sh $GA_DIR
#fi
#if [[ -d "ga-5.8.2" ]]; then
# if [[ ! -f "ga-5.8.2/patched581" ]]; then
# ./strdup_patch.sh $GA_DIR
# ./nodelist_patch.sh $GA_DIR
# ./nompif_patch.sh $GA_DIR
# ./ptstride_patch.sh $GA_DIR
# ./pt.sh $GA_DIR
# patch -p0 -s -N < ./fujitsu.patch
# patch -p0 -s -N < ./dra_f2c.patch
# echo patched
# touch ga-5.8.2/patched581
# fi
#fi
#patch -p0 -s -N < ./scala1.patch
if test -e $GA_DIR/configure

View file

@ -158,6 +158,10 @@ function get_mpi_lib ()
outlist="${outlist} ${word}"
fi
done
# homebrew hwloc
if pkg-config --exists hwloc; then
outlist="${outlist} $(pkg-config --libs-only-L hwloc 2> /dev/null) -lhwloc"
fi
echo ${outlist}
}
function get_mpi_fortran ()

22
src/tools/peigstubs_patch.sh Executable file
View file

@ -0,0 +1,22 @@
#!/usr/bin/env bash
rm -f peigstubs.patch
cat > peigstubs.patch <<EOF
--- $1/global/src/peigstubs.c
+++ $1/global/src/peigstubs.c
@@ -11,9 +11,9 @@
# define gai_diag_ F77_FUNC_(gai_diag,GAI_DIAG)
# define gai_diag_std_ F77_FUNC_(gai_diag_std,GAI_DIAG_STD)
# define gai_diag_reuse_ F77_FUNC_(gai_diag_reuse,GAI_DIAG_REUSE)
-extern gai_diag_(Integer*,Integer*,Integer*,DoublePrecision*);
-extern gai_diag_std_(Integer*,Integer*,DoublePrecision*);
-extern gai_diag_reuse_(Integer*,Integer*,Integer*,Integer*,DoublePrecision*);
+extern void gai_diag_(Integer*,Integer*,Integer*,DoublePrecision*);
+extern void gai_diag_std_(Integer*,Integer*,DoublePrecision*);
+extern void gai_diag_reuse_(Integer*,Integer*,Integer*,Integer*,DoublePrecision*);
# else
# endif
#else
EOF
patch -p0 -s -N < peigstubs.patch
echo strdup.patch applied

View file

@ -148,10 +148,7 @@ endif
ifneq ($(OLD_GA),)
EXTRA_OBJ += ga_zgop.o
endif
#LIB_DEFINES += -I$(MPI_INCLUDE)
ifneq ($(MPI_INCLUDE),)
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
endif
ifdef USE_VTUNE
EXTRA_OBJ += vtune_bind.o vtune.o

View file

@ -16,6 +16,9 @@ fi
if test -f "/usr/lib/centos-release"; then
dist="centos"
fi
if [[ $(grep -c fedora /etc/os-release) > 0 ]]; then
dist="fedora"
fi
echo dist is "$dist"
if [ -z "$DISTR" ] ; then
DISTR=$dist
@ -43,12 +46,12 @@ echo DISTR is "$DISTR"
else
mkdir -p ~/mntdmg $IONEAPI_ROOT || true
cd ~/Downloads
dir_base="18675"
dir_hpc="18681"
base="m_BaseKit_p_2022.2.0.226"
hpc="m_HPCKit_p_2022.2.0.158"
curl -LJO https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_base"/"$base".dmg
curl -LJO https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_hpc"/"$hpc".dmg
dir_base="19080"
dir_hpc="19086"
base="m_BaseKit_p_2023.0.0.25441"
hpc="m_HPCKit_p_2023.0.0.25440"
curl -sS -LJO https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_base"/"$base".dmg
curl -sS -LJO https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_hpc"/"$hpc".dmg
echo "installing BaseKit"
hdiutil attach "$base".dmg -mountpoint ~/mntdmg -nobrowse
sudo ~/mntdmg/bootstrapper.app/Contents/MacOS/install.sh -c -s --action install \
@ -87,138 +90,155 @@ echo DISTR is "$DISTR"
# HOMEBREW_NO_INSTALL_CLEANUP=1 HOMEBREW_NO_AUTO_UPDATE=1 brew install scalapack
# fi
fi
if [[ "$os" == "Linux" ]]; then
if [[ "$DISTR" == "fedora" ]] || [[ "$DISTR" == "centos" ]] ; then
rpminst=dnf
if [[ "$DISTR" == "centos" ]] ; then
rpminst=yum
fi
sudo $rpminst udate; sudo $rpminst -y install perl perl python3-devel time patch openblas-serial64 openmpi-devel cmake gcc-gfortran unzip which make tar bzip2 openssh-clients rsync
# module load mpi
if [[ "$MPI_IMPL" == "openmpi" ]]; then
sudo $rpminst -y install openmpi-devel
else
echo ready only for openmpi
exit 1
fi
export PATH=/usr/lib64/"$MPI_IMPL"/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib64/"$MPI_IMPL"/lib:$LD_LIBRARY_PATH
which mpif90
mpif90 -show
else
if [[ "$MPI_IMPL" == "openmpi" ]]; then
mpi_bin="openmpi-bin" ; mpi_libdev="libopenmpi-dev" scalapack_libdev="libscalapack-openmpi-dev"
fi
if [[ "$MPI_IMPL" == "mpich" ]]; then
mpi_bin="mpich" ; mpi_libdev="libmpich-dev" scalapack_libdev="libscalapack-mpich-dev"
fi
if [[ "$MPI_IMPL" == "intel" || "$FC" == "ifort" || "$FC" == "ifx" ]]; then
export APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1
rm -f l_Base*sh l_HP*sh
tries=0 ; until [ "$tries" -ge 10 ] ; do \
dir_base="18673"
dir_hpc="18679"
base="l_BaseKit_p_2022.2.0.262"
hpc="l_HPCKit_p_2022.2.0.191"
wget https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_hpc"/"$hpc".sh \
&& wget https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_base"/"$base".sh \
&& break ;\
tries=$((tries+1)) ; echo attempt no. $tries ; sleep 30 ; done
if [[ "$os" == "Linux" ]]; then
if [[ "$DISTR" == "fedora" ]] || [[ "$DISTR" == "centos" ]] ; then
env
rpminst=dnf
if [[ "$DISTR" == "centos" ]] ; then
rpminst=yum
fi
if [[ "$HOSTNAME" != "fedoraqemuwe40672" ]]; then
sudo $rpminst update; sudo $rpminst -y install perl perl python3-devel time patch cmake gcc-gfortran unzip which make tar bzip2 openssh-clients rsync
sudo $rpminst -y install openblas-serial64 || true
# module load mpi
if [[ "$MPI_IMPL" == "openmpi" ]]; then
sudo $rpminst -y install openmpi-devel
elif [[ "$MPI_IMPL" == "mpich" ]]; then
sudo $rpminst -y install mpich mpich-devel
else
echo ready only for openmpi
exit 1
fi
fi
export PATH=/usr/lib64/"$MPI_IMPL"/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib64/"$MPI_IMPL"/lib:$LD_LIBRARY_PATH
which mpif90
mpif90 -show
else
if [[ "$MPI_IMPL" == "openmpi" ]]; then
mpi_bin="openmpi-bin" ; mpi_libdev="libopenmpi-dev" scalapack_libdev="libscalapack-openmpi-dev"
fi
if [[ "$MPI_IMPL" == "mpich" ]]; then
mpi_bin="mpich" ; mpi_libdev="libmpich-dev" scalapack_libdev="libscalapack-mpich-dev"
fi
if [[ "$MPI_IMPL" == "intel" || "$FC" == "ifort" || "$FC" == "ifx" ]]; then
export APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1
export TERM=dumb
rm -f l_Base*sh l_HP*sh
tries=0 ; until [ "$tries" -ge 10 ] ; do \
dir_base="19079"
dir_hpc="19084"
base="l_BaseKit_p_2023.0.0.25537_offline"
hpc="l_HPCKit_p_2023.0.0.25400_offline"
wget -nv https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_hpc"/"$hpc".sh \
&& wget -nv https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_base"/"$base".sh \
&& break ;\
tries=$((tries+1)) ; echo attempt no. $tries ; sleep 30 ; done
if [[ "$MPI_IMPL" == "intel" ]]; then
mpi_bin=" " ; mpi_libdev=" " scalapack_libdev=" "
if [[ "$MPI_IMPL" == "intel" ]]; then
mpi_bin=" " ; mpi_libdev=" " scalapack_libdev=" "
fi
fi
if [[ "$GITHUB_WORKFLOW" != "NWChem_CI_selfhosted" ]]; then
sudo apt-get update
sudo apt-get -y install software-properties-common
sudo add-apt-repository universe && sudo apt-get update
if [[ "$FC" == "gfortran-11" ]] || [[ "$CC" == "gcc-11" ]]; then
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
pkg_extra+="gcc-11 gfortran-11 g++-11"
fi
if [[ "$USE_LIBXC" == "-1" ]]; then
pkg_extra+=" libxc-dev"
fi
echo pkg to install: gfortran python3-dev make perl python3 rsync "$mpi_libdev" "$mpi_bin" $pkg_extra
tries=0 ; until [ "$tries" -ge 10 ] ; do \
sudo apt-get -y install gfortran python3-dev make perl python3 rsync "$mpi_libdev" "$mpi_bin" $pkg_extra \
&& break ;\
tries=$((tries+1)) ; echo attempt no. $tries ; sleep 30 ; done
fi
if [[ "$FC" == "ifort" ]] || [[ "$FC" == "ifx" ]]; then
sh ./"$base".sh -a -c -s --action remove --install-dir $IONEAPI_ROOT --eula accept
sh ./"$hpc".sh -a -c -s --action remove --install-dir $IONEAPI_ROOT --eula accept
sh ./"$base".sh -a -c -s --action install --components intel.oneapi.lin.mkl.devel --install-dir $IONEAPI_ROOT --eula accept
intel_components="intel.oneapi.lin.ifort-compiler:intel.oneapi.lin.dpcpp-cpp-compiler-pro"
if [[ "$MPI_IMPL" == "intel" ]]; then
intel_components+=":intel.oneapi.lin.mpi.devel"
fi
sh ./"$hpc".sh -a -c -s --action install \
--components "$intel_components" \
--install-dir $IONEAPI_ROOT --eula accept
rm -f ./"$hpc".sh ./"$base".sh
if [[ "$?" != 0 ]]; then
echo "apt-get install failed: exit code " "${?}"
exit 1
fi
source "$IONEAPI_ROOT"/setvars.sh || true
export I_MPI_F90="$FC"
"$FC" -V
icc -V
fi
if [[ "$FC" == "flang" ]]; then
if [[ "USE_AOMP" == "Y" ]]; then
aomp_major=14
aomp_minor=0-3
wget -nv https://github.com/ROCm-Developer-Tools/aomp/releases/download/rel_"$aomp_major"."$aomp_minor"/aomp_Ubuntu2004_"$aomp_major"."$aomp_minor"_amd64.deb
sudo dpkg -i aomp_Ubuntu2004_"$aomp_major"."$aomp_minor"_amd64.deb
export PATH=/usr/lib/aomp_"$aomp_major"."$aomp_minor"/bin/:$PATH
export LD_LIBRARY_PATH=/usr/lib/aomp_"$aomp_major"."$aomp_minor"/lib:$LD_LIBRARY_PATH
ls -lrt /usr/lib | grep aomp ||true
else
aocc_version=4.0.0
aocc_dir=aocc-compiler-${aocc_version}
curl -sS -LJO https://developer.amd.com/wordpress/media/files/${aocc_dir}.tar
tar xf ${aocc_dir}.tar
./${aocc_dir}/install.sh
source setenv_AOCC.sh
pwd
fi
flang -v
which flang
fi
if [[ "$FC" == "amdflang" ]]; then
sudo apt-get install -y wget gnupg2 coreutils dialog tzdata
rocm_version=5.4.1
wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add -
echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/'$rocm_version'/ ubuntu main' | sudo tee /etc/apt/sources.list.d/rocm.list
sudo apt-get update -y && sudo apt-get -y install rocm-llvm openmp-extras
export PATH=/opt/rocm/bin:$PATH
export LD_LIBRARY_PATH=/opt/rocm/lib:/opt/rocm/llvm/lib:$LD_LIBRARY_PATH
amdflang -v
amdclang -v
fi
if [[ "$FC" == "nvfortran" ]]; then
sudo apt-get -y install lmod g++ libtinfo5 libncursesw5 lua-posix lua-filesystem lua-lpeg lua-luaossl
nv_major=22
nv_minor=11
nverdot="$nv_major"."$nv_minor"
nverdash="$nv_major"-"$nv_minor"
arch_dpkg=`dpkg --print-architecture`
echo 'deb [trusted=yes] https://developer.download.nvidia.com/hpc-sdk/ubuntu/'$arch_dpkg' /' | sudo tee /etc/apt/sources.list.d/nvhpc.list
echo '*** added hpc-sdk source to /etc/aps ***'
ls -lrt /etc/apt/sources.list.d/ || true
ls -lrt /etc/apt/sources.list.d/nvhpc.list || true
sudo cat /etc/apt/sources.list.d/nvhpc.list || true
sudo apt-get update -y
apt-cache search nvhpc
sudo apt-get install -y nvhpc-"$nverdash"
export PATH=/opt/nvidia/hpc_sdk/Linux_"$arch"/"$nverdot"/compilers/bin:$PATH
export LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_"$arch"/"$nverdot"/compilers/lib:$LD_LIBRARY_PATH
sudo /opt/nvidia/hpc_sdk/Linux_"$arch"/"$nverdot"/compilers/bin/makelocalrc -x
export FC=nvfortran
export CC=gcc
nvfortran -V
which nvfortran
fi
fi
if [[ "$GITHUB_WORKFLOW" != "NWChem_CI_selfhosted" ]]; then
sudo apt-get update
sudo apt-get -y install software-properties-common
sudo add-apt-repository universe && sudo apt-get update
# sudo apt-get -y install gfortran python3-dev python-dev cmake "$mpi_libdev" "$mpi_bin" "$scalapack_libdev" make perl libopenblas-dev python3 rsync
sudo apt-get -y install gfortran python3-dev make "$mpi_libdev" "$mpi_bin" make perl python3 rsync
# check for mpif90 command and exit if not present
if [[ ! $(command -v mpif90) ]]; then echo "mpif90 not present"; exit 1; fi
echo "mpif90 -show output is " `mpif90 -show` || true
echo "which mpif90 output is " `which mpif90` || true
if [[ "$FC" == "gfortran-11" ]] || [[ "$CC" == "gcc-11" ]]; then
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt-get -y install gcc-11 gfortran-11 g++-11
fi
fi
if [[ "$FC" == "ifort" ]] || [[ "$FC" == "ifx" ]]; then
sh ./"$base".sh -a -c -s --action remove --install-dir $IONEAPI_ROOT --eula accept
sh ./"$hpc".sh -a -c -s --action remove --install-dir $IONEAPI_ROOT --eula accept
sh ./"$base".sh -a -c -s --action install --components intel.oneapi.lin.mkl.devel --install-dir $IONEAPI_ROOT --eula accept
intel_components="intel.oneapi.lin.ifort-compiler:intel.oneapi.lin.dpcpp-cpp-compiler-pro"
if [[ "$MPI_IMPL" == "intel" ]]; then
intel_components+=":intel.oneapi.lin.mpi.devel"
fi
sh ./"$hpc".sh -a -c -s --action install \
--components "$intel_components" \
--install-dir $IONEAPI_ROOT --eula accept
if [[ "$?" != 0 ]]; then
echo "apt-get install failed: exit code " "${?}"
exit 1
fi
source "$IONEAPI_ROOT"/setvars.sh || true
export I_MPI_F90="$FC"
"$FC" -V
icc -V
fi
if [[ "$FC" == "flang" ]]; then
if [[ "USE_AOMP" == "Y" ]]; then
aomp_major=15
aomp_minor=0-2
wget https://github.com/ROCm-Developer-Tools/aomp/releases/download/rel_"$aomp_major"."$aomp_minor"/aomp_Ubuntu2004_"$aomp_major"."$aomp_minor"_amd64.deb
sudo dpkg -i aomp_Ubuntu2004_"$aomp_major"."$aomp_minor"_amd64.deb
export PATH=/usr/lib/aomp_"$aomp_major"."$aomp_minor"/bin/:$PATH
export LD_LIBRARY_PATH=/usr/lib/aomp_"$aomp_major"."$aomp_minor"/lib:$LD_LIBRARY_PATH
ls -lrt /usr/lib | grep aomp ||true
else
aocc_version=3.2.0
aocc_dir=aocc-compiler-${aocc_version}
curl -LJO https://developer.amd.com/wordpress/media/files/${aocc_dir}.tar
tar xf ${aocc_dir}.tar
./${aocc_dir}/install.sh
source setenv_AOCC.sh
pwd
fi
flang -v
which flang
fi
if [[ "$FC" == "amdflang" ]]; then
sudo apt-get install -y wget gnupg2 coreutils dialog tzdata
rocm_version=5.2
wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add -
echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/'$rocm_version'/ ubuntu main' | sudo tee /etc/apt/sources.list.d/rocm.list
sudo apt-get update -y && sudo apt-get -y install rocm-llvm openmp-extras
export PATH=/opt/rocm/bin:$PATH
export LD_LIBRARY_PATH=/opt/rocm/lib:/opt/rocm/llvm/lib:$LD_LIBRARY_PATH
amdflang -v
amdclang -v
fi
if [[ "$FC" == "nvfortran" ]]; then
sudo apt-get -y install lmod g++ libtinfo5 libncursesw5 lua-posix lua-filesystem lua-lpeg lua-luaossl
nv_major=22
nv_minor=9
nverdot="$nv_major"."$nv_minor"
nverdash="$nv_major"-"$nv_minor"
arch_dpkg=`dpkg --print-architecture`
echo 'deb [trusted=yes] https://developer.download.nvidia.com/hpc-sdk/ubuntu/'$arch_dpkg' /' | sudo tee /etc/apt/sources.list.d/nvhpc.list
echo '*** added hpc-sdk source to /etc/aps ***'
ls -lrt /etc/apt/sources.list.d/ || true
ls -lrt /etc/apt/sources.list.d/nvhpc.list || true
sudo cat /etc/apt/sources.list.d/nvhpc.list || true
sudo apt-get update -y
apt-cache search nvhpc
sudo apt-get install -y nvhpc-"$nverdash"
export PATH=/opt/nvidia/hpc_sdk/Linux_"$arch"/"$nverdot"/compilers/bin:$PATH
export LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_"$arch"/"$nverdot"/compilers/lib:$LD_LIBRARY_PATH
sudo /opt/nvidia/hpc_sdk/Linux_"$arch"/"$nverdot"/compilers/bin/makelocalrc -x
export FC=nvfortran
export CC=gcc
nvfortran -V
which nvfortran
fi
fi
fi

View file

@ -37,11 +37,12 @@ fi
if [[ "$FC" == "amdflang" ]]; then
export PATH=/opt/rocm/bin:$PATH
export LD_LIBRARY_PATH=/opt/rocm-"$rocm_version"/lib:/opt/rocm/llvm/lib:$LD_LIBRARY_PATH
export BUILD_MPICH=1
fi
if [[ "$FC" == "nvfortran" ]]; then
nv_major=22
nv_minor=9
nv_minor=11
nverdot="$nv_major"."$nv_minor"
export PATH=/opt/nvidia/hpc_sdk/Linux_"$arch"/"$nverdot"/compilers/bin:$PATH
export LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_"$arch"/"$nverdot"/compilers/lib:$LD_LIBRARY_PATH
@ -188,3 +189,9 @@ if [[ "$FC" == "gfortran" ]]; then
export NWCHEM_MODULES=$(echo $NWCHEM_MODULES |sed 's/xtb//')
fi
fi
if [[ "$USE_LIBXC" == "-1" ]]; then
unset USE_LIBXC
export LIBXC_LIB=/usr/lib/x86_64-linux-gnu
export LIBXC_INCLUDE=/usr/include
fi

View file

@ -158,6 +158,7 @@ fi
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs dft_smear
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs dft_he2p_wb97
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs ritddft_pyridine
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs tddftgrad_h2o_cis_lda
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs au2-sarc-zora-mp
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs x2c-h2se
if [[ ! -z "$USE_LIBXC" ]]; then
@ -167,7 +168,7 @@ fi
if [[ ! $(grep -i mp2_input $TRAVIS_BUILD_DIR/src/stubs.F| awk '/mp2_input/') ]]; then
if [[ ! $(grep -i ccsd_input $TRAVIS_BUILD_DIR/src/stubs.F| awk '/ccsd_input/') ]]; then
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs ccsdt_w3pvdz ccsdt_ompt_w3pvdz
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs n2_ccsd h2mp2 auh2o aump2
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs n2_ccsd h2mp2 grad_ozone auh2o aump2
fi
fi
if [[ ! $(grep -i pspw $TRAVIS_BUILD_DIR/src/stubs.F| awk '/pspw_input/') ]]; then