mirror of
https://github.com/nwchemgit/nwchem.git
synced 2026-07-21 14:35:21 -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
|
||||
- name: Qemu
|
||||
id: qemu
|
||||
uses: docker/setup-qemu-action@v1
|
||||
uses: docker/setup-qemu-action@v2
|
||||
with:
|
||||
image: crazymax/binfmt:v6.0.0
|
||||
- name: Available platforms
|
||||
|
|
@ -44,15 +44,10 @@ jobs:
|
|||
echo ${{ steps.qemu.outputs.platforms }}
|
||||
docker images
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
uses: docker/setup-buildx-action@v2
|
||||
with:
|
||||
driver-opts: |
|
||||
image=moby/buildkit:master
|
||||
- name: Get Arch
|
||||
id: get-arch
|
||||
run: |
|
||||
echo "::set-output name=arch::$(echo ${{matrix.archs }} | sed 's/linux//'|sed 's/\///g' )"
|
||||
shell: bash
|
||||
- name: fetch cache
|
||||
if: (steps.setup-cache.outputs.cache-hit == 'true') && ( matrix.folder != 'helloworld' )
|
||||
run: |
|
||||
|
|
@ -62,14 +57,14 @@ jobs:
|
|||
rsync -av ~/cache/libext* cache/. ; \
|
||||
echo "libext cache fetched" ; \
|
||||
fi
|
||||
- uses: haya14busa/action-cond@v1
|
||||
- uses: haya14busa/action-cond@dependabot/npm_and_yarn/actions/core-1.9.1
|
||||
id: cache-hit-reporter
|
||||
with:
|
||||
cond: ${{ steps.setup-cache.outputs.cache-hit != '' }}
|
||||
if_true: "Y"
|
||||
if_false: "N"
|
||||
- name: build_schedule
|
||||
uses: docker/build-push-action@v2
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
push: false
|
||||
context: ${{ matrix.folder }}
|
||||
|
|
@ -79,6 +74,7 @@ jobs:
|
|||
build-args: |
|
||||
FC=${{ matrix.fc }}
|
||||
CACHE_HIT=${{ steps.cache-hit-reporter.outputs.value }}
|
||||
NWCHEM_BRANCH=${{ github.ref_name }}
|
||||
- name: store cache
|
||||
run: |
|
||||
mkdir -p ~/cache/
|
||||
|
|
|
|||
15
.github/workflows/github_actions.yml
vendored
15
.github/workflows/github_actions.yml
vendored
|
|
@ -129,6 +129,16 @@ jobs:
|
|||
nwchem_modules: "tce"
|
||||
fc: gfortran-11
|
||||
cc: gcc-11
|
||||
- os: ubuntu-20.04
|
||||
experimental: true
|
||||
mpi_impl: mpich
|
||||
armci_network: MPI-TS
|
||||
nwchem_modules: "nwdft solvation driver"
|
||||
fc: gfortran
|
||||
cc: gcc
|
||||
use_libxc: -1
|
||||
blas: "internal"
|
||||
blas_size: 8
|
||||
- os: ubuntu-22.04
|
||||
experimental: true
|
||||
mpi_impl: mpich
|
||||
|
|
@ -136,6 +146,7 @@ jobs:
|
|||
nwchem_modules: "qmandpw qmd"
|
||||
fc: gfortran-11
|
||||
cc: gcc-11
|
||||
use_libxc: -1
|
||||
- os: ubuntu-20.04
|
||||
experimental: true
|
||||
mpi_impl: mpich
|
||||
|
|
@ -220,7 +231,7 @@ jobs:
|
|||
armci_network: MPI-TS
|
||||
nwchem_modules: "tinyqmpw"
|
||||
fc: ifort
|
||||
cc: icc
|
||||
cc: icx
|
||||
use_libxc: 1
|
||||
- os: macos-11
|
||||
experimental: true
|
||||
|
|
@ -252,7 +263,7 @@ jobs:
|
|||
armci_network: MPI-TS
|
||||
nwchem_modules: "nwdft solvation driver"
|
||||
fc: ifort
|
||||
cc: icc
|
||||
cc: icx
|
||||
use_simint: 1
|
||||
- os: ubuntu-20.04
|
||||
experimental: true
|
||||
|
|
|
|||
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/setup-python@v4
|
||||
with:
|
||||
python-version: '3.10'
|
||||
python-version: '3.11'
|
||||
check-latest: true
|
||||
- run: pip install --upgrade pip wheel
|
||||
- run: pip install bandit black codespell flake8 flake8-2020 flake8-bugbear
|
||||
|
|
|
|||
|
|
@ -519,8 +519,6 @@ let "myexit+=$?"
|
|||
let "myexit+=$?"
|
||||
./runtests.mpi.unix procs $np carbon_fon
|
||||
let "myexit+=$?"
|
||||
./runtests.mpi.unix procs $np ch5n_nbo
|
||||
let "myexit+=$?"
|
||||
./runtests.mpi.unix procs $np tpss tpssh
|
||||
let "myexit+=$?"
|
||||
#
|
||||
|
|
@ -532,7 +530,7 @@ let "myexit+=$?"
|
|||
./runtests.mpi.unix procs $np h2o2_fde
|
||||
let "myexit+=$?"
|
||||
# tddft gradients
|
||||
./runtests.mpi.unix procs $np tddftgrad_co_cis tddftgrad_n2 tddftgrad_co tddftgrad_n2_uks tddftgrad_ch2o
|
||||
./runtests.mpi.unix procs $np tddftgrad_co_cis tddftgrad_n2 tddftgrad_co tddftgrad_n2_uks tddftgrad_ch2o tddftgrad_h2o_cis_lda
|
||||
let "myexit+=$?"
|
||||
# new xc functionals for 7.0.0
|
||||
./runtests.mpi.unix procs $np dft_rscan
|
||||
|
|
@ -543,6 +541,12 @@ let "myexit+=$?"
|
|||
let "myexit+=$?"
|
||||
./runtests.mpi.unix procs $np rt_tddft_mocap
|
||||
let "myexit+=$?"
|
||||
./runtests.mpi.unix procs $np rt_tddft_cytosine_cam_cdfit
|
||||
let "myexit+=$?"
|
||||
./runtests.mpi.unix procs $np rt_tddft_tcne_spinkick
|
||||
let "myexit+=$?"
|
||||
./runtests.mpi.unix procs $np rt_tddft_water_abs_spec
|
||||
let "myexit+=$?"
|
||||
./runtests.mpi.unix procs $np dft_ne_n12
|
||||
let "myexit+=$?"
|
||||
./runtests.mpi.unix procs $np dft_mfm_ch3
|
||||
|
|
@ -685,7 +689,8 @@ echo 'Please check the final values for the last optimized structure.'
|
|||
let "myexit+=$?"
|
||||
./runtests.mpi.unix procs $np dielsalder
|
||||
let "myexit+=$?"
|
||||
./runtests.mpi.unix procs $np talc
|
||||
np_small=$(get_limit $np 16)
|
||||
./runtests.mpi.unix procs $np_small talc
|
||||
let "myexit+=$?"
|
||||
echo 'The intermediate energy values for the numerical gradient '
|
||||
echo 'test may cause some differences.'
|
||||
|
|
|
|||
|
|
@ -32,7 +32,9 @@
|
|||
export HYDRA_DEBUG=0
|
||||
# find memory leaks using this glibc feature that
|
||||
# initialized memory blocks to non-zero values
|
||||
export MALLOC_PERTURB_=$(($RANDOM % 255 + 1))
|
||||
if [[ -z "${USE_ASAN}" ]]; then
|
||||
export MALLOC_PERTURB_=$(($RANDOM % 255 + 1))
|
||||
fi
|
||||
|
||||
if [[ -z "${NWCHEM_TARGET}" ]]; then
|
||||
UNAME_S=$(uname -s)
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
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 -.423217 -1.094815 .824662
|
||||
H -.423217 -1.094815 -.824662
|
||||
symmetry c1
|
||||
# symmetry c1
|
||||
end
|
||||
|
||||
scf
|
||||
sym off
|
||||
adapt off
|
||||
end
|
||||
|
||||
task SCF energy
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,7 +1,6 @@
|
|||
start dimer
|
||||
title "Water dimer DFT using fragment initial guess"
|
||||
geometry print nocenter noautoz dimer
|
||||
symmetry c1 tol 0.0
|
||||
geometry print nocenter noautoz noautosym dimer
|
||||
O -0.595 1.165 -0.048
|
||||
H 0.110 1.812 -0.170
|
||||
H -1.452 1.598 -0.154
|
||||
|
|
@ -9,14 +8,12 @@ start dimer
|
|||
H 0.175 -2.013 0.348
|
||||
H 0.177 -0.480 0.010
|
||||
end
|
||||
geometry print nocenter noautoz h2o1
|
||||
symmetry c1 tol 0.0
|
||||
geometry print nocenter noautoz noautosym h2o1
|
||||
O -0.595 1.165 -0.048
|
||||
H 0.110 1.812 -0.170
|
||||
H -1.452 1.598 -0.154
|
||||
end
|
||||
geometry print nocenter noautoz h2o2
|
||||
symmetry c1 tol 0.0
|
||||
geometry print nocenter noautoz noautosym h2o2
|
||||
O 0.724 -1.284 0.034
|
||||
H 0.175 -2.013 0.348
|
||||
H 0.177 -0.480 0.010
|
||||
|
|
@ -27,19 +24,26 @@ start dimer
|
|||
end
|
||||
|
||||
set dft:no_prune true
|
||||
dft
|
||||
sym off
|
||||
adapt off
|
||||
grid xfine
|
||||
tolerances tight
|
||||
convergence energy 1d-9
|
||||
end
|
||||
|
||||
set geometry h2o1
|
||||
dft; vectors input atomic output h2o1.movecs; grid xfine; tolerances tight; end
|
||||
dft; vectors input atomic output h2o1.movecs; end
|
||||
task dft
|
||||
|
||||
set geometry h2o2
|
||||
dft; vectors input atomic output h2o2.movecs; grid xfine; tolerances tight; end
|
||||
dft; vectors input atomic output h2o2.movecs; end
|
||||
task dft
|
||||
|
||||
set geometry dimer
|
||||
dft
|
||||
vectors input fragment h2o1.movecs h2o2.movecs \
|
||||
output dimer.movecs; tolerances tight; grid xfine;
|
||||
output dimer.movecs;
|
||||
end
|
||||
task dft
|
||||
|
||||
|
|
@ -53,23 +57,23 @@ start dimer
|
|||
# Spin-paired Thomas Fermi
|
||||
set geometry h2o1
|
||||
dft; frozemb geometry h2o2 vectors h2o2.movecs; frozemb_ts tf; \
|
||||
vectors input h2o1.movecs output h2o1.fde.movecs; odft; grid xfine; tolerances tight; end
|
||||
vectors input h2o1.movecs output h2o1.fde.movecs; odft; end
|
||||
task dft
|
||||
|
||||
# Spin-unpaired
|
||||
dft; frozemb geometry h2o2 vectors h2o2.movecs; frozemb_ts tf; \
|
||||
vectors input h2o1.movecs output h2o1.fde.movecs; odft; grid xfine; tolerances tight; end
|
||||
vectors input h2o1.movecs output h2o1.fde.movecs; odft; end
|
||||
task dft
|
||||
|
||||
# Spin-paired von Weisacker
|
||||
set geometry h2o1
|
||||
dft; frozemb geometry h2o2 vectors h2o2.movecs; frozemb_ts vw; \
|
||||
vectors input h2o1.movecs output h2o1.fde.movecs; odft; grid xfine; tolerances tight; end
|
||||
vectors input h2o1.movecs output h2o1.fde.movecs; odft; end
|
||||
task dft
|
||||
|
||||
# Spin-unpaired
|
||||
dft; frozemb geometry h2o2 vectors h2o2.movecs; frozemb_ts vw; \
|
||||
vectors input h2o1.movecs output h2o1.fde.movecs; odft; grid xfine; tolerances tight; end
|
||||
vectors input h2o1.movecs output h2o1.fde.movecs; odft; end
|
||||
task dft
|
||||
|
||||
unset dft:frozemb
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -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://github.com/nwchemgit/nwchem/actions)
|
||||
[](https://github.com/nwchemgit/nwchem/actions)
|
||||
<!---[](https://travis-ci.org/nwchemgit/nwchem/builds)--->
|
||||
[](https://raw.githubusercontent.com/nwchemgit/nwchem/master/LICENSE.md)
|
||||
[](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
|
||||
10 if (.not. inp_a(field)) field=' '
|
||||
#ifdef IGNORE_HEH
|
||||
c
|
||||
c ignore spherical vs cartesian from bse for He/H
|
||||
c since they do assign spherical when the other elements are cartesian
|
||||
c
|
||||
if (.not.inp_compare(.false., 'h', string(1:1))) then
|
||||
#endif
|
||||
if(read_sphere) then
|
||||
if (inp_compare(.false., 'spherical', field)) then
|
||||
if (.not. bas_set_spherical(basis, .true.))
|
||||
|
|
@ -1147,7 +1149,9 @@ c
|
|||
& (' bas_set_spherical failed ',911, BASIS_ERR)
|
||||
endif
|
||||
endif
|
||||
#ifdef IGNORE_HEH
|
||||
endif
|
||||
#endif
|
||||
if (.not. inp_read()) call errquit
|
||||
$ ('bas_tag_lib: premature EOF', 0, INPUT_ERR)
|
||||
c
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
# For development tree
|
||||
#RELEASE :=
|
||||
# For current release tree
|
||||
RELEASE := 7.0.0
|
||||
RELEASE := 7.2.0
|
||||
|
||||
#
|
||||
ifndef NWCHEM_TOP
|
||||
|
|
@ -243,10 +243,10 @@ endif
|
|||
# specified below. Use of MPI requires substituting the tcgmsg-mpi
|
||||
# wrapper for the normal tcgmsg library.
|
||||
# the 2 following environmental variables are need for linking
|
||||
# LIBMPI - represents the name of mpi library (with -l)
|
||||
# MPI_LIB - represents the path to the mpi library
|
||||
#LIBMPI = -lmpich
|
||||
#MPI_LIB= /usr/local/lib
|
||||
# NWLIBMPI - represents the name of mpi library (with -l)
|
||||
# NWMPI_LIB - represents the path to the mpi library
|
||||
#NWLIBMPI = -lmpich
|
||||
#NWMPI_LIB= /usr/local/lib
|
||||
|
||||
#JN: under the new structure, tools should be listed first as
|
||||
# their header files are needed for dependency analysis of
|
||||
|
|
@ -292,9 +292,6 @@ ifdef BUILD_SCALAPACK
|
|||
$(error )
|
||||
endif
|
||||
|
||||
ifndef SCALAPACK_SIZE
|
||||
SCALAPACK_SIZE=8
|
||||
endif
|
||||
SCALAPACK=-L$(NWCHEM_TOP)/src/libext/lib -lnwc_scalapack
|
||||
endif
|
||||
|
||||
|
|
@ -317,15 +314,6 @@ ifdef BUILD_ELPA
|
|||
endif
|
||||
|
||||
|
||||
ifdef BUILD_MPICH
|
||||
NW_CORE_SUBDIRS += libext
|
||||
PATH := $(NWCHEM_TOP)/src/libext/bin:$(PATH)
|
||||
MPI_INCLUDE = $(shell PATH=$(NWCHEM_TOP)/src/libext/bin:$(PATH) $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_include)
|
||||
MPI_LIB = $(shell PATH=$(NWCHEM_TOP)/src/libext/bin:$(PATH) $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_lib)
|
||||
LIBMPI = $(shell PATH=$(NWCHEM_TOP)/src/libext/bin:$(PATH) $(NWCHEM_TOP)/src/tools/guess-mpidefs --libmpi)
|
||||
LIBMPI += $(shell /usr/local/bin/pkg-config --libs-only-L hwloc 2> /dev/null)
|
||||
endif
|
||||
|
||||
|
||||
ifndef EXTERNAL_GA_PATH
|
||||
NW_CORE_SUBDIRS += tools
|
||||
|
|
@ -2456,12 +2444,12 @@ ifneq ($(TARGET),LINUX)
|
|||
#
|
||||
ifeq ($(_IFCV15ORNEWER), Y)
|
||||
IFORTVER=$(shell ifort -v 2>&1|cut -d " " -f 3)
|
||||
ifeq ($(IFORTVER),2021.7.0)
|
||||
$(info )
|
||||
$(info ifort 2021.7.0 not validated)
|
||||
$(info )
|
||||
$(error )
|
||||
endif
|
||||
# ifeq ($(IFORTVER),2021.7.0)
|
||||
# $(info )
|
||||
# $(info ifort 2021.7.0 not validated)
|
||||
# $(info )
|
||||
# $(error )
|
||||
# endif
|
||||
# fpp seems to get lost with ifort 15 in the offload bit
|
||||
# only use EXPLICITF for offload because otherwise we want debugging to be easy
|
||||
# FOPTIONS += -Qoption,fpp,-P -Qoption,fpp,-c_com=no -allow nofpp_comments
|
||||
|
|
@ -3317,7 +3305,7 @@ ifeq ($(BUILDING_PYTHON),python)
|
|||
|
||||
ifndef GOT_PYTHONCONFIG
|
||||
PYMAJOR:=$(word 1, $(subst ., ,$(PYTHONVERSION)))
|
||||
errorpythonconfig:$
|
||||
errorpythonconfig:
|
||||
$(info )
|
||||
$(info python-config not found in your PATH)
|
||||
$(info Please install the packages)
|
||||
|
|
@ -3455,14 +3443,6 @@ else
|
|||
CORE_LIBS += $(BLASOPT)
|
||||
endif
|
||||
|
||||
ifdef NWCHEM_LINK_CUDA
|
||||
ifeq ($(_FC),pgf90)
|
||||
CORE_LIBS += -acc -cuda -cudalib=cublas
|
||||
endif
|
||||
ifeq ($(_FC),gfortran)
|
||||
CORE_LIBS += -fopenacc -lcublas
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
ifdef BLASOPT
|
||||
|
|
@ -3532,39 +3512,91 @@ endif
|
|||
ifdef USE_MPI
|
||||
#ifeq ($(FC),$(findstring $(FC),mpifrt mpfort mpif77 mpxlf mpif90 ftn scorep-ftn))
|
||||
ifeq ($(FC),$(findstring $(FC), ftn scorep-ftn))
|
||||
LIBMPI =
|
||||
MPI_INCLUDE =
|
||||
MPI_LIB =
|
||||
else
|
||||
NWLIBMPI =
|
||||
NWMPI_INCLUDE =
|
||||
NWMPI_LIB =
|
||||
else ifdef BUILD_MPICH
|
||||
NW_CORE_SUBDIRS += libext
|
||||
PATH := $(NWCHEM_TOP)/src/libext/bin:$(PATH)
|
||||
NWMPI_INCLUDE = $(shell PATH=$(NWCHEM_TOP)/src/libext/bin:$(PATH) $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_include)
|
||||
NWMPI_LIB = $(shell PATH=$(NWCHEM_TOP)/src/libext/bin:$(PATH) $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_lib)
|
||||
NWLIBMPI = $(shell PATH=$(NWCHEM_TOP)/src/libext/bin:$(PATH) $(NWCHEM_TOP)/src/tools/guess-mpidefs --libmpi)
|
||||
NWLIBMPI += $(shell /usr/local/bin/pkg-config --libs-only-L hwloc 2> /dev/null)
|
||||
else ifdef FORCE_MPI_ENV
|
||||
ifndef MPI_INCLUDE
|
||||
# check if mpif90 is present
|
||||
MPIF90YN = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_include)
|
||||
ifeq ($(MPIF90YN),mpif90notfound)
|
||||
errormpif90:
|
||||
$(info )
|
||||
$(info mpif90 not found. Please add its location to PATH)
|
||||
$(info e.g. export PATH=/usr/local/bin:/usr/lib64/openmpi/bin:...)
|
||||
$(info )
|
||||
endif
|
||||
MPI_INCLUDE = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_include)
|
||||
errormpi1:
|
||||
$(info )
|
||||
$(info FORCE_MPI_ENV set but MPI_INCLUDE not set)
|
||||
$(info )
|
||||
$(error )
|
||||
else
|
||||
NWMPI_INCLUDE = $(MPI_INCLUDE)
|
||||
endif
|
||||
ifndef MPI_LIB
|
||||
MPI_LIB = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_lib)
|
||||
endif
|
||||
errormpi2:
|
||||
$(info )
|
||||
$(info FORCE_MPI_ENV set but MPI_LIB not set)
|
||||
$(info )
|
||||
$(error )
|
||||
else
|
||||
NWMPI_LIB = $(MPI_LIB)
|
||||
endif
|
||||
ifndef LIBMPI
|
||||
LIBMPI = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --libmpi)
|
||||
errormpi3:
|
||||
$(info )
|
||||
$(info FORCE_MPI_ENV set but LIBMPI not set)
|
||||
$(info )
|
||||
$(error )
|
||||
else
|
||||
NWLIBMPI = $(LIBMPI)
|
||||
endif
|
||||
else
|
||||
ifeq ($(shell pwd), $(NWCHEM_TOP)/src)
|
||||
ifndef FORCE_MPI_ENV
|
||||
ifdef LIBMPI
|
||||
$(info ***warning LIBMPI ignored since FORCE_MPI_ENV not set***)
|
||||
endif
|
||||
ifdef MPI_LIB
|
||||
$(info ***warning MPI_LIB ignored since FORCE_MPI_ENV not set***)
|
||||
endif
|
||||
ifdef MPI_INCLUDE
|
||||
$(info ***warning MPI_INCLUDE ignored since FORCE_MPI_ENV not set***)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
# check if mpif90 is present
|
||||
MPIF90YN = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_include)
|
||||
ifeq ($(MPIF90YN),mpif90notfound)
|
||||
errormpif90:
|
||||
$(info )
|
||||
$(info mpif90 not found. Please add its location to PATH)
|
||||
$(info e.g. export PATH=/usr/local/bin:/usr/lib64/openmpi/bin:...)
|
||||
$(info )
|
||||
$(error )
|
||||
endif
|
||||
NWMPI_INCLUDE = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_include)
|
||||
NWMPI_LIB = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --mpi_lib)
|
||||
NWLIBMPI = $(shell $(NWCHEM_TOP)/src/tools/guess-mpidefs --libmpi)
|
||||
endif
|
||||
|
||||
ifdef MPI_LIB
|
||||
CORE_LIBS += $(patsubst -L-L%,-L%,-L$(MPI_LIB))
|
||||
ifdef NWMPI_INCLUDE
|
||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(NWMPI_INCLUDE))
|
||||
endif
|
||||
ifdef NWMPI_LIB
|
||||
CORE_LIBS += $(patsubst -L-L%,-L%,-L$(NWMPI_LIB))
|
||||
endif
|
||||
ifdef OLD_GA
|
||||
CORE_LIBS += -ltcgmsg-mpi $(LIBMPI)
|
||||
CORE_LIBS += -ltcgmsg-mpi $(NWLIBMPI)
|
||||
else
|
||||
CORE_LIBS += $(LIBMPI)
|
||||
CORE_LIBS += $(NWLIBMPI)
|
||||
endif
|
||||
else
|
||||
errornousempi:
|
||||
$(info )
|
||||
$(info please set the env. variable USE_MPI)
|
||||
$(info and provide a working MPI installation)
|
||||
$(info )
|
||||
$(error )
|
||||
ifdef OLD_GA
|
||||
CORE_LIBS += -ltcgmsg
|
||||
else
|
||||
|
|
@ -3612,9 +3644,9 @@ ifdef USE_LIBXC
|
|||
endif
|
||||
|
||||
# we use an external libxc library out of LIBXC_DIR
|
||||
ifdef LIBXC_DIR
|
||||
ifdef LIBXC_LIB
|
||||
DEFINES += -DUSE_LIBXC
|
||||
EXTRA_LIBS += -L$(LIBXC_DIR)/lib
|
||||
EXTRA_LIBS += -L$(LIBXC_LIB)
|
||||
EXTRA_LIBS += -lxcf03 -lxc
|
||||
endif
|
||||
|
||||
|
|
@ -3737,6 +3769,7 @@ ifdef TCE_OPENACC
|
|||
FOPTIONS += -acc
|
||||
LDOPTIONS += -acc
|
||||
endif
|
||||
NWCHEM_LINK_CUDA=1
|
||||
endif
|
||||
|
||||
ifndef HIP
|
||||
|
|
@ -3753,6 +3786,15 @@ ifdef USE_F90_ALLOCATABLE
|
|||
DEFINES += -DUSE_F90_ALLOCATABLE
|
||||
endif
|
||||
|
||||
ifdef NWCHEM_LINK_CUDA
|
||||
ifeq ($(_FC),pgf90)
|
||||
CORE_LIBS += -acc -cuda -cudalib=cublas
|
||||
endif
|
||||
ifeq ($(_FC),gfortran)
|
||||
CORE_LIBS += -fopenacc -lcublas
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef GWCMPLX
|
||||
ifdef GWEN
|
||||
errorgw:
|
||||
|
|
@ -3884,8 +3926,24 @@ ifeq ($(shell echo $(BLASOPT) |awk '/lblas/ {print "Y"; exit}'),Y)
|
|||
DEFINES += -DBLAS_NOTHREADS
|
||||
endif
|
||||
|
||||
ifndef BLAS_SIZE
|
||||
LIB_DEFINES += -DUSE_INTEGER8
|
||||
ifneq ($(or $(SCALAPACK),$(SCALAPACK_LIB)),)
|
||||
ifndef SCALAPACK_SIZE
|
||||
$(info )
|
||||
$(info You must set)
|
||||
$(info SCALAPACK_SIZE)
|
||||
$(info )
|
||||
$(error )
|
||||
endif
|
||||
endif
|
||||
ifneq ($(or $(BLASOPT),$(BLAS_LIB)),)
|
||||
ifndef BLAS_SIZE
|
||||
$(info )
|
||||
$(info You must set)
|
||||
$(info BLAS_SIZE)
|
||||
$(info see https://nwchemgit.github.io/Compiling-NWChem.html#how-to-deal-with-integer-size-of-linear-algebra-libraries)
|
||||
$(info )
|
||||
$(error )
|
||||
endif
|
||||
endif
|
||||
ifeq ($(BLAS_SIZE),8)
|
||||
LIB_DEFINES += -DUSE_INTEGER8
|
||||
|
|
|
|||
|
|
@ -18,6 +18,11 @@
|
|||
integer ijshell, ilo, ihi, jlo, jhi
|
||||
integer l_buf, l_scr
|
||||
integer k_buf, k_scr
|
||||
logical do_mirr
|
||||
logical util_mirrmat
|
||||
external util_mirrmat
|
||||
integer g_x_mirr,g_y_mirr,g_z_mirr
|
||||
integer g_x_org,g_y_org,g_z_org
|
||||
!
|
||||
double precision center(3)
|
||||
!
|
||||
|
|
@ -27,6 +32,34 @@
|
|||
call ga_zero(g_x)
|
||||
call ga_zero(g_y)
|
||||
call ga_zero(g_z)
|
||||
g_x_mirr=0
|
||||
g_y_mirr=0
|
||||
g_z_mirr=0
|
||||
do_mirr=util_mirrmat(1,g_x,g_x_mirr,
|
||||
D .false., .true.)
|
||||
do_mirr=do_mirr.and.util_mirrmat(1,g_y,g_y_mirr,
|
||||
D .false., .true.)
|
||||
do_mirr=do_mirr.and.util_mirrmat(1,g_z,g_z_mirr,
|
||||
D .false., .true.)
|
||||
if(do_mirr) then
|
||||
g_x_org=g_x
|
||||
g_x=g_x_mirr
|
||||
g_y_org=g_y
|
||||
g_y=g_y_mirr
|
||||
g_z_org=g_z
|
||||
g_z=g_z_mirr
|
||||
|
||||
else
|
||||
if(g_x_mirr.ne.0) then
|
||||
if(.not.ga_destroy(g_x_mirr))call errquit(
|
||||
$ 'could not destroy mirrx handle',1, GA_ERR)
|
||||
endif
|
||||
if(g_y_mirr.ne.0) then
|
||||
if(.not.ga_destroy(g_y_mirr))call errquit(
|
||||
$ 'could not destroy mirry handle',1, GA_ERR)
|
||||
endif
|
||||
endif
|
||||
|
||||
if(oscfps) call pstat_on(ps_int_dip)
|
||||
!
|
||||
! grab basis set info type stuff
|
||||
|
|
@ -65,7 +98,8 @@
|
|||
!
|
||||
! get the integrals we want
|
||||
!
|
||||
call int_mpole(ibas, ishell, jbas, jshell,
|
||||
! call int_mpole(ibas, ishell, jbas, jshell,
|
||||
call int_mpole(jbas, jshell, ibas, ishell,
|
||||
$ 1,
|
||||
$ center,
|
||||
$ mscratch, dbl_mb(k_scr), max1e, dbl_mb(k_buf))
|
||||
|
|
@ -84,6 +118,20 @@
|
|||
if(.not.MA_pop_stack(l_buf))
|
||||
$ call errquit('int_dip_ga:pop failed',0, MA_ERR)
|
||||
!
|
||||
if (do_mirr) then
|
||||
g_x=g_x_org
|
||||
call util_mirrmerge(g_x_mirr,g_x)
|
||||
if(.not.ga_destroy(g_x_mirr))call errquit(
|
||||
$ 'could not destroy g_x_mirr handle',1, GA_ERR)
|
||||
g_y=g_y_org
|
||||
call util_mirrmerge(g_y_mirr,g_y)
|
||||
if(.not.ga_destroy(g_y_mirr))call errquit(
|
||||
$ 'could not destroy g_y_mirr handle',1, GA_ERR)
|
||||
g_z=g_z_org
|
||||
call util_mirrmerge(g_z_mirr,g_z)
|
||||
if(.not.ga_destroy(g_z_mirr))call errquit(
|
||||
$ 'could not destroy g_x_mirr handle',1, GA_ERR)
|
||||
endif
|
||||
call ga_sync()
|
||||
!
|
||||
if (util_print('multipole', print_debug)) then
|
||||
|
|
@ -101,15 +149,16 @@
|
|||
implicit none
|
||||
#include "global.fh"
|
||||
integer g_x, g_y, g_z, ilo, ihi, jlo, jhi
|
||||
double precision buf(jlo:jhi,3,ilo:ihi)
|
||||
! double precision buf(jlo:jhi,3,ilo:ihi)
|
||||
double precision buf(ilo:ihi,3,jlo:jhi)
|
||||
integer i, j
|
||||
do i = ilo,ihi
|
||||
c do i = ilo,ihi
|
||||
do j = jlo, jhi
|
||||
call ga_put(g_x,i,i,j,j,buf(j,1,i),1)
|
||||
call ga_put(g_y,i,i,j,j,buf(j,2,i),1)
|
||||
call ga_put(g_z,i,i,j,j,buf(j,3,i),1)
|
||||
call ga_put(g_x,ilo,ihi,j,j,buf(ilo,1,j),1)
|
||||
call ga_put(g_y,ilo,ihi,j,j,buf(ilo,2,j),1)
|
||||
call ga_put(g_z,ilo,ihi,j,j,buf(ilo,3,j),1)
|
||||
end do
|
||||
end do
|
||||
c end do
|
||||
end
|
||||
|
||||
subroutine int_qdr_ga(ibas, jbas, g_xx, g_xy, g_xz,
|
||||
|
|
|
|||
|
|
@ -249,7 +249,8 @@ c
|
|||
c create a global array to store x, y, z and x^2, y^2, z^2 for each AO
|
||||
c
|
||||
if (.not. ga_create(mt_dbl, 6*nbf, nbf, 'GXLM',
|
||||
$ 32,32,g_xlm)) call errquit('mo_r_and_r2: g_xlm',6*nbf*nbf,
|
||||
c $ 32,32,g_xlm)) call errquit('mo_r_and_r2: g_xlm',6*nbf*nbf,
|
||||
$ nbf,32,g_xlm)) call errquit('mo_r_and_r2: g_xlm',6*nbf*nbf,
|
||||
& GA_ERR)
|
||||
c
|
||||
c compute dipoles and quadrupole components for each AO
|
||||
|
|
@ -301,6 +302,7 @@ c
|
|||
#include "geom.fh"
|
||||
#include "stdio.fh"
|
||||
#include "util_params.fh"
|
||||
#include "util.fh"
|
||||
c
|
||||
integer basis ! [input] basis
|
||||
double precision center(3) ! [input] the expansion center
|
||||
|
|
@ -318,6 +320,9 @@ c
|
|||
integer ilo, ihi, jlo, jhi, idim, jdim, ind, i, j, l, ioff
|
||||
integer l_scr, k_scr, l_mp, k_mp
|
||||
integer lmax ! Maximum value of L = 2
|
||||
integer clo, chi, rlo, rhi
|
||||
integer type, dim1, dim2
|
||||
logical doloop, oprint
|
||||
c
|
||||
if (.not. bas_geom(basis, geom)) call errquit
|
||||
$ ('multipole: bad basis', 0, BASIS_ERR)
|
||||
|
|
@ -349,11 +354,30 @@ c
|
|||
& call errquit('xlm_pole: cannot allocate scratch', maxscr,
|
||||
& MA_ERR)
|
||||
c
|
||||
call ga_distribution(g_xlm,
|
||||
. ga_nodeid(), rlo, rhi, clo, chi)
|
||||
doloop=.not.(rlo.eq.0.and.rhi.eq.-1.and.clo.eq.0.and.chi.eq.-1)
|
||||
call ga_inquire(g_xlm, type, dim1, dim2)
|
||||
oprint=(ga_nodeid() .eq. 0 .and.
|
||||
$ util_print('debug_xlm_make', print_debug))
|
||||
if(oprint) then
|
||||
write(luout,*) ' dim1 dim2 ',dim1,dim2
|
||||
write(luout,*) ' rlo rhi ',rlo,rhi
|
||||
write(luout,*) ' clo chi ',clo,chi
|
||||
endif
|
||||
call ga_zero(g_xlm)
|
||||
nproc=0
|
||||
if(doloop) nproc=1
|
||||
call ga_igop(65536,nproc,1,'+')
|
||||
if(oprint) then
|
||||
write(luout,*) ' using ',nproc,
|
||||
C ' nodes out of ',ga_nnodes()
|
||||
call util_flush(6)
|
||||
endif
|
||||
c
|
||||
if (doloop) then
|
||||
ijshell = -1
|
||||
me = ga_nodeid()
|
||||
nproc = ga_nnodes()
|
||||
do ishell = 1, nshell
|
||||
if (.not. bas_cn2bfr(basis, ishell, ilo, ihi)) call errquit
|
||||
& ('xlm_pole: bas_cn2bfr failed for basis', basis,
|
||||
|
|
@ -429,6 +453,7 @@ c
|
|||
end do
|
||||
end do
|
||||
c
|
||||
endif
|
||||
call ga_sync
|
||||
c
|
||||
c write(LuOut,*) ' THE AO MPOLES '
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@ c
|
|||
#include "esp_common.fh"
|
||||
#include "global.fh"
|
||||
#include "msgids.fh"
|
||||
#include "geom.fh"
|
||||
#include "util.fh"
|
||||
#include "errquit.fh"
|
||||
c
|
||||
real*8 x(3,natoms),q(ndim,4)
|
||||
real*8 g(*)
|
||||
|
|
@ -83,6 +85,7 @@ c
|
|||
c
|
||||
call util_file_name('xyz',.false.,.false.,xyzfil)
|
||||
open(unit=lfnxyz,file=xyzfil,form='formatted',status='unknown')
|
||||
#if 0
|
||||
write(lfnxyz,2000) natoms
|
||||
2000 format('* Coordinates in XYZ format',/,i5)
|
||||
do 5 i=1,natoms
|
||||
|
|
@ -90,6 +93,11 @@ c
|
|||
+ (10.0d0*cau2nm*x(j,i),j=1,3),q(i,4)
|
||||
2001 format(a,t3,4f12.6)
|
||||
5 continue
|
||||
#else
|
||||
if(.not.geom_print_xyz(igeom, lfnxyz))
|
||||
A call errquit(' failed geom_print_xyz',
|
||||
E 0, GEOM_ERR)
|
||||
#endif
|
||||
close(lfnxyz)
|
||||
endif
|
||||
c
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ include ../config/makelib.h
|
|||
FOPTIMIZE += -O0
|
||||
endif
|
||||
endif
|
||||
ifeq ($(FC),ifort)
|
||||
ifeq ($(_FC),ifort)
|
||||
FOPTIONS += -save
|
||||
endif
|
||||
ifeq ($(_FC),xlf)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ SHORTVERSION=2021.11.001
|
|||
VERSION=new_release_2021.11.001
|
||||
#https://gitlab.mpcdf.mpg.de/elpa/elpa/-/archive/new_release_2020.11.001/elpa-new_release_2020.11.001.tar.gz
|
||||
echo mpif90 is `which mpif90`
|
||||
export ARFLAGS=rU
|
||||
if [ -f elpa-${VERSION}.tar.gz ]; then
|
||||
echo "using existing" elpa-${VERSION}.tar.gz
|
||||
else
|
||||
|
|
@ -21,8 +20,14 @@ tar xzf elpa-${VERSION}.tar.gz
|
|||
ln -sf elpa-${VERSION} elpa
|
||||
cd elpa
|
||||
UNAME_S=$(uname -s)
|
||||
if [[ ${UNAME_S} == Linux ]]; then
|
||||
export ARFLAGS=rU
|
||||
fi
|
||||
if [[ ${UNAME_S} == Darwin ]]; then
|
||||
export FORTRAN_CPP=$(find /usr/local/Cellar/gcc/`brew list --versions gcc|cut -c 5-`/bin -name cpp*)
|
||||
if [[ -z "$HOMEBREW_PREFIX" ]]; then
|
||||
HOMEBREW_PREFIX=/usr/local
|
||||
fi
|
||||
export FORTRAN_CPP=$(find "$HOMEBREW_PREFIX"/Cellar/gcc/`brew list --versions gcc|cut -c 5-`/bin -name cpp*)
|
||||
if ! [ -x "$(command -v $FORTRAN_CPP)" ]; then
|
||||
echo
|
||||
echo cpp from gcc homebrew missing
|
||||
|
|
@ -153,7 +158,11 @@ fi
|
|||
|
||||
if [ ! -f configure ]; then
|
||||
sh ./autogen.sh
|
||||
fi
|
||||
fi
|
||||
# patch affinity
|
||||
rm -f check_thread_affinity.patch
|
||||
wget https://raw.githubusercontent.com/conda-forge/elpa-feedstock/main/recipe/check_thread_affinity.patch
|
||||
patch -p2 -s -N < check_thread_affinity.patch
|
||||
mkdir -p build
|
||||
cd build
|
||||
if [[ ! -z "${BUILD_SCALAPACK}" ]]; then
|
||||
|
|
@ -197,7 +206,7 @@ unset SCALAPACK_FCFLAGS
|
|||
unset SCALAPACK_LDFLAGS
|
||||
echo mpif90 is `which mpif90`
|
||||
echo MPIF90 is "$MPIF90"
|
||||
make V=1 -j1 FC=$MPIF90 CC=$MPICC -l0.0001
|
||||
make V=0 -j1 FC=$MPIF90 CC=$MPICC -l0.0001
|
||||
if [[ "$?" != "0" ]]; then
|
||||
echo " "
|
||||
echo "Elpa compilation failed"
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
include ../../config/makefile.h
|
||||
|
||||
install/lib/libxc.a:
|
||||
./build_libxc.sh
|
||||
./build_libxc.sh $(LIBXC_VERSION)
|
||||
|
||||
LIB_TARGETS += libxc
|
||||
|
||||
|
|
|
|||
|
|
@ -7,14 +7,25 @@ check_tgz() {
|
|||
[ -f $1 ] && gunzip -t $1 > /dev/null && myexit=1
|
||||
echo $myexit
|
||||
}
|
||||
|
||||
VERSION=5.2.2
|
||||
if [ $# -eq 0 ]; then
|
||||
VERSION=6.1.0
|
||||
else
|
||||
VERSION=$1
|
||||
fi
|
||||
VERSION_MAJOR=$(echo $VERSION | cut -d . -f 1)
|
||||
if [[ "$VERSION_MAJOR" -lt 4 ]]; then
|
||||
echo
|
||||
echo "LIBXC unsupported version " "$VERSION"
|
||||
echo "please use 4.0.0 and later versions"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
TGZ=libxc-${VERSION}.tar.gz
|
||||
if [ `check_tgz $TGZ` == 1 ]; then
|
||||
echo "using existing $TGZ"
|
||||
else
|
||||
echo "downloading $TGZ"
|
||||
curl -L https://gitlab.com/libxc/libxc/-/archive/${VERSION}/libxc-${VERSION}.tar.gz -o $TGZ
|
||||
curl -sS -L https://gitlab.com/libxc/libxc/-/archive/${VERSION}/libxc-${VERSION}.tar.gz -o $TGZ
|
||||
if [ `check_tgz $TGZ` != 1 ]; then
|
||||
rm -f libxc-${VERSION}.tar.gz
|
||||
curl -L https://github.com/ElectronicStructureLibrary/libxc/archive/refs/tags/${VERSION}.tar.gz -o $TGZ
|
||||
|
|
@ -78,7 +89,7 @@ fi
|
|||
|
||||
cd libxc
|
||||
# patch pk09 to avoid compiler memory problems
|
||||
patch -p0 -N < ../pk09.patch
|
||||
#patch -p0 -N < ../pk09.patch
|
||||
mkdir -p build
|
||||
cd build
|
||||
if [[ -z "${NWCHEM_TOP}" ]]; then
|
||||
|
|
@ -100,8 +111,16 @@ else
|
|||
fcflags=" "
|
||||
fi
|
||||
rm -rf libxc/build
|
||||
if [[ "${USE_HWOPT}" == "n" ]]; then
|
||||
enable_xhost_flag=OFF
|
||||
else
|
||||
enable_xhost_flag=ON
|
||||
fi
|
||||
|
||||
$CMAKE -E env CFLAGS="$cflags" LDFLAGS="$ldflags" FCFLAGS="$fcflags" FFLAGS="$fcflags" \
|
||||
$CMAKE -DCMAKE_INSTALL_PREFIX=${NWCHEM_TOP}/src/libext/libxc/install -DCMAKE_C_COMPILER=$CC -DENABLE_FORTRAN=ON -DCMAKE_Fortran_COMPILER=$FC -DDISABLE_KXC=OFF \
|
||||
-DENABLE_XHOST="$enable_xhost_flag" \
|
||||
-DENABLE_FORTRAN03=ON \
|
||||
-DCMAKE_INSTALL_LIBDIR="lib" -DCMAKE_BUILD_TYPE=Release ..
|
||||
|
||||
make -j4 | tee make.log
|
||||
|
|
|
|||
|
|
@ -65,8 +65,10 @@ if [[ "${NWCHEM_TARGET}" == "LINUX" ]]; then
|
|||
else
|
||||
binary=64
|
||||
fi
|
||||
if [ -n "${USE_DYNAMIC_ARCH}" ]; then
|
||||
FORCETARGET+="DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
|
||||
if [[ -n "${USE_DYNAMIC_ARCH}" ]] || [[ "${USE_HWOPT}" == "n" ]]; then
|
||||
if [[ "$arch" == "x86_64" ]]; then
|
||||
FORCETARGET+="DYNAMIC_ARCH=1 DYNAMIC_OLDER=1"
|
||||
fi
|
||||
fi
|
||||
#cray ftn wrapper
|
||||
if [[ ${FC} == ftn ]]; then
|
||||
|
|
@ -136,10 +138,21 @@ elif [[ -n ${FC} ]] && [[ "${FC}" == "ifort" ]] || [[ "${FC}" == "ifx" ]]; then
|
|||
LAPACK_FPFLAGS_VAL=" -fp-model source -O2 -g "
|
||||
else
|
||||
#assuming gfortran
|
||||
FORCETARGET+=' F_COMPILER=GFORTRAN '
|
||||
LAPACK_FPFLAGS_VAL=" "
|
||||
if [[ ${BLAS_SIZE} == 8 ]]; then
|
||||
LAPACK_FLAGS_VAL+=" -fdefault-integer-8"
|
||||
fi
|
||||
LAPACK_FPFLAGS_VAL+=" -fdefault-integer-8"
|
||||
fi
|
||||
fi
|
||||
if [[ -n ${CC} ]] && [[ "${CC}" == "amdclang" ]]; then
|
||||
let VERSIONEQ15=$(expr `${CC} -dM -E - < /dev/null 2> /dev/null|egrep 15|grep __clang_major__ |cut -d ' ' -f 3 ` \= 15)
|
||||
if [[ ${VERSIONEQ15} == 1 ]]; then
|
||||
echo "amdclang 15 buggy. reduced optimization to O1"
|
||||
FORCETARGET+=' COMMON_OPT=-O1'
|
||||
fi
|
||||
fi
|
||||
if [[ -z "${FC}" ]]; then
|
||||
FC=gfortran
|
||||
fi
|
||||
if [[ -z "${CC}" ]]; then
|
||||
CC=cc
|
||||
|
|
@ -179,6 +192,13 @@ else
|
|||
THREADOPT="1"
|
||||
MYNTS="128"
|
||||
fi
|
||||
# cross compilation
|
||||
GOTMINGW64=$("$CC" -dM -E - </dev/null 2> /dev/null |grep MINGW64|cut -c21)
|
||||
if [[ "${GOTMINGW64}" == "1" ]]; then
|
||||
FORCETARGET+=HOSTCC=\"gcc\"
|
||||
THREADOPT="0"
|
||||
MYNTS="1"
|
||||
fi
|
||||
|
||||
#we want openblas to use pthreads and not openmp.
|
||||
#but NWChem and OpenBLAS both use USE_OPENMP
|
||||
|
|
@ -187,7 +207,8 @@ if [[ ! -z "${USE_OPENMP}" ]]; then
|
|||
unset USE_OPENMP
|
||||
NWCHEM_USE_OPENMP=1
|
||||
fi
|
||||
echo make $FORCETARGET LAPACK_FPFLAGS=$LAPACK_FPFLAGS_VAL INTERFACE64=$sixty4_int BINARY=$binary NUM_THREADS=$MYNTS NO_CBLAS=1 NO_LAPACKE=1 DEBUG=0 USE_THREAD=$THREADOPT libs netlib -j4
|
||||
echo FC is $FC
|
||||
echo make FC=$FC $FORCETARGET LAPACK_FPFLAGS=$LAPACK_FPFLAGS_VAL INTERFACE64=$sixty4_int BINARY=$binary NUM_THREADS=$MYNTS NO_CBLAS=1 NO_LAPACKE=1 DEBUG=0 USE_THREAD=$THREADOPT libs netlib -j4
|
||||
echo
|
||||
echo OpenBLAS compilation in progress
|
||||
echo output redirected to libext/openblas/OpenBLAS/openblas.log
|
||||
|
|
@ -195,7 +216,7 @@ echo
|
|||
if [[ ${_FC} == xlf ]]; then
|
||||
make FC="xlf -qextname" $FORCETARGET LAPACK_FPFLAGS="$LAPACK_FPFLAGS_VAL" INTERFACE64="$sixty4_int" BINARY="$binary" NUM_THREADS=$MYNTS NO_CBLAS=1 NO_LAPACKE=1 DEBUG=0 USE_THREAD="$THREADOPT" libs netlib -j4 >& openblas.log
|
||||
else
|
||||
make $FORCETARGET LAPACK_FPFLAGS="$LAPACK_FPFLAGS_VAL" INTERFACE64="$sixty4_int" BINARY="$binary" NUM_THREADS=128 NO_CBLAS=1 NO_LAPACKE=1 DEBUG=0 USE_THREAD="$THREADOPT" libs netlib -j4 >& openblas.log
|
||||
make FC=$FC $FORCETARGET LAPACK_FPFLAGS="$LAPACK_FPFLAGS_VAL" INTERFACE64="$sixty4_int" BINARY="$binary" NUM_THREADS=128 NO_CBLAS=1 NO_LAPACKE=1 DEBUG=0 USE_THREAD="$THREADOPT" libs netlib -j4 >& openblas.log
|
||||
fi
|
||||
if [[ "$?" != "0" ]]; then
|
||||
tail -500 openblas.log
|
||||
|
|
|
|||
|
|
@ -193,6 +193,9 @@ echo MPICH_CC is "$MPICH_CC"
|
|||
if [[ -z "$I_MPI_F90" ]] ; then
|
||||
export I_MPI_F90="$FC"
|
||||
fi
|
||||
if [[ -z "$I_MPI_CC" ]] ; then
|
||||
export I_MPI_CC="$CC"
|
||||
fi
|
||||
echo I_MPI_F90 is "$I_MPI_F90"
|
||||
if [[ -z "$PE_ENV" ]] ; then
|
||||
#check if mpif90 and FC are consistent
|
||||
|
|
|
|||
|
|
@ -55,7 +55,8 @@ c
|
|||
integer l_c_t, k_c_t
|
||||
integer l_act, k_act, l_actsh, k_actsh
|
||||
integer twopdmunit
|
||||
integer junk, ninseg, ierr, i, j, ish, ishlo, ishhi, shmax, tdim
|
||||
integer junk(2), ninseg, ierr, i, j, ish, ishlo, ishhi, shmax,
|
||||
t tdim
|
||||
integer nsh, natoms, nactive, nblock
|
||||
c
|
||||
integer k_scr, l_scr, k_lab, l_lab, k_eri, l_eri, leneri, lenscr
|
||||
|
|
@ -482,10 +483,6 @@ c
|
|||
else
|
||||
call ga_copy(g_buf_trans,g_buf)
|
||||
endif
|
||||
cc call ga_print(g_buf_trans)
|
||||
cc call ga_print(g_buf)
|
||||
c call ga_sync()
|
||||
c call ga_mask_sync(.true.,.false.)
|
||||
call ga_sync()
|
||||
c
|
||||
c Now have locally (a,1:nbfpairlocal). Loop thru local shell pairs
|
||||
|
|
@ -524,7 +521,6 @@ c
|
|||
ptr = ptr + count*(oseg_hi-oseg_lo+1)
|
||||
end do
|
||||
c
|
||||
cedo call ga_mask_sync(.true.,.false.)
|
||||
call ga_sync
|
||||
c
|
||||
end do ! End of i
|
||||
|
|
@ -1158,27 +1154,12 @@ c check for boundaries of buff()
|
|||
write(6,*) ga_nodeid(),' i_1.gt.ihi ',i_1,ihi
|
||||
call errquit(' mp2copybck: i boundary passed ',0,0)
|
||||
endif
|
||||
#if 0
|
||||
call ga_get(g_a_trans,i_0,i_1,
|
||||
A jlo,jhi,buff(i_0,jlo),i_ld)
|
||||
#else
|
||||
call ga_get(g_a_trans,i_0,i_1,
|
||||
A jlo,jhi,buff,i_ld)
|
||||
call ga_put(g_a, i_0, i_1, jlo, jhi, buff, i_ld)
|
||||
#endif
|
||||
enddo
|
||||
endif
|
||||
c everybody needs to have the buffer filled
|
||||
call ga_sync()
|
||||
cold if(dowork) call ga_put(g_a, ilo, ihi, jlo, jhi, buff, ihi-ilo+1)
|
||||
call ga_sync()
|
||||
#if 0
|
||||
call ga_sync()
|
||||
tr=ga_ddot(g_a,g_a)
|
||||
tr_tr=ga_ddot(g_a_trans,g_a_trans)
|
||||
if(abs(tr-tr_tr).gt.1d-6)then
|
||||
if(ga_nodeid().eq.0)write(6,*) 'tr ',tr,' tr_tr ',tr_tr
|
||||
endif
|
||||
#endif
|
||||
return
|
||||
end
|
||||
|
|
|
|||
|
|
@ -717,6 +717,10 @@ c
|
|||
endif
|
||||
endif
|
||||
call pstat_on(ps_laifock)
|
||||
if (doprint) then
|
||||
write(6,111) ' Start laifock', util_wallsec()
|
||||
call util_flush(6)
|
||||
end if
|
||||
call mp2_lai_fock_uhf_prepar(
|
||||
$ g_p_ab_a,g_p_ab_b,g_p_ij_a,g_p_ij_b,
|
||||
$ noa,nob,nva,nvb,g_tmpa, g_tmpb,nmo)
|
||||
|
|
@ -725,6 +729,10 @@ c
|
|||
$ noa,nob,nva,nvb,g_lai_a,g_lai_b,rtdb,tol2e_fock)
|
||||
call mp2_lai_fock_uhf_tidy(g_tmpa, g_tmpb)
|
||||
call pstat_off(ps_laifock)
|
||||
if (doprint) then
|
||||
write(6,111) ' Done laifock', util_wallsec()
|
||||
call util_flush(6)
|
||||
end if
|
||||
c
|
||||
if (omatrix) then
|
||||
call ga_print(g_lai_a)
|
||||
|
|
@ -782,11 +790,20 @@ c
|
|||
if(.not.ga_create(mt_dbl,nmo,nmo,'tot beta dens',nmo,0,
|
||||
$ g_p_tot_b))call errquit(
|
||||
$ 'mp2_energy: ga_create failed',0, GA_ERR)
|
||||
c
|
||||
c
|
||||
if (doprint) then
|
||||
write(6,111) ' Start make_tot_dens', util_wallsec()
|
||||
call util_flush(6)
|
||||
end if
|
||||
|
||||
call mp2_make_tot_dens(g_p_ij_a,g_p_ij_b,g_p_ab_a,g_p_ab_b,
|
||||
$ g_rhs,g_p_tot_a,g_p_tot_b,noa,nva,nob,nvb,nbf,nmo,
|
||||
$ int_mb(k_map_a), int_mb(k_map_b),
|
||||
$ g_vecs_a,g_vecs_b,basis,scftype)
|
||||
if (doprint) then
|
||||
write(6,111) ' Done make_tot_dens', util_wallsec()
|
||||
call util_flush(6)
|
||||
end if
|
||||
c
|
||||
if (otrace) then
|
||||
call mp2_print_trace_norm(g_p_tot_a,'g_p_tot_a',nmo)
|
||||
|
|
@ -931,6 +948,7 @@ c
|
|||
endif
|
||||
c
|
||||
call ga_sync
|
||||
111 format(a,' at ', f10.1,'s')
|
||||
c
|
||||
end
|
||||
subroutine mp2_print_trace_norm(g, text, n)
|
||||
|
|
|
|||
|
|
@ -22,6 +22,8 @@ c
|
|||
double precision mp2y, scfy
|
||||
double precision mp2z, scfz
|
||||
double precision ndip(3)
|
||||
logical ga_create_atom_blocked
|
||||
external ga_create_atom_blocked
|
||||
integer geom
|
||||
c
|
||||
if (.not. bas_cando_mpoles(basis)) return
|
||||
|
|
@ -31,15 +33,9 @@ c
|
|||
c
|
||||
c Generate dipole integrals
|
||||
c
|
||||
*ga:1:0
|
||||
if(.not.ga_create(mt_dbl,nbf,nbf,' ao integs x ',
|
||||
$ 0,0,g_x)) call errquit('mp2_dipole: ga',0, GA_ERR)
|
||||
*ga:1:0
|
||||
if(.not.ga_create(mt_dbl,nbf,nbf,' ao integs y ',
|
||||
$ 0,0,g_y)) call errquit('mp2_dipole: ga',0, GA_ERR)
|
||||
*ga:1:0
|
||||
if(.not.ga_create(mt_dbl,nbf,nbf,' ao integs z',
|
||||
$ 0,0,g_z)) call errquit('mp2_dipole: ga',0, GA_ERR)
|
||||
g_x = ga_create_atom_blocked(geom, basis,'ao integs x')
|
||||
g_y = ga_create_atom_blocked(geom, basis,'ao integs y')
|
||||
g_z = ga_create_atom_blocked(geom, basis,'ao integs z')
|
||||
c
|
||||
call int_init(rtdb,1,basis)
|
||||
call int_dip_ga(basis, basis, g_x, g_y, g_z)
|
||||
|
|
@ -48,8 +44,7 @@ c
|
|||
c Generate SCF AO density
|
||||
c
|
||||
*ga:1:0
|
||||
if(.not.ga_create(mt_dbl, nbf, nbf,' AO density ',
|
||||
$ 0,0,g_dens)) call errquit('mp2_dipole: ga',0, GA_ERR)
|
||||
g_dens = ga_create_atom_blocked(geom, basis,'ao density')
|
||||
call ga_dgemm('n', 't', nbf, nbf, noa, 1.0d0, g_vecs_a,
|
||||
$ g_vecs_a, 0.0d0, g_dens)
|
||||
call ga_dgemm('n', 't', nbf, nbf, nob, 1.0d0, g_vecs_b,
|
||||
|
|
@ -62,8 +57,7 @@ c
|
|||
c Form the MP2 AO density
|
||||
c
|
||||
*ga:1:0
|
||||
if(.not.ga_create(mt_dbl,nmo,nbf,'scratch',0,0,g_scratch))
|
||||
$ call errquit('mp2_grad: scratch',1, GA_ERR)
|
||||
g_scratch = ga_create_atom_blocked(geom, basis,'scratch')
|
||||
call ga_dgemm('n','t',nmo,nbf,nmo,1.0d0,g_p_tot_a,g_vecs_a,
|
||||
$ 0.0d0,g_scratch)
|
||||
call ga_dgemm('n','n',nbf,nbf,nmo,1.0d0,g_vecs_a,g_scratch,
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@
|
|||
character*256 p_a_ao
|
||||
character*256 p_b_ao
|
||||
integer base
|
||||
integer l_buf,k_buf
|
||||
integer ilo,ihi,jlo,jhi,dowork
|
||||
c
|
||||
call util_file_name('p_a_ao',.true.,.true.,p_a_ao)
|
||||
call util_file_name('p_b_ao',.true.,.true.,p_b_ao)
|
||||
|
|
@ -48,22 +50,48 @@ c$$$ call ga_put(g_p_tot_a,i,i,a+noa,a+noa,temp,1)
|
|||
c$$$ end do
|
||||
c$$$ end do
|
||||
c
|
||||
call ga_distribution(g_p_tot_a, ga_nodeid(),
|
||||
T ilo, ihi, jlo, jhi)
|
||||
c check if distrib by columns
|
||||
if ((ilo.eq.0).and.(ihi.eq.-1)) then
|
||||
dowork=0
|
||||
else
|
||||
if(ilo.ne.1.and.ihi.ne.nmo) call
|
||||
R errquit(' mp2maketotdens bug ',0,0)
|
||||
dowork=1
|
||||
endif
|
||||
ioff = 0
|
||||
do i = 1+ga_nodeid(),noa,ga_nnodes() ! Loop thru SCF order
|
||||
if(dowork.eq.1) then
|
||||
do i = 1,noa
|
||||
ii = map_a(i)
|
||||
if(ii.ge.jlo.and.ii.le.jhi) then
|
||||
do a = 1,nva
|
||||
ii = map_a(i)
|
||||
aa = map_a(a+noa)-noa
|
||||
ia = ioff+a+(i-1)*nva
|
||||
call ga_get(g_rhs,ia,ia,1,1,xx,1)
|
||||
call ga_put(g_p_tot_a,aa+noa,aa+noa,ii,ii,xx,1)
|
||||
call ga_put(g_p_tot_a,ii,ii,aa+noa,aa+noa,xx,1)
|
||||
end do
|
||||
endif
|
||||
end do
|
||||
c
|
||||
call ga_copy_patch('n',g_p_ij_a,1,noa,1,noa,g_p_tot_a,
|
||||
$ 1,noa,1,noa)
|
||||
call ga_copy_patch('n',g_p_ab_a,1,nva,1,nva,g_p_tot_a,
|
||||
$ noa+1,nmo,noa+1,nmo)
|
||||
if (.not. ma_push_get(mt_dbl, nmo, 'mp2: maket',
|
||||
$ l_buf, k_buf)) call errquit
|
||||
$ ('mp2: insufficient memory : bug ', nmo, MA_ERR)
|
||||
|
||||
do i=jlo,jhi
|
||||
if(i.le.noa) then
|
||||
call ga_get(g_p_ij_a,1,noa,i,i,dbl_mb(k_buf),noa)
|
||||
call ga_put(g_p_tot_a,1,noa,i,i,dbl_mb(k_buf),noa)
|
||||
else
|
||||
call ga_get(g_p_ab_a,1,nva,i-noa,i-noa,dbl_mb(k_buf),nva)
|
||||
call ga_put(g_p_tot_a,noa+1,nmo,i,i,dbl_mb(k_buf),nva)
|
||||
endif
|
||||
enddo
|
||||
if (.not. ma_pop_stack(l_buf)) call errquit
|
||||
$ ('mp2: pop_stack failed ', nmo, MA_ERR)
|
||||
endif
|
||||
call ga_mask_sync(.true.,.false.)
|
||||
call ga_sync()
|
||||
c
|
||||
if (scftype .eq. 'UHF') then
|
||||
base = (nva*noa)
|
||||
|
|
@ -71,15 +99,18 @@ c
|
|||
base = 0 ! Alpha is the same as beta
|
||||
end if
|
||||
ioff = base
|
||||
do i = 1+ga_nodeid(),nob,ga_nnodes() ! Loop thru SCF order
|
||||
if (dowork.eq.1) then
|
||||
do i = 1,nob
|
||||
ii = map_b(i)
|
||||
if(ii.ge.jlo.and.ii.le.jhi) then
|
||||
do a = 1,nvb
|
||||
ii = map_b(i)
|
||||
aa = map_b(a+nob)-nob
|
||||
ia = ioff+a+(i-1)*nvb
|
||||
call ga_get(g_rhs,ia,ia,1,1,xx,1)
|
||||
call ga_put(g_p_tot_b,aa+nob,aa+nob,ii,ii,xx,1)
|
||||
call ga_put(g_p_tot_b,ii,ii,aa+nob,aa+nob,xx,1)
|
||||
end do
|
||||
endif
|
||||
end do
|
||||
c$$$ call ga_copy_patch('n',g_rhs,base+1,base+(nvb*nob),
|
||||
c$$$ $ 1,1,g_p_tot_b,nob+1,nmo,1,nob)
|
||||
|
|
@ -90,11 +121,25 @@ c$$$ call ga_get(g_rhs,indx,indx,1,1,temp,1)
|
|||
c$$$ call ga_put(g_p_tot_b,i,i,a+nob,a+nob,temp,1)
|
||||
c$$$ end do
|
||||
c$$$ end do
|
||||
c
|
||||
call ga_copy_patch('n',g_p_ij_b,1,nob,1,nob,g_p_tot_b,
|
||||
$ 1,nob,1,nob)
|
||||
call ga_copy_patch('n',g_p_ab_b,1,nvb,1,nvb,g_p_tot_b,
|
||||
$ nob+1,nmo,nob+1,nmo)
|
||||
c
|
||||
if (.not. ma_push_get(mt_dbl, nmo, 'mp2: maket',
|
||||
$ l_buf, k_buf)) call errquit
|
||||
$ ('mp2: insufficient memory : bug ', nmo, MA_ERR)
|
||||
|
||||
do i=jlo,jhi
|
||||
if(i.le.nob) then
|
||||
call ga_get(g_p_ij_b,1,nob,i,i,dbl_mb(k_buf),nob)
|
||||
call ga_put(g_p_tot_b,1,nob,i,i,dbl_mb(k_buf),nob)
|
||||
else
|
||||
call ga_get(g_p_ab_b,1,nvb,i-nob,i-nob,dbl_mb(k_buf),nvb)
|
||||
call ga_put(g_p_tot_b,nob+1,nmo,i,i,dbl_mb(k_buf),nvb)
|
||||
endif
|
||||
enddo
|
||||
if (.not. ma_pop_stack(l_buf)) call errquit
|
||||
$ ('mp2: pop_stack failed ', nmo, MA_ERR)
|
||||
|
||||
endif
|
||||
call ga_sync()
|
||||
c
|
||||
*ga:1:0
|
||||
if(.not.ga_create(mt_dbl,nmo,nbf,'scratch',0,0,g_scratch))
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ c
|
|||
call ga_copy_patch('n',g_w_ai_a,1,noa_hi,1,nva,g_w_tot_a,
|
||||
$ 1, noa_hi, noa_hi+1, nmo)
|
||||
c
|
||||
call ga_transpose(g_w_ai_a,g_w_ai_a_tr)
|
||||
call mp2_transpwai(g_w_ai_a,g_w_ai_a_tr)
|
||||
call ga_copy_patch('n',g_w_ai_a_tr,1,nva,1,noa_hi,g_w_tot_a,
|
||||
$ noa_hi+1,nmo,1,noa_hi)
|
||||
call ga_copy_patch('n',g_w_ij_a,1,noa_hi,1,noa_hi,g_w_tot_a,
|
||||
|
|
@ -55,7 +55,7 @@ c
|
|||
$ noa_hi+1,nmo,noa_hi+1,nmo)
|
||||
call ga_copy_patch('n',g_w_ai_b,1,nob_hi,1,nvb,g_w_tot_b,
|
||||
$ 1, nob_hi, nob_hi+1,nmo)
|
||||
call ga_transpose(g_w_ai_b,g_w_ai_b_tr)
|
||||
call mp2_transpwai(g_w_ai_b,g_w_ai_b_tr)
|
||||
call ga_copy_patch('n',g_w_ai_b_tr,1,nvb,1,nob_hi,g_w_tot_b,
|
||||
$ nob_hi+1,nmo,1,nob_hi)
|
||||
call ga_copy_patch('n',g_w_ij_b,1,nob_hi,1,nob_hi,g_w_tot_b,
|
||||
|
|
@ -148,3 +148,44 @@ c
|
|||
c
|
||||
end
|
||||
|
||||
subroutine mp2_transpwai(g,g_tr)
|
||||
implicit none
|
||||
#include "mafdecls.fh"
|
||||
#include "global.fh"
|
||||
#include "errquit.fh"
|
||||
integer g,g_tr
|
||||
c
|
||||
integer ilo,ihi,jlo,jhi
|
||||
integer i,j
|
||||
integer k_buf,l_buf
|
||||
integer n_row,n_col,gtype
|
||||
integer dowork
|
||||
c
|
||||
call ga_inquire(g_tr, gtype, n_row, n_col)
|
||||
call ga_distribution(g_tr, ga_nodeid(),
|
||||
T ilo, ihi, jlo, jhi)
|
||||
if ((ilo.eq.0).and.(ihi.eq.-1)) then
|
||||
dowork=0
|
||||
else
|
||||
c check if distrib by columns
|
||||
if(ilo.ne.1.and.ihi.ne.n_row) call
|
||||
R errquit(' mp2transpwai bug ',0,0)
|
||||
dowork=1
|
||||
endif
|
||||
if(dowork.eq.1) then
|
||||
if (.not. ma_push_get(mt_dbl, n_row, 'mp2: wdens',
|
||||
$ l_buf, k_buf)) call errquit
|
||||
$ ('mp2: insufficient memory : bug ', n_row, MA_ERR)
|
||||
do j=jlo,jhi
|
||||
call ga_get(g,j,j,1,n_row,dbl_mb(k_buf),1)
|
||||
if (.not.ma_verify_allocator_stuff()) stop ' ma ck 2b'
|
||||
call ga_put(g_tr,1,n_row,j,j,dbl_mb(k_buf),n_row)
|
||||
if (.not.ma_verify_allocator_stuff()) stop ' ma ck 2b'
|
||||
enddo
|
||||
if (.not. ma_pop_stack(l_buf)) call errquit
|
||||
$ ('mp2transp pop_stack failed ', n_row, MA_ERR)
|
||||
|
||||
endif
|
||||
call ga_sync()
|
||||
return
|
||||
end
|
||||
|
|
|
|||
|
|
@ -49,6 +49,10 @@ c
|
|||
parameter (eps=1d-14)
|
||||
c
|
||||
logical otdebug
|
||||
logical do_mirra,do_mirrb,do_mirr
|
||||
integer g_ta_mirr,g_tb_mirr,g_ta_org,g_tb_org
|
||||
logical util_mirrmat
|
||||
external util_mirrmat
|
||||
c
|
||||
integer l_ia_uv, k_ia_uv, l_tmp, k_tmp, l_ia_jb, k_ia_jb
|
||||
double precision ddot
|
||||
|
|
@ -82,6 +86,24 @@ c
|
|||
*ga:1:0
|
||||
if(.not.ga_create(mt_dbl,nob*nvb,nva,'T_b',(nob*nvb),0,g_t_b))
|
||||
$ call errquit('could not alloc ga for T_b',1, GA_ERR)
|
||||
do_mirra=util_mirrmat(1,g_t_a,g_ta_mirr,
|
||||
D .false., .true.)
|
||||
do_mirrb=util_mirrmat(1,g_t_b,g_tb_mirr,
|
||||
D .false., .true.)
|
||||
if(do_mirra.and.do_mirrb) then
|
||||
if(ga_nodeid().eq.0)
|
||||
w write(6,*) 'mp2_make_tuhf mirroring'
|
||||
do_mirr=.true.
|
||||
g_ta_org=g_t_a
|
||||
g_tb_org=g_t_b
|
||||
g_t_a=g_ta_mirr
|
||||
g_t_b=g_tb_mirr
|
||||
else
|
||||
if(do_mirra) then
|
||||
if(.not.ga_destroy(g_ta_mirr))call errquit(
|
||||
$ 'could not destroy mirrt_a handle',1, GA_ERR)
|
||||
endif
|
||||
endif
|
||||
tunitptra=1
|
||||
tunitptrb=1
|
||||
do i=oseg_lo,oseg_hi
|
||||
|
|
@ -189,6 +211,12 @@ c
|
|||
enddo
|
||||
enddo
|
||||
call ga_sync()
|
||||
if (do_mirr) then
|
||||
call ga_mask_sync(.true.,.false.)
|
||||
call ga_merge_mirrored(g_t_a)
|
||||
call ga_mask_sync(.true.,.false.)
|
||||
call ga_merge_mirrored(g_t_b)
|
||||
endif
|
||||
do a_a=nva_lo_local,nva_hi_local
|
||||
counta = 0
|
||||
do b=nva_lo,nva_hi
|
||||
|
|
@ -265,6 +293,15 @@ c
|
|||
esing = esing + (-4.0d0*eab + eaa)/4.0d0
|
||||
etrip = etrip + (-3.0d0*eaa)/4.0d0
|
||||
c
|
||||
if(do_mirr) then
|
||||
if(.not.ga_destroy(g_t_b))call errquit(
|
||||
$ 'could not destroy t_b handle',1, GA_ERR)
|
||||
if(.not.ga_destroy(g_t_a))call errquit(
|
||||
$ 'could not destroy t_a handle',1, GA_ERR)
|
||||
g_t_a=g_ta_org
|
||||
g_t_b=g_tb_org
|
||||
endif
|
||||
|
||||
if(.not.ga_destroy(g_t_b))call errquit(
|
||||
$ 'could not destroy t_b handle',1, GA_ERR)
|
||||
if(.not.ga_destroy(g_t_a))call errquit(
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ c
|
|||
c $Id$
|
||||
c
|
||||
c ======================================================================================================
|
||||
C> \mainpage Northwest Computational Chemistry Package (NWChem) 7.0.1
|
||||
C> \mainpage Northwest Computational Chemistry Package (NWChem) 7.2.0
|
||||
C>
|
||||
C> NWChem is an open-source computational chemistry package distributed under the terms of
|
||||
C> the Educational Community License (ECL) 2.0
|
||||
|
|
@ -461,7 +461,7 @@ c
|
|||
write(LuOut,*)
|
||||
write(LuOut,*)
|
||||
call util_print_centered(LuOut,
|
||||
$ 'Northwest Computational Chemistry Package (NWChem) 7.0.1',
|
||||
$ 'Northwest Computational Chemistry Package (NWChem) 7.2.0',
|
||||
$ 40, .true.)
|
||||
write(LuOut,*)
|
||||
write(LuOut,*)
|
||||
|
|
@ -557,7 +557,7 @@ C
|
|||
C Print version information to ecce.out file
|
||||
C
|
||||
compiled(inp_strlen(compiled)+1:inp_strlen(compiled)+25) =
|
||||
$ ' Version 7.0.1'
|
||||
$ ' Version 7.2.0'
|
||||
call ecce_print_version(compiled(1:inp_strlen(compiled)))
|
||||
C
|
||||
If ( Inp_StrLen(BatchID) .gt. 0) then
|
||||
|
|
|
|||
|
|
@ -25,7 +25,8 @@ c
|
|||
double precision grid_acc(num_gridtypes)
|
||||
double precision job_grid_acc
|
||||
character*16 element
|
||||
character*16 tag
|
||||
character*16 tag, tag_mod
|
||||
integer lenb
|
||||
double precision eps
|
||||
parameter (eps = 1.d-20)
|
||||
data gridtypes /'xcoarse', 'coarse', 'medium', 'fine', 'xfine',
|
||||
|
|
@ -418,7 +419,10 @@ c
|
|||
c hack for nbo
|
||||
if(tag(3:4).eq.'gh') iptr=5
|
||||
if(tag(1:1).eq.'X'.or.tag(1:1).eq.'x') iptr=2
|
||||
if (.not. geom_tag_to_element(tag(iptr:), symbol,
|
||||
lenb=inp_strlen(tag)
|
||||
tag_mod=' '
|
||||
tag_mod(1:lenb-iptr+1)=tag(iptr:lenb)
|
||||
if (.not. geom_tag_to_element(tag_mod, symbol,
|
||||
& element, i_atomic_number)) then
|
||||
if (inp_compare(.false.,tag(1:2),'bq')) then
|
||||
i_atomic_number = 0
|
||||
|
|
|
|||
|
|
@ -26,7 +26,8 @@ c
|
|||
logical same_atom, same_bq, isbq
|
||||
c
|
||||
character*16 element
|
||||
character*16 tag
|
||||
character*16 tag,tag_mod
|
||||
integer lenb
|
||||
character*2 symbol
|
||||
c
|
||||
logical lnewtype
|
||||
|
|
@ -179,7 +180,10 @@ c Hence they should always have i_atomic_number .eq. 0
|
|||
c no matter what follows the X.
|
||||
c
|
||||
if(tag(1:1).eq.'X'.or.tag(1:1).eq.'x') iptr=2
|
||||
if (.not. geom_tag_to_element(tag(iptr:), symbol,
|
||||
lenb=inp_strlen(tag)
|
||||
tag_mod=' '
|
||||
tag_mod(1:lenb-iptr+1)=tag(iptr:lenb)
|
||||
if (.not. geom_tag_to_element(tag_mod, symbol,
|
||||
& element, i_atomic_number)) then
|
||||
if (inp_compare(.false.,tag(1:2),'bq')) then
|
||||
if(bqdontcare) then
|
||||
|
|
|
|||
|
|
@ -12,12 +12,17 @@ LIBRARY = libnwdft.a
|
|||
|
||||
LIB_INCLUDES = -I../include
|
||||
ifdef USE_LIBXC
|
||||
LIB_DEFINES += -DXC_MAJOR_VERSION=$(shell grep XC_MAJOR_VERSION ../../libext/libxc/install/include/xc_version.h |cut -d " " -f 3)
|
||||
LIB_DEFINES += -DLIBXC_NP_SIZE=$(shell ./libxc_findsizenp.sh ../../libext/libxc/install/include)
|
||||
LIB_INCLUDES += -I../../libext/libxc/install/include
|
||||
endif
|
||||
ifdef LIBXC_DIR
|
||||
LIB_INCLUDES += -I$(LIBXC_DIR)/include
|
||||
ifdef LIBXC_INCLUDE
|
||||
LIB_DEFINES += -DXC_MAJOR_VERSION=$(shell grep XC_MAJOR_VERSION $(LIBXC_INCLUDE)/xc_version.h |cut -d " " -f 3)
|
||||
LIB_DEFINES += -DLIBXC_NP_SIZE=$(shell ./libxc_findsizenp.sh $(LIBXC_INCLUDE))
|
||||
LIB_INCLUDES += -I$(LIBXC_INCLUDE)
|
||||
endif
|
||||
LIB_INCLUDES += -I.
|
||||
|
||||
|
||||
include ../../config/makefile.h
|
||||
include ../../config/makelib.h
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
#ifdef USE_LIBXC
|
||||
#if XC_MAJOR_VERSION < 4
|
||||
#error "need libxc version > 3 "
|
||||
#endif
|
||||
#endif
|
||||
integer, parameter :: maxfunc = 100
|
||||
|
||||
integer :: libxc_nfuncs
|
||||
|
|
|
|||
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 :: Cmat3(nq,NCOL_CMAT3)
|
||||
|
||||
#ifdef USE_LIBXC
|
||||
double precision :: fac
|
||||
|
||||
double precision, external :: ddot
|
||||
logical gga,mgga,dolap
|
||||
logical,external :: nwchem_libxc_family
|
||||
|
||||
#if LIBXC_NP_SIZE == 4
|
||||
integer*4 nqs
|
||||
#elif LIBXC_NP_SIZE == 8
|
||||
integer(c_size_t) :: nqs
|
||||
#ifdef USE_LIBXC
|
||||
#else
|
||||
#error "unexpected value for LIBXC_NP_SIZE"
|
||||
#endif
|
||||
type(xc_f03_func_t) :: xcfunc
|
||||
|
||||
gga = .false.
|
||||
|
|
@ -154,22 +160,39 @@
|
|||
|
||||
call xc_f03_func_init(xcfunc,libxc_funcs(ifunc),polarized)
|
||||
call xc_f03_func_set_dens_threshold(xcfunc, tol_rho)
|
||||
call xc_f03_func_set_sigma_threshold(xcfunc, tol_rho**2)
|
||||
#if XC_MAJOR_VERSION > 4
|
||||
call xc_f03_func_set_sigma_threshold(xcfunc, tol_rho)
|
||||
call xc_f03_func_set_zeta_threshold(xcfunc, 1d-10)
|
||||
|
||||
#endif
|
||||
select case(libxc_family(ifunc))
|
||||
#if XC_MAJOR_VERSION > 4
|
||||
case (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA)
|
||||
|
||||
#else
|
||||
case (XC_FAMILY_LDA)
|
||||
#endif
|
||||
if ((.not.do_2nd) .and. (.not.do_3rd)) then
|
||||
call xc_f03_lda_exc_vxc(xcfunc,nqs,
|
||||
$ dbl_mb(krho),dbl_mb(kexc),dbl_mb(kvrho))
|
||||
elseif (.not.do_3rd) then
|
||||
#if XC_MAJOR_VERSION > 4
|
||||
call xc_f03_lda_exc_vxc_fxc(xcfunc,nqs,dbl_mb(krho),
|
||||
$ dbl_mb(kexc),dbl_mb(kvrho),dbl_mb(kv2rho2))
|
||||
#else
|
||||
call xc_f03_lda_exc_vxc(xcfunc,nqs,dbl_mb(krho),
|
||||
$ dbl_mb(kexc),dbl_mb(kvrho))
|
||||
call xc_f03_lda_fxc(xcfunc,nqs,dbl_mb(krho),dbl_mb(kv2rho2))
|
||||
#endif
|
||||
else
|
||||
#if XC_MAJOR_VERSION > 4
|
||||
call xc_f03_lda_exc_vxc_fxc_kxc(xcfunc,nqs,dbl_mb(krho),
|
||||
$ dbl_mb(kexc),dbl_mb(kvrho),dbl_mb(kv2rho2),
|
||||
$ dbl_mb(kv3rho3))
|
||||
#else
|
||||
call xc_f03_lda_exc_vxc(xcfunc,nqs,dbl_mb(krho),
|
||||
$ dbl_mb(kexc),dbl_mb(kvrho))
|
||||
call xc_f03_lda_fxc(xcfunc,nqs,dbl_mb(krho),dbl_mb(kv2rho2))
|
||||
call xc_f03_lda_kxc(xcfunc,nqs,dbl_mb(krho),dbl_mb(kv3rho3))
|
||||
#endif
|
||||
endif
|
||||
|
||||
|
||||
|
|
@ -186,17 +209,43 @@
|
|||
$ dbl_mb(kexc),
|
||||
$ dbl_mb(kvrho),dbl_mb(kvsigma))
|
||||
elseif (.not.do_3rd) then
|
||||
#if XC_MAJOR_VERSION > 4
|
||||
call xc_f03_gga_exc_vxc_fxc(xcfunc,nqs,
|
||||
$ dbl_mb(krho),dbl_mb(ksigma),dbl_mb(kexc),
|
||||
$ dbl_mb(kvrho),dbl_mb(kvsigma),dbl_mb(kv2rho2),
|
||||
$ dbl_mb(kv2rhosig),dbl_mb(kv2sig2))
|
||||
#else
|
||||
call xc_f03_gga_exc_vxc(xcfunc,nqs,
|
||||
$ dbl_mb(krho),dbl_mb(ksigma),
|
||||
$ dbl_mb(kexc),
|
||||
$ dbl_mb(kvrho),dbl_mb(kvsigma))
|
||||
call xc_f03_gga_fxc(xcfunc,nqs,
|
||||
$ dbl_mb(krho),dbl_mb(ksigma),
|
||||
$ dbl_mb(kv2rho2),dbl_mb(kv2rhosig),
|
||||
$ dbl_mb(kv2sig2))
|
||||
#endif
|
||||
else
|
||||
#if XC_MAJOR_VERSION > 4
|
||||
call xc_f03_gga_exc_vxc_fxc_kxc(xcfunc,nqs,
|
||||
$ dbl_mb(krho),dbl_mb(ksigma),dbl_mb(kexc),
|
||||
$ dbl_mb(kvrho),dbl_mb(kvsigma),dbl_mb(kv2rho2),
|
||||
$ dbl_mb(kv2rhosig),dbl_mb(kv2sig2),
|
||||
$ dbl_mb(kv3rho3),dbl_mb(kv3rho2sig),
|
||||
$ dbl_mb(kv3rhosig2),dbl_mb(kv3sig3))
|
||||
#else
|
||||
call xc_f03_gga_exc_vxc(xcfunc,nqs,
|
||||
$ dbl_mb(krho),dbl_mb(ksigma),
|
||||
$ dbl_mb(kexc),
|
||||
$ dbl_mb(kvrho),dbl_mb(kvsigma))
|
||||
call xc_f03_gga_fxc(xcfunc,nqs,
|
||||
$ dbl_mb(krho),dbl_mb(ksigma),
|
||||
$ dbl_mb(kv2rho2),dbl_mb(kv2rhosig),
|
||||
$ dbl_mb(kv2sig2))
|
||||
call xc_f03_gga_kxc(xcfunc,nqs,
|
||||
$ dbl_mb(krho),dbl_mb(ksigma),
|
||||
$ dbl_mb(kv3rho3),dbl_mb(kv3rho2sig),
|
||||
$ dbl_mb(kv3rhosig2),dbl_mb(kv3sig3))
|
||||
#endif
|
||||
endif
|
||||
else
|
||||
if ((.not.do_2nd).and.(.not.do_3rd)) then
|
||||
|
|
@ -204,17 +253,41 @@
|
|||
$ dbl_mb(krho),dbl_mb(ksigma),
|
||||
$ dbl_mb(kvrho),dbl_mb(kvsigma))
|
||||
elseif (.not.do_3rd) then
|
||||
#if XC_MAJOR_VERSION > 4
|
||||
call xc_f03_gga_vxc_fxc(xcfunc,nqs,
|
||||
$ dbl_mb(krho),dbl_mb(ksigma),
|
||||
$ dbl_mb(kvrho),dbl_mb(kvsigma),dbl_mb(kv2rho2),
|
||||
$ dbl_mb(kv2rhosig),dbl_mb(kv2sig2))
|
||||
#else
|
||||
call xc_f03_gga_vxc(xcfunc,nqs,
|
||||
$ dbl_mb(krho),dbl_mb(ksigma),
|
||||
$ dbl_mb(kvrho),dbl_mb(kvsigma))
|
||||
call xc_f03_gga_fxc(xcfunc,nqs,
|
||||
$ dbl_mb(krho),dbl_mb(ksigma),
|
||||
$ dbl_mb(kv2rho2),dbl_mb(kv2rhosig),
|
||||
$ dbl_mb(kv2sig2))
|
||||
#endif
|
||||
else
|
||||
#if XC_MAJOR_VERSION > 4
|
||||
call xc_f03_gga_vxc_fxc_kxc(xcfunc,nqs,
|
||||
$ dbl_mb(krho),dbl_mb(ksigma),
|
||||
$ dbl_mb(kvrho),dbl_mb(kvsigma),dbl_mb(kv2rho2),
|
||||
$ dbl_mb(kv2rhosig),dbl_mb(kv2sig2),
|
||||
$ dbl_mb(kv3rho3),dbl_mb(kv3rho2sig),
|
||||
$ dbl_mb(kv3rhosig2),dbl_mb(kv3sig3))
|
||||
#else
|
||||
call xc_f03_gga_vxc(xcfunc,nqs,
|
||||
$ dbl_mb(krho),dbl_mb(ksigma),
|
||||
$ dbl_mb(kvrho),dbl_mb(kvsigma))
|
||||
call xc_f03_gga_fxc(xcfunc,nqs,
|
||||
$ dbl_mb(krho),dbl_mb(ksigma),
|
||||
$ dbl_mb(kv2rho2),dbl_mb(kv2rhosig),
|
||||
$ dbl_mb(kv2sig2))
|
||||
call xc_f03_gga_kxc(xcfunc,nqs,
|
||||
$ dbl_mb(krho),dbl_mb(ksigma),
|
||||
$ dbl_mb(kv3rho3),dbl_mb(kv3rho2sig),
|
||||
$ dbl_mb(kv3rhosig2),dbl_mb(kv3sig3))
|
||||
#endif
|
||||
endif
|
||||
call dfill(nq,0d0,dbl_mb(kexc),1)
|
||||
endif
|
||||
|
|
@ -222,8 +295,8 @@
|
|||
case (XC_FAMILY_MGGA, XC_FAMILY_HYB_MGGA)
|
||||
gga = .true.
|
||||
mgga = .true.
|
||||
dolap = .true.
|
||||
|
||||
dolap = iand(libxc_flags(ifunc),xc_flags_needs_laplacian).eq.
|
||||
$ xc_flags_needs_laplacian
|
||||
|
||||
if (iand(libxc_flags(ifunc),xc_flags_have_exc).eq.
|
||||
$ xc_flags_have_exc) then
|
||||
|
|
|
|||
|
|
@ -41,7 +41,11 @@
|
|||
xcfamily = xc_f03_func_info_get_family(xcinfo)
|
||||
|
||||
select case(xcfamily)
|
||||
#if XC_MAJOR_VERSION > 4
|
||||
case (XC_FAMILY_LDA, XC_FAMILY_HYB_LDA)
|
||||
#else
|
||||
case (XC_FAMILY_LDA)
|
||||
#endif
|
||||
case (XC_FAMILY_GGA, XC_FAMILY_HYB_GGA)
|
||||
case (XC_FAMILY_MGGA, XC_FAMILY_HYB_MGGA)
|
||||
case default
|
||||
|
|
@ -50,7 +54,11 @@
|
|||
endselect
|
||||
|
||||
select case(xcfamily)
|
||||
#if XC_MAJOR_VERSION > 4
|
||||
case (XC_FAMILY_HYB_LDA, XC_FAMILY_HYB_GGA, XC_FAMILY_HYB_MGGA)
|
||||
#else
|
||||
case (XC_FAMILY_HYB_GGA, XC_FAMILY_HYB_MGGA)
|
||||
#endif
|
||||
if (iand(xcflags,xc_flags_hyb_cam).eq.xc_flags_hyb_cam) then
|
||||
call xc_f03_hyb_cam_coef(xcfunc,cam_omega,cam_alpha,cam_beta)
|
||||
|
||||
|
|
|
|||
|
|
@ -73,9 +73,7 @@
|
|||
subroutine nwchem_libxc_print
|
||||
use,intrinsic :: iso_c_binding
|
||||
#ifdef USE_LIBXC
|
||||
use xc_f03_lib_m, only: xc_f03_version_string,
|
||||
$ xc_f03_reference,
|
||||
$ xc_f03_functional_get_name
|
||||
use xc_f03_lib_m, only: xc_f03_functional_get_name
|
||||
#endif
|
||||
implicit none
|
||||
|
||||
|
|
@ -109,9 +107,7 @@
|
|||
subroutine nwchem_libxc_print_header
|
||||
use,intrinsic :: iso_c_binding
|
||||
#ifdef USE_LIBXC
|
||||
use xc_f03_lib_m, only: xc_f03_version_string,
|
||||
$ xc_f03_reference,
|
||||
$ xc_f03_functional_get_name
|
||||
use xc_f03_lib_m, only: xc_f03_version_string
|
||||
#endif
|
||||
implicit none
|
||||
|
||||
|
|
|
|||
|
|
@ -616,7 +616,7 @@ c
|
|||
call tddft_grad_compute_dao(ipol,nao,nocc,g_mo,g_d)
|
||||
c DEBUG
|
||||
c call ga_print(g_d)
|
||||
if (tddft_grad_util_print('tddft grad g',print_debug)) then
|
||||
if (util_print('tddft grad g',print_debug)) then
|
||||
if (oroot) write(LuOut,*)'DEBUG: '//pname//'D'
|
||||
call tddft_grad_print_array(ipol,1,g_d,dble(ipol))
|
||||
endif
|
||||
|
|
@ -640,7 +640,7 @@ c
|
|||
enddo
|
||||
c DEBUG
|
||||
c call ga_print(g_p_ao)
|
||||
if (tddft_grad_util_print('tddft grad g',print_debug)) then
|
||||
if (util_print('tddft grad g',print_debug)) then
|
||||
if (oroot) write(LuOut,*)'DEBUG: '//pname//'P'
|
||||
c call tddft_grad_print_array(ipol,1,g_p_ao,dble(ipol))
|
||||
call tddft_grad_print_array(ipol,1,g_d(3),dble(ipol))
|
||||
|
|
@ -798,7 +798,7 @@ c
|
|||
c Daniel (11-30-12): Print X+Y and X-Y in the AO basis
|
||||
c DEBUG
|
||||
c call ga_print(g_d(5))
|
||||
if (tddft_grad_util_print('tddft grad g',print_debug)) then
|
||||
if (util_print('tddft grad g',print_debug)) then
|
||||
if (oroot) write(LuOut,*)'DEBUG: '//pname//'(X+Y)'
|
||||
call tddft_grad_print_array(ipol,1,g_d(5),dble(ipol))
|
||||
endif
|
||||
|
|
@ -818,7 +818,7 @@ c Daniel (11-30-12): Print W (note, this contains the ground state
|
|||
c density matrix contribution as well).
|
||||
c DEBUG
|
||||
c call ga_print(g_wp_ao)
|
||||
if (tddft_grad_util_print('tddft grad g',print_debug)) then
|
||||
if (util_print('tddft grad g',print_debug)) then
|
||||
if (oroot) write(LuOut,*)'DEBUG: '//pname//'W'
|
||||
call tddft_grad_print_array(1,1,g_wp_ao,dble(ipol))
|
||||
endif
|
||||
|
|
@ -1140,7 +1140,7 @@ c Daniel (4-8-13): Need conditional statement here for CAM functionals
|
|||
c
|
||||
c Print results if so required
|
||||
c
|
||||
if (tddft_grad_util_print('tddft grad terms',print_high)) then
|
||||
if (util_print('tddft grad terms',print_high)) then
|
||||
if (oroot) then
|
||||
write(LuOut,5)ir
|
||||
5 format(' The Excited State Energy Gradient by Terms',
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ c
|
|||
call nga_scale_patch(g_tp(ip),blo,bhi,0.5d0)
|
||||
enddo
|
||||
c
|
||||
if (tddft_grad_util_print(pname,print_debug)) then
|
||||
if (util_print(pname,print_debug)) then
|
||||
oroot = ga_nodeid().eq.0
|
||||
if (oroot) write(LuOut,*)'DEBUG: '//pname//'P'
|
||||
call tddft_grad_print_array(ipol,nroots,g_tp,dble(ipol))
|
||||
|
|
|
|||
|
|
@ -120,17 +120,22 @@ c
|
|||
c
|
||||
c Daniel (2-8-13): This is a local TDA variable, so that we don't need
|
||||
c to change the global tda variable.
|
||||
logical tdaloc
|
||||
logical tdaloc, tddft_grad_tdaloc
|
||||
external tddft_grad_tdaloc
|
||||
logical oprint
|
||||
integer g_r_x(2),g_r_org(2)
|
||||
c
|
||||
double precision Exc(2) ! Exchange-correlation energy
|
||||
c
|
||||
pname="tddft_grad_compute_r: "
|
||||
iwhich = 0 ! call to tddft_nga_cont()
|
||||
write(6,*) ' 0 tda ',tda
|
||||
c
|
||||
c 1. Do the T contributions
|
||||
c
|
||||
c 1.1. Create global array to hold Tuv
|
||||
c
|
||||
oprint=util_print('tddft_grad_r',print_debug)
|
||||
idim(1) = nroot*ipol
|
||||
idim(2) = nao
|
||||
idim(3) = nao
|
||||
|
|
@ -180,6 +185,7 @@ c fock_xc:triplet here for restricted triplet calculations to work.
|
|||
c
|
||||
call tddft_nga_cont(rtdb,ihdl_geom,ihdl_bfao,g_tuv,g_apbt,g_ambt,
|
||||
+nao,ipol,tol2e,tda,oskel,kfac,lhashf,.false.,nroot,iwhich,lhascd)
|
||||
write(6,*) ' 2 tda ',tda
|
||||
c Daniel (2-26-13): Reset fock_xc:triplet here for restricted triplet
|
||||
c calculations to work.
|
||||
if (otriplet) then
|
||||
|
|
@ -217,11 +223,11 @@ c
|
|||
c
|
||||
c 1. Done T contributions
|
||||
cDEBUG
|
||||
c if (tddft_grad_util_print('tddft grad r',print_debug)) then
|
||||
c oroot = ga_nodeid().eq.0
|
||||
c if (oroot) write(LuOut,*)'DEBUG A: tddft_grad_comp_r: R'
|
||||
c call tddft_grad_print_array(ipol,nroot,g_r,dble(ipol))
|
||||
c endif
|
||||
if (oprint) then
|
||||
oroot = ga_nodeid().eq.0
|
||||
if (oroot) write(LuOut,*)'DEBUG A: tddft_grad_comp_r: R_T'
|
||||
call tddft_grad_print_array(ipol,nroot,g_r,dble(ipol))
|
||||
endif
|
||||
cDEBUG
|
||||
c
|
||||
c 2. Do the (X+Y) and (X-Y) contributions
|
||||
|
|
@ -278,32 +284,10 @@ c
|
|||
+ call errquit(pname//'failed to create g_apby',0,GA_ERR)
|
||||
if (.not.nga_create(mt_dbl,3,idim,'vectors (A-B)Y',ichnk,g_amby))
|
||||
+ call errquit(pname//'failed to create g_amby',0,GA_ERR)
|
||||
c
|
||||
tdaloc=tddft_grad_tdaloc(rtdb,tda,lhashf)
|
||||
c
|
||||
c 2.5 Compute (A+B)X, (A-B)X, (A+B)Y and (A-B)Y
|
||||
c
|
||||
c Daniel (1-5-13): We manipulate the code here because the
|
||||
c R vector has the same number of terms for RPA and CIS. This is a
|
||||
c consequence of (X-Y) = X. It might be a good idea to avoid doing this
|
||||
c part for the Y vector since Y = 0. Note that the coupling matrix
|
||||
c expressions H^+[V] and H^-[V] can both be nonzero for CIS, so it isn't
|
||||
c okay to skip the anti-symmetric part in the tddft_nga_cont routine.
|
||||
c What CIS does is makes the Y vector contribution zero in the following
|
||||
c routines.
|
||||
c Daniel (2-8-13): Set the local TDA variable so that we don't change
|
||||
c the global one.
|
||||
if (lhashf) then
|
||||
if (tda) then
|
||||
tdaloc = .false. ! For CIS calculations
|
||||
else
|
||||
tdaloc = .false. ! For RPA calculations
|
||||
endif
|
||||
else
|
||||
if (tda) then
|
||||
tdaloc = .true. ! For TDDFT/TDA calculations
|
||||
else
|
||||
tdaloc = .false. ! For TDDFT calculations
|
||||
endif
|
||||
endif
|
||||
call tddft_nga_cont(rtdb,ihdl_geom,ihdl_bfao,g_x,g_apbx,g_ambx,
|
||||
+nao,ipol,tol2e,tdaloc,oskel,kfac,lhashf,otriplet,nroot,iwhich,
|
||||
+lhascd)
|
||||
|
|
@ -349,6 +333,21 @@ c 2.10 Transform (A+B)(X+Y) to MO basis occupied-occupied block only
|
|||
c
|
||||
call tddft_grad_trans_ao2mo(ipol,nao,nfc,naoc,nocc,nav,nfv,
|
||||
+ nroot,1.0d0,0.0d0,"ij",g_mo,g_apbx,g_hij,"ij")
|
||||
if(oprint)then
|
||||
c extra ga to keep track of X
|
||||
if (.not. ga_duplicate(g_r(1), g_r_x(1), 'gtmp2'))
|
||||
c call errquit('tdgcr: gadupl failed',0,0)
|
||||
call ga_zero(g_r_x(1))
|
||||
g_r_org(1)=g_r(1)
|
||||
g_r(1)=g_r_x(1)
|
||||
if(ipol.eq.2) then
|
||||
if (.not. ga_duplicate(g_r(2), g_r_x(2), 'gtmp2'))
|
||||
c call errquit('tdgcr: gadupl failed',0,0)
|
||||
call ga_zero(g_r_x(2))
|
||||
g_r_org(2)=g_r(2)
|
||||
g_r(2)=g_r_x(2)
|
||||
endif
|
||||
endif
|
||||
c
|
||||
c 2.11 Add -sum_j (X+Y)ja [(A+B)(X+Y)ji] to Ria
|
||||
c
|
||||
|
|
@ -546,11 +545,21 @@ c
|
|||
c 2. Done (X+Y) and (X-Y) contributions
|
||||
c
|
||||
cDEBUG
|
||||
c if (tddft_grad_util_print('tddft grad r',print_debug)) then
|
||||
c oroot = ga_nodeid().eq.0
|
||||
c if (oroot) write(LuOut,*)'DEBUG B: tddft_grad_comp_r: R'
|
||||
c call tddft_grad_print_array(ipol,nroot,g_r,dble(ipol))
|
||||
c endif
|
||||
if (oprint) then
|
||||
oroot = ga_nodeid().eq.0
|
||||
if (oroot) write(LuOut,*)'DEBUG B: tddft_grad_comp_r: R_x'
|
||||
call tddft_grad_print_array(ipol,nroot,g_r_x,dble(ipol))
|
||||
call ga_add(1d0,g_r_x(1),1d0,g_r_org(1),g_r_org(1))
|
||||
g_r(1)=g_r_org(1)
|
||||
if (.not.ga_destroy(g_r_x(1)))
|
||||
+ call errquit(pname//'failed to destroy grx',1,GA_ERR)
|
||||
if(ipol.eq.2) then
|
||||
call ga_add(1d0,g_r_x(2),1d0,g_r_org(2),g_r_org(2))
|
||||
g_r(2)=g_r_org(2)
|
||||
if (.not.ga_destroy(g_r_x(2)))
|
||||
+ call errquit(pname//'failed to destroy grx',2,GA_ERR)
|
||||
endif
|
||||
endif
|
||||
cDEBUG
|
||||
c
|
||||
c 3. Do the Gxc contributions
|
||||
|
|
@ -664,14 +673,14 @@ c
|
|||
enddo
|
||||
call ga_sync()
|
||||
cDEBUG
|
||||
c if (tddft_grad_util_print('tddft grad r',print_debug)) then
|
||||
c oroot = ga_nodeid().eq.0
|
||||
c if (oroot) write(LuOut,*)'DEBUG C: tddft_grad_comp_r: den'
|
||||
c call tddft_grad_print_array(ipol,nroot,int_mb(k_den2),
|
||||
c + dble(ipol))
|
||||
c call tddft_grad_print_array(ipol,nroot,int_mb(k_den2+1),
|
||||
c + dble(ipol))
|
||||
c endif
|
||||
if (oprint) then
|
||||
oroot = ga_nodeid().eq.0
|
||||
if (oroot) write(LuOut,*)'DEBUG C: tddft_grad_comp_r: den'
|
||||
call tddft_grad_print_array(ipol,nroot,int_mb(k_den2),
|
||||
+ dble(ipol))
|
||||
call tddft_grad_print_array(ipol,nroot,int_mb(k_den2+1),
|
||||
+ dble(ipol))
|
||||
endif
|
||||
cDEBUG
|
||||
c Daniel (1-10-13): For a single restricted root ngxc = 1 and there are 2
|
||||
c density matrices fed to fock_xc, the GS density matrix D and the
|
||||
|
|
@ -689,7 +698,7 @@ c fock_xc.
|
|||
+ int_mb(k_gxc), Exc, ipol, .false.)
|
||||
call ga_sync()
|
||||
c DEBUG
|
||||
if (tddft_grad_util_print('tddft grad r',print_debug)) then
|
||||
if (oprint) then
|
||||
oroot = ga_nodeid().eq.0
|
||||
if (oroot) write(LuOut,*)'DEBUG: '//pname//'gxc'
|
||||
call tddft_grad_print_array(ipol,nroot,int_mb(k_gxc),
|
||||
|
|
@ -734,9 +743,9 @@ c
|
|||
endif ! xc_gotxc()
|
||||
c
|
||||
c Debug print
|
||||
if (tddft_grad_util_print('tddft grad r',print_debug)) then
|
||||
if (oprint) then
|
||||
oroot = ga_nodeid().eq.0
|
||||
if (oroot) write(LuOut,*)'DEBUG: '//pname//'R'
|
||||
if (oroot) write(LuOut,*)'DEBUG: '//pname//'R_all'
|
||||
call tddft_grad_print_array(ipol,nroot,g_r,dble(ipol))
|
||||
endif
|
||||
c
|
||||
|
|
|
|||
|
|
@ -147,7 +147,7 @@ c (X-Y)ias(X-Y)ibs
|
|||
c
|
||||
enddo ! ip = 1, ipol
|
||||
c
|
||||
if (tddft_grad_util_print('tddft grad t',print_debug)) then
|
||||
if (util_print('tddft grad t',print_debug)) then
|
||||
oroot = ga_nodeid().eq.0
|
||||
if (oroot) write(LuOut,*)'DEBUG: '//pname//'T'
|
||||
call tddft_grad_print_array(ipol,nroot,g_tp,dble(ipol))
|
||||
|
|
|
|||
|
|
@ -141,7 +141,8 @@ c
|
|||
parameter (oskel=.false.)
|
||||
double precision Exc(2) ! Exchange-correlation energy
|
||||
c
|
||||
logical tdaloc
|
||||
logical tdaloc, tddft_grad_tdaloc
|
||||
external tddft_grad_tdaloc
|
||||
logical doitw,doitz
|
||||
logical doitxpy1,doitxpy2
|
||||
logical doitxmy1,doitxmy2
|
||||
|
|
@ -599,7 +600,7 @@ c Daniel (2-12-13): We need to set triplet here for fock_xc.
|
|||
+ int_mb(k_gxc), Exc, ipol, .false.)
|
||||
call ga_sync()
|
||||
c DEBUG
|
||||
if (tddft_grad_util_print('tddft grad w',print_debug)) then
|
||||
if (util_print('tddft grad w',print_debug)) then
|
||||
oroot = ga_nodeid().eq.0
|
||||
if (oroot) write(LuOut,*)'DEBUG: '//pname//'gxc'
|
||||
call tddft_grad_print_array(ipol,nroots,int_mb(k_gxc),
|
||||
|
|
@ -746,29 +747,7 @@ c
|
|||
c
|
||||
c - Compute (A+B)X, (A-B)X, (A+B)Y and (A-B)Y
|
||||
c
|
||||
c Daniel (1-7-13): We manipulate the code here because the
|
||||
c R vector has the same number of terms for RPA and CIS. This is a
|
||||
c consequence of (X-Y) = X. It might be a good idea to avoid doing this
|
||||
c part for the Y vector since Y = 0. Note that the coupling matrix
|
||||
c expressions H^+[V] and H^-[V] can both be nonzero for CIS, so it isn't
|
||||
c okay to skip the anti-symmetric part in the tddft_nga_cont routine.
|
||||
c What CIS does is makes the Y vector contribution zero in the following
|
||||
c routines.
|
||||
c Daniel (2-8-13): Set the local TDA variable so that we don't change
|
||||
c the global one.
|
||||
if (lhashf) then
|
||||
if (tda) then
|
||||
tdaloc = .false. ! For CIS and TDDFT/TDA (hybrid) calculations
|
||||
else
|
||||
tdaloc = .false. ! For RPA and TDDFT (hybrid) calculations
|
||||
endif
|
||||
else
|
||||
if (tda) then
|
||||
tdaloc = .true. ! For TDDFT/TDA (pure) calculations
|
||||
else
|
||||
tdaloc = .false. ! For TDDFT (pure) calculations
|
||||
endif
|
||||
endif
|
||||
tdaloc=tddft_grad_tdaloc(rtdb,tda,lhashf)
|
||||
call tddft_nga_cont(rtdb,ihdl_geom,ihdl_bfao,g_x,g_apbx,g_ambx,
|
||||
+ nao,ipol,tol2e,tdaloc,oskel,kfac,lhashf,otriplet,nroots,iwhich,
|
||||
+ lhascd)
|
||||
|
|
@ -1190,7 +1169,7 @@ c
|
|||
enddo
|
||||
call ga_sync()
|
||||
c
|
||||
if (tddft_grad_util_print('tddft grad w',print_debug)) then
|
||||
if (util_print('tddft grad w',print_debug)) then
|
||||
oroot = ga_nodeid().eq.0
|
||||
if (oroot) write(LuOut,*)'DEBUG: '//pname//'W'
|
||||
call tddft_grad_print_array(ipol,nroots,g_w,dble(ipol))
|
||||
|
|
|
|||
|
|
@ -60,7 +60,6 @@ c
|
|||
c
|
||||
logical odiff,oprint
|
||||
parameter (odiff=.true.)
|
||||
parameter (oprint=.true.)
|
||||
c
|
||||
c Input:
|
||||
c
|
||||
|
|
@ -124,35 +123,20 @@ c
|
|||
logical oroot
|
||||
c
|
||||
character*32 pname
|
||||
logical tdaloc
|
||||
logical tdaloc, tddft_grad_tdaloc
|
||||
external tddft_grad_tdaloc
|
||||
logical oprint_debug
|
||||
c
|
||||
pname= "tddft_grad_solve: "
|
||||
oprint=util_print('tddft_grad_solve',print_medium)
|
||||
oprint_debug=util_print('tddft_grad_solvecphf',print_debug)
|
||||
c
|
||||
c Initialize the common block for tddft_grad_solve_product and
|
||||
c tddft_grad_solve_precond
|
||||
c
|
||||
oroot = ga_nodeid().eq.0
|
||||
c
|
||||
c Daniel (1-5-13): For a CIS calculation, we still need to solve the
|
||||
c full Z vector equation (i.e. we need to have the equation solved when
|
||||
c B =/= 0). This is confirmed by running an RPA calculation with B = 0,
|
||||
c since there were no further modifications beyond making B = 0 for
|
||||
c that formulation of the linear response equations and you obtain the
|
||||
c correct answer for the CIS gradients that way.
|
||||
c
|
||||
if (lhashf) then
|
||||
if (tda) then
|
||||
tdaloc = .false. ! For CIS calculations
|
||||
else
|
||||
tdaloc = .false. ! For RPA calculations
|
||||
endif
|
||||
else
|
||||
if (tda) then
|
||||
tdaloc = .true. ! For TDDFT/TDA calculations
|
||||
else
|
||||
tdaloc = .false. ! For TDDFT calculations
|
||||
endif
|
||||
endif
|
||||
tdaloc=tddft_grad_tdaloc(rtdb,tda,lhashf)
|
||||
c End test
|
||||
tdg_tol2e = tol2e
|
||||
tdg_kfac = kfac
|
||||
|
|
@ -177,7 +161,6 @@ c End test
|
|||
tdg_g_mo(1) = g_mo(1)
|
||||
tdg_g_mo(2) = g_mo(2)
|
||||
tdg_e_mo = iptr_mo_e
|
||||
c tdg_tda = tda
|
||||
tdg_tda = tdaloc
|
||||
tdg_oskel = oskel
|
||||
tdg_lhashf = lhashf
|
||||
|
|
@ -224,6 +207,14 @@ c
|
|||
call ga_copy(g_b,g_x)
|
||||
call tddft_grad_solve_precond(g_x,0.0d0)
|
||||
endif
|
||||
if(oprint_debug) then
|
||||
if(oroot) write(luout,*) ' LHS'
|
||||
call util_flush(luout)
|
||||
call ga_print(g_x)
|
||||
if(oroot) write(luout,*) ' RHS'
|
||||
call util_flush(luout)
|
||||
call ga_print(g_b)
|
||||
endif
|
||||
c
|
||||
call ga_lkain(rtdb,g_x,g_b,tddft_grad_solve_product,
|
||||
+ tddft_grad_solve_precond,solve_thresh,
|
||||
|
|
@ -254,7 +245,7 @@ c
|
|||
if (.not.ga_destroy(g_x))
|
||||
+ call errquit(pname//'failed to destroy g_x',0, GA_ERR)
|
||||
c
|
||||
if (tddft_grad_util_print('tddft grad z',print_debug)) then
|
||||
if (util_print('tddft grad z',print_debug)) then
|
||||
if (oroot) write(LuOut,*)'DEBUG: '//pname//'Z'
|
||||
call tddft_grad_print_array(ipol,nroots,g_z,dble(ipol))
|
||||
endif
|
||||
|
|
@ -266,4 +257,41 @@ c Reset fock_xc:triplet here for restricted triplet calculations
|
|||
endif
|
||||
c
|
||||
end
|
||||
c $Id$
|
||||
c We manipulate the code here because the
|
||||
c R vector has the same number of terms for RPA and CIS. This is a
|
||||
c consequence of (X-Y) = X. It might be a good idea to avoid doing this
|
||||
c part for the Y vector since Y = 0. Note that the coupling matrix
|
||||
c expressions H^+[V] and H^-[V] can both be nonzero for CIS, so it isn't
|
||||
c okay to skip the anti-symmetric part in the tddft_nga_cont routine.
|
||||
c What CIS does is makes the Y vector contribution zero in the following
|
||||
c routines.
|
||||
c Set the local TDA variable so that we don't change
|
||||
c the global one.
|
||||
logical function tddft_grad_tdaloc(rtdb,tda,lhashf)
|
||||
implicit none
|
||||
#include "rtdb.fh"
|
||||
#include "mafdecls.fh"
|
||||
integer rtdb
|
||||
logical tda
|
||||
logical lhashf
|
||||
c
|
||||
logical tdaloc_rtdb
|
||||
c
|
||||
if (lhashf) then
|
||||
if (tda) then
|
||||
tddft_grad_tdaloc = .false. ! For CIS calculations
|
||||
else
|
||||
tddft_grad_tdaloc = .false. ! For RPA calculations
|
||||
endif
|
||||
else
|
||||
if (tda) then
|
||||
cold tddft_grad_tdaloc = .true. ! For TDDFT/TDA calculations
|
||||
tddft_grad_tdaloc = .false. ! For TDDFT/TDA calculations
|
||||
else
|
||||
tddft_grad_tdaloc = .false. ! For TDDFT calculations
|
||||
endif
|
||||
endif
|
||||
if (rtdb_get(rtdb,'tddft:tdaloc',mt_log,1,tdaloc_rtdb))
|
||||
+ tddft_grad_tdaloc=tdaloc_rtdb
|
||||
return
|
||||
end
|
||||
|
|
|
|||
|
|
@ -168,6 +168,9 @@ c Get the start times
|
|||
c
|
||||
c Init pstat
|
||||
call dft_pstat_init(rtdb)
|
||||
c
|
||||
call util_print_push
|
||||
call util_print_rtdb_load(rtdb,'tddft')
|
||||
c
|
||||
c Print header
|
||||
if (oroot) call tddft_grad_print_header(luout)
|
||||
|
|
@ -225,7 +228,7 @@ c Print calculation information
|
|||
c
|
||||
c Print start times
|
||||
if (oroot) then
|
||||
if (tddft_grad_util_print('tddft grad time',print_default)) then
|
||||
if (util_print('tddft grad time',print_default)) then
|
||||
write(luout,*)
|
||||
write(luout,"(' Start at time cpu:',f11.1,'s wall:',f11.1,
|
||||
+ 's')")-tddft_grad_cpu,-tddft_grad_wall
|
||||
|
|
@ -435,7 +438,7 @@ c Print end times and wrap up
|
|||
tddft_grad_cpu = tddft_grad_cpu + util_cpusec()
|
||||
tddft_grad_wall = tddft_grad_wall + util_wallsec()
|
||||
if (oroot) then
|
||||
if (tddft_grad_util_print('tddft grad time',print_default)) then
|
||||
if (util_print('tddft grad time',print_default)) then
|
||||
write(LuOut,*)
|
||||
write(LuOut,"(' TDDFT Gradient time cpu:',f11.1,'s wall:',
|
||||
+ f11.1,'s')")tddft_grad_cpu,tddft_grad_wall
|
||||
|
|
@ -496,6 +499,7 @@ c
|
|||
c <-- MN solvation models
|
||||
c
|
||||
call dft_pstat_print
|
||||
call util_print_pop
|
||||
return
|
||||
end
|
||||
c $Id$
|
||||
|
|
|
|||
|
|
@ -11,7 +11,14 @@
|
|||
|
||||
|
||||
LIBRARY = libnwpw.a
|
||||
$(info USE_OPENMP $(origin USE_OPENMP))
|
||||
|
||||
ifdef USE_OPENMP
|
||||
# QA issues
|
||||
override undefine USE_OPENMP
|
||||
endif
|
||||
|
||||
$(info USE_OPENMP $(origin USE_OPENMP))
|
||||
|
||||
LIB_DEFINES =
|
||||
|
||||
|
|
|
|||
|
|
@ -42,9 +42,6 @@ endif
|
|||
|
||||
ifeq ($(USE_MPIF),y)
|
||||
LIB_DEFINES += -DMPI
|
||||
ifneq ($(MPI_INCLUDE),)
|
||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
|
||||
endif
|
||||
else
|
||||
LIB_DEFINES += -DTCGMSG
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -47,9 +47,6 @@ endif
|
|||
|
||||
ifeq ($(USE_MPIF),y)
|
||||
LIB_DEFINES += -DMPI
|
||||
ifneq ($(MPI_INCLUDE),)
|
||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
|
||||
endif
|
||||
else
|
||||
LIB_DEFINES += -DTCGMSG
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -43,9 +43,6 @@ endif
|
|||
|
||||
ifeq ($(USE_MPIF),y)
|
||||
LIB_DEFINES += -DMPI
|
||||
ifneq ($(MPI_INCLUDE),)
|
||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
|
||||
endif
|
||||
else
|
||||
LIB_DEFINES += -DTCGMSG
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -43,9 +43,6 @@ endif
|
|||
|
||||
ifeq ($(USE_MPIF),y)
|
||||
LIB_DEFINES += -DMPI
|
||||
ifneq ($(MPI_INCLUDE),)
|
||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
|
||||
endif
|
||||
else
|
||||
LIB_DEFINES += -DTCGMSG
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -41,9 +41,6 @@ endif
|
|||
|
||||
ifeq ($(USE_MPIF),y)
|
||||
LIB_DEFINES += -DMPI
|
||||
ifneq ($(MPI_INCLUDE),)
|
||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
|
||||
endif
|
||||
else
|
||||
USES_BLAS += D3dB-tcgmsg.F
|
||||
LIB_DEFINES += -DTCGMSG
|
||||
|
|
|
|||
|
|
@ -43,9 +43,6 @@ endif
|
|||
|
||||
ifeq ($(USE_MPIF),y)
|
||||
LIB_DEFINES += -DMPI
|
||||
ifneq ($(MPI_INCLUDE),)
|
||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
|
||||
endif
|
||||
else
|
||||
LIB_DEFINES += -DTCGMSG
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -41,9 +41,6 @@ endif
|
|||
|
||||
ifeq ($(USE_MPIF),y)
|
||||
LIB_DEFINES += -DMPI
|
||||
ifneq ($(MPI_INCLUDE),)
|
||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
|
||||
endif
|
||||
else
|
||||
LIB_DEFINES += -DTCGMSG
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -40,9 +40,6 @@ include ../../../config/makelib.h
|
|||
|
||||
ifeq ($(USE_MPIF),y)
|
||||
LIB_DEFINES += -DMPI
|
||||
ifneq ($(MPI_INCLUDE),)
|
||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
|
||||
endif
|
||||
ifeq ($(DEV_GA),y)
|
||||
LIB_DEFINES += -DGA_DEV
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -5,14 +5,24 @@ do_exit(){
|
|||
echo ' '
|
||||
exit 1
|
||||
}
|
||||
rm -f dftd3.f nwpwxc_vdw3a.F
|
||||
export PATH=`pwd`:$PATH
|
||||
check_patch(){
|
||||
if [[ ! -x "$(command -v patch)" ]]; then
|
||||
#try to download busybox for x86_64 linux
|
||||
if [[ $(uname -s) == "Linux" ]] && [[ $(uname -m) == "x86_64" ]] ; then
|
||||
if [[ $(uname -s) == "Linux" ]] ; then
|
||||
echo "patch command missing"
|
||||
echo "downloading busybox to use patch command"
|
||||
wget https://www.busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/busybox-x86_64 -O patch
|
||||
if [[ $(uname -m) == "x86_64" ]] ; then
|
||||
barch=x86_64
|
||||
elif [[ $(uname -m) == "aarch64" ]] ; then
|
||||
barch=armv8l
|
||||
elif [[ $(uname -m) == "ppc64" ]] ; then
|
||||
barch=powerpc64
|
||||
elif [[ $(echo armv6l| awk ' /arm*/ { print "arm"}') == "arm" ]] ; then
|
||||
barch=armv5l
|
||||
else
|
||||
do_exit
|
||||
fi
|
||||
wget https://www.busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/busybox-$barch -O patch
|
||||
if [ "$?" != 0 ]; then
|
||||
do_exit
|
||||
else
|
||||
|
|
@ -22,7 +32,13 @@ if [[ ! -x "$(command -v patch)" ]]; then
|
|||
do_exit
|
||||
fi
|
||||
fi
|
||||
URL1="https://www.chemie.uni-bonn.de/pctc/mulliken-center/software/dft-d3/"
|
||||
}
|
||||
|
||||
check_patch
|
||||
rm -f dftd3.f nwpwxc_vdw3a.F
|
||||
export PATH=`pwd`:$PATH
|
||||
#URL1="https://www.chemie.uni-bonn.de/pctc/mulliken-center/software/dft-d3/"
|
||||
URL1="https://www.chemiebn.uni-bonn.de/pctc/mulliken-center/software/dft-d3/"
|
||||
URL2="https://web.archive.org/web/20210527062154if_/https://www.chemie.uni-bonn.de/pctc/mulliken-center/software/dft-d3/"
|
||||
declare -a urls=("$URL1" "$URL1" "$URL1" "$URL2" "$URL2")
|
||||
TGZ=dftd3.tgz
|
||||
|
|
@ -47,7 +63,7 @@ else
|
|||
echo chchc ${COM1} ${urls[$tries]}/"$TGZ" ${COM2}
|
||||
tries=1 ; until [ "$tries" -ge 5 ] ; do
|
||||
${COM1} ${urls[$tries]}/"$TGZ" ${COM2} && break
|
||||
tries=$((tries+1)) ; echo attempt no. $tries ; sleep 5 ; done
|
||||
tries=$((tries+1)) ; echo attempt no. $tries ; sleep 9 ; done
|
||||
fi
|
||||
if [[ ! -f "$TGZ" ]]; then
|
||||
echo "download failed"
|
||||
|
|
|
|||
|
|
@ -1,12 +1,8 @@
|
|||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
|
||||
all: ; texi2dvi peigs.texi
|
||||
dvips peigs.dvi
|
||||
all: ; texi2pdf peigs.texi
|
||||
|
||||
#.EXPORT_ALL_VARIABLES:
|
||||
.EXPORT_ALL_VARIABLES:
|
||||
|
||||
.PHONY : clean
|
||||
|
||||
|
|
|
|||
Binary file not shown.
File diff suppressed because it is too large
Load diff
3943
src/peigs/doc/peigs.texi
Normal file
3943
src/peigs/doc/peigs.texi
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -1,6 +1,6 @@
|
|||
# $Id$
|
||||
|
||||
rimp2-grad.dvi dvi: rimp2-grad.tex changebar.sty subeqnarray.sty geometry.sty
|
||||
rimp2-grad.dvi dvi: rimp2-grad.tex
|
||||
latex rimp2-grad
|
||||
latex rimp2-grad
|
||||
|
||||
|
|
|
|||
|
|
@ -2,14 +2,3 @@ This directory contains
|
|||
rimp2-grad.tex
|
||||
RI-MP2 frozen core gradient equations, as a superset of Robert
|
||||
Harrison's writeup of the exact MP2 frozen core gradient.
|
||||
|
||||
changebar.bug, changebar.dtx, changebar.ins, chbar.sh, manifest.txt
|
||||
Standard latex changebar package (from CTAN)
|
||||
|
||||
geometry.sty
|
||||
Standard latex page geometry package (from CTAN)
|
||||
|
||||
subeqnarray.dtx, subeqnarray.ins
|
||||
Standard latex subequation array package (from CTAN)
|
||||
|
||||
Eventually, these standard styles from CTAN
|
||||
|
|
|
|||
|
|
@ -369,7 +369,8 @@ c
|
|||
endif
|
||||
if(.not. rtdb_get(rtdb,'task:gradient',MT_DBL,
|
||||
& rank_hess,dbl_mb(k_gradm)))
|
||||
& call errquit('stpr_gen_hess_at: rtdb_get failed',38)
|
||||
& call errquit('stpr_gen_hess_at: rtdb_get failed',38,
|
||||
R RTDB_ERR)
|
||||
if(.not. rtdb_get(rtdb,'task:dipole',mt_dbl,
|
||||
& 3,mdipole)) dipole_okay = .false.
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -660,6 +660,7 @@ c
|
|||
double precision c(3,mx_atm)
|
||||
double precision ctmp(3,mx_atm)
|
||||
logical allbq
|
||||
integer lenb
|
||||
c
|
||||
logical bsse_rtdb_store
|
||||
external bsse_rtdb_store
|
||||
|
|
@ -687,14 +688,19 @@ c
|
|||
c
|
||||
c initialize all centers as bqX
|
||||
c
|
||||
tag_new(l) = 'bq' // tag_old(l)
|
||||
q_new(l) = 0.0d0
|
||||
lenb=inp_strlen(tag_old(l))
|
||||
tag_new(l)= ' '
|
||||
tag_new(l)(1:lenb+2) = 'bq' // tag_old(l)
|
||||
T (1:lenb)
|
||||
if(lenb.lt.14) tag_new(l)(lenb+3:lenb+3)=' '
|
||||
q_new(l) = 0.0d0
|
||||
c
|
||||
do k = 1, mon_atm(j)
|
||||
c
|
||||
c only do bsse with atoms
|
||||
c
|
||||
is_atm = geom_tag_to_element(tag_old(l),symbol,element,atn)
|
||||
is_atm = geom_tag_to_element(tag_old(l),symbol,
|
||||
E element,atn)
|
||||
if ((.not. is_atm) .and. symbol.ne.'bq')
|
||||
$ call errquit('bsse_create_geom: not atom or bq',
|
||||
$ 0,GEOM_ERR)
|
||||
|
|
@ -715,7 +721,8 @@ c Sort out the masses of the various centers
|
|||
c
|
||||
allbq=.true.
|
||||
do l = 1, natoms
|
||||
is_atm = geom_tag_to_element(tag_new(l),symbol,element,atn)
|
||||
is_atm = geom_tag_to_element(tag_new(l),
|
||||
$ symbol,element,atn)
|
||||
if(symbol.ne.'bq') allbq=.false.
|
||||
if ((.not. is_atm) .and. symbol.ne.'bq')
|
||||
$ call errquit('bsse_create_geom: not atom or bq',
|
||||
|
|
@ -979,15 +986,12 @@ c-----------------------------------------------------------------------
|
|||
|
||||
bsse_error = 0.0d0
|
||||
|
||||
i = 1
|
||||
do j = 1, nmon,2
|
||||
|
||||
do j = 1, nmon
|
||||
|
||||
m_error(j) = mon_energy(i) - mon_energy(i+1)
|
||||
m_error(j) = mon_energy(j) - mon_energy(j+1)
|
||||
bsse_error = bsse_error + m_error(j)
|
||||
i= i + 2
|
||||
|
||||
enddo
|
||||
enddo
|
||||
|
||||
final_spr_energy = spr_energy + bsse_error
|
||||
c
|
||||
|
|
@ -1102,8 +1106,6 @@ c
|
|||
integer rtdb ![input]
|
||||
c
|
||||
integer j,i,l,k,n
|
||||
integer n_cart
|
||||
integer n_cartmon
|
||||
integer geom
|
||||
c
|
||||
character*255 vec_dbi, vec_dbo
|
||||
|
|
@ -1228,12 +1230,6 @@ c: evaluate gradient
|
|||
$ call
|
||||
$ errquit('bsse_gradient: error calling task gradient spr',
|
||||
$ 0,UNKNOWN_ERR)
|
||||
|
||||
if (mod(i,2).eq.0) then
|
||||
n_cartmon=n_cart
|
||||
else
|
||||
n_cartmon=3*mon_atm(j)
|
||||
endif
|
||||
c
|
||||
c: mix monomers grads with supermolecule grad
|
||||
if (mod(i,2).eq.0) then
|
||||
|
|
@ -1263,18 +1259,14 @@ c
|
|||
c
|
||||
enddo
|
||||
|
||||
|
||||
c-----------------------------------------------------------------------
|
||||
c Evaluate supermolecular energy free of BSSE
|
||||
c-----------------------------------------------------------------------
|
||||
|
||||
bsse_error = 0.0d0
|
||||
|
||||
i = 1
|
||||
|
||||
do j = 1, nmon
|
||||
bsse_error = bsse_error + mon_energy(i) - mon_energy(i+1)
|
||||
i= i + 2
|
||||
do j = 1, nmon,2
|
||||
bsse_error = bsse_error+(mon_energy(j) - mon_energy(j+1))
|
||||
enddo
|
||||
c
|
||||
|
||||
|
|
@ -1605,13 +1597,10 @@ c
|
|||
c
|
||||
bsse_error = 0.0d0
|
||||
|
||||
i = 1
|
||||
do j = 1, nmon,2
|
||||
|
||||
do j = 1, nmon
|
||||
|
||||
m_error(j) = mon_energy(i) - mon_energy(i+1)
|
||||
m_error(j) = mon_energy(j) - mon_energy(j+1)
|
||||
bsse_error = bsse_error + m_error(j)
|
||||
i= i + 2
|
||||
|
||||
enddo
|
||||
c
|
||||
|
|
|
|||
|
|
@ -1136,12 +1136,17 @@
|
|||
! TCE_CUDA Number of CUDA devices per node
|
||||
!
|
||||
else if (inp_compare(.false.,test,'cuda')) then
|
||||
#if defined(TCE_CUDA) || defined(TCE_HIP)
|
||||
if (.not.inp_i(icuda))
|
||||
1 call errquit('tce_input: no icuda',0,INPUT_ERR)
|
||||
if (.not.rtdb_put(rtdb,'tce:cuda',mt_int,1,icuda))
|
||||
1 call errquit('tce_input: failed writing to rtdb',0,
|
||||
2 RTDB_ERR)
|
||||
|
||||
#else
|
||||
call errquit('cuda option needs TCE_CUDA compiled code',
|
||||
A 0, INPUT_ERR)
|
||||
#endif
|
||||
!
|
||||
! MAXITER (the maximum number of Davidson iterations)
|
||||
!
|
||||
|
|
|
|||
|
|
@ -318,14 +318,14 @@ endif # SOCKETS
|
|||
ifdef USE_MPI
|
||||
|
||||
MPI_COMBINED =
|
||||
ifneq ($(MPI_INCLUDE),)
|
||||
MPI_COMBINED += $(patsubst -I-I%,-I%,-I${MPI_INCLUDE})
|
||||
ifneq ($(NWMPI_INCLUDE),)
|
||||
MPI_COMBINED += $(patsubst -I-I%,-I%,-I${NWMPI_INCLUDE})
|
||||
endif
|
||||
ifneq ($(MPI_LIB),)
|
||||
MPI_COMBINED += $(patsubst -L-L%,-L%,-L${MPI_LIB})
|
||||
ifneq ($(NWMPI_LIB),)
|
||||
MPI_COMBINED += $(patsubst -L-L%,-L%,-L${NWMPI_LIB})
|
||||
endif
|
||||
ifneq ($(LIBMPI),)
|
||||
MPI_COMBINED += $(LIBMPI)
|
||||
ifneq ($(NWLIBMPI),)
|
||||
MPI_COMBINED += $(NWLIBMPI)
|
||||
ifeq ($(ARMCI_NETWORK),ARMCI)
|
||||
MPI_COMBINED += -lpthread
|
||||
endif
|
||||
|
|
@ -676,6 +676,10 @@ ifeq ($(FC),$(findstring $(FC),scorep scorep-wrapper scorep-gfortran scorep-mpif
|
|||
#fix for configure or cmake
|
||||
MAYBE_HOST += SCOREP_WRAPPER=OFF
|
||||
endif
|
||||
ifneq ($(V),1)
|
||||
MAYBE_HOST += -q --enable-silent-rules
|
||||
MAKE= make V=0
|
||||
endif
|
||||
BUILDDIR = build
|
||||
INSTALLDIR = install
|
||||
CONFIGURE_PATH = ../$(GA_DIR)/configure
|
||||
|
|
@ -721,6 +725,9 @@ $(BUILDDIR)/config.status: $(GA_DIR)/configure $(STAMP_FC) $(STAMP_CC) $(STAMP_D
|
|||
@echo '*** Configuring Parallel Tools ****'
|
||||
@echo ''
|
||||
@(test -d $(BUILDDIR)) || mkdir $(BUILDDIR);
|
||||
@echo ' '
|
||||
@if [ "$V" != "1" ]; then echo '*** autoconf output redirected to config.log ****' ; echo '*** type make V=1 to get verbose output ***'; fi
|
||||
@echo ' '
|
||||
@(cd $(BUILDDIR) && echo $(CONFIGURE_PATH) $(CONFIGURE_ARGS) && $(CONFIGURE_PATH) $(CONFIGURE_ARGS)) || exit 1
|
||||
$(GA_DIR)/Makefile.in:
|
||||
@echo "No Global Arrays found: Attempting running ./get-tools"
|
||||
|
|
|
|||
41
src/tools/gamalloc_patch.sh
Executable file
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 test "x$TAR_URL" = x
|
||||
then
|
||||
# TAR_URL=https://github.com/GlobalArrays/ga/releases/download/v"$GA_RELEASE_NO"/ga-"$GA_RELEASE_NO".tar.gz
|
||||
TAR_URL=https://github.com/edoapra/ga/releases/download/v"$GA_RELEASE_NO"/ga-"$GA_RELEASE_NO".tar.gz
|
||||
TAR_URL=https://github.com/GlobalArrays/ga/releases/download/v"$GA_RELEASE_NO"/ga-"$GA_RELEASE_NO".tar.gz
|
||||
# TAR_URL=https://github.com/edoapra/ga/releases/download/v"$GA_RELEASE_NO"/ga-"$GA_RELEASE_NO".tar.gz
|
||||
# TAR_URL=https://github.com/edoapra/ga/releases/download/v"$GA_RELEASE_NO"/ga-5.8.2.v3.tar.gz
|
||||
# TAR_URL=https://github.com/GlobalArrays/ga/archive/refs/tags/v"$GA_RELEASE_NO".tar.gz
|
||||
# https://github.com/edoapra/ga/releases/download/v5.7.2/ga-5.7.2.tar.gz
|
||||
|
|
@ -200,6 +200,14 @@ if [[ -z "${CC}" ]]; then
|
|||
CC=cc
|
||||
fi
|
||||
GOTMINGW64=` $CC -dM -E - </dev/null 2> /dev/null |grep MINGW64|cut -c21 `
|
||||
if [[ -d "ga-5.8.2" ]]; then
|
||||
if [[ ! -f "ga-5.8.2/patched581" ]]; then
|
||||
./gamalloc_patch.sh $GA_DIR
|
||||
./peigstubs_patch.sh $GA_DIR
|
||||
echo patched
|
||||
touch ga-5.8.2/patched581
|
||||
fi
|
||||
fi
|
||||
#if [ ! -z "$GOTMINGW64" ]
|
||||
#then
|
||||
#echo "CC" $CC
|
||||
|
|
@ -208,19 +216,6 @@ GOTMINGW64=` $CC -dM -E - </dev/null 2> /dev/null |grep MINGW64|cut -c21 `
|
|||
#./msmpi_patch.sh $GA_DIR
|
||||
#./mingw64_patch.sh $GA_DIR
|
||||
#fi
|
||||
#if [[ -d "ga-5.8.2" ]]; then
|
||||
# if [[ ! -f "ga-5.8.2/patched581" ]]; then
|
||||
# ./strdup_patch.sh $GA_DIR
|
||||
# ./nodelist_patch.sh $GA_DIR
|
||||
# ./nompif_patch.sh $GA_DIR
|
||||
# ./ptstride_patch.sh $GA_DIR
|
||||
# ./pt.sh $GA_DIR
|
||||
# patch -p0 -s -N < ./fujitsu.patch
|
||||
# patch -p0 -s -N < ./dra_f2c.patch
|
||||
# echo patched
|
||||
# touch ga-5.8.2/patched581
|
||||
# fi
|
||||
#fi
|
||||
|
||||
#patch -p0 -s -N < ./scala1.patch
|
||||
if test -e $GA_DIR/configure
|
||||
|
|
|
|||
|
|
@ -158,6 +158,10 @@ function get_mpi_lib ()
|
|||
outlist="${outlist} ${word}"
|
||||
fi
|
||||
done
|
||||
# homebrew hwloc
|
||||
if pkg-config --exists hwloc; then
|
||||
outlist="${outlist} $(pkg-config --libs-only-L hwloc 2> /dev/null) -lhwloc"
|
||||
fi
|
||||
echo ${outlist}
|
||||
}
|
||||
function get_mpi_fortran ()
|
||||
|
|
|
|||
22
src/tools/peigstubs_patch.sh
Executable file
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),)
|
||||
EXTRA_OBJ += ga_zgop.o
|
||||
endif
|
||||
#LIB_DEFINES += -I$(MPI_INCLUDE)
|
||||
ifneq ($(MPI_INCLUDE),)
|
||||
LIB_INCLUDES += $(patsubst -I-I%,-I%,-I$(MPI_INCLUDE))
|
||||
endif
|
||||
|
||||
|
||||
ifdef USE_VTUNE
|
||||
EXTRA_OBJ += vtune_bind.o vtune.o
|
||||
|
|
|
|||
|
|
@ -16,6 +16,9 @@ fi
|
|||
if test -f "/usr/lib/centos-release"; then
|
||||
dist="centos"
|
||||
fi
|
||||
if [[ $(grep -c fedora /etc/os-release) > 0 ]]; then
|
||||
dist="fedora"
|
||||
fi
|
||||
echo dist is "$dist"
|
||||
if [ -z "$DISTR" ] ; then
|
||||
DISTR=$dist
|
||||
|
|
@ -43,12 +46,12 @@ echo DISTR is "$DISTR"
|
|||
else
|
||||
mkdir -p ~/mntdmg $IONEAPI_ROOT || true
|
||||
cd ~/Downloads
|
||||
dir_base="18675"
|
||||
dir_hpc="18681"
|
||||
base="m_BaseKit_p_2022.2.0.226"
|
||||
hpc="m_HPCKit_p_2022.2.0.158"
|
||||
curl -LJO https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_base"/"$base".dmg
|
||||
curl -LJO https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_hpc"/"$hpc".dmg
|
||||
dir_base="19080"
|
||||
dir_hpc="19086"
|
||||
base="m_BaseKit_p_2023.0.0.25441"
|
||||
hpc="m_HPCKit_p_2023.0.0.25440"
|
||||
curl -sS -LJO https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_base"/"$base".dmg
|
||||
curl -sS -LJO https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_hpc"/"$hpc".dmg
|
||||
echo "installing BaseKit"
|
||||
hdiutil attach "$base".dmg -mountpoint ~/mntdmg -nobrowse
|
||||
sudo ~/mntdmg/bootstrapper.app/Contents/MacOS/install.sh -c -s --action install \
|
||||
|
|
@ -87,138 +90,155 @@ echo DISTR is "$DISTR"
|
|||
# HOMEBREW_NO_INSTALL_CLEANUP=1 HOMEBREW_NO_AUTO_UPDATE=1 brew install scalapack
|
||||
# fi
|
||||
fi
|
||||
if [[ "$os" == "Linux" ]]; then
|
||||
if [[ "$DISTR" == "fedora" ]] || [[ "$DISTR" == "centos" ]] ; then
|
||||
rpminst=dnf
|
||||
if [[ "$DISTR" == "centos" ]] ; then
|
||||
rpminst=yum
|
||||
fi
|
||||
sudo $rpminst udate; sudo $rpminst -y install perl perl python3-devel time patch openblas-serial64 openmpi-devel cmake gcc-gfortran unzip which make tar bzip2 openssh-clients rsync
|
||||
# module load mpi
|
||||
if [[ "$MPI_IMPL" == "openmpi" ]]; then
|
||||
sudo $rpminst -y install openmpi-devel
|
||||
else
|
||||
echo ready only for openmpi
|
||||
exit 1
|
||||
fi
|
||||
export PATH=/usr/lib64/"$MPI_IMPL"/bin:$PATH
|
||||
export LD_LIBRARY_PATH=/usr/lib64/"$MPI_IMPL"/lib:$LD_LIBRARY_PATH
|
||||
which mpif90
|
||||
mpif90 -show
|
||||
else
|
||||
if [[ "$MPI_IMPL" == "openmpi" ]]; then
|
||||
mpi_bin="openmpi-bin" ; mpi_libdev="libopenmpi-dev" scalapack_libdev="libscalapack-openmpi-dev"
|
||||
fi
|
||||
if [[ "$MPI_IMPL" == "mpich" ]]; then
|
||||
mpi_bin="mpich" ; mpi_libdev="libmpich-dev" scalapack_libdev="libscalapack-mpich-dev"
|
||||
fi
|
||||
if [[ "$MPI_IMPL" == "intel" || "$FC" == "ifort" || "$FC" == "ifx" ]]; then
|
||||
export APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1
|
||||
rm -f l_Base*sh l_HP*sh
|
||||
tries=0 ; until [ "$tries" -ge 10 ] ; do \
|
||||
dir_base="18673"
|
||||
dir_hpc="18679"
|
||||
base="l_BaseKit_p_2022.2.0.262"
|
||||
hpc="l_HPCKit_p_2022.2.0.191"
|
||||
wget https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_hpc"/"$hpc".sh \
|
||||
&& wget https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_base"/"$base".sh \
|
||||
&& break ;\
|
||||
tries=$((tries+1)) ; echo attempt no. $tries ; sleep 30 ; done
|
||||
if [[ "$os" == "Linux" ]]; then
|
||||
if [[ "$DISTR" == "fedora" ]] || [[ "$DISTR" == "centos" ]] ; then
|
||||
env
|
||||
rpminst=dnf
|
||||
if [[ "$DISTR" == "centos" ]] ; then
|
||||
rpminst=yum
|
||||
fi
|
||||
if [[ "$HOSTNAME" != "fedoraqemuwe40672" ]]; then
|
||||
sudo $rpminst update; sudo $rpminst -y install perl perl python3-devel time patch cmake gcc-gfortran unzip which make tar bzip2 openssh-clients rsync
|
||||
sudo $rpminst -y install openblas-serial64 || true
|
||||
# module load mpi
|
||||
if [[ "$MPI_IMPL" == "openmpi" ]]; then
|
||||
sudo $rpminst -y install openmpi-devel
|
||||
elif [[ "$MPI_IMPL" == "mpich" ]]; then
|
||||
sudo $rpminst -y install mpich mpich-devel
|
||||
else
|
||||
echo ready only for openmpi
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
export PATH=/usr/lib64/"$MPI_IMPL"/bin:$PATH
|
||||
export LD_LIBRARY_PATH=/usr/lib64/"$MPI_IMPL"/lib:$LD_LIBRARY_PATH
|
||||
which mpif90
|
||||
mpif90 -show
|
||||
else
|
||||
if [[ "$MPI_IMPL" == "openmpi" ]]; then
|
||||
mpi_bin="openmpi-bin" ; mpi_libdev="libopenmpi-dev" scalapack_libdev="libscalapack-openmpi-dev"
|
||||
fi
|
||||
if [[ "$MPI_IMPL" == "mpich" ]]; then
|
||||
mpi_bin="mpich" ; mpi_libdev="libmpich-dev" scalapack_libdev="libscalapack-mpich-dev"
|
||||
fi
|
||||
if [[ "$MPI_IMPL" == "intel" || "$FC" == "ifort" || "$FC" == "ifx" ]]; then
|
||||
export APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1
|
||||
export TERM=dumb
|
||||
rm -f l_Base*sh l_HP*sh
|
||||
tries=0 ; until [ "$tries" -ge 10 ] ; do \
|
||||
dir_base="19079"
|
||||
dir_hpc="19084"
|
||||
base="l_BaseKit_p_2023.0.0.25537_offline"
|
||||
hpc="l_HPCKit_p_2023.0.0.25400_offline"
|
||||
wget -nv https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_hpc"/"$hpc".sh \
|
||||
&& wget -nv https://registrationcenter-download.intel.com/akdlm/irc_nas/"$dir_base"/"$base".sh \
|
||||
&& break ;\
|
||||
tries=$((tries+1)) ; echo attempt no. $tries ; sleep 30 ; done
|
||||
|
||||
if [[ "$MPI_IMPL" == "intel" ]]; then
|
||||
mpi_bin=" " ; mpi_libdev=" " scalapack_libdev=" "
|
||||
if [[ "$MPI_IMPL" == "intel" ]]; then
|
||||
mpi_bin=" " ; mpi_libdev=" " scalapack_libdev=" "
|
||||
fi
|
||||
fi
|
||||
if [[ "$GITHUB_WORKFLOW" != "NWChem_CI_selfhosted" ]]; then
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install software-properties-common
|
||||
sudo add-apt-repository universe && sudo apt-get update
|
||||
if [[ "$FC" == "gfortran-11" ]] || [[ "$CC" == "gcc-11" ]]; then
|
||||
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
|
||||
pkg_extra+="gcc-11 gfortran-11 g++-11"
|
||||
fi
|
||||
if [[ "$USE_LIBXC" == "-1" ]]; then
|
||||
pkg_extra+=" libxc-dev"
|
||||
fi
|
||||
echo pkg to install: gfortran python3-dev make perl python3 rsync "$mpi_libdev" "$mpi_bin" $pkg_extra
|
||||
tries=0 ; until [ "$tries" -ge 10 ] ; do \
|
||||
sudo apt-get -y install gfortran python3-dev make perl python3 rsync "$mpi_libdev" "$mpi_bin" $pkg_extra \
|
||||
&& break ;\
|
||||
tries=$((tries+1)) ; echo attempt no. $tries ; sleep 30 ; done
|
||||
|
||||
fi
|
||||
if [[ "$FC" == "ifort" ]] || [[ "$FC" == "ifx" ]]; then
|
||||
sh ./"$base".sh -a -c -s --action remove --install-dir $IONEAPI_ROOT --eula accept
|
||||
sh ./"$hpc".sh -a -c -s --action remove --install-dir $IONEAPI_ROOT --eula accept
|
||||
|
||||
sh ./"$base".sh -a -c -s --action install --components intel.oneapi.lin.mkl.devel --install-dir $IONEAPI_ROOT --eula accept
|
||||
intel_components="intel.oneapi.lin.ifort-compiler:intel.oneapi.lin.dpcpp-cpp-compiler-pro"
|
||||
if [[ "$MPI_IMPL" == "intel" ]]; then
|
||||
intel_components+=":intel.oneapi.lin.mpi.devel"
|
||||
fi
|
||||
sh ./"$hpc".sh -a -c -s --action install \
|
||||
--components "$intel_components" \
|
||||
--install-dir $IONEAPI_ROOT --eula accept
|
||||
rm -f ./"$hpc".sh ./"$base".sh
|
||||
if [[ "$?" != 0 ]]; then
|
||||
echo "apt-get install failed: exit code " "${?}"
|
||||
exit 1
|
||||
fi
|
||||
source "$IONEAPI_ROOT"/setvars.sh || true
|
||||
export I_MPI_F90="$FC"
|
||||
"$FC" -V
|
||||
icc -V
|
||||
|
||||
fi
|
||||
if [[ "$FC" == "flang" ]]; then
|
||||
if [[ "USE_AOMP" == "Y" ]]; then
|
||||
aomp_major=14
|
||||
aomp_minor=0-3
|
||||
wget -nv https://github.com/ROCm-Developer-Tools/aomp/releases/download/rel_"$aomp_major"."$aomp_minor"/aomp_Ubuntu2004_"$aomp_major"."$aomp_minor"_amd64.deb
|
||||
sudo dpkg -i aomp_Ubuntu2004_"$aomp_major"."$aomp_minor"_amd64.deb
|
||||
export PATH=/usr/lib/aomp_"$aomp_major"."$aomp_minor"/bin/:$PATH
|
||||
export LD_LIBRARY_PATH=/usr/lib/aomp_"$aomp_major"."$aomp_minor"/lib:$LD_LIBRARY_PATH
|
||||
ls -lrt /usr/lib | grep aomp ||true
|
||||
else
|
||||
aocc_version=4.0.0
|
||||
aocc_dir=aocc-compiler-${aocc_version}
|
||||
curl -sS -LJO https://developer.amd.com/wordpress/media/files/${aocc_dir}.tar
|
||||
tar xf ${aocc_dir}.tar
|
||||
./${aocc_dir}/install.sh
|
||||
source setenv_AOCC.sh
|
||||
pwd
|
||||
fi
|
||||
flang -v
|
||||
which flang
|
||||
fi
|
||||
if [[ "$FC" == "amdflang" ]]; then
|
||||
sudo apt-get install -y wget gnupg2 coreutils dialog tzdata
|
||||
rocm_version=5.4.1
|
||||
wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add -
|
||||
echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/'$rocm_version'/ ubuntu main' | sudo tee /etc/apt/sources.list.d/rocm.list
|
||||
sudo apt-get update -y && sudo apt-get -y install rocm-llvm openmp-extras
|
||||
export PATH=/opt/rocm/bin:$PATH
|
||||
export LD_LIBRARY_PATH=/opt/rocm/lib:/opt/rocm/llvm/lib:$LD_LIBRARY_PATH
|
||||
amdflang -v
|
||||
amdclang -v
|
||||
fi
|
||||
if [[ "$FC" == "nvfortran" ]]; then
|
||||
sudo apt-get -y install lmod g++ libtinfo5 libncursesw5 lua-posix lua-filesystem lua-lpeg lua-luaossl
|
||||
nv_major=22
|
||||
nv_minor=11
|
||||
nverdot="$nv_major"."$nv_minor"
|
||||
nverdash="$nv_major"-"$nv_minor"
|
||||
arch_dpkg=`dpkg --print-architecture`
|
||||
echo 'deb [trusted=yes] https://developer.download.nvidia.com/hpc-sdk/ubuntu/'$arch_dpkg' /' | sudo tee /etc/apt/sources.list.d/nvhpc.list
|
||||
echo '*** added hpc-sdk source to /etc/aps ***'
|
||||
ls -lrt /etc/apt/sources.list.d/ || true
|
||||
ls -lrt /etc/apt/sources.list.d/nvhpc.list || true
|
||||
sudo cat /etc/apt/sources.list.d/nvhpc.list || true
|
||||
sudo apt-get update -y
|
||||
apt-cache search nvhpc
|
||||
sudo apt-get install -y nvhpc-"$nverdash"
|
||||
export PATH=/opt/nvidia/hpc_sdk/Linux_"$arch"/"$nverdot"/compilers/bin:$PATH
|
||||
export LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_"$arch"/"$nverdot"/compilers/lib:$LD_LIBRARY_PATH
|
||||
sudo /opt/nvidia/hpc_sdk/Linux_"$arch"/"$nverdot"/compilers/bin/makelocalrc -x
|
||||
|
||||
export FC=nvfortran
|
||||
export CC=gcc
|
||||
nvfortran -V
|
||||
which nvfortran
|
||||
fi
|
||||
fi
|
||||
if [[ "$GITHUB_WORKFLOW" != "NWChem_CI_selfhosted" ]]; then
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install software-properties-common
|
||||
sudo add-apt-repository universe && sudo apt-get update
|
||||
# sudo apt-get -y install gfortran python3-dev python-dev cmake "$mpi_libdev" "$mpi_bin" "$scalapack_libdev" make perl libopenblas-dev python3 rsync
|
||||
sudo apt-get -y install gfortran python3-dev make "$mpi_libdev" "$mpi_bin" make perl python3 rsync
|
||||
# check for mpif90 command and exit if not present
|
||||
if [[ ! $(command -v mpif90) ]]; then echo "mpif90 not present"; exit 1; fi
|
||||
echo "mpif90 -show output is " `mpif90 -show` || true
|
||||
echo "which mpif90 output is " `which mpif90` || true
|
||||
if [[ "$FC" == "gfortran-11" ]] || [[ "$CC" == "gcc-11" ]]; then
|
||||
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
|
||||
sudo apt-get -y install gcc-11 gfortran-11 g++-11
|
||||
fi
|
||||
fi
|
||||
if [[ "$FC" == "ifort" ]] || [[ "$FC" == "ifx" ]]; then
|
||||
sh ./"$base".sh -a -c -s --action remove --install-dir $IONEAPI_ROOT --eula accept
|
||||
sh ./"$hpc".sh -a -c -s --action remove --install-dir $IONEAPI_ROOT --eula accept
|
||||
|
||||
sh ./"$base".sh -a -c -s --action install --components intel.oneapi.lin.mkl.devel --install-dir $IONEAPI_ROOT --eula accept
|
||||
intel_components="intel.oneapi.lin.ifort-compiler:intel.oneapi.lin.dpcpp-cpp-compiler-pro"
|
||||
if [[ "$MPI_IMPL" == "intel" ]]; then
|
||||
intel_components+=":intel.oneapi.lin.mpi.devel"
|
||||
fi
|
||||
sh ./"$hpc".sh -a -c -s --action install \
|
||||
--components "$intel_components" \
|
||||
--install-dir $IONEAPI_ROOT --eula accept
|
||||
if [[ "$?" != 0 ]]; then
|
||||
echo "apt-get install failed: exit code " "${?}"
|
||||
exit 1
|
||||
fi
|
||||
source "$IONEAPI_ROOT"/setvars.sh || true
|
||||
export I_MPI_F90="$FC"
|
||||
"$FC" -V
|
||||
icc -V
|
||||
|
||||
fi
|
||||
if [[ "$FC" == "flang" ]]; then
|
||||
if [[ "USE_AOMP" == "Y" ]]; then
|
||||
aomp_major=15
|
||||
aomp_minor=0-2
|
||||
wget https://github.com/ROCm-Developer-Tools/aomp/releases/download/rel_"$aomp_major"."$aomp_minor"/aomp_Ubuntu2004_"$aomp_major"."$aomp_minor"_amd64.deb
|
||||
sudo dpkg -i aomp_Ubuntu2004_"$aomp_major"."$aomp_minor"_amd64.deb
|
||||
export PATH=/usr/lib/aomp_"$aomp_major"."$aomp_minor"/bin/:$PATH
|
||||
export LD_LIBRARY_PATH=/usr/lib/aomp_"$aomp_major"."$aomp_minor"/lib:$LD_LIBRARY_PATH
|
||||
ls -lrt /usr/lib | grep aomp ||true
|
||||
else
|
||||
aocc_version=3.2.0
|
||||
aocc_dir=aocc-compiler-${aocc_version}
|
||||
curl -LJO https://developer.amd.com/wordpress/media/files/${aocc_dir}.tar
|
||||
tar xf ${aocc_dir}.tar
|
||||
./${aocc_dir}/install.sh
|
||||
source setenv_AOCC.sh
|
||||
pwd
|
||||
fi
|
||||
flang -v
|
||||
which flang
|
||||
fi
|
||||
if [[ "$FC" == "amdflang" ]]; then
|
||||
sudo apt-get install -y wget gnupg2 coreutils dialog tzdata
|
||||
rocm_version=5.2
|
||||
wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add -
|
||||
echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/'$rocm_version'/ ubuntu main' | sudo tee /etc/apt/sources.list.d/rocm.list
|
||||
sudo apt-get update -y && sudo apt-get -y install rocm-llvm openmp-extras
|
||||
export PATH=/opt/rocm/bin:$PATH
|
||||
export LD_LIBRARY_PATH=/opt/rocm/lib:/opt/rocm/llvm/lib:$LD_LIBRARY_PATH
|
||||
amdflang -v
|
||||
amdclang -v
|
||||
fi
|
||||
if [[ "$FC" == "nvfortran" ]]; then
|
||||
sudo apt-get -y install lmod g++ libtinfo5 libncursesw5 lua-posix lua-filesystem lua-lpeg lua-luaossl
|
||||
nv_major=22
|
||||
nv_minor=9
|
||||
nverdot="$nv_major"."$nv_minor"
|
||||
nverdash="$nv_major"-"$nv_minor"
|
||||
arch_dpkg=`dpkg --print-architecture`
|
||||
echo 'deb [trusted=yes] https://developer.download.nvidia.com/hpc-sdk/ubuntu/'$arch_dpkg' /' | sudo tee /etc/apt/sources.list.d/nvhpc.list
|
||||
echo '*** added hpc-sdk source to /etc/aps ***'
|
||||
ls -lrt /etc/apt/sources.list.d/ || true
|
||||
ls -lrt /etc/apt/sources.list.d/nvhpc.list || true
|
||||
sudo cat /etc/apt/sources.list.d/nvhpc.list || true
|
||||
sudo apt-get update -y
|
||||
apt-cache search nvhpc
|
||||
sudo apt-get install -y nvhpc-"$nverdash"
|
||||
export PATH=/opt/nvidia/hpc_sdk/Linux_"$arch"/"$nverdot"/compilers/bin:$PATH
|
||||
export LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_"$arch"/"$nverdot"/compilers/lib:$LD_LIBRARY_PATH
|
||||
sudo /opt/nvidia/hpc_sdk/Linux_"$arch"/"$nverdot"/compilers/bin/makelocalrc -x
|
||||
|
||||
export FC=nvfortran
|
||||
export CC=gcc
|
||||
nvfortran -V
|
||||
which nvfortran
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -37,11 +37,12 @@ fi
|
|||
if [[ "$FC" == "amdflang" ]]; then
|
||||
export PATH=/opt/rocm/bin:$PATH
|
||||
export LD_LIBRARY_PATH=/opt/rocm-"$rocm_version"/lib:/opt/rocm/llvm/lib:$LD_LIBRARY_PATH
|
||||
export BUILD_MPICH=1
|
||||
fi
|
||||
|
||||
if [[ "$FC" == "nvfortran" ]]; then
|
||||
nv_major=22
|
||||
nv_minor=9
|
||||
nv_minor=11
|
||||
nverdot="$nv_major"."$nv_minor"
|
||||
export PATH=/opt/nvidia/hpc_sdk/Linux_"$arch"/"$nverdot"/compilers/bin:$PATH
|
||||
export LD_LIBRARY_PATH=/opt/nvidia/hpc_sdk/Linux_"$arch"/"$nverdot"/compilers/lib:$LD_LIBRARY_PATH
|
||||
|
|
@ -188,3 +189,9 @@ if [[ "$FC" == "gfortran" ]]; then
|
|||
export NWCHEM_MODULES=$(echo $NWCHEM_MODULES |sed 's/xtb//')
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$USE_LIBXC" == "-1" ]]; then
|
||||
unset USE_LIBXC
|
||||
export LIBXC_LIB=/usr/lib/x86_64-linux-gnu
|
||||
export LIBXC_INCLUDE=/usr/include
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -158,6 +158,7 @@ fi
|
|||
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs dft_smear
|
||||
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs dft_he2p_wb97
|
||||
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs ritddft_pyridine
|
||||
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs tddftgrad_h2o_cis_lda
|
||||
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs au2-sarc-zora-mp
|
||||
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs x2c-h2se
|
||||
if [[ ! -z "$USE_LIBXC" ]]; then
|
||||
|
|
@ -167,7 +168,7 @@ fi
|
|||
if [[ ! $(grep -i mp2_input $TRAVIS_BUILD_DIR/src/stubs.F| awk '/mp2_input/') ]]; then
|
||||
if [[ ! $(grep -i ccsd_input $TRAVIS_BUILD_DIR/src/stubs.F| awk '/ccsd_input/') ]]; then
|
||||
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs ccsdt_w3pvdz ccsdt_ompt_w3pvdz
|
||||
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs n2_ccsd h2mp2 auh2o aump2
|
||||
cd $TRAVIS_BUILD_DIR/QA && ./runtests.mpi.unix procs $nprocs n2_ccsd h2mp2 grad_ozone auh2o aump2
|
||||
fi
|
||||
fi
|
||||
if [[ ! $(grep -i pspw $TRAVIS_BUILD_DIR/src/stubs.F| awk '/pspw_input/') ]]; then
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue