mirror of
https://github.com/nwchemgit/nwchem.git
synced 2026-07-29 06:35:39 -04:00
Compare commits
139 commits
master
...
v7.2.0-bet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
550861dc52 | ||
|
|
65bff4fa33 | ||
|
|
077113ca1e | ||
|
|
c099e8240f | ||
|
|
283d37d753 | ||
|
|
401c4ce683 | ||
|
|
1a0e45ec45 | ||
|
|
c269e65f85 | ||
|
|
afc1678a0b | ||
|
|
d424b23449 | ||
|
|
51b5685c58 | ||
|
|
51636ad620 | ||
|
|
0582c31d1f | ||
|
|
4e0747abb4 | ||
|
|
eab2c622f2 | ||
|
|
fcbb5cac7c | ||
|
|
326500aa46 | ||
|
|
afe804c1d7 | ||
|
|
cbe7f14342 | ||
|
|
88ddd4a5ae | ||
|
|
a201188046 | ||
|
|
5d279ad92b | ||
|
|
2d6a88d37c | ||
|
|
359e43479e | ||
|
|
d8e6e7e92a | ||
|
|
c41a64019d | ||
|
|
069870b42f | ||
|
|
86f305f5aa | ||
|
|
029eac1f76 | ||
|
|
bd4351c477 | ||
|
|
249971f999 | ||
|
|
3969c5c9c5 | ||
|
|
fd74cdaa93 | ||
|
|
5a5a9844ad | ||
|
|
c2f089e638 | ||
|
|
d5246541f1 | ||
|
|
87dbe4d16d | ||
|
|
3096932faa | ||
|
|
d42a8d42d5 | ||
|
|
ff0ca3b60a | ||
|
|
0f3380227c | ||
|
|
5904c497e6 | ||
|
|
07b51a4ad6 | ||
|
|
60b2aac892 | ||
|
|
e395b5504b | ||
|
|
7b7669aecd | ||
|
|
b539a98140 | ||
|
|
460bbfa679 | ||
|
|
b90eba70fc | ||
|
|
4f55c95777 | ||
|
|
e88a9b4a1b | ||
|
|
1a31c06d81 | ||
|
|
ac97f8369b | ||
|
|
e906d1556f | ||
|
|
b8628e3ea6 | ||
|
|
ff16d36128 | ||
|
|
a5923e59a6 | ||
|
|
b4bc1edd83 | ||
|
|
64eb0f562b | ||
|
|
2e9ce24982 | ||
|
|
cb5abdc5fe | ||
|
|
5e252f987d | ||
|
|
005912cf17 | ||
|
|
f3a6c9a740 | ||
|
|
365d60826d | ||
|
|
68163622d3 | ||
|
|
e256fd001b | ||
|
|
354c611ffa | ||
|
|
b022c6a94e | ||
|
|
b55ad84b75 | ||
|
|
e212ad6520 | ||
|
|
964077885f | ||
|
|
76b3ae89ab | ||
|
|
2fee89ba3d | ||
|
|
4b49776db9 | ||
|
|
c1f7d81a73 | ||
|
|
9b8784f94a | ||
|
|
4af6379494 | ||
|
|
c72354338a | ||
|
|
cfcba1c3dc | ||
|
|
c13c48cc2e | ||
|
|
5171944cc2 | ||
|
|
8197acccc8 | ||
|
|
14e04e83c6 | ||
|
|
5a420b151d | ||
|
|
0d496c22d6 | ||
|
|
dcaa2c0b1c | ||
|
|
12842995fe | ||
|
|
980c6773a5 | ||
|
|
59c304679a | ||
|
|
e35608f325 | ||
|
|
535d271ae4 | ||
|
|
6ec303d600 | ||
|
|
ff1c7f9739 | ||
|
|
bf42d53dfa | ||
|
|
45fe17623d | ||
|
|
adb5e41671 | ||
|
|
84482224b2 | ||
|
|
c15b2125cf | ||
|
|
2fcf97e696 | ||
|
|
a0f6fcbb23 | ||
|
|
81af0a71da | ||
|
|
acb44fc970 | ||
|
|
70aab8838f | ||
|
|
63e97f1916 | ||
|
|
2a3cb34c29 | ||
|
|
2440b82ecb | ||
|
|
cc032adb2e | ||
|
|
d4bed5492d | ||
|
|
b1a9ce09d1 | ||
|
|
51bdffa785 | ||
|
|
b76d87a753 | ||
|
|
ed60ebd09d | ||
|
|
c6b69cf4fe | ||
|
|
8029d67e2f | ||
|
|
27e4371399 | ||
|
|
0685b53433 | ||
|
|
3f10db4e42 | ||
|
|
ec08f8e9d7 | ||
|
|
0173f34054 | ||
|
|
db623cad7d | ||
|
|
3f90bad855 | ||
|
|
c2f1ea0836 | ||
|
|
f501b3f644 | ||
|
|
402b6027b7 | ||
|
|
e5237ec9d5 | ||
|
|
f06e9b1dae | ||
|
|
63dccb56c0 | ||
|
|
ed4fb3ac54 | ||
|
|
25f7c14fe6 | ||
|
|
685134ec55 | ||
|
|
15f98ae3ab | ||
|
|
b6ab7229db | ||
|
|
72c80e14b5 | ||
|
|
173b83b316 | ||
|
|
bc68522c25 | ||
|
|
583ddb0035 | ||
|
|
6de59b632a | ||
|
|
a5751a200a |
82 changed files with 29837 additions and 64862 deletions
14
.github/workflows/docker_actions.yml
vendored
14
.github/workflows/docker_actions.yml
vendored
|
|
@ -36,7 +36,7 @@ jobs:
|
||||||
key: ${{ matrix.folder}}-${{ matrix.fc}}/${{ matrix.archs}}-nwchem-dockeractions-v002
|
key: ${{ matrix.folder}}-${{ matrix.fc}}/${{ matrix.archs}}-nwchem-dockeractions-v002
|
||||||
- name: Qemu
|
- name: Qemu
|
||||||
id: qemu
|
id: qemu
|
||||||
uses: docker/setup-qemu-action@v1
|
uses: docker/setup-qemu-action@v2
|
||||||
with:
|
with:
|
||||||
image: crazymax/binfmt:v6.0.0
|
image: crazymax/binfmt:v6.0.0
|
||||||
- name: Available platforms
|
- name: Available platforms
|
||||||
|
|
@ -44,15 +44,10 @@ jobs:
|
||||||
echo ${{ steps.qemu.outputs.platforms }}
|
echo ${{ steps.qemu.outputs.platforms }}
|
||||||
docker images
|
docker images
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v1
|
uses: docker/setup-buildx-action@v2
|
||||||
with:
|
with:
|
||||||
driver-opts: |
|
driver-opts: |
|
||||||
image=moby/buildkit:master
|
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
|
- name: fetch cache
|
||||||
if: (steps.setup-cache.outputs.cache-hit == 'true') && ( matrix.folder != 'helloworld' )
|
if: (steps.setup-cache.outputs.cache-hit == 'true') && ( matrix.folder != 'helloworld' )
|
||||||
run: |
|
run: |
|
||||||
|
|
@ -62,14 +57,14 @@ jobs:
|
||||||
rsync -av ~/cache/libext* cache/. ; \
|
rsync -av ~/cache/libext* cache/. ; \
|
||||||
echo "libext cache fetched" ; \
|
echo "libext cache fetched" ; \
|
||||||
fi
|
fi
|
||||||
- uses: haya14busa/action-cond@v1
|
- uses: haya14busa/action-cond@dependabot/npm_and_yarn/actions/core-1.9.1
|
||||||
id: cache-hit-reporter
|
id: cache-hit-reporter
|
||||||
with:
|
with:
|
||||||
cond: ${{ steps.setup-cache.outputs.cache-hit != '' }}
|
cond: ${{ steps.setup-cache.outputs.cache-hit != '' }}
|
||||||
if_true: "Y"
|
if_true: "Y"
|
||||||
if_false: "N"
|
if_false: "N"
|
||||||
- name: build_schedule
|
- name: build_schedule
|
||||||
uses: docker/build-push-action@v2
|
uses: docker/build-push-action@v3
|
||||||
with:
|
with:
|
||||||
push: false
|
push: false
|
||||||
context: ${{ matrix.folder }}
|
context: ${{ matrix.folder }}
|
||||||
|
|
@ -79,6 +74,7 @@ jobs:
|
||||||
build-args: |
|
build-args: |
|
||||||
FC=${{ matrix.fc }}
|
FC=${{ matrix.fc }}
|
||||||
CACHE_HIT=${{ steps.cache-hit-reporter.outputs.value }}
|
CACHE_HIT=${{ steps.cache-hit-reporter.outputs.value }}
|
||||||
|
NWCHEM_BRANCH=${{ github.ref_name }}
|
||||||
- name: store cache
|
- name: store cache
|
||||||
run: |
|
run: |
|
||||||
mkdir -p ~/cache/
|
mkdir -p ~/cache/
|
||||||
|
|
|
||||||
15
.github/workflows/github_actions.yml
vendored
15
.github/workflows/github_actions.yml
vendored
|
|
@ -129,6 +129,16 @@ jobs:
|
||||||
nwchem_modules: "tce"
|
nwchem_modules: "tce"
|
||||||
fc: gfortran-11
|
fc: gfortran-11
|
||||||
cc: gcc-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
|
- os: ubuntu-22.04
|
||||||
experimental: true
|
experimental: true
|
||||||
mpi_impl: mpich
|
mpi_impl: mpich
|
||||||
|
|
@ -136,6 +146,7 @@ jobs:
|
||||||
nwchem_modules: "qmandpw qmd"
|
nwchem_modules: "qmandpw qmd"
|
||||||
fc: gfortran-11
|
fc: gfortran-11
|
||||||
cc: gcc-11
|
cc: gcc-11
|
||||||
|
use_libxc: -1
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-20.04
|
||||||
experimental: true
|
experimental: true
|
||||||
mpi_impl: mpich
|
mpi_impl: mpich
|
||||||
|
|
@ -220,7 +231,7 @@ jobs:
|
||||||
armci_network: MPI-TS
|
armci_network: MPI-TS
|
||||||
nwchem_modules: "tinyqmpw"
|
nwchem_modules: "tinyqmpw"
|
||||||
fc: ifort
|
fc: ifort
|
||||||
cc: icc
|
cc: icx
|
||||||
use_libxc: 1
|
use_libxc: 1
|
||||||
- os: macos-11
|
- os: macos-11
|
||||||
experimental: true
|
experimental: true
|
||||||
|
|
@ -252,7 +263,7 @@ jobs:
|
||||||
armci_network: MPI-TS
|
armci_network: MPI-TS
|
||||||
nwchem_modules: "nwdft solvation driver"
|
nwchem_modules: "nwdft solvation driver"
|
||||||
fc: ifort
|
fc: ifort
|
||||||
cc: icc
|
cc: icx
|
||||||
use_simint: 1
|
use_simint: 1
|
||||||
- os: ubuntu-20.04
|
- os: ubuntu-20.04
|
||||||
experimental: true
|
experimental: true
|
||||||
|
|
|
||||||
2
.github/workflows/lint_python.yml
vendored
2
.github/workflows/lint_python.yml
vendored
|
|
@ -14,7 +14,7 @@ jobs:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- uses: actions/setup-python@v4
|
- uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: '3.10'
|
python-version: '3.11'
|
||||||
check-latest: true
|
check-latest: true
|
||||||
- run: pip install --upgrade pip wheel
|
- run: pip install --upgrade pip wheel
|
||||||
- run: pip install bandit black codespell flake8 flake8-2020 flake8-bugbear
|
- run: pip install bandit black codespell flake8 flake8-2020 flake8-bugbear
|
||||||
|
|
|
||||||
|
|
@ -519,8 +519,6 @@ let "myexit+=$?"
|
||||||
let "myexit+=$?"
|
let "myexit+=$?"
|
||||||
./runtests.mpi.unix procs $np carbon_fon
|
./runtests.mpi.unix procs $np carbon_fon
|
||||||
let "myexit+=$?"
|
let "myexit+=$?"
|
||||||
./runtests.mpi.unix procs $np ch5n_nbo
|
|
||||||
let "myexit+=$?"
|
|
||||||
./runtests.mpi.unix procs $np tpss tpssh
|
./runtests.mpi.unix procs $np tpss tpssh
|
||||||
let "myexit+=$?"
|
let "myexit+=$?"
|
||||||
#
|
#
|
||||||
|
|
@ -532,7 +530,7 @@ let "myexit+=$?"
|
||||||
./runtests.mpi.unix procs $np h2o2_fde
|
./runtests.mpi.unix procs $np h2o2_fde
|
||||||
let "myexit+=$?"
|
let "myexit+=$?"
|
||||||
# tddft gradients
|
# 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+=$?"
|
let "myexit+=$?"
|
||||||
# new xc functionals for 7.0.0
|
# new xc functionals for 7.0.0
|
||||||
./runtests.mpi.unix procs $np dft_rscan
|
./runtests.mpi.unix procs $np dft_rscan
|
||||||
|
|
@ -543,6 +541,12 @@ let "myexit+=$?"
|
||||||
let "myexit+=$?"
|
let "myexit+=$?"
|
||||||
./runtests.mpi.unix procs $np rt_tddft_mocap
|
./runtests.mpi.unix procs $np rt_tddft_mocap
|
||||||
let "myexit+=$?"
|
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
|
./runtests.mpi.unix procs $np dft_ne_n12
|
||||||
let "myexit+=$?"
|
let "myexit+=$?"
|
||||||
./runtests.mpi.unix procs $np dft_mfm_ch3
|
./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+=$?"
|
let "myexit+=$?"
|
||||||
./runtests.mpi.unix procs $np dielsalder
|
./runtests.mpi.unix procs $np dielsalder
|
||||||
let "myexit+=$?"
|
let "myexit+=$?"
|
||||||
./runtests.mpi.unix procs $np talc
|
np_small=$(get_limit $np 16)
|
||||||
|
./runtests.mpi.unix procs $np_small talc
|
||||||
let "myexit+=$?"
|
let "myexit+=$?"
|
||||||
echo 'The intermediate energy values for the numerical gradient '
|
echo 'The intermediate energy values for the numerical gradient '
|
||||||
echo 'test may cause some differences.'
|
echo 'test may cause some differences.'
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,9 @@
|
||||||
export HYDRA_DEBUG=0
|
export HYDRA_DEBUG=0
|
||||||
# find memory leaks using this glibc feature that
|
# find memory leaks using this glibc feature that
|
||||||
# initialized memory blocks to non-zero values
|
# 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
|
if [[ -z "${NWCHEM_TARGET}" ]]; then
|
||||||
UNAME_S=$(uname -s)
|
UNAME_S=$(uname -s)
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
64
QA/tests/bas_details/bas_details.nw
Normal file
64
QA/tests/bas_details/bas_details.nw
Normal 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
|
||||||
|
|
||||||
836
QA/tests/bas_details/bas_details.out
Normal file
836
QA/tests/bas_details/bas_details.out
Normal 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
|
||||||
|
|
@ -19,7 +19,12 @@ geometry
|
||||||
H .566733 1.075185 -.889981
|
H .566733 1.075185 -.889981
|
||||||
H -.423217 -1.094815 .824662
|
H -.423217 -1.094815 .824662
|
||||||
H -.423217 -1.094815 -.824662
|
H -.423217 -1.094815 -.824662
|
||||||
symmetry c1
|
# symmetry c1
|
||||||
|
end
|
||||||
|
|
||||||
|
scf
|
||||||
|
sym off
|
||||||
|
adapt off
|
||||||
end
|
end
|
||||||
|
|
||||||
task SCF energy
|
task SCF energy
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,7 +1,6 @@
|
||||||
start dimer
|
start dimer
|
||||||
title "Water dimer DFT using fragment initial guess"
|
title "Water dimer DFT using fragment initial guess"
|
||||||
geometry print nocenter noautoz dimer
|
geometry print nocenter noautoz noautosym dimer
|
||||||
symmetry c1 tol 0.0
|
|
||||||
O -0.595 1.165 -0.048
|
O -0.595 1.165 -0.048
|
||||||
H 0.110 1.812 -0.170
|
H 0.110 1.812 -0.170
|
||||||
H -1.452 1.598 -0.154
|
H -1.452 1.598 -0.154
|
||||||
|
|
@ -9,14 +8,12 @@ start dimer
|
||||||
H 0.175 -2.013 0.348
|
H 0.175 -2.013 0.348
|
||||||
H 0.177 -0.480 0.010
|
H 0.177 -0.480 0.010
|
||||||
end
|
end
|
||||||
geometry print nocenter noautoz h2o1
|
geometry print nocenter noautoz noautosym h2o1
|
||||||
symmetry c1 tol 0.0
|
|
||||||
O -0.595 1.165 -0.048
|
O -0.595 1.165 -0.048
|
||||||
H 0.110 1.812 -0.170
|
H 0.110 1.812 -0.170
|
||||||
H -1.452 1.598 -0.154
|
H -1.452 1.598 -0.154
|
||||||
end
|
end
|
||||||
geometry print nocenter noautoz h2o2
|
geometry print nocenter noautoz noautosym h2o2
|
||||||
symmetry c1 tol 0.0
|
|
||||||
O 0.724 -1.284 0.034
|
O 0.724 -1.284 0.034
|
||||||
H 0.175 -2.013 0.348
|
H 0.175 -2.013 0.348
|
||||||
H 0.177 -0.480 0.010
|
H 0.177 -0.480 0.010
|
||||||
|
|
@ -27,19 +24,26 @@ start dimer
|
||||||
end
|
end
|
||||||
|
|
||||||
set dft:no_prune true
|
set dft:no_prune true
|
||||||
|
dft
|
||||||
|
sym off
|
||||||
|
adapt off
|
||||||
|
grid xfine
|
||||||
|
tolerances tight
|
||||||
|
convergence energy 1d-9
|
||||||
|
end
|
||||||
|
|
||||||
set geometry h2o1
|
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
|
task dft
|
||||||
|
|
||||||
set geometry h2o2
|
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
|
task dft
|
||||||
|
|
||||||
set geometry dimer
|
set geometry dimer
|
||||||
dft
|
dft
|
||||||
vectors input fragment h2o1.movecs h2o2.movecs \
|
vectors input fragment h2o1.movecs h2o2.movecs \
|
||||||
output dimer.movecs; tolerances tight; grid xfine;
|
output dimer.movecs;
|
||||||
end
|
end
|
||||||
task dft
|
task dft
|
||||||
|
|
||||||
|
|
@ -53,23 +57,23 @@ start dimer
|
||||||
# Spin-paired Thomas Fermi
|
# Spin-paired Thomas Fermi
|
||||||
set geometry h2o1
|
set geometry h2o1
|
||||||
dft; frozemb geometry h2o2 vectors h2o2.movecs; frozemb_ts tf; \
|
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
|
task dft
|
||||||
|
|
||||||
# Spin-unpaired
|
# Spin-unpaired
|
||||||
dft; frozemb geometry h2o2 vectors h2o2.movecs; frozemb_ts tf; \
|
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
|
task dft
|
||||||
|
|
||||||
# Spin-paired von Weisacker
|
# Spin-paired von Weisacker
|
||||||
set geometry h2o1
|
set geometry h2o1
|
||||||
dft; frozemb geometry h2o2 vectors h2o2.movecs; frozemb_ts vw; \
|
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
|
task dft
|
||||||
|
|
||||||
# Spin-unpaired
|
# Spin-unpaired
|
||||||
dft; frozemb geometry h2o2 vectors h2o2.movecs; frozemb_ts vw; \
|
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
|
task dft
|
||||||
|
|
||||||
unset dft:frozemb
|
unset dft:frozemb
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -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
|
||||||
2949
QA/tests/rt_tddft_cytosine_cam_cdfit/rt_tddft_cytosine_cam_cdfit.out
Normal file
2949
QA/tests/rt_tddft_cytosine_cam_cdfit/rt_tddft_cytosine_cam_cdfit.out
Normal file
File diff suppressed because it is too large
Load diff
115
QA/tests/rt_tddft_tcne_spinkick/rt_tddft_tcne_spinkick.nw
Normal file
115
QA/tests/rt_tddft_tcne_spinkick/rt_tddft_tcne_spinkick.nw
Normal 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
|
||||||
|
|
||||||
3321
QA/tests/rt_tddft_tcne_spinkick/rt_tddft_tcne_spinkick.out
Normal file
3321
QA/tests/rt_tddft_tcne_spinkick/rt_tddft_tcne_spinkick.out
Normal file
File diff suppressed because it is too large
Load diff
30
QA/tests/tddftgrad_h2o_cis_lda/tddftgrad_h2o_cis_lda.nw
Normal file
30
QA/tests/tddftgrad_h2o_cis_lda/tddftgrad_h2o_cis_lda.nw
Normal 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
|
||||||
|
|
||||||
4429
QA/tests/tddftgrad_h2o_cis_lda/tddftgrad_h2o_cis_lda.out
Normal file
4429
QA/tests/tddftgrad_h2o_cis_lda/tddftgrad_h2o_cis_lda.out
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -1,5 +1,5 @@
|
||||||
<!---[](https://actions-badge.atrox.dev/nwchemgit/nwchem/goto?ref=master)--->
|
<!---[](https://actions-badge.atrox.dev/nwchemgit/nwchem/goto?ref=master)--->
|
||||||
[](https://github.com/nwchemgit/nwchem/actions)
|
[](https://github.com/nwchemgit/nwchem/actions)
|
||||||
<!---[](https://travis-ci.org/nwchemgit/nwchem/builds)--->
|
<!---[](https://travis-ci.org/nwchemgit/nwchem/builds)--->
|
||||||
[](https://raw.githubusercontent.com/nwchemgit/nwchem/master/LICENSE.md)
|
[](https://raw.githubusercontent.com/nwchemgit/nwchem/master/LICENSE.md)
|
||||||
[](https://github.com/nwchemgit/nwchem/releases)
|
[](https://github.com/nwchemgit/nwchem/releases)
|
||||||
|
|
|
||||||
51
release.notes.7.2.0
Normal file
51
release.notes.7.2.0
Normal 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
|
||||||
|
|
@ -1135,11 +1135,13 @@ c Now read the basis for this magical atom type in using
|
||||||
c the given tag
|
c the given tag
|
||||||
c
|
c
|
||||||
10 if (.not. inp_a(field)) field=' '
|
10 if (.not. inp_a(field)) field=' '
|
||||||
|
#ifdef IGNORE_HEH
|
||||||
c
|
c
|
||||||
c ignore spherical vs cartesian from bse for He/H
|
c ignore spherical vs cartesian from bse for He/H
|
||||||
c since they do assign spherical when the other elements are cartesian
|
c since they do assign spherical when the other elements are cartesian
|
||||||
c
|
c
|
||||||
if (.not.inp_compare(.false., 'h', string(1:1))) then
|
if (.not.inp_compare(.false., 'h', string(1:1))) then
|
||||||
|
#endif
|
||||||
if(read_sphere) then
|
if(read_sphere) then
|
||||||
if (inp_compare(.false., 'spherical', field)) then
|
if (inp_compare(.false., 'spherical', field)) then
|
||||||
if (.not. bas_set_spherical(basis, .true.))
|
if (.not. bas_set_spherical(basis, .true.))
|
||||||
|
|
@ -1147,7 +1149,9 @@ c
|
||||||
& (' bas_set_spherical failed ',911, BASIS_ERR)
|
& (' bas_set_spherical failed ',911, BASIS_ERR)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
#ifdef IGNORE_HEH
|
||||||
endif
|
endif
|
||||||
|
#endif
|
||||||
if (.not. inp_read()) call errquit
|
if (.not. inp_read()) call errquit
|
||||||
$ ('bas_tag_lib: premature EOF', 0, INPUT_ERR)
|
$ ('bas_tag_lib: premature EOF', 0, INPUT_ERR)
|
||||||
c
|
c
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
# For development tree
|
# For development tree
|
||||||
#RELEASE :=
|
#RELEASE :=
|
||||||
# For current release tree
|
# For current release tree
|
||||||
RELEASE := 7.0.0
|
RELEASE := 7.2.0
|
||||||
|
|
||||||
#
|
#
|
||||||
ifndef NWCHEM_TOP
|
ifndef NWCHEM_TOP
|
||||||
|
|
@ -243,10 +243,10 @@ endif
|
||||||
# specified below. Use of MPI requires substituting the tcgmsg-mpi
|
# specified below. Use of MPI requires substituting the tcgmsg-mpi
|
||||||
# wrapper for the normal tcgmsg library.
|
# wrapper for the normal tcgmsg library.
|
||||||
# the 2 following environmental variables are need for linking
|
# the 2 following environmental variables are need for linking
|
||||||
# LIBMPI - represents the name of mpi library (with -l)
|
# NWLIBMPI - represents the name of mpi library (with -l)
|
||||||
# MPI_LIB - represents the path to the mpi library
|
# NWMPI_LIB - represents the path to the mpi library
|
||||||
#LIBMPI = -lmpich
|
#NWLIBMPI = -lmpich
|
||||||
#MPI_LIB= /usr/local/lib
|
#NWMPI_LIB= /usr/local/lib
|
||||||
|
|
||||||
#JN: under the new structure, tools should be listed first as
|
#JN: under the new structure, tools should be listed first as
|
||||||
# their header files are needed for dependency analysis of
|
# their header files are needed for dependency analysis of
|
||||||
|
|
@ -292,9 +292,6 @@ ifdef BUILD_SCALAPACK
|
||||||
$(error )
|
$(error )
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef SCALAPACK_SIZE
|
|
||||||
SCALAPACK_SIZE=8
|
|
||||||
endif
|
|
||||||
SCALAPACK=-L$(NWCHEM_TOP)/src/libext/lib -lnwc_scalapack
|
SCALAPACK=-L$(NWCHEM_TOP)/src/libext/lib -lnwc_scalapack
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
@ -317,15 +314,6 @@ ifdef BUILD_ELPA
|
||||||
endif
|
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
|
ifndef EXTERNAL_GA_PATH
|
||||||
NW_CORE_SUBDIRS += tools
|
NW_CORE_SUBDIRS += tools
|
||||||
|
|
@ -2456,12 +2444,12 @@ ifneq ($(TARGET),LINUX)
|
||||||
#
|
#
|
||||||
ifeq ($(_IFCV15ORNEWER), Y)
|
ifeq ($(_IFCV15ORNEWER), Y)
|
||||||
IFORTVER=$(shell ifort -v 2>&1|cut -d " " -f 3)
|
IFORTVER=$(shell ifort -v 2>&1|cut -d " " -f 3)
|
||||||
ifeq ($(IFORTVER),2021.7.0)
|
# ifeq ($(IFORTVER),2021.7.0)
|
||||||
$(info )
|
# $(info )
|
||||||
$(info ifort 2021.7.0 not validated)
|
# $(info ifort 2021.7.0 not validated)
|
||||||
$(info )
|
# $(info )
|
||||||
$(error )
|
# $(error )
|
||||||
endif
|
# endif
|
||||||
# fpp seems to get lost with ifort 15 in the offload bit
|
# 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
|
# 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
|
# FOPTIONS += -Qoption,fpp,-P -Qoption,fpp,-c_com=no -allow nofpp_comments
|
||||||
|
|
@ -3317,7 +3305,7 @@ ifeq ($(BUILDING_PYTHON),python)
|
||||||
|
|
||||||
ifndef GOT_PYTHONCONFIG
|
ifndef GOT_PYTHONCONFIG
|
||||||
PYMAJOR:=$(word 1, $(subst ., ,$(PYTHONVERSION)))
|
PYMAJOR:=$(word 1, $(subst ., ,$(PYTHONVERSION)))
|
||||||
errorpythonconfig:$
|
errorpythonconfig:
|
||||||
$(info )
|
$(info )
|
||||||
$(info python-config not found in your PATH)
|
$(info python-config not found in your PATH)
|
||||||
$(info Please install the packages)
|
$(info Please install the packages)
|
||||||
|
|
@ -3455,14 +3443,6 @@ else
|
||||||
CORE_LIBS += $(BLASOPT)
|
CORE_LIBS += $(BLASOPT)
|
||||||
endif
|
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
|
ifdef BLASOPT
|
||||||
|
|
@ -3532,39 +3512,91 @@ endif
|
||||||
ifdef USE_MPI
|
ifdef USE_MPI
|
||||||
#ifeq ($(FC),$(findstring $(FC),mpifrt mpfort mpif77 mpxlf mpif90 ftn scorep-ftn))
|
#ifeq ($(FC),$(findstring $(FC),mpifrt mpfort mpif77 mpxlf mpif90 ftn scorep-ftn))
|
||||||
ifeq ($(FC),$(findstring $(FC), ftn scorep-ftn))
|
ifeq ($(FC),$(findstring $(FC), ftn scorep-ftn))
|
||||||
LIBMPI =
|
NWLIBMPI =
|
||||||
MPI_INCLUDE =
|
NWMPI_INCLUDE =
|
||||||
MPI_LIB =
|
NWMPI_LIB =
|
||||||
else
|
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
|
ifndef MPI_INCLUDE
|
||||||
# check if mpif90 is present
|
errormpi1:
|
||||||
MPIF90YN = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_include)
|
$(info )
|
||||||
ifeq ($(MPIF90YN),mpif90notfound)
|
$(info FORCE_MPI_ENV set but MPI_INCLUDE not set)
|
||||||
errormpif90:
|
$(info )
|
||||||
$(info )
|
$(error )
|
||||||
$(info mpif90 not found. Please add its location to PATH)
|
else
|
||||||
$(info e.g. export PATH=/usr/local/bin:/usr/lib64/openmpi/bin:...)
|
NWMPI_INCLUDE = $(MPI_INCLUDE)
|
||||||
$(info )
|
|
||||||
endif
|
|
||||||
MPI_INCLUDE = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_include)
|
|
||||||
endif
|
endif
|
||||||
ifndef MPI_LIB
|
ifndef MPI_LIB
|
||||||
MPI_LIB = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_lib)
|
errormpi2:
|
||||||
endif
|
$(info )
|
||||||
|
$(info FORCE_MPI_ENV set but MPI_LIB not set)
|
||||||
|
$(info )
|
||||||
|
$(error )
|
||||||
|
else
|
||||||
|
NWMPI_LIB = $(MPI_LIB)
|
||||||
|
endif
|
||||||
ifndef LIBMPI
|
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
|
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
|
endif
|
||||||
|
|
||||||
ifdef MPI_LIB
|
ifdef NWMPI_INCLUDE
|
||||||
CORE_LIBS += $(patsubst -L-L%,-L%,-L$(MPI_LIB))
|
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(NWMPI_INCLUDE))
|
||||||
|
endif
|
||||||
|
ifdef NWMPI_LIB
|
||||||
|
CORE_LIBS += $(patsubst -L-L%,-L%,-L$(NWMPI_LIB))
|
||||||
endif
|
endif
|
||||||
ifdef OLD_GA
|
ifdef OLD_GA
|
||||||
CORE_LIBS += -ltcgmsg-mpi $(LIBMPI)
|
CORE_LIBS += -ltcgmsg-mpi $(NWLIBMPI)
|
||||||
else
|
else
|
||||||
CORE_LIBS += $(LIBMPI)
|
CORE_LIBS += $(NWLIBMPI)
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
|
errornousempi:
|
||||||
|
$(info )
|
||||||
|
$(info please set the env. variable USE_MPI)
|
||||||
|
$(info and provide a working MPI installation)
|
||||||
|
$(info )
|
||||||
|
$(error )
|
||||||
ifdef OLD_GA
|
ifdef OLD_GA
|
||||||
CORE_LIBS += -ltcgmsg
|
CORE_LIBS += -ltcgmsg
|
||||||
else
|
else
|
||||||
|
|
@ -3612,9 +3644,9 @@ ifdef USE_LIBXC
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# we use an external libxc library out of LIBXC_DIR
|
# we use an external libxc library out of LIBXC_DIR
|
||||||
ifdef LIBXC_DIR
|
ifdef LIBXC_LIB
|
||||||
DEFINES += -DUSE_LIBXC
|
DEFINES += -DUSE_LIBXC
|
||||||
EXTRA_LIBS += -L$(LIBXC_DIR)/lib
|
EXTRA_LIBS += -L$(LIBXC_LIB)
|
||||||
EXTRA_LIBS += -lxcf03 -lxc
|
EXTRA_LIBS += -lxcf03 -lxc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
@ -3737,6 +3769,7 @@ ifdef TCE_OPENACC
|
||||||
FOPTIONS += -acc
|
FOPTIONS += -acc
|
||||||
LDOPTIONS += -acc
|
LDOPTIONS += -acc
|
||||||
endif
|
endif
|
||||||
|
NWCHEM_LINK_CUDA=1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef HIP
|
ifndef HIP
|
||||||
|
|
@ -3753,6 +3786,15 @@ ifdef USE_F90_ALLOCATABLE
|
||||||
DEFINES += -DUSE_F90_ALLOCATABLE
|
DEFINES += -DUSE_F90_ALLOCATABLE
|
||||||
endif
|
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 GWCMPLX
|
||||||
ifdef GWEN
|
ifdef GWEN
|
||||||
errorgw:
|
errorgw:
|
||||||
|
|
@ -3884,8 +3926,24 @@ ifeq ($(shell echo $(BLASOPT) |awk '/lblas/ {print "Y"; exit}'),Y)
|
||||||
DEFINES += -DBLAS_NOTHREADS
|
DEFINES += -DBLAS_NOTHREADS
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef BLAS_SIZE
|
ifneq ($(or $(SCALAPACK),$(SCALAPACK_LIB)),)
|
||||||
LIB_DEFINES += -DUSE_INTEGER8
|
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
|
endif
|
||||||
ifeq ($(BLAS_SIZE),8)
|
ifeq ($(BLAS_SIZE),8)
|
||||||
LIB_DEFINES += -DUSE_INTEGER8
|
LIB_DEFINES += -DUSE_INTEGER8
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,11 @@
|
||||||
integer ijshell, ilo, ihi, jlo, jhi
|
integer ijshell, ilo, ihi, jlo, jhi
|
||||||
integer l_buf, l_scr
|
integer l_buf, l_scr
|
||||||
integer k_buf, k_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)
|
double precision center(3)
|
||||||
!
|
!
|
||||||
|
|
@ -27,6 +32,34 @@
|
||||||
call ga_zero(g_x)
|
call ga_zero(g_x)
|
||||||
call ga_zero(g_y)
|
call ga_zero(g_y)
|
||||||
call ga_zero(g_z)
|
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)
|
if(oscfps) call pstat_on(ps_int_dip)
|
||||||
!
|
!
|
||||||
! grab basis set info type stuff
|
! grab basis set info type stuff
|
||||||
|
|
@ -65,7 +98,8 @@
|
||||||
!
|
!
|
||||||
! get the integrals we want
|
! 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,
|
$ 1,
|
||||||
$ center,
|
$ center,
|
||||||
$ mscratch, dbl_mb(k_scr), max1e, dbl_mb(k_buf))
|
$ mscratch, dbl_mb(k_scr), max1e, dbl_mb(k_buf))
|
||||||
|
|
@ -84,6 +118,20 @@
|
||||||
if(.not.MA_pop_stack(l_buf))
|
if(.not.MA_pop_stack(l_buf))
|
||||||
$ call errquit('int_dip_ga:pop failed',0, MA_ERR)
|
$ 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()
|
call ga_sync()
|
||||||
!
|
!
|
||||||
if (util_print('multipole', print_debug)) then
|
if (util_print('multipole', print_debug)) then
|
||||||
|
|
@ -101,15 +149,16 @@
|
||||||
implicit none
|
implicit none
|
||||||
#include "global.fh"
|
#include "global.fh"
|
||||||
integer g_x, g_y, g_z, ilo, ihi, jlo, jhi
|
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
|
integer i, j
|
||||||
do i = ilo,ihi
|
c do i = ilo,ihi
|
||||||
do j = jlo, jhi
|
do j = jlo, jhi
|
||||||
call ga_put(g_x,i,i,j,j,buf(j,1,i),1)
|
call ga_put(g_x,ilo,ihi,j,j,buf(ilo,1,j),1)
|
||||||
call ga_put(g_y,i,i,j,j,buf(j,2,i),1)
|
call ga_put(g_y,ilo,ihi,j,j,buf(ilo,2,j),1)
|
||||||
call ga_put(g_z,i,i,j,j,buf(j,3,i),1)
|
call ga_put(g_z,ilo,ihi,j,j,buf(ilo,3,j),1)
|
||||||
end do
|
end do
|
||||||
end do
|
c end do
|
||||||
end
|
end
|
||||||
|
|
||||||
subroutine int_qdr_ga(ibas, jbas, g_xx, g_xy, g_xz,
|
subroutine int_qdr_ga(ibas, jbas, g_xx, g_xy, g_xz,
|
||||||
|
|
|
||||||
|
|
@ -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 create a global array to store x, y, z and x^2, y^2, z^2 for each AO
|
||||||
c
|
c
|
||||||
if (.not. ga_create(mt_dbl, 6*nbf, nbf, 'GXLM',
|
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)
|
& GA_ERR)
|
||||||
c
|
c
|
||||||
c compute dipoles and quadrupole components for each AO
|
c compute dipoles and quadrupole components for each AO
|
||||||
|
|
@ -301,6 +302,7 @@ c
|
||||||
#include "geom.fh"
|
#include "geom.fh"
|
||||||
#include "stdio.fh"
|
#include "stdio.fh"
|
||||||
#include "util_params.fh"
|
#include "util_params.fh"
|
||||||
|
#include "util.fh"
|
||||||
c
|
c
|
||||||
integer basis ! [input] basis
|
integer basis ! [input] basis
|
||||||
double precision center(3) ! [input] the expansion center
|
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 ilo, ihi, jlo, jhi, idim, jdim, ind, i, j, l, ioff
|
||||||
integer l_scr, k_scr, l_mp, k_mp
|
integer l_scr, k_scr, l_mp, k_mp
|
||||||
integer lmax ! Maximum value of L = 2
|
integer lmax ! Maximum value of L = 2
|
||||||
|
integer clo, chi, rlo, rhi
|
||||||
|
integer type, dim1, dim2
|
||||||
|
logical doloop, oprint
|
||||||
c
|
c
|
||||||
if (.not. bas_geom(basis, geom)) call errquit
|
if (.not. bas_geom(basis, geom)) call errquit
|
||||||
$ ('multipole: bad basis', 0, BASIS_ERR)
|
$ ('multipole: bad basis', 0, BASIS_ERR)
|
||||||
|
|
@ -349,11 +354,30 @@ c
|
||||||
& call errquit('xlm_pole: cannot allocate scratch', maxscr,
|
& call errquit('xlm_pole: cannot allocate scratch', maxscr,
|
||||||
& MA_ERR)
|
& MA_ERR)
|
||||||
c
|
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)
|
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
|
c
|
||||||
|
if (doloop) then
|
||||||
ijshell = -1
|
ijshell = -1
|
||||||
me = ga_nodeid()
|
me = ga_nodeid()
|
||||||
nproc = ga_nnodes()
|
|
||||||
do ishell = 1, nshell
|
do ishell = 1, nshell
|
||||||
if (.not. bas_cn2bfr(basis, ishell, ilo, ihi)) call errquit
|
if (.not. bas_cn2bfr(basis, ishell, ilo, ihi)) call errquit
|
||||||
& ('xlm_pole: bas_cn2bfr failed for basis', basis,
|
& ('xlm_pole: bas_cn2bfr failed for basis', basis,
|
||||||
|
|
@ -429,6 +453,7 @@ c
|
||||||
end do
|
end do
|
||||||
end do
|
end do
|
||||||
c
|
c
|
||||||
|
endif
|
||||||
call ga_sync
|
call ga_sync
|
||||||
c
|
c
|
||||||
c write(LuOut,*) ' THE AO MPOLES '
|
c write(LuOut,*) ' THE AO MPOLES '
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,9 @@ c
|
||||||
#include "esp_common.fh"
|
#include "esp_common.fh"
|
||||||
#include "global.fh"
|
#include "global.fh"
|
||||||
#include "msgids.fh"
|
#include "msgids.fh"
|
||||||
|
#include "geom.fh"
|
||||||
#include "util.fh"
|
#include "util.fh"
|
||||||
|
#include "errquit.fh"
|
||||||
c
|
c
|
||||||
real*8 x(3,natoms),q(ndim,4)
|
real*8 x(3,natoms),q(ndim,4)
|
||||||
real*8 g(*)
|
real*8 g(*)
|
||||||
|
|
@ -83,6 +85,7 @@ c
|
||||||
c
|
c
|
||||||
call util_file_name('xyz',.false.,.false.,xyzfil)
|
call util_file_name('xyz',.false.,.false.,xyzfil)
|
||||||
open(unit=lfnxyz,file=xyzfil,form='formatted',status='unknown')
|
open(unit=lfnxyz,file=xyzfil,form='formatted',status='unknown')
|
||||||
|
#if 0
|
||||||
write(lfnxyz,2000) natoms
|
write(lfnxyz,2000) natoms
|
||||||
2000 format('* Coordinates in XYZ format',/,i5)
|
2000 format('* Coordinates in XYZ format',/,i5)
|
||||||
do 5 i=1,natoms
|
do 5 i=1,natoms
|
||||||
|
|
@ -90,6 +93,11 @@ c
|
||||||
+ (10.0d0*cau2nm*x(j,i),j=1,3),q(i,4)
|
+ (10.0d0*cau2nm*x(j,i),j=1,3),q(i,4)
|
||||||
2001 format(a,t3,4f12.6)
|
2001 format(a,t3,4f12.6)
|
||||||
5 continue
|
5 continue
|
||||||
|
#else
|
||||||
|
if(.not.geom_print_xyz(igeom, lfnxyz))
|
||||||
|
A call errquit(' failed geom_print_xyz',
|
||||||
|
E 0, GEOM_ERR)
|
||||||
|
#endif
|
||||||
close(lfnxyz)
|
close(lfnxyz)
|
||||||
endif
|
endif
|
||||||
c
|
c
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ include ../config/makelib.h
|
||||||
FOPTIMIZE += -O0
|
FOPTIMIZE += -O0
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifeq ($(FC),ifort)
|
ifeq ($(_FC),ifort)
|
||||||
FOPTIONS += -save
|
FOPTIONS += -save
|
||||||
endif
|
endif
|
||||||
ifeq ($(_FC),xlf)
|
ifeq ($(_FC),xlf)
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ SHORTVERSION=2021.11.001
|
||||||
VERSION=new_release_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
|
#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`
|
echo mpif90 is `which mpif90`
|
||||||
export ARFLAGS=rU
|
|
||||||
if [ -f elpa-${VERSION}.tar.gz ]; then
|
if [ -f elpa-${VERSION}.tar.gz ]; then
|
||||||
echo "using existing" elpa-${VERSION}.tar.gz
|
echo "using existing" elpa-${VERSION}.tar.gz
|
||||||
else
|
else
|
||||||
|
|
@ -21,8 +20,14 @@ tar xzf elpa-${VERSION}.tar.gz
|
||||||
ln -sf elpa-${VERSION} elpa
|
ln -sf elpa-${VERSION} elpa
|
||||||
cd elpa
|
cd elpa
|
||||||
UNAME_S=$(uname -s)
|
UNAME_S=$(uname -s)
|
||||||
|
if [[ ${UNAME_S} == Linux ]]; then
|
||||||
|
export ARFLAGS=rU
|
||||||
|
fi
|
||||||
if [[ ${UNAME_S} == Darwin ]]; then
|
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
|
if ! [ -x "$(command -v $FORTRAN_CPP)" ]; then
|
||||||
echo
|
echo
|
||||||
echo cpp from gcc homebrew missing
|
echo cpp from gcc homebrew missing
|
||||||
|
|
@ -153,7 +158,11 @@ fi
|
||||||
|
|
||||||
if [ ! -f configure ]; then
|
if [ ! -f configure ]; then
|
||||||
sh ./autogen.sh
|
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
|
mkdir -p build
|
||||||
cd build
|
cd build
|
||||||
if [[ ! -z "${BUILD_SCALAPACK}" ]]; then
|
if [[ ! -z "${BUILD_SCALAPACK}" ]]; then
|
||||||
|
|
@ -197,7 +206,7 @@ unset SCALAPACK_FCFLAGS
|
||||||
unset SCALAPACK_LDFLAGS
|
unset SCALAPACK_LDFLAGS
|
||||||
echo mpif90 is `which mpif90`
|
echo mpif90 is `which mpif90`
|
||||||
echo MPIF90 is "$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
|
if [[ "$?" != "0" ]]; then
|
||||||
echo " "
|
echo " "
|
||||||
echo "Elpa compilation failed"
|
echo "Elpa compilation failed"
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
include ../../config/makefile.h
|
include ../../config/makefile.h
|
||||||
|
|
||||||
install/lib/libxc.a:
|
install/lib/libxc.a:
|
||||||
./build_libxc.sh
|
./build_libxc.sh $(LIBXC_VERSION)
|
||||||
|
|
||||||
LIB_TARGETS += libxc
|
LIB_TARGETS += libxc
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,14 +7,25 @@ check_tgz() {
|
||||||
[ -f $1 ] && gunzip -t $1 > /dev/null && myexit=1
|
[ -f $1 ] && gunzip -t $1 > /dev/null && myexit=1
|
||||||
echo $myexit
|
echo $myexit
|
||||||
}
|
}
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
VERSION=5.2.2
|
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
|
TGZ=libxc-${VERSION}.tar.gz
|
||||||
if [ `check_tgz $TGZ` == 1 ]; then
|
if [ `check_tgz $TGZ` == 1 ]; then
|
||||||
echo "using existing $TGZ"
|
echo "using existing $TGZ"
|
||||||
else
|
else
|
||||||
echo "downloading $TGZ"
|
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
|
if [ `check_tgz $TGZ` != 1 ]; then
|
||||||
rm -f libxc-${VERSION}.tar.gz
|
rm -f libxc-${VERSION}.tar.gz
|
||||||
curl -L https://github.com/ElectronicStructureLibrary/libxc/archive/refs/tags/${VERSION}.tar.gz -o $TGZ
|
curl -L https://github.com/ElectronicStructureLibrary/libxc/archive/refs/tags/${VERSION}.tar.gz -o $TGZ
|
||||||
|
|
@ -78,7 +89,7 @@ fi
|
||||||
|
|
||||||
cd libxc
|
cd libxc
|
||||||
# patch pk09 to avoid compiler memory problems
|
# patch pk09 to avoid compiler memory problems
|
||||||
patch -p0 -N < ../pk09.patch
|
#patch -p0 -N < ../pk09.patch
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
cd build
|
cd build
|
||||||
if [[ -z "${NWCHEM_TOP}" ]]; then
|
if [[ -z "${NWCHEM_TOP}" ]]; then
|
||||||
|
|
@ -100,8 +111,16 @@ else
|
||||||
fcflags=" "
|
fcflags=" "
|
||||||
fi
|
fi
|
||||||
rm -rf libxc/build
|
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 -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 \
|
$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 ..
|
-DCMAKE_INSTALL_LIBDIR="lib" -DCMAKE_BUILD_TYPE=Release ..
|
||||||
|
|
||||||
make -j4 | tee make.log
|
make -j4 | tee make.log
|
||||||
|
|
|
||||||
|
|
@ -65,8 +65,10 @@ if [[ "${NWCHEM_TARGET}" == "LINUX" ]]; then
|
||||||
else
|
else
|
||||||
binary=64
|
binary=64
|
||||||
fi
|
fi
|
||||||
if [ -n "${USE_DYNAMIC_ARCH}" ]; then
|
if [[ -n "${USE_DYNAMIC_ARCH}" ]] || [[ "${USE_HWOPT}" == "n" ]]; then
|
||||||
FORCETARGET+="DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
|
if [[ "$arch" == "x86_64" ]]; then
|
||||||
|
FORCETARGET+="DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
#cray ftn wrapper
|
#cray ftn wrapper
|
||||||
if [[ ${FC} == ftn ]]; then
|
if [[ ${FC} == ftn ]]; then
|
||||||
|
|
@ -136,10 +138,21 @@ elif [[ -n ${FC} ]] && [[ "${FC}" == "ifort" ]] || [[ "${FC}" == "ifx" ]]; then
|
||||||
LAPACK_FPFLAGS_VAL=" -fp-model source -O2 -g "
|
LAPACK_FPFLAGS_VAL=" -fp-model source -O2 -g "
|
||||||
else
|
else
|
||||||
#assuming gfortran
|
#assuming gfortran
|
||||||
|
FORCETARGET+=' F_COMPILER=GFORTRAN '
|
||||||
LAPACK_FPFLAGS_VAL=" "
|
LAPACK_FPFLAGS_VAL=" "
|
||||||
if [[ ${BLAS_SIZE} == 8 ]]; then
|
if [[ ${BLAS_SIZE} == 8 ]]; then
|
||||||
LAPACK_FLAGS_VAL+=" -fdefault-integer-8"
|
LAPACK_FPFLAGS_VAL+=" -fdefault-integer-8"
|
||||||
fi
|
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
|
fi
|
||||||
if [[ -z "${CC}" ]]; then
|
if [[ -z "${CC}" ]]; then
|
||||||
CC=cc
|
CC=cc
|
||||||
|
|
@ -179,6 +192,13 @@ else
|
||||||
THREADOPT="1"
|
THREADOPT="1"
|
||||||
MYNTS="128"
|
MYNTS="128"
|
||||||
fi
|
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.
|
#we want openblas to use pthreads and not openmp.
|
||||||
#but NWChem and OpenBLAS both use USE_OPENMP
|
#but NWChem and OpenBLAS both use USE_OPENMP
|
||||||
|
|
@ -187,7 +207,8 @@ if [[ ! -z "${USE_OPENMP}" ]]; then
|
||||||
unset USE_OPENMP
|
unset USE_OPENMP
|
||||||
NWCHEM_USE_OPENMP=1
|
NWCHEM_USE_OPENMP=1
|
||||||
fi
|
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
|
||||||
echo OpenBLAS compilation in progress
|
echo OpenBLAS compilation in progress
|
||||||
echo output redirected to libext/openblas/OpenBLAS/openblas.log
|
echo output redirected to libext/openblas/OpenBLAS/openblas.log
|
||||||
|
|
@ -195,7 +216,7 @@ echo
|
||||||
if [[ ${_FC} == xlf ]]; then
|
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
|
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
|
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
|
fi
|
||||||
if [[ "$?" != "0" ]]; then
|
if [[ "$?" != "0" ]]; then
|
||||||
tail -500 openblas.log
|
tail -500 openblas.log
|
||||||
|
|
|
||||||
|
|
@ -193,6 +193,9 @@ echo MPICH_CC is "$MPICH_CC"
|
||||||
if [[ -z "$I_MPI_F90" ]] ; then
|
if [[ -z "$I_MPI_F90" ]] ; then
|
||||||
export I_MPI_F90="$FC"
|
export I_MPI_F90="$FC"
|
||||||
fi
|
fi
|
||||||
|
if [[ -z "$I_MPI_CC" ]] ; then
|
||||||
|
export I_MPI_CC="$CC"
|
||||||
|
fi
|
||||||
echo I_MPI_F90 is "$I_MPI_F90"
|
echo I_MPI_F90 is "$I_MPI_F90"
|
||||||
if [[ -z "$PE_ENV" ]] ; then
|
if [[ -z "$PE_ENV" ]] ; then
|
||||||
#check if mpif90 and FC are consistent
|
#check if mpif90 and FC are consistent
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,8 @@ c
|
||||||
integer l_c_t, k_c_t
|
integer l_c_t, k_c_t
|
||||||
integer l_act, k_act, l_actsh, k_actsh
|
integer l_act, k_act, l_actsh, k_actsh
|
||||||
integer twopdmunit
|
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
|
integer nsh, natoms, nactive, nblock
|
||||||
c
|
c
|
||||||
integer k_scr, l_scr, k_lab, l_lab, k_eri, l_eri, leneri, lenscr
|
integer k_scr, l_scr, k_lab, l_lab, k_eri, l_eri, leneri, lenscr
|
||||||
|
|
@ -482,10 +483,6 @@ c
|
||||||
else
|
else
|
||||||
call ga_copy(g_buf_trans,g_buf)
|
call ga_copy(g_buf_trans,g_buf)
|
||||||
endif
|
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()
|
call ga_sync()
|
||||||
c
|
c
|
||||||
c Now have locally (a,1:nbfpairlocal). Loop thru local shell pairs
|
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)
|
ptr = ptr + count*(oseg_hi-oseg_lo+1)
|
||||||
end do
|
end do
|
||||||
c
|
c
|
||||||
cedo call ga_mask_sync(.true.,.false.)
|
|
||||||
call ga_sync
|
call ga_sync
|
||||||
c
|
c
|
||||||
end do ! End of i
|
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
|
write(6,*) ga_nodeid(),' i_1.gt.ihi ',i_1,ihi
|
||||||
call errquit(' mp2copybck: i boundary passed ',0,0)
|
call errquit(' mp2copybck: i boundary passed ',0,0)
|
||||||
endif
|
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,
|
call ga_get(g_a_trans,i_0,i_1,
|
||||||
A jlo,jhi,buff,i_ld)
|
A jlo,jhi,buff,i_ld)
|
||||||
call ga_put(g_a, i_0, i_1, jlo, jhi, buff, i_ld)
|
call ga_put(g_a, i_0, i_1, jlo, jhi, buff, i_ld)
|
||||||
#endif
|
|
||||||
enddo
|
enddo
|
||||||
endif
|
endif
|
||||||
c everybody needs to have the buffer filled
|
c everybody needs to have the buffer filled
|
||||||
call ga_sync()
|
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
|
return
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -717,6 +717,10 @@ c
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
call pstat_on(ps_laifock)
|
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(
|
call mp2_lai_fock_uhf_prepar(
|
||||||
$ g_p_ab_a,g_p_ab_b,g_p_ij_a,g_p_ij_b,
|
$ 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)
|
$ 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)
|
$ noa,nob,nva,nvb,g_lai_a,g_lai_b,rtdb,tol2e_fock)
|
||||||
call mp2_lai_fock_uhf_tidy(g_tmpa, g_tmpb)
|
call mp2_lai_fock_uhf_tidy(g_tmpa, g_tmpb)
|
||||||
call pstat_off(ps_laifock)
|
call pstat_off(ps_laifock)
|
||||||
|
if (doprint) then
|
||||||
|
write(6,111) ' Done laifock', util_wallsec()
|
||||||
|
call util_flush(6)
|
||||||
|
end if
|
||||||
c
|
c
|
||||||
if (omatrix) then
|
if (omatrix) then
|
||||||
call ga_print(g_lai_a)
|
call ga_print(g_lai_a)
|
||||||
|
|
@ -782,11 +790,20 @@ c
|
||||||
if(.not.ga_create(mt_dbl,nmo,nmo,'tot beta dens',nmo,0,
|
if(.not.ga_create(mt_dbl,nmo,nmo,'tot beta dens',nmo,0,
|
||||||
$ g_p_tot_b))call errquit(
|
$ g_p_tot_b))call errquit(
|
||||||
$ 'mp2_energy: ga_create failed',0, GA_ERR)
|
$ '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,
|
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,
|
$ 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),
|
$ int_mb(k_map_a), int_mb(k_map_b),
|
||||||
$ g_vecs_a,g_vecs_b,basis,scftype)
|
$ 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
|
c
|
||||||
if (otrace) then
|
if (otrace) then
|
||||||
call mp2_print_trace_norm(g_p_tot_a,'g_p_tot_a',nmo)
|
call mp2_print_trace_norm(g_p_tot_a,'g_p_tot_a',nmo)
|
||||||
|
|
@ -931,6 +948,7 @@ c
|
||||||
endif
|
endif
|
||||||
c
|
c
|
||||||
call ga_sync
|
call ga_sync
|
||||||
|
111 format(a,' at ', f10.1,'s')
|
||||||
c
|
c
|
||||||
end
|
end
|
||||||
subroutine mp2_print_trace_norm(g, text, n)
|
subroutine mp2_print_trace_norm(g, text, n)
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,8 @@ c
|
||||||
double precision mp2y, scfy
|
double precision mp2y, scfy
|
||||||
double precision mp2z, scfz
|
double precision mp2z, scfz
|
||||||
double precision ndip(3)
|
double precision ndip(3)
|
||||||
|
logical ga_create_atom_blocked
|
||||||
|
external ga_create_atom_blocked
|
||||||
integer geom
|
integer geom
|
||||||
c
|
c
|
||||||
if (.not. bas_cando_mpoles(basis)) return
|
if (.not. bas_cando_mpoles(basis)) return
|
||||||
|
|
@ -31,15 +33,9 @@ c
|
||||||
c
|
c
|
||||||
c Generate dipole integrals
|
c Generate dipole integrals
|
||||||
c
|
c
|
||||||
*ga:1:0
|
g_x = ga_create_atom_blocked(geom, basis,'ao integs x')
|
||||||
if(.not.ga_create(mt_dbl,nbf,nbf,' ao integs x ',
|
g_y = ga_create_atom_blocked(geom, basis,'ao integs y')
|
||||||
$ 0,0,g_x)) call errquit('mp2_dipole: ga',0, GA_ERR)
|
g_z = ga_create_atom_blocked(geom, basis,'ao integs z')
|
||||||
*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)
|
|
||||||
c
|
c
|
||||||
call int_init(rtdb,1,basis)
|
call int_init(rtdb,1,basis)
|
||||||
call int_dip_ga(basis, basis, g_x, g_y, g_z)
|
call int_dip_ga(basis, basis, g_x, g_y, g_z)
|
||||||
|
|
@ -48,8 +44,7 @@ c
|
||||||
c Generate SCF AO density
|
c Generate SCF AO density
|
||||||
c
|
c
|
||||||
*ga:1:0
|
*ga:1:0
|
||||||
if(.not.ga_create(mt_dbl, nbf, nbf,' AO density ',
|
g_dens = ga_create_atom_blocked(geom, basis,'ao density')
|
||||||
$ 0,0,g_dens)) call errquit('mp2_dipole: ga',0, GA_ERR)
|
|
||||||
call ga_dgemm('n', 't', nbf, nbf, noa, 1.0d0, g_vecs_a,
|
call ga_dgemm('n', 't', nbf, nbf, noa, 1.0d0, g_vecs_a,
|
||||||
$ g_vecs_a, 0.0d0, g_dens)
|
$ g_vecs_a, 0.0d0, g_dens)
|
||||||
call ga_dgemm('n', 't', nbf, nbf, nob, 1.0d0, g_vecs_b,
|
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 Form the MP2 AO density
|
||||||
c
|
c
|
||||||
*ga:1:0
|
*ga:1:0
|
||||||
if(.not.ga_create(mt_dbl,nmo,nbf,'scratch',0,0,g_scratch))
|
g_scratch = ga_create_atom_blocked(geom, basis,'scratch')
|
||||||
$ call errquit('mp2_grad: scratch',1, GA_ERR)
|
|
||||||
call ga_dgemm('n','t',nmo,nbf,nmo,1.0d0,g_p_tot_a,g_vecs_a,
|
call ga_dgemm('n','t',nmo,nbf,nmo,1.0d0,g_p_tot_a,g_vecs_a,
|
||||||
$ 0.0d0,g_scratch)
|
$ 0.0d0,g_scratch)
|
||||||
call ga_dgemm('n','n',nbf,nbf,nmo,1.0d0,g_vecs_a,g_scratch,
|
call ga_dgemm('n','n',nbf,nbf,nmo,1.0d0,g_vecs_a,g_scratch,
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,8 @@
|
||||||
character*256 p_a_ao
|
character*256 p_a_ao
|
||||||
character*256 p_b_ao
|
character*256 p_b_ao
|
||||||
integer base
|
integer base
|
||||||
|
integer l_buf,k_buf
|
||||||
|
integer ilo,ihi,jlo,jhi,dowork
|
||||||
c
|
c
|
||||||
call util_file_name('p_a_ao',.true.,.true.,p_a_ao)
|
call util_file_name('p_a_ao',.true.,.true.,p_a_ao)
|
||||||
call util_file_name('p_b_ao',.true.,.true.,p_b_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$$$ end do
|
c$$$ end do
|
||||||
c
|
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
|
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
|
do a = 1,nva
|
||||||
ii = map_a(i)
|
|
||||||
aa = map_a(a+noa)-noa
|
aa = map_a(a+noa)-noa
|
||||||
ia = ioff+a+(i-1)*nva
|
ia = ioff+a+(i-1)*nva
|
||||||
call ga_get(g_rhs,ia,ia,1,1,xx,1)
|
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,aa+noa,aa+noa,ii,ii,xx,1)
|
||||||
call ga_put(g_p_tot_a,ii,ii,aa+noa,aa+noa,xx,1)
|
call ga_put(g_p_tot_a,ii,ii,aa+noa,aa+noa,xx,1)
|
||||||
end do
|
end do
|
||||||
|
endif
|
||||||
end do
|
end do
|
||||||
c
|
if (.not. ma_push_get(mt_dbl, nmo, 'mp2: maket',
|
||||||
call ga_copy_patch('n',g_p_ij_a,1,noa,1,noa,g_p_tot_a,
|
$ l_buf, k_buf)) call errquit
|
||||||
$ 1,noa,1,noa)
|
$ ('mp2: insufficient memory : bug ', nmo, MA_ERR)
|
||||||
call ga_copy_patch('n',g_p_ab_a,1,nva,1,nva,g_p_tot_a,
|
|
||||||
$ noa+1,nmo,noa+1,nmo)
|
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
|
c
|
||||||
if (scftype .eq. 'UHF') then
|
if (scftype .eq. 'UHF') then
|
||||||
base = (nva*noa)
|
base = (nva*noa)
|
||||||
|
|
@ -71,15 +99,18 @@ c
|
||||||
base = 0 ! Alpha is the same as beta
|
base = 0 ! Alpha is the same as beta
|
||||||
end if
|
end if
|
||||||
ioff = base
|
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
|
do a = 1,nvb
|
||||||
ii = map_b(i)
|
|
||||||
aa = map_b(a+nob)-nob
|
aa = map_b(a+nob)-nob
|
||||||
ia = ioff+a+(i-1)*nvb
|
ia = ioff+a+(i-1)*nvb
|
||||||
call ga_get(g_rhs,ia,ia,1,1,xx,1)
|
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,aa+nob,aa+nob,ii,ii,xx,1)
|
||||||
call ga_put(g_p_tot_b,ii,ii,aa+nob,aa+nob,xx,1)
|
call ga_put(g_p_tot_b,ii,ii,aa+nob,aa+nob,xx,1)
|
||||||
end do
|
end do
|
||||||
|
endif
|
||||||
end do
|
end do
|
||||||
c$$$ call ga_copy_patch('n',g_rhs,base+1,base+(nvb*nob),
|
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)
|
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$$$ call ga_put(g_p_tot_b,i,i,a+nob,a+nob,temp,1)
|
||||||
c$$$ end do
|
c$$$ end do
|
||||||
c$$$ end do
|
c$$$ end do
|
||||||
c
|
c
|
||||||
call ga_copy_patch('n',g_p_ij_b,1,nob,1,nob,g_p_tot_b,
|
if (.not. ma_push_get(mt_dbl, nmo, 'mp2: maket',
|
||||||
$ 1,nob,1,nob)
|
$ l_buf, k_buf)) call errquit
|
||||||
call ga_copy_patch('n',g_p_ab_b,1,nvb,1,nvb,g_p_tot_b,
|
$ ('mp2: insufficient memory : bug ', nmo, MA_ERR)
|
||||||
$ nob+1,nmo,nob+1,nmo)
|
|
||||||
|
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
|
c
|
||||||
*ga:1:0
|
*ga:1:0
|
||||||
if(.not.ga_create(mt_dbl,nmo,nbf,'scratch',0,0,g_scratch))
|
if(.not.ga_create(mt_dbl,nmo,nbf,'scratch',0,0,g_scratch))
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ c
|
||||||
call ga_copy_patch('n',g_w_ai_a,1,noa_hi,1,nva,g_w_tot_a,
|
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)
|
$ 1, noa_hi, noa_hi+1, nmo)
|
||||||
c
|
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,
|
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)
|
$ 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,
|
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)
|
$ 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,
|
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)
|
$ 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,
|
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)
|
$ 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,
|
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
|
c
|
||||||
end
|
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
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,10 @@ c
|
||||||
parameter (eps=1d-14)
|
parameter (eps=1d-14)
|
||||||
c
|
c
|
||||||
logical otdebug
|
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
|
c
|
||||||
integer l_ia_uv, k_ia_uv, l_tmp, k_tmp, l_ia_jb, k_ia_jb
|
integer l_ia_uv, k_ia_uv, l_tmp, k_tmp, l_ia_jb, k_ia_jb
|
||||||
double precision ddot
|
double precision ddot
|
||||||
|
|
@ -82,6 +86,24 @@ c
|
||||||
*ga:1:0
|
*ga:1:0
|
||||||
if(.not.ga_create(mt_dbl,nob*nvb,nva,'T_b',(nob*nvb),0,g_t_b))
|
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)
|
$ 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
|
tunitptra=1
|
||||||
tunitptrb=1
|
tunitptrb=1
|
||||||
do i=oseg_lo,oseg_hi
|
do i=oseg_lo,oseg_hi
|
||||||
|
|
@ -189,6 +211,12 @@ c
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
call ga_sync()
|
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
|
do a_a=nva_lo_local,nva_hi_local
|
||||||
counta = 0
|
counta = 0
|
||||||
do b=nva_lo,nva_hi
|
do b=nva_lo,nva_hi
|
||||||
|
|
@ -265,6 +293,15 @@ c
|
||||||
esing = esing + (-4.0d0*eab + eaa)/4.0d0
|
esing = esing + (-4.0d0*eab + eaa)/4.0d0
|
||||||
etrip = etrip + (-3.0d0*eaa)/4.0d0
|
etrip = etrip + (-3.0d0*eaa)/4.0d0
|
||||||
c
|
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(
|
if(.not.ga_destroy(g_t_b))call errquit(
|
||||||
$ 'could not destroy t_b handle',1, GA_ERR)
|
$ 'could not destroy t_b handle',1, GA_ERR)
|
||||||
if(.not.ga_destroy(g_t_a))call errquit(
|
if(.not.ga_destroy(g_t_a))call errquit(
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ c
|
||||||
c $Id$
|
c $Id$
|
||||||
c
|
c
|
||||||
c ======================================================================================================
|
c ======================================================================================================
|
||||||
C> \mainpage Northwest Computational Chemistry Package (NWChem) 7.0.1
|
C> \mainpage Northwest Computational Chemistry Package (NWChem) 7.2.0
|
||||||
C>
|
C>
|
||||||
C> NWChem is an open-source computational chemistry package distributed under the terms of
|
C> NWChem is an open-source computational chemistry package distributed under the terms of
|
||||||
C> the Educational Community License (ECL) 2.0
|
C> the Educational Community License (ECL) 2.0
|
||||||
|
|
@ -461,7 +461,7 @@ c
|
||||||
write(LuOut,*)
|
write(LuOut,*)
|
||||||
write(LuOut,*)
|
write(LuOut,*)
|
||||||
call util_print_centered(LuOut,
|
call util_print_centered(LuOut,
|
||||||
$ 'Northwest Computational Chemistry Package (NWChem) 7.0.1',
|
$ 'Northwest Computational Chemistry Package (NWChem) 7.2.0',
|
||||||
$ 40, .true.)
|
$ 40, .true.)
|
||||||
write(LuOut,*)
|
write(LuOut,*)
|
||||||
write(LuOut,*)
|
write(LuOut,*)
|
||||||
|
|
@ -557,7 +557,7 @@ C
|
||||||
C Print version information to ecce.out file
|
C Print version information to ecce.out file
|
||||||
C
|
C
|
||||||
compiled(inp_strlen(compiled)+1:inp_strlen(compiled)+25) =
|
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)))
|
call ecce_print_version(compiled(1:inp_strlen(compiled)))
|
||||||
C
|
C
|
||||||
If ( Inp_StrLen(BatchID) .gt. 0) then
|
If ( Inp_StrLen(BatchID) .gt. 0) then
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,8 @@ c
|
||||||
double precision grid_acc(num_gridtypes)
|
double precision grid_acc(num_gridtypes)
|
||||||
double precision job_grid_acc
|
double precision job_grid_acc
|
||||||
character*16 element
|
character*16 element
|
||||||
character*16 tag
|
character*16 tag, tag_mod
|
||||||
|
integer lenb
|
||||||
double precision eps
|
double precision eps
|
||||||
parameter (eps = 1.d-20)
|
parameter (eps = 1.d-20)
|
||||||
data gridtypes /'xcoarse', 'coarse', 'medium', 'fine', 'xfine',
|
data gridtypes /'xcoarse', 'coarse', 'medium', 'fine', 'xfine',
|
||||||
|
|
@ -418,7 +419,10 @@ c
|
||||||
c hack for nbo
|
c hack for nbo
|
||||||
if(tag(3:4).eq.'gh') iptr=5
|
if(tag(3:4).eq.'gh') iptr=5
|
||||||
if(tag(1:1).eq.'X'.or.tag(1:1).eq.'x') iptr=2
|
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
|
& element, i_atomic_number)) then
|
||||||
if (inp_compare(.false.,tag(1:2),'bq')) then
|
if (inp_compare(.false.,tag(1:2),'bq')) then
|
||||||
i_atomic_number = 0
|
i_atomic_number = 0
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,8 @@ c
|
||||||
logical same_atom, same_bq, isbq
|
logical same_atom, same_bq, isbq
|
||||||
c
|
c
|
||||||
character*16 element
|
character*16 element
|
||||||
character*16 tag
|
character*16 tag,tag_mod
|
||||||
|
integer lenb
|
||||||
character*2 symbol
|
character*2 symbol
|
||||||
c
|
c
|
||||||
logical lnewtype
|
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 no matter what follows the X.
|
||||||
c
|
c
|
||||||
if(tag(1:1).eq.'X'.or.tag(1:1).eq.'x') iptr=2
|
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
|
& element, i_atomic_number)) then
|
||||||
if (inp_compare(.false.,tag(1:2),'bq')) then
|
if (inp_compare(.false.,tag(1:2),'bq')) then
|
||||||
if(bqdontcare) then
|
if(bqdontcare) then
|
||||||
|
|
|
||||||
|
|
@ -12,12 +12,17 @@ LIBRARY = libnwdft.a
|
||||||
|
|
||||||
LIB_INCLUDES = -I../include
|
LIB_INCLUDES = -I../include
|
||||||
ifdef USE_LIBXC
|
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
|
LIB_INCLUDES += -I../../libext/libxc/install/include
|
||||||
endif
|
endif
|
||||||
ifdef LIBXC_DIR
|
ifdef LIBXC_INCLUDE
|
||||||
LIB_INCLUDES += -I$(LIBXC_DIR)/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
|
endif
|
||||||
LIB_INCLUDES += -I.
|
LIB_INCLUDES += -I.
|
||||||
|
|
||||||
|
|
||||||
include ../../config/makefile.h
|
include ../../config/makefile.h
|
||||||
include ../../config/makelib.h
|
include ../../config/makelib.h
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
#ifdef USE_LIBXC
|
||||||
|
#if XC_MAJOR_VERSION < 4
|
||||||
|
#error "need libxc version > 3 "
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
integer, parameter :: maxfunc = 100
|
integer, parameter :: maxfunc = 100
|
||||||
|
|
||||||
integer :: libxc_nfuncs
|
integer :: libxc_nfuncs
|
||||||
|
|
|
||||||
18
src/nwdft/libxc/libxc_findsizenp.sh
Executable file
18
src/nwdft/libxc/libxc_findsizenp.sh
Executable 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
|
||||||
|
|
@ -57,14 +57,20 @@
|
||||||
double precision :: Amat3(nq,NCOL_AMAT3)
|
double precision :: Amat3(nq,NCOL_AMAT3)
|
||||||
double precision :: Cmat3(nq,NCOL_CMAT3)
|
double precision :: Cmat3(nq,NCOL_CMAT3)
|
||||||
|
|
||||||
|
#ifdef USE_LIBXC
|
||||||
double precision :: fac
|
double precision :: fac
|
||||||
|
|
||||||
double precision, external :: ddot
|
double precision, external :: ddot
|
||||||
logical gga,mgga,dolap
|
logical gga,mgga,dolap
|
||||||
logical,external :: nwchem_libxc_family
|
logical,external :: nwchem_libxc_family
|
||||||
|
|
||||||
|
#if LIBXC_NP_SIZE == 4
|
||||||
|
integer*4 nqs
|
||||||
|
#elif LIBXC_NP_SIZE == 8
|
||||||
integer(c_size_t) :: nqs
|
integer(c_size_t) :: nqs
|
||||||
#ifdef USE_LIBXC
|
#else
|
||||||
|
#error "unexpected value for LIBXC_NP_SIZE"
|
||||||
|
#endif
|
||||||
type(xc_f03_func_t) :: xcfunc
|
type(xc_f03_func_t) :: xcfunc
|
||||||
|
|
||||||
gga = .false.
|
gga = .false.
|
||||||
|
|
@ -154,22 +160,39 @@
|
||||||
|
|
||||||
call xc_f03_func_init(xcfunc,libxc_funcs(ifunc),polarized)
|
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_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)
|
call xc_f03_func_set_zeta_threshold(xcfunc, 1d-10)
|
||||||
|
#endif
|
||||||
select case(libxc_family(ifunc))
|
select case(libxc_family(ifunc))
|
||||||
|
#if XC_MAJOR_VERSION > 4
|
||||||
case (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA)
|
case (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA)
|
||||||
|
#else
|
||||||
|
case (XC_FAMILY_LDA)
|
||||||
|
#endif
|
||||||
if ((.not.do_2nd) .and. (.not.do_3rd)) then
|
if ((.not.do_2nd) .and. (.not.do_3rd)) then
|
||||||
call xc_f03_lda_exc_vxc(xcfunc,nqs,
|
call xc_f03_lda_exc_vxc(xcfunc,nqs,
|
||||||
$ dbl_mb(krho),dbl_mb(kexc),dbl_mb(kvrho))
|
$ dbl_mb(krho),dbl_mb(kexc),dbl_mb(kvrho))
|
||||||
elseif (.not.do_3rd) then
|
elseif (.not.do_3rd) then
|
||||||
|
#if XC_MAJOR_VERSION > 4
|
||||||
call xc_f03_lda_exc_vxc_fxc(xcfunc,nqs,dbl_mb(krho),
|
call xc_f03_lda_exc_vxc_fxc(xcfunc,nqs,dbl_mb(krho),
|
||||||
$ dbl_mb(kexc),dbl_mb(kvrho),dbl_mb(kv2rho2))
|
$ 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
|
else
|
||||||
|
#if XC_MAJOR_VERSION > 4
|
||||||
call xc_f03_lda_exc_vxc_fxc_kxc(xcfunc,nqs,dbl_mb(krho),
|
call xc_f03_lda_exc_vxc_fxc_kxc(xcfunc,nqs,dbl_mb(krho),
|
||||||
$ dbl_mb(kexc),dbl_mb(kvrho),dbl_mb(kv2rho2),
|
$ dbl_mb(kexc),dbl_mb(kvrho),dbl_mb(kv2rho2),
|
||||||
$ dbl_mb(kv3rho3))
|
$ 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
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -186,17 +209,43 @@
|
||||||
$ dbl_mb(kexc),
|
$ dbl_mb(kexc),
|
||||||
$ dbl_mb(kvrho),dbl_mb(kvsigma))
|
$ dbl_mb(kvrho),dbl_mb(kvsigma))
|
||||||
elseif (.not.do_3rd) then
|
elseif (.not.do_3rd) then
|
||||||
|
#if XC_MAJOR_VERSION > 4
|
||||||
call xc_f03_gga_exc_vxc_fxc(xcfunc,nqs,
|
call xc_f03_gga_exc_vxc_fxc(xcfunc,nqs,
|
||||||
$ dbl_mb(krho),dbl_mb(ksigma),dbl_mb(kexc),
|
$ dbl_mb(krho),dbl_mb(ksigma),dbl_mb(kexc),
|
||||||
$ dbl_mb(kvrho),dbl_mb(kvsigma),dbl_mb(kv2rho2),
|
$ dbl_mb(kvrho),dbl_mb(kvsigma),dbl_mb(kv2rho2),
|
||||||
$ dbl_mb(kv2rhosig),dbl_mb(kv2sig2))
|
$ 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
|
else
|
||||||
|
#if XC_MAJOR_VERSION > 4
|
||||||
call xc_f03_gga_exc_vxc_fxc_kxc(xcfunc,nqs,
|
call xc_f03_gga_exc_vxc_fxc_kxc(xcfunc,nqs,
|
||||||
$ dbl_mb(krho),dbl_mb(ksigma),dbl_mb(kexc),
|
$ dbl_mb(krho),dbl_mb(ksigma),dbl_mb(kexc),
|
||||||
$ dbl_mb(kvrho),dbl_mb(kvsigma),dbl_mb(kv2rho2),
|
$ dbl_mb(kvrho),dbl_mb(kvsigma),dbl_mb(kv2rho2),
|
||||||
$ dbl_mb(kv2rhosig),dbl_mb(kv2sig2),
|
$ dbl_mb(kv2rhosig),dbl_mb(kv2sig2),
|
||||||
$ dbl_mb(kv3rho3),dbl_mb(kv3rho2sig),
|
$ dbl_mb(kv3rho3),dbl_mb(kv3rho2sig),
|
||||||
$ dbl_mb(kv3rhosig2),dbl_mb(kv3sig3))
|
$ 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
|
endif
|
||||||
else
|
else
|
||||||
if ((.not.do_2nd).and.(.not.do_3rd)) then
|
if ((.not.do_2nd).and.(.not.do_3rd)) then
|
||||||
|
|
@ -204,17 +253,41 @@
|
||||||
$ dbl_mb(krho),dbl_mb(ksigma),
|
$ dbl_mb(krho),dbl_mb(ksigma),
|
||||||
$ dbl_mb(kvrho),dbl_mb(kvsigma))
|
$ dbl_mb(kvrho),dbl_mb(kvsigma))
|
||||||
elseif (.not.do_3rd) then
|
elseif (.not.do_3rd) then
|
||||||
|
#if XC_MAJOR_VERSION > 4
|
||||||
call xc_f03_gga_vxc_fxc(xcfunc,nqs,
|
call xc_f03_gga_vxc_fxc(xcfunc,nqs,
|
||||||
$ dbl_mb(krho),dbl_mb(ksigma),
|
$ dbl_mb(krho),dbl_mb(ksigma),
|
||||||
$ dbl_mb(kvrho),dbl_mb(kvsigma),dbl_mb(kv2rho2),
|
$ dbl_mb(kvrho),dbl_mb(kvsigma),dbl_mb(kv2rho2),
|
||||||
$ dbl_mb(kv2rhosig),dbl_mb(kv2sig2))
|
$ 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
|
else
|
||||||
|
#if XC_MAJOR_VERSION > 4
|
||||||
call xc_f03_gga_vxc_fxc_kxc(xcfunc,nqs,
|
call xc_f03_gga_vxc_fxc_kxc(xcfunc,nqs,
|
||||||
$ dbl_mb(krho),dbl_mb(ksigma),
|
$ dbl_mb(krho),dbl_mb(ksigma),
|
||||||
$ dbl_mb(kvrho),dbl_mb(kvsigma),dbl_mb(kv2rho2),
|
$ dbl_mb(kvrho),dbl_mb(kvsigma),dbl_mb(kv2rho2),
|
||||||
$ dbl_mb(kv2rhosig),dbl_mb(kv2sig2),
|
$ dbl_mb(kv2rhosig),dbl_mb(kv2sig2),
|
||||||
$ dbl_mb(kv3rho3),dbl_mb(kv3rho2sig),
|
$ dbl_mb(kv3rho3),dbl_mb(kv3rho2sig),
|
||||||
$ dbl_mb(kv3rhosig2),dbl_mb(kv3sig3))
|
$ 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
|
endif
|
||||||
call dfill(nq,0d0,dbl_mb(kexc),1)
|
call dfill(nq,0d0,dbl_mb(kexc),1)
|
||||||
endif
|
endif
|
||||||
|
|
@ -222,8 +295,8 @@
|
||||||
case (XC_FAMILY_MGGA, XC_FAMILY_HYB_MGGA)
|
case (XC_FAMILY_MGGA, XC_FAMILY_HYB_MGGA)
|
||||||
gga = .true.
|
gga = .true.
|
||||||
mgga = .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.
|
if (iand(libxc_flags(ifunc),xc_flags_have_exc).eq.
|
||||||
$ xc_flags_have_exc) then
|
$ xc_flags_have_exc) then
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,11 @@
|
||||||
xcfamily = xc_f03_func_info_get_family(xcinfo)
|
xcfamily = xc_f03_func_info_get_family(xcinfo)
|
||||||
|
|
||||||
select case(xcfamily)
|
select case(xcfamily)
|
||||||
|
#if XC_MAJOR_VERSION > 4
|
||||||
case (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA)
|
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_GGA, XC_FAMILY_HYB_GGA)
|
||||||
case (XC_FAMILY_MGGA, XC_FAMILY_HYB_MGGA)
|
case (XC_FAMILY_MGGA, XC_FAMILY_HYB_MGGA)
|
||||||
case default
|
case default
|
||||||
|
|
@ -50,7 +54,11 @@
|
||||||
endselect
|
endselect
|
||||||
|
|
||||||
select case(xcfamily)
|
select case(xcfamily)
|
||||||
|
#if XC_MAJOR_VERSION > 4
|
||||||
case (XC_FAMILY_HYB_LDA, XC_FAMILY_HYB_GGA, XC_FAMILY_HYB_MGGA)
|
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
|
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)
|
call xc_f03_hyb_cam_coef(xcfunc,cam_omega,cam_alpha,cam_beta)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,9 +73,7 @@
|
||||||
subroutine nwchem_libxc_print
|
subroutine nwchem_libxc_print
|
||||||
use,intrinsic :: iso_c_binding
|
use,intrinsic :: iso_c_binding
|
||||||
#ifdef USE_LIBXC
|
#ifdef USE_LIBXC
|
||||||
use xc_f03_lib_m, only: xc_f03_version_string,
|
use xc_f03_lib_m, only: xc_f03_functional_get_name
|
||||||
$ xc_f03_reference,
|
|
||||||
$ xc_f03_functional_get_name
|
|
||||||
#endif
|
#endif
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
|
|
@ -109,9 +107,7 @@
|
||||||
subroutine nwchem_libxc_print_header
|
subroutine nwchem_libxc_print_header
|
||||||
use,intrinsic :: iso_c_binding
|
use,intrinsic :: iso_c_binding
|
||||||
#ifdef USE_LIBXC
|
#ifdef USE_LIBXC
|
||||||
use xc_f03_lib_m, only: xc_f03_version_string,
|
use xc_f03_lib_m, only: xc_f03_version_string
|
||||||
$ xc_f03_reference,
|
|
||||||
$ xc_f03_functional_get_name
|
|
||||||
#endif
|
#endif
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -616,7 +616,7 @@ c
|
||||||
call tddft_grad_compute_dao(ipol,nao,nocc,g_mo,g_d)
|
call tddft_grad_compute_dao(ipol,nao,nocc,g_mo,g_d)
|
||||||
c DEBUG
|
c DEBUG
|
||||||
c call ga_print(g_d)
|
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'
|
if (oroot) write(LuOut,*)'DEBUG: '//pname//'D'
|
||||||
call tddft_grad_print_array(ipol,1,g_d,dble(ipol))
|
call tddft_grad_print_array(ipol,1,g_d,dble(ipol))
|
||||||
endif
|
endif
|
||||||
|
|
@ -640,7 +640,7 @@ c
|
||||||
enddo
|
enddo
|
||||||
c DEBUG
|
c DEBUG
|
||||||
c call ga_print(g_p_ao)
|
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'
|
if (oroot) write(LuOut,*)'DEBUG: '//pname//'P'
|
||||||
c call tddft_grad_print_array(ipol,1,g_p_ao,dble(ipol))
|
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))
|
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 Daniel (11-30-12): Print X+Y and X-Y in the AO basis
|
||||||
c DEBUG
|
c DEBUG
|
||||||
c call ga_print(g_d(5))
|
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)'
|
if (oroot) write(LuOut,*)'DEBUG: '//pname//'(X+Y)'
|
||||||
call tddft_grad_print_array(ipol,1,g_d(5),dble(ipol))
|
call tddft_grad_print_array(ipol,1,g_d(5),dble(ipol))
|
||||||
endif
|
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 density matrix contribution as well).
|
||||||
c DEBUG
|
c DEBUG
|
||||||
c call ga_print(g_wp_ao)
|
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'
|
if (oroot) write(LuOut,*)'DEBUG: '//pname//'W'
|
||||||
call tddft_grad_print_array(1,1,g_wp_ao,dble(ipol))
|
call tddft_grad_print_array(1,1,g_wp_ao,dble(ipol))
|
||||||
endif
|
endif
|
||||||
|
|
@ -1140,7 +1140,7 @@ c Daniel (4-8-13): Need conditional statement here for CAM functionals
|
||||||
c
|
c
|
||||||
c Print results if so required
|
c Print results if so required
|
||||||
c
|
c
|
||||||
if (tddft_grad_util_print('tddft grad terms',print_high)) then
|
if (util_print('tddft grad terms',print_high)) then
|
||||||
if (oroot) then
|
if (oroot) then
|
||||||
write(LuOut,5)ir
|
write(LuOut,5)ir
|
||||||
5 format(' The Excited State Energy Gradient by Terms',
|
5 format(' The Excited State Energy Gradient by Terms',
|
||||||
|
|
|
||||||
|
|
@ -102,7 +102,7 @@ c
|
||||||
call nga_scale_patch(g_tp(ip),blo,bhi,0.5d0)
|
call nga_scale_patch(g_tp(ip),blo,bhi,0.5d0)
|
||||||
enddo
|
enddo
|
||||||
c
|
c
|
||||||
if (tddft_grad_util_print(pname,print_debug)) then
|
if (util_print(pname,print_debug)) then
|
||||||
oroot = ga_nodeid().eq.0
|
oroot = ga_nodeid().eq.0
|
||||||
if (oroot) write(LuOut,*)'DEBUG: '//pname//'P'
|
if (oroot) write(LuOut,*)'DEBUG: '//pname//'P'
|
||||||
call tddft_grad_print_array(ipol,nroots,g_tp,dble(ipol))
|
call tddft_grad_print_array(ipol,nroots,g_tp,dble(ipol))
|
||||||
|
|
|
||||||
|
|
@ -120,17 +120,22 @@ c
|
||||||
c
|
c
|
||||||
c Daniel (2-8-13): This is a local TDA variable, so that we don't need
|
c Daniel (2-8-13): This is a local TDA variable, so that we don't need
|
||||||
c to change the global tda variable.
|
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
|
c
|
||||||
double precision Exc(2) ! Exchange-correlation energy
|
double precision Exc(2) ! Exchange-correlation energy
|
||||||
c
|
c
|
||||||
pname="tddft_grad_compute_r: "
|
pname="tddft_grad_compute_r: "
|
||||||
iwhich = 0 ! call to tddft_nga_cont()
|
iwhich = 0 ! call to tddft_nga_cont()
|
||||||
|
write(6,*) ' 0 tda ',tda
|
||||||
c
|
c
|
||||||
c 1. Do the T contributions
|
c 1. Do the T contributions
|
||||||
c
|
c
|
||||||
c 1.1. Create global array to hold Tuv
|
c 1.1. Create global array to hold Tuv
|
||||||
c
|
c
|
||||||
|
oprint=util_print('tddft_grad_r',print_debug)
|
||||||
idim(1) = nroot*ipol
|
idim(1) = nroot*ipol
|
||||||
idim(2) = nao
|
idim(2) = nao
|
||||||
idim(3) = nao
|
idim(3) = nao
|
||||||
|
|
@ -180,6 +185,7 @@ c fock_xc:triplet here for restricted triplet calculations to work.
|
||||||
c
|
c
|
||||||
call tddft_nga_cont(rtdb,ihdl_geom,ihdl_bfao,g_tuv,g_apbt,g_ambt,
|
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)
|
+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 Daniel (2-26-13): Reset fock_xc:triplet here for restricted triplet
|
||||||
c calculations to work.
|
c calculations to work.
|
||||||
if (otriplet) then
|
if (otriplet) then
|
||||||
|
|
@ -217,11 +223,11 @@ c
|
||||||
c
|
c
|
||||||
c 1. Done T contributions
|
c 1. Done T contributions
|
||||||
cDEBUG
|
cDEBUG
|
||||||
c if (tddft_grad_util_print('tddft grad r',print_debug)) then
|
if (oprint) then
|
||||||
c oroot = ga_nodeid().eq.0
|
oroot = ga_nodeid().eq.0
|
||||||
c if (oroot) write(LuOut,*)'DEBUG A: tddft_grad_comp_r: R'
|
if (oroot) write(LuOut,*)'DEBUG A: tddft_grad_comp_r: R_T'
|
||||||
c call tddft_grad_print_array(ipol,nroot,g_r,dble(ipol))
|
call tddft_grad_print_array(ipol,nroot,g_r,dble(ipol))
|
||||||
c endif
|
endif
|
||||||
cDEBUG
|
cDEBUG
|
||||||
c
|
c
|
||||||
c 2. Do the (X+Y) and (X-Y) contributions
|
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)
|
+ 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))
|
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)
|
+ 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 2.5 Compute (A+B)X, (A-B)X, (A+B)Y and (A-B)Y
|
||||||
c
|
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,
|
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,
|
+nao,ipol,tol2e,tdaloc,oskel,kfac,lhashf,otriplet,nroot,iwhich,
|
||||||
+lhascd)
|
+lhascd)
|
||||||
|
|
@ -349,6 +333,21 @@ c 2.10 Transform (A+B)(X+Y) to MO basis occupied-occupied block only
|
||||||
c
|
c
|
||||||
call tddft_grad_trans_ao2mo(ipol,nao,nfc,naoc,nocc,nav,nfv,
|
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")
|
+ 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
|
||||||
c 2.11 Add -sum_j (X+Y)ja [(A+B)(X+Y)ji] to Ria
|
c 2.11 Add -sum_j (X+Y)ja [(A+B)(X+Y)ji] to Ria
|
||||||
c
|
c
|
||||||
|
|
@ -546,11 +545,21 @@ c
|
||||||
c 2. Done (X+Y) and (X-Y) contributions
|
c 2. Done (X+Y) and (X-Y) contributions
|
||||||
c
|
c
|
||||||
cDEBUG
|
cDEBUG
|
||||||
c if (tddft_grad_util_print('tddft grad r',print_debug)) then
|
if (oprint) then
|
||||||
c oroot = ga_nodeid().eq.0
|
oroot = ga_nodeid().eq.0
|
||||||
c if (oroot) write(LuOut,*)'DEBUG B: tddft_grad_comp_r: R'
|
if (oroot) write(LuOut,*)'DEBUG B: tddft_grad_comp_r: R_x'
|
||||||
c call tddft_grad_print_array(ipol,nroot,g_r,dble(ipol))
|
call tddft_grad_print_array(ipol,nroot,g_r_x,dble(ipol))
|
||||||
c endif
|
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
|
cDEBUG
|
||||||
c
|
c
|
||||||
c 3. Do the Gxc contributions
|
c 3. Do the Gxc contributions
|
||||||
|
|
@ -664,14 +673,14 @@ c
|
||||||
enddo
|
enddo
|
||||||
call ga_sync()
|
call ga_sync()
|
||||||
cDEBUG
|
cDEBUG
|
||||||
c if (tddft_grad_util_print('tddft grad r',print_debug)) then
|
if (oprint) then
|
||||||
c oroot = ga_nodeid().eq.0
|
oroot = ga_nodeid().eq.0
|
||||||
c if (oroot) write(LuOut,*)'DEBUG C: tddft_grad_comp_r: den'
|
if (oroot) write(LuOut,*)'DEBUG C: tddft_grad_comp_r: den'
|
||||||
c call tddft_grad_print_array(ipol,nroot,int_mb(k_den2),
|
call tddft_grad_print_array(ipol,nroot,int_mb(k_den2),
|
||||||
c + dble(ipol))
|
+ dble(ipol))
|
||||||
c call tddft_grad_print_array(ipol,nroot,int_mb(k_den2+1),
|
call tddft_grad_print_array(ipol,nroot,int_mb(k_den2+1),
|
||||||
c + dble(ipol))
|
+ dble(ipol))
|
||||||
c endif
|
endif
|
||||||
cDEBUG
|
cDEBUG
|
||||||
c Daniel (1-10-13): For a single restricted root ngxc = 1 and there are 2
|
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
|
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.)
|
+ int_mb(k_gxc), Exc, ipol, .false.)
|
||||||
call ga_sync()
|
call ga_sync()
|
||||||
c DEBUG
|
c DEBUG
|
||||||
if (tddft_grad_util_print('tddft grad r',print_debug)) then
|
if (oprint) then
|
||||||
oroot = ga_nodeid().eq.0
|
oroot = ga_nodeid().eq.0
|
||||||
if (oroot) write(LuOut,*)'DEBUG: '//pname//'gxc'
|
if (oroot) write(LuOut,*)'DEBUG: '//pname//'gxc'
|
||||||
call tddft_grad_print_array(ipol,nroot,int_mb(k_gxc),
|
call tddft_grad_print_array(ipol,nroot,int_mb(k_gxc),
|
||||||
|
|
@ -734,9 +743,9 @@ c
|
||||||
endif ! xc_gotxc()
|
endif ! xc_gotxc()
|
||||||
c
|
c
|
||||||
c Debug print
|
c Debug print
|
||||||
if (tddft_grad_util_print('tddft grad r',print_debug)) then
|
if (oprint) then
|
||||||
oroot = ga_nodeid().eq.0
|
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))
|
call tddft_grad_print_array(ipol,nroot,g_r,dble(ipol))
|
||||||
endif
|
endif
|
||||||
c
|
c
|
||||||
|
|
|
||||||
|
|
@ -147,7 +147,7 @@ c (X-Y)ias(X-Y)ibs
|
||||||
c
|
c
|
||||||
enddo ! ip = 1, ipol
|
enddo ! ip = 1, ipol
|
||||||
c
|
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
|
oroot = ga_nodeid().eq.0
|
||||||
if (oroot) write(LuOut,*)'DEBUG: '//pname//'T'
|
if (oroot) write(LuOut,*)'DEBUG: '//pname//'T'
|
||||||
call tddft_grad_print_array(ipol,nroot,g_tp,dble(ipol))
|
call tddft_grad_print_array(ipol,nroot,g_tp,dble(ipol))
|
||||||
|
|
|
||||||
|
|
@ -141,7 +141,8 @@ c
|
||||||
parameter (oskel=.false.)
|
parameter (oskel=.false.)
|
||||||
double precision Exc(2) ! Exchange-correlation energy
|
double precision Exc(2) ! Exchange-correlation energy
|
||||||
c
|
c
|
||||||
logical tdaloc
|
logical tdaloc, tddft_grad_tdaloc
|
||||||
|
external tddft_grad_tdaloc
|
||||||
logical doitw,doitz
|
logical doitw,doitz
|
||||||
logical doitxpy1,doitxpy2
|
logical doitxpy1,doitxpy2
|
||||||
logical doitxmy1,doitxmy2
|
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.)
|
+ int_mb(k_gxc), Exc, ipol, .false.)
|
||||||
call ga_sync()
|
call ga_sync()
|
||||||
c DEBUG
|
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
|
oroot = ga_nodeid().eq.0
|
||||||
if (oroot) write(LuOut,*)'DEBUG: '//pname//'gxc'
|
if (oroot) write(LuOut,*)'DEBUG: '//pname//'gxc'
|
||||||
call tddft_grad_print_array(ipol,nroots,int_mb(k_gxc),
|
call tddft_grad_print_array(ipol,nroots,int_mb(k_gxc),
|
||||||
|
|
@ -746,29 +747,7 @@ c
|
||||||
c
|
c
|
||||||
c - Compute (A+B)X, (A-B)X, (A+B)Y and (A-B)Y
|
c - Compute (A+B)X, (A-B)X, (A+B)Y and (A-B)Y
|
||||||
c
|
c
|
||||||
c Daniel (1-7-13): We manipulate the code here because the
|
tdaloc=tddft_grad_tdaloc(rtdb,tda,lhashf)
|
||||||
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
|
|
||||||
call tddft_nga_cont(rtdb,ihdl_geom,ihdl_bfao,g_x,g_apbx,g_ambx,
|
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,
|
+ nao,ipol,tol2e,tdaloc,oskel,kfac,lhashf,otriplet,nroots,iwhich,
|
||||||
+ lhascd)
|
+ lhascd)
|
||||||
|
|
@ -1190,7 +1169,7 @@ c
|
||||||
enddo
|
enddo
|
||||||
call ga_sync()
|
call ga_sync()
|
||||||
c
|
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
|
oroot = ga_nodeid().eq.0
|
||||||
if (oroot) write(LuOut,*)'DEBUG: '//pname//'W'
|
if (oroot) write(LuOut,*)'DEBUG: '//pname//'W'
|
||||||
call tddft_grad_print_array(ipol,nroots,g_w,dble(ipol))
|
call tddft_grad_print_array(ipol,nroots,g_w,dble(ipol))
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,6 @@ c
|
||||||
c
|
c
|
||||||
logical odiff,oprint
|
logical odiff,oprint
|
||||||
parameter (odiff=.true.)
|
parameter (odiff=.true.)
|
||||||
parameter (oprint=.true.)
|
|
||||||
c
|
c
|
||||||
c Input:
|
c Input:
|
||||||
c
|
c
|
||||||
|
|
@ -124,35 +123,20 @@ c
|
||||||
logical oroot
|
logical oroot
|
||||||
c
|
c
|
||||||
character*32 pname
|
character*32 pname
|
||||||
logical tdaloc
|
logical tdaloc, tddft_grad_tdaloc
|
||||||
|
external tddft_grad_tdaloc
|
||||||
|
logical oprint_debug
|
||||||
c
|
c
|
||||||
pname= "tddft_grad_solve: "
|
pname= "tddft_grad_solve: "
|
||||||
|
oprint=util_print('tddft_grad_solve',print_medium)
|
||||||
|
oprint_debug=util_print('tddft_grad_solvecphf',print_debug)
|
||||||
c
|
c
|
||||||
c Initialize the common block for tddft_grad_solve_product and
|
c Initialize the common block for tddft_grad_solve_product and
|
||||||
c tddft_grad_solve_precond
|
c tddft_grad_solve_precond
|
||||||
c
|
c
|
||||||
oroot = ga_nodeid().eq.0
|
oroot = ga_nodeid().eq.0
|
||||||
c
|
c
|
||||||
c Daniel (1-5-13): For a CIS calculation, we still need to solve the
|
tdaloc=tddft_grad_tdaloc(rtdb,tda,lhashf)
|
||||||
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
|
|
||||||
c End test
|
c End test
|
||||||
tdg_tol2e = tol2e
|
tdg_tol2e = tol2e
|
||||||
tdg_kfac = kfac
|
tdg_kfac = kfac
|
||||||
|
|
@ -177,7 +161,6 @@ c End test
|
||||||
tdg_g_mo(1) = g_mo(1)
|
tdg_g_mo(1) = g_mo(1)
|
||||||
tdg_g_mo(2) = g_mo(2)
|
tdg_g_mo(2) = g_mo(2)
|
||||||
tdg_e_mo = iptr_mo_e
|
tdg_e_mo = iptr_mo_e
|
||||||
c tdg_tda = tda
|
|
||||||
tdg_tda = tdaloc
|
tdg_tda = tdaloc
|
||||||
tdg_oskel = oskel
|
tdg_oskel = oskel
|
||||||
tdg_lhashf = lhashf
|
tdg_lhashf = lhashf
|
||||||
|
|
@ -224,6 +207,14 @@ c
|
||||||
call ga_copy(g_b,g_x)
|
call ga_copy(g_b,g_x)
|
||||||
call tddft_grad_solve_precond(g_x,0.0d0)
|
call tddft_grad_solve_precond(g_x,0.0d0)
|
||||||
endif
|
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
|
c
|
||||||
call ga_lkain(rtdb,g_x,g_b,tddft_grad_solve_product,
|
call ga_lkain(rtdb,g_x,g_b,tddft_grad_solve_product,
|
||||||
+ tddft_grad_solve_precond,solve_thresh,
|
+ tddft_grad_solve_precond,solve_thresh,
|
||||||
|
|
@ -254,7 +245,7 @@ c
|
||||||
if (.not.ga_destroy(g_x))
|
if (.not.ga_destroy(g_x))
|
||||||
+ call errquit(pname//'failed to destroy g_x',0, GA_ERR)
|
+ call errquit(pname//'failed to destroy g_x',0, GA_ERR)
|
||||||
c
|
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'
|
if (oroot) write(LuOut,*)'DEBUG: '//pname//'Z'
|
||||||
call tddft_grad_print_array(ipol,nroots,g_z,dble(ipol))
|
call tddft_grad_print_array(ipol,nroots,g_z,dble(ipol))
|
||||||
endif
|
endif
|
||||||
|
|
@ -266,4 +257,41 @@ c Reset fock_xc:triplet here for restricted triplet calculations
|
||||||
endif
|
endif
|
||||||
c
|
c
|
||||||
end
|
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
|
||||||
|
|
|
||||||
|
|
@ -168,6 +168,9 @@ c Get the start times
|
||||||
c
|
c
|
||||||
c Init pstat
|
c Init pstat
|
||||||
call dft_pstat_init(rtdb)
|
call dft_pstat_init(rtdb)
|
||||||
|
c
|
||||||
|
call util_print_push
|
||||||
|
call util_print_rtdb_load(rtdb,'tddft')
|
||||||
c
|
c
|
||||||
c Print header
|
c Print header
|
||||||
if (oroot) call tddft_grad_print_header(luout)
|
if (oroot) call tddft_grad_print_header(luout)
|
||||||
|
|
@ -225,7 +228,7 @@ c Print calculation information
|
||||||
c
|
c
|
||||||
c Print start times
|
c Print start times
|
||||||
if (oroot) then
|
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,*)
|
||||||
write(luout,"(' Start at time cpu:',f11.1,'s wall:',f11.1,
|
write(luout,"(' Start at time cpu:',f11.1,'s wall:',f11.1,
|
||||||
+ 's')")-tddft_grad_cpu,-tddft_grad_wall
|
+ '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_cpu = tddft_grad_cpu + util_cpusec()
|
||||||
tddft_grad_wall = tddft_grad_wall + util_wallsec()
|
tddft_grad_wall = tddft_grad_wall + util_wallsec()
|
||||||
if (oroot) then
|
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,*)
|
||||||
write(LuOut,"(' TDDFT Gradient time cpu:',f11.1,'s wall:',
|
write(LuOut,"(' TDDFT Gradient time cpu:',f11.1,'s wall:',
|
||||||
+ f11.1,'s')")tddft_grad_cpu,tddft_grad_wall
|
+ f11.1,'s')")tddft_grad_cpu,tddft_grad_wall
|
||||||
|
|
@ -496,6 +499,7 @@ c
|
||||||
c <-- MN solvation models
|
c <-- MN solvation models
|
||||||
c
|
c
|
||||||
call dft_pstat_print
|
call dft_pstat_print
|
||||||
|
call util_print_pop
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
c $Id$
|
c $Id$
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,14 @@
|
||||||
|
|
||||||
|
|
||||||
LIBRARY = libnwpw.a
|
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 =
|
LIB_DEFINES =
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -42,9 +42,6 @@ endif
|
||||||
|
|
||||||
ifeq ($(USE_MPIF),y)
|
ifeq ($(USE_MPIF),y)
|
||||||
LIB_DEFINES += -DMPI
|
LIB_DEFINES += -DMPI
|
||||||
ifneq ($(MPI_INCLUDE),)
|
|
||||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
|
|
||||||
endif
|
|
||||||
else
|
else
|
||||||
LIB_DEFINES += -DTCGMSG
|
LIB_DEFINES += -DTCGMSG
|
||||||
endif
|
endif
|
||||||
|
|
|
||||||
|
|
@ -47,9 +47,6 @@ endif
|
||||||
|
|
||||||
ifeq ($(USE_MPIF),y)
|
ifeq ($(USE_MPIF),y)
|
||||||
LIB_DEFINES += -DMPI
|
LIB_DEFINES += -DMPI
|
||||||
ifneq ($(MPI_INCLUDE),)
|
|
||||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
|
|
||||||
endif
|
|
||||||
else
|
else
|
||||||
LIB_DEFINES += -DTCGMSG
|
LIB_DEFINES += -DTCGMSG
|
||||||
endif
|
endif
|
||||||
|
|
|
||||||
|
|
@ -43,9 +43,6 @@ endif
|
||||||
|
|
||||||
ifeq ($(USE_MPIF),y)
|
ifeq ($(USE_MPIF),y)
|
||||||
LIB_DEFINES += -DMPI
|
LIB_DEFINES += -DMPI
|
||||||
ifneq ($(MPI_INCLUDE),)
|
|
||||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
|
|
||||||
endif
|
|
||||||
else
|
else
|
||||||
LIB_DEFINES += -DTCGMSG
|
LIB_DEFINES += -DTCGMSG
|
||||||
endif
|
endif
|
||||||
|
|
|
||||||
|
|
@ -43,9 +43,6 @@ endif
|
||||||
|
|
||||||
ifeq ($(USE_MPIF),y)
|
ifeq ($(USE_MPIF),y)
|
||||||
LIB_DEFINES += -DMPI
|
LIB_DEFINES += -DMPI
|
||||||
ifneq ($(MPI_INCLUDE),)
|
|
||||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
|
|
||||||
endif
|
|
||||||
else
|
else
|
||||||
LIB_DEFINES += -DTCGMSG
|
LIB_DEFINES += -DTCGMSG
|
||||||
endif
|
endif
|
||||||
|
|
|
||||||
|
|
@ -41,9 +41,6 @@ endif
|
||||||
|
|
||||||
ifeq ($(USE_MPIF),y)
|
ifeq ($(USE_MPIF),y)
|
||||||
LIB_DEFINES += -DMPI
|
LIB_DEFINES += -DMPI
|
||||||
ifneq ($(MPI_INCLUDE),)
|
|
||||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
|
|
||||||
endif
|
|
||||||
else
|
else
|
||||||
USES_BLAS += D3dB-tcgmsg.F
|
USES_BLAS += D3dB-tcgmsg.F
|
||||||
LIB_DEFINES += -DTCGMSG
|
LIB_DEFINES += -DTCGMSG
|
||||||
|
|
|
||||||
|
|
@ -43,9 +43,6 @@ endif
|
||||||
|
|
||||||
ifeq ($(USE_MPIF),y)
|
ifeq ($(USE_MPIF),y)
|
||||||
LIB_DEFINES += -DMPI
|
LIB_DEFINES += -DMPI
|
||||||
ifneq ($(MPI_INCLUDE),)
|
|
||||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
|
|
||||||
endif
|
|
||||||
else
|
else
|
||||||
LIB_DEFINES += -DTCGMSG
|
LIB_DEFINES += -DTCGMSG
|
||||||
endif
|
endif
|
||||||
|
|
|
||||||
|
|
@ -41,9 +41,6 @@ endif
|
||||||
|
|
||||||
ifeq ($(USE_MPIF),y)
|
ifeq ($(USE_MPIF),y)
|
||||||
LIB_DEFINES += -DMPI
|
LIB_DEFINES += -DMPI
|
||||||
ifneq ($(MPI_INCLUDE),)
|
|
||||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
|
|
||||||
endif
|
|
||||||
else
|
else
|
||||||
LIB_DEFINES += -DTCGMSG
|
LIB_DEFINES += -DTCGMSG
|
||||||
endif
|
endif
|
||||||
|
|
|
||||||
|
|
@ -40,9 +40,6 @@ include ../../../config/makelib.h
|
||||||
|
|
||||||
ifeq ($(USE_MPIF),y)
|
ifeq ($(USE_MPIF),y)
|
||||||
LIB_DEFINES += -DMPI
|
LIB_DEFINES += -DMPI
|
||||||
ifneq ($(MPI_INCLUDE),)
|
|
||||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
|
|
||||||
endif
|
|
||||||
ifeq ($(DEV_GA),y)
|
ifeq ($(DEV_GA),y)
|
||||||
LIB_DEFINES += -DGA_DEV
|
LIB_DEFINES += -DGA_DEV
|
||||||
endif
|
endif
|
||||||
|
|
|
||||||
|
|
@ -5,14 +5,24 @@ do_exit(){
|
||||||
echo ' '
|
echo ' '
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
rm -f dftd3.f nwpwxc_vdw3a.F
|
check_patch(){
|
||||||
export PATH=`pwd`:$PATH
|
|
||||||
if [[ ! -x "$(command -v patch)" ]]; then
|
if [[ ! -x "$(command -v patch)" ]]; then
|
||||||
#try to download busybox for x86_64 linux
|
#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 "patch command missing"
|
||||||
echo "downloading busybox to use patch command"
|
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
|
if [ "$?" != 0 ]; then
|
||||||
do_exit
|
do_exit
|
||||||
else
|
else
|
||||||
|
|
@ -22,7 +32,13 @@ if [[ ! -x "$(command -v patch)" ]]; then
|
||||||
do_exit
|
do_exit
|
||||||
fi
|
fi
|
||||||
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/"
|
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")
|
declare -a urls=("$URL1" "$URL1" "$URL1" "$URL2" "$URL2")
|
||||||
TGZ=dftd3.tgz
|
TGZ=dftd3.tgz
|
||||||
|
|
@ -47,7 +63,7 @@ else
|
||||||
echo chchc ${COM1} ${urls[$tries]}/"$TGZ" ${COM2}
|
echo chchc ${COM1} ${urls[$tries]}/"$TGZ" ${COM2}
|
||||||
tries=1 ; until [ "$tries" -ge 5 ] ; do
|
tries=1 ; until [ "$tries" -ge 5 ] ; do
|
||||||
${COM1} ${urls[$tries]}/"$TGZ" ${COM2} && break
|
${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
|
fi
|
||||||
if [[ ! -f "$TGZ" ]]; then
|
if [[ ! -f "$TGZ" ]]; then
|
||||||
echo "download failed"
|
echo "download failed"
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,8 @@
|
||||||
#
|
|
||||||
# $Id$
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
all: ; texi2dvi peigs.texi
|
all: ; texi2pdf peigs.texi
|
||||||
dvips peigs.dvi
|
|
||||||
|
|
||||||
#.EXPORT_ALL_VARIABLES:
|
.EXPORT_ALL_VARIABLES:
|
||||||
|
|
||||||
.PHONY : clean
|
.PHONY : clean
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
File diff suppressed because it is too large
Load diff
3943
src/peigs/doc/peigs.texi
Normal file
3943
src/peigs/doc/peigs.texi
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -1,6 +1,6 @@
|
||||||
# $Id$
|
# $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
|
||||||
latex rimp2-grad
|
latex rimp2-grad
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,3 @@ This directory contains
|
||||||
rimp2-grad.tex
|
rimp2-grad.tex
|
||||||
RI-MP2 frozen core gradient equations, as a superset of Robert
|
RI-MP2 frozen core gradient equations, as a superset of Robert
|
||||||
Harrison's writeup of the exact MP2 frozen core gradient.
|
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
|
|
||||||
|
|
|
||||||
|
|
@ -369,7 +369,8 @@ c
|
||||||
endif
|
endif
|
||||||
if(.not. rtdb_get(rtdb,'task:gradient',MT_DBL,
|
if(.not. rtdb_get(rtdb,'task:gradient',MT_DBL,
|
||||||
& rank_hess,dbl_mb(k_gradm)))
|
& 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,
|
if(.not. rtdb_get(rtdb,'task:dipole',mt_dbl,
|
||||||
& 3,mdipole)) dipole_okay = .false.
|
& 3,mdipole)) dipole_okay = .false.
|
||||||
endif
|
endif
|
||||||
|
|
|
||||||
|
|
@ -660,6 +660,7 @@ c
|
||||||
double precision c(3,mx_atm)
|
double precision c(3,mx_atm)
|
||||||
double precision ctmp(3,mx_atm)
|
double precision ctmp(3,mx_atm)
|
||||||
logical allbq
|
logical allbq
|
||||||
|
integer lenb
|
||||||
c
|
c
|
||||||
logical bsse_rtdb_store
|
logical bsse_rtdb_store
|
||||||
external bsse_rtdb_store
|
external bsse_rtdb_store
|
||||||
|
|
@ -687,14 +688,19 @@ c
|
||||||
c
|
c
|
||||||
c initialize all centers as bqX
|
c initialize all centers as bqX
|
||||||
c
|
c
|
||||||
tag_new(l) = 'bq' // tag_old(l)
|
lenb=inp_strlen(tag_old(l))
|
||||||
q_new(l) = 0.0d0
|
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
|
c
|
||||||
do k = 1, mon_atm(j)
|
do k = 1, mon_atm(j)
|
||||||
c
|
c
|
||||||
c only do bsse with atoms
|
c only do bsse with atoms
|
||||||
c
|
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')
|
if ((.not. is_atm) .and. symbol.ne.'bq')
|
||||||
$ call errquit('bsse_create_geom: not atom or bq',
|
$ call errquit('bsse_create_geom: not atom or bq',
|
||||||
$ 0,GEOM_ERR)
|
$ 0,GEOM_ERR)
|
||||||
|
|
@ -715,7 +721,8 @@ c Sort out the masses of the various centers
|
||||||
c
|
c
|
||||||
allbq=.true.
|
allbq=.true.
|
||||||
do l = 1, natoms
|
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(symbol.ne.'bq') allbq=.false.
|
||||||
if ((.not. is_atm) .and. symbol.ne.'bq')
|
if ((.not. is_atm) .and. symbol.ne.'bq')
|
||||||
$ call errquit('bsse_create_geom: not atom or bq',
|
$ call errquit('bsse_create_geom: not atom or bq',
|
||||||
|
|
@ -979,15 +986,12 @@ c-----------------------------------------------------------------------
|
||||||
|
|
||||||
bsse_error = 0.0d0
|
bsse_error = 0.0d0
|
||||||
|
|
||||||
i = 1
|
do j = 1, nmon,2
|
||||||
|
|
||||||
do j = 1, nmon
|
m_error(j) = mon_energy(j) - mon_energy(j+1)
|
||||||
|
|
||||||
m_error(j) = mon_energy(i) - mon_energy(i+1)
|
|
||||||
bsse_error = bsse_error + m_error(j)
|
bsse_error = bsse_error + m_error(j)
|
||||||
i= i + 2
|
|
||||||
|
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
final_spr_energy = spr_energy + bsse_error
|
final_spr_energy = spr_energy + bsse_error
|
||||||
c
|
c
|
||||||
|
|
@ -1102,8 +1106,6 @@ c
|
||||||
integer rtdb ![input]
|
integer rtdb ![input]
|
||||||
c
|
c
|
||||||
integer j,i,l,k,n
|
integer j,i,l,k,n
|
||||||
integer n_cart
|
|
||||||
integer n_cartmon
|
|
||||||
integer geom
|
integer geom
|
||||||
c
|
c
|
||||||
character*255 vec_dbi, vec_dbo
|
character*255 vec_dbi, vec_dbo
|
||||||
|
|
@ -1228,12 +1230,6 @@ c: evaluate gradient
|
||||||
$ call
|
$ call
|
||||||
$ errquit('bsse_gradient: error calling task gradient spr',
|
$ errquit('bsse_gradient: error calling task gradient spr',
|
||||||
$ 0,UNKNOWN_ERR)
|
$ 0,UNKNOWN_ERR)
|
||||||
|
|
||||||
if (mod(i,2).eq.0) then
|
|
||||||
n_cartmon=n_cart
|
|
||||||
else
|
|
||||||
n_cartmon=3*mon_atm(j)
|
|
||||||
endif
|
|
||||||
c
|
c
|
||||||
c: mix monomers grads with supermolecule grad
|
c: mix monomers grads with supermolecule grad
|
||||||
if (mod(i,2).eq.0) then
|
if (mod(i,2).eq.0) then
|
||||||
|
|
@ -1263,18 +1259,14 @@ c
|
||||||
c
|
c
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
|
||||||
c-----------------------------------------------------------------------
|
c-----------------------------------------------------------------------
|
||||||
c Evaluate supermolecular energy free of BSSE
|
c Evaluate supermolecular energy free of BSSE
|
||||||
c-----------------------------------------------------------------------
|
c-----------------------------------------------------------------------
|
||||||
|
|
||||||
bsse_error = 0.0d0
|
bsse_error = 0.0d0
|
||||||
|
|
||||||
i = 1
|
do j = 1, nmon,2
|
||||||
|
bsse_error = bsse_error+(mon_energy(j) - mon_energy(j+1))
|
||||||
do j = 1, nmon
|
|
||||||
bsse_error = bsse_error + mon_energy(i) - mon_energy(i+1)
|
|
||||||
i= i + 2
|
|
||||||
enddo
|
enddo
|
||||||
c
|
c
|
||||||
|
|
||||||
|
|
@ -1605,13 +1597,10 @@ c
|
||||||
c
|
c
|
||||||
bsse_error = 0.0d0
|
bsse_error = 0.0d0
|
||||||
|
|
||||||
i = 1
|
do j = 1, nmon,2
|
||||||
|
|
||||||
do j = 1, nmon
|
m_error(j) = mon_energy(j) - mon_energy(j+1)
|
||||||
|
|
||||||
m_error(j) = mon_energy(i) - mon_energy(i+1)
|
|
||||||
bsse_error = bsse_error + m_error(j)
|
bsse_error = bsse_error + m_error(j)
|
||||||
i= i + 2
|
|
||||||
|
|
||||||
enddo
|
enddo
|
||||||
c
|
c
|
||||||
|
|
|
||||||
|
|
@ -1136,12 +1136,17 @@
|
||||||
! TCE_CUDA Number of CUDA devices per node
|
! TCE_CUDA Number of CUDA devices per node
|
||||||
!
|
!
|
||||||
else if (inp_compare(.false.,test,'cuda')) then
|
else if (inp_compare(.false.,test,'cuda')) then
|
||||||
|
#if defined(TCE_CUDA) || defined(TCE_HIP)
|
||||||
if (.not.inp_i(icuda))
|
if (.not.inp_i(icuda))
|
||||||
1 call errquit('tce_input: no icuda',0,INPUT_ERR)
|
1 call errquit('tce_input: no icuda',0,INPUT_ERR)
|
||||||
if (.not.rtdb_put(rtdb,'tce:cuda',mt_int,1,icuda))
|
if (.not.rtdb_put(rtdb,'tce:cuda',mt_int,1,icuda))
|
||||||
1 call errquit('tce_input: failed writing to rtdb',0,
|
1 call errquit('tce_input: failed writing to rtdb',0,
|
||||||
2 RTDB_ERR)
|
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)
|
! MAXITER (the maximum number of Davidson iterations)
|
||||||
!
|
!
|
||||||
|
|
|
||||||
|
|
@ -318,14 +318,14 @@ endif # SOCKETS
|
||||||
ifdef USE_MPI
|
ifdef USE_MPI
|
||||||
|
|
||||||
MPI_COMBINED =
|
MPI_COMBINED =
|
||||||
ifneq ($(MPI_INCLUDE),)
|
ifneq ($(NWMPI_INCLUDE),)
|
||||||
MPI_COMBINED += $(patsubst -I-I%,-I%,-I${MPI_INCLUDE})
|
MPI_COMBINED += $(patsubst -I-I%,-I%,-I${NWMPI_INCLUDE})
|
||||||
endif
|
endif
|
||||||
ifneq ($(MPI_LIB),)
|
ifneq ($(NWMPI_LIB),)
|
||||||
MPI_COMBINED += $(patsubst -L-L%,-L%,-L${MPI_LIB})
|
MPI_COMBINED += $(patsubst -L-L%,-L%,-L${NWMPI_LIB})
|
||||||
endif
|
endif
|
||||||
ifneq ($(LIBMPI),)
|
ifneq ($(NWLIBMPI),)
|
||||||
MPI_COMBINED += $(LIBMPI)
|
MPI_COMBINED += $(NWLIBMPI)
|
||||||
ifeq ($(ARMCI_NETWORK),ARMCI)
|
ifeq ($(ARMCI_NETWORK),ARMCI)
|
||||||
MPI_COMBINED += -lpthread
|
MPI_COMBINED += -lpthread
|
||||||
endif
|
endif
|
||||||
|
|
@ -676,6 +676,10 @@ ifeq ($(FC),$(findstring $(FC),scorep scorep-wrapper scorep-gfortran scorep-mpif
|
||||||
#fix for configure or cmake
|
#fix for configure or cmake
|
||||||
MAYBE_HOST += SCOREP_WRAPPER=OFF
|
MAYBE_HOST += SCOREP_WRAPPER=OFF
|
||||||
endif
|
endif
|
||||||
|
ifneq ($(V),1)
|
||||||
|
MAYBE_HOST += -q --enable-silent-rules
|
||||||
|
MAKE= make V=0
|
||||||
|
endif
|
||||||
BUILDDIR = build
|
BUILDDIR = build
|
||||||
INSTALLDIR = install
|
INSTALLDIR = install
|
||||||
CONFIGURE_PATH = ../$(GA_DIR)/configure
|
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 '*** Configuring Parallel Tools ****'
|
||||||
@echo ''
|
@echo ''
|
||||||
@(test -d $(BUILDDIR)) || mkdir $(BUILDDIR);
|
@(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
|
@(cd $(BUILDDIR) && echo $(CONFIGURE_PATH) $(CONFIGURE_ARGS) && $(CONFIGURE_PATH) $(CONFIGURE_ARGS)) || exit 1
|
||||||
$(GA_DIR)/Makefile.in:
|
$(GA_DIR)/Makefile.in:
|
||||||
@echo "No Global Arrays found: Attempting running ./get-tools"
|
@echo "No Global Arrays found: Attempting running ./get-tools"
|
||||||
|
|
|
||||||
41
src/tools/gamalloc_patch.sh
Executable file
41
src/tools/gamalloc_patch.sh
Executable 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
|
||||||
|
|
@ -93,8 +93,8 @@ then
|
||||||
if [ ! -f ga-"$GA_RELEASE_NO".tar.gz ]; then
|
if [ ! -f ga-"$GA_RELEASE_NO".tar.gz ]; then
|
||||||
if test "x$TAR_URL" = x
|
if test "x$TAR_URL" = x
|
||||||
then
|
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/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-"$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/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
|
# 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
|
# 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
|
CC=cc
|
||||||
fi
|
fi
|
||||||
GOTMINGW64=` $CC -dM -E - </dev/null 2> /dev/null |grep MINGW64|cut -c21 `
|
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" ]
|
#if [ ! -z "$GOTMINGW64" ]
|
||||||
#then
|
#then
|
||||||
#echo "CC" $CC
|
#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
|
#./msmpi_patch.sh $GA_DIR
|
||||||
#./mingw64_patch.sh $GA_DIR
|
#./mingw64_patch.sh $GA_DIR
|
||||||
#fi
|
#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
|
#patch -p0 -s -N < ./scala1.patch
|
||||||
if test -e $GA_DIR/configure
|
if test -e $GA_DIR/configure
|
||||||
|
|
|
||||||
|
|
@ -158,6 +158,10 @@ function get_mpi_lib ()
|
||||||
outlist="${outlist} ${word}"
|
outlist="${outlist} ${word}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
# homebrew hwloc
|
||||||
|
if pkg-config --exists hwloc; then
|
||||||
|
outlist="${outlist} $(pkg-config --libs-only-L hwloc 2> /dev/null) -lhwloc"
|
||||||
|
fi
|
||||||
echo ${outlist}
|
echo ${outlist}
|
||||||
}
|
}
|
||||||
function get_mpi_fortran ()
|
function get_mpi_fortran ()
|
||||||
|
|
|
||||||
22
src/tools/peigstubs_patch.sh
Executable file
22
src/tools/peigstubs_patch.sh
Executable 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
|
||||||
|
|
||||||
|
|
@ -148,10 +148,7 @@ endif
|
||||||
ifneq ($(OLD_GA),)
|
ifneq ($(OLD_GA),)
|
||||||
EXTRA_OBJ += ga_zgop.o
|
EXTRA_OBJ += ga_zgop.o
|
||||||
endif
|
endif
|
||||||
#LIB_DEFINES += -I$(MPI_INCLUDE)
|
|
||||||
ifneq ($(MPI_INCLUDE),)
|
|
||||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef USE_VTUNE
|
ifdef USE_VTUNE
|
||||||
EXTRA_OBJ += vtune_bind.o vtune.o
|
EXTRA_OBJ += vtune_bind.o vtune.o
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,9 @@ fi
|
||||||
if test -f "/usr/lib/centos-release"; then
|
if test -f "/usr/lib/centos-release"; then
|
||||||
dist="centos"
|
dist="centos"
|
||||||
fi
|
fi
|
||||||
|
if [[ $(grep -c fedora /etc/os-release) > 0 ]]; then
|
||||||
|
dist="fedora"
|
||||||
|
fi
|
||||||
echo dist is "$dist"
|
echo dist is "$dist"
|
||||||
if [ -z "$DISTR" ] ; then
|
if [ -z "$DISTR" ] ; then
|
||||||
DISTR=$dist
|
DISTR=$dist
|
||||||
|
|
@ -43,12 +46,12 @@ echo DISTR is "$DISTR"
|
||||||
else
|
else
|
||||||
mkdir -p ~/mntdmg $IONEAPI_ROOT || true
|
mkdir -p ~/mntdmg $IONEAPI_ROOT || true
|
||||||
cd ~/Downloads
|
cd ~/Downloads
|
||||||
dir_base="18675"
|
dir_base="19080"
|
||||||
dir_hpc="18681"
|
dir_hpc="19086"
|
||||||
base="m_BaseKit_p_2022.2.0.226"
|
base="m_BaseKit_p_2023.0.0.25441"
|
||||||
hpc="m_HPCKit_p_2022.2.0.158"
|
hpc="m_HPCKit_p_2023.0.0.25440"
|
||||||
curl -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_base"/"$base".dmg
|
||||||
curl -LJO https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_hpc"/"$hpc".dmg
|
curl -sS -LJO https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_hpc"/"$hpc".dmg
|
||||||
echo "installing BaseKit"
|
echo "installing BaseKit"
|
||||||
hdiutil attach "$base".dmg -mountpoint ~/mntdmg -nobrowse
|
hdiutil attach "$base".dmg -mountpoint ~/mntdmg -nobrowse
|
||||||
sudo ~/mntdmg/bootstrapper.app/Contents/MacOS/install.sh -c -s --action install \
|
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
|
# HOMEBREW_NO_INSTALL_CLEANUP=1 HOMEBREW_NO_AUTO_UPDATE=1 brew install scalapack
|
||||||
# fi
|
# fi
|
||||||
fi
|
fi
|
||||||
if [[ "$os" == "Linux" ]]; then
|
if [[ "$os" == "Linux" ]]; then
|
||||||
if [[ "$DISTR" == "fedora" ]] || [[ "$DISTR" == "centos" ]] ; then
|
if [[ "$DISTR" == "fedora" ]] || [[ "$DISTR" == "centos" ]] ; then
|
||||||
rpminst=dnf
|
env
|
||||||
if [[ "$DISTR" == "centos" ]] ; then
|
rpminst=dnf
|
||||||
rpminst=yum
|
if [[ "$DISTR" == "centos" ]] ; then
|
||||||
fi
|
rpminst=yum
|
||||||
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
|
fi
|
||||||
# module load mpi
|
if [[ "$HOSTNAME" != "fedoraqemuwe40672" ]]; then
|
||||||
if [[ "$MPI_IMPL" == "openmpi" ]]; 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 openmpi-devel
|
sudo $rpminst -y install openblas-serial64 || true
|
||||||
else
|
# module load mpi
|
||||||
echo ready only for openmpi
|
if [[ "$MPI_IMPL" == "openmpi" ]]; then
|
||||||
exit 1
|
sudo $rpminst -y install openmpi-devel
|
||||||
fi
|
elif [[ "$MPI_IMPL" == "mpich" ]]; then
|
||||||
export PATH=/usr/lib64/"$MPI_IMPL"/bin:$PATH
|
sudo $rpminst -y install mpich mpich-devel
|
||||||
export LD_LIBRARY_PATH=/usr/lib64/"$MPI_IMPL"/lib:$LD_LIBRARY_PATH
|
else
|
||||||
which mpif90
|
echo ready only for openmpi
|
||||||
mpif90 -show
|
exit 1
|
||||||
else
|
fi
|
||||||
if [[ "$MPI_IMPL" == "openmpi" ]]; then
|
fi
|
||||||
mpi_bin="openmpi-bin" ; mpi_libdev="libopenmpi-dev" scalapack_libdev="libscalapack-openmpi-dev"
|
export PATH=/usr/lib64/"$MPI_IMPL"/bin:$PATH
|
||||||
fi
|
export LD_LIBRARY_PATH=/usr/lib64/"$MPI_IMPL"/lib:$LD_LIBRARY_PATH
|
||||||
if [[ "$MPI_IMPL" == "mpich" ]]; then
|
which mpif90
|
||||||
mpi_bin="mpich" ; mpi_libdev="libmpich-dev" scalapack_libdev="libscalapack-mpich-dev"
|
mpif90 -show
|
||||||
fi
|
else
|
||||||
if [[ "$MPI_IMPL" == "intel" || "$FC" == "ifort" || "$FC" == "ifx" ]]; then
|
if [[ "$MPI_IMPL" == "openmpi" ]]; then
|
||||||
export APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1
|
mpi_bin="openmpi-bin" ; mpi_libdev="libopenmpi-dev" scalapack_libdev="libscalapack-openmpi-dev"
|
||||||
rm -f l_Base*sh l_HP*sh
|
fi
|
||||||
tries=0 ; until [ "$tries" -ge 10 ] ; do \
|
if [[ "$MPI_IMPL" == "mpich" ]]; then
|
||||||
dir_base="18673"
|
mpi_bin="mpich" ; mpi_libdev="libmpich-dev" scalapack_libdev="libscalapack-mpich-dev"
|
||||||
dir_hpc="18679"
|
fi
|
||||||
base="l_BaseKit_p_2022.2.0.262"
|
if [[ "$MPI_IMPL" == "intel" || "$FC" == "ifort" || "$FC" == "ifx" ]]; then
|
||||||
hpc="l_HPCKit_p_2022.2.0.191"
|
export APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1
|
||||||
wget https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_hpc"/"$hpc".sh \
|
export TERM=dumb
|
||||||
&& wget https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_base"/"$base".sh \
|
rm -f l_Base*sh l_HP*sh
|
||||||
&& break ;\
|
tries=0 ; until [ "$tries" -ge 10 ] ; do \
|
||||||
tries=$((tries+1)) ; echo attempt no. $tries ; sleep 30 ; done
|
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
|
if [[ "$MPI_IMPL" == "intel" ]]; then
|
||||||
mpi_bin=" " ; mpi_libdev=" " scalapack_libdev=" "
|
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
|
||||||
fi
|
fi
|
||||||
if [[ "$GITHUB_WORKFLOW" != "NWChem_CI_selfhosted" ]]; then
|
# check for mpif90 command and exit if not present
|
||||||
sudo apt-get update
|
if [[ ! $(command -v mpif90) ]]; then echo "mpif90 not present"; exit 1; fi
|
||||||
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
|
|
||||||
echo "mpif90 -show output is " `mpif90 -show` || true
|
echo "mpif90 -show output is " `mpif90 -show` || true
|
||||||
echo "which mpif90 output is " `which mpif90` || 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
|
fi
|
||||||
|
|
|
||||||
|
|
@ -37,11 +37,12 @@ fi
|
||||||
if [[ "$FC" == "amdflang" ]]; then
|
if [[ "$FC" == "amdflang" ]]; then
|
||||||
export PATH=/opt/rocm/bin:$PATH
|
export PATH=/opt/rocm/bin:$PATH
|
||||||
export LD_LIBRARY_PATH=/opt/rocm-"$rocm_version"/lib:/opt/rocm/llvm/lib:$LD_LIBRARY_PATH
|
export LD_LIBRARY_PATH=/opt/rocm-"$rocm_version"/lib:/opt/rocm/llvm/lib:$LD_LIBRARY_PATH
|
||||||
|
export BUILD_MPICH=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$FC" == "nvfortran" ]]; then
|
if [[ "$FC" == "nvfortran" ]]; then
|
||||||
nv_major=22
|
nv_major=22
|
||||||
nv_minor=9
|
nv_minor=11
|
||||||
nverdot="$nv_major"."$nv_minor"
|
nverdot="$nv_major"."$nv_minor"
|
||||||
export PATH=/opt/nvidia/hpc_sdk/Linux_"$arch"/"$nverdot"/compilers/bin:$PATH
|
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
|
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//')
|
export NWCHEM_MODULES=$(echo $NWCHEM_MODULES |sed 's/xtb//')
|
||||||
fi
|
fi
|
||||||
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
|
||||||
|
|
|
||||||
|
|
@ -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_smear
|
||||||
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs dft_he2p_wb97
|
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 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 au2-sarc-zora-mp
|
||||||
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs x2c-h2se
|
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs x2c-h2se
|
||||||
if [[ ! -z "$USE_LIBXC" ]]; then
|
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 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
|
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 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
|
||||||
fi
|
fi
|
||||||
if [[ ! $(grep -i pspw $TRAVIS_BUILD_DIR/src/stubs.F| awk '/pspw_input/') ]]; then
|
if [[ ! $(grep -i pspw $TRAVIS_BUILD_DIR/src/stubs.F| awk '/pspw_input/') ]]; then
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue