mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-12-23 12:55:37 +01:00
Merge branch 'dev-stable' of https://github.com/QuantumPackage/qp2 into dev-stable
This commit is contained in:
commit
6564fe2f18
62
config/flang_avx.cfg
Normal file
62
config/flang_avx.cfg
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
# Common flags
|
||||||
|
##############
|
||||||
|
#
|
||||||
|
# -ffree-line-length-none : Needed for IRPF90 which produces long lines
|
||||||
|
# -lblas -llapack : Link with libblas and liblapack libraries provided by the system
|
||||||
|
# -I . : Include the curent directory (Mandatory)
|
||||||
|
#
|
||||||
|
# --ninja : Allow the utilisation of ninja. (Mandatory)
|
||||||
|
# --align=32 : Align all provided arrays on a 32-byte boundary
|
||||||
|
#
|
||||||
|
#
|
||||||
|
[COMMON]
|
||||||
|
FC : flang -ffree-line-length-none -I . -mavx -g -fPIC
|
||||||
|
LAPACK_LIB : -llapack -lblas
|
||||||
|
IRPF90 : irpf90
|
||||||
|
IRPF90_FLAGS : --ninja --align=32 -DSET_NESTED
|
||||||
|
|
||||||
|
# Global options
|
||||||
|
################
|
||||||
|
#
|
||||||
|
# 1 : Activate
|
||||||
|
# 0 : Deactivate
|
||||||
|
#
|
||||||
|
[OPTION]
|
||||||
|
MODE : OPT ; [ OPT | PROFILE | DEBUG ] : Chooses the section below
|
||||||
|
CACHE : 0 ; Enable cache_compile.py
|
||||||
|
OPENMP : 1 ; Append OpenMP flags
|
||||||
|
|
||||||
|
# Optimization flags
|
||||||
|
####################
|
||||||
|
#
|
||||||
|
# -Ofast : Disregard strict standards compliance. Enables all -O3 optimizations.
|
||||||
|
# It also enables optimizations that are not valid
|
||||||
|
# for all standard-compliant programs. It turns on
|
||||||
|
# -ffast-math and the Fortran-specific
|
||||||
|
# -fno-protect-parens and -fstack-arrays.
|
||||||
|
[OPT]
|
||||||
|
FCFLAGS : -Ofast -mavx
|
||||||
|
|
||||||
|
# Profiling flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[PROFILE]
|
||||||
|
FC : -p -g
|
||||||
|
FCFLAGS : -Ofast
|
||||||
|
|
||||||
|
# Debugging flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
# -fcheck=all : Checks uninitialized variables, array subscripts, etc...
|
||||||
|
# -g : Extra debugging information
|
||||||
|
#
|
||||||
|
[DEBUG]
|
||||||
|
FCFLAGS : -fcheck=all -g
|
||||||
|
|
||||||
|
# OpenMP flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[OPENMP]
|
||||||
|
FC : -fopenmp
|
||||||
|
IRPF90_FLAGS : --openmp
|
||||||
|
|
62
config/gfortran10.cfg
Normal file
62
config/gfortran10.cfg
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
# Common flags
|
||||||
|
##############
|
||||||
|
#
|
||||||
|
# -ffree-line-length-none : Needed for IRPF90 which produces long lines
|
||||||
|
# -lblas -llapack : Link with libblas and liblapack libraries provided by the system
|
||||||
|
# -I . : Include the curent directory (Mandatory)
|
||||||
|
#
|
||||||
|
# --ninja : Allow the utilisation of ninja. (Mandatory)
|
||||||
|
# --align=32 : Align all provided arrays on a 32-byte boundary
|
||||||
|
#
|
||||||
|
#
|
||||||
|
[COMMON]
|
||||||
|
FC : gfortran-10 -g -ffree-line-length-none -I . -fPIC
|
||||||
|
LAPACK_LIB : -lblas -llapack
|
||||||
|
IRPF90 : irpf90
|
||||||
|
IRPF90_FLAGS : --ninja --align=32 --assert -DSET_NESTED
|
||||||
|
|
||||||
|
# Global options
|
||||||
|
################
|
||||||
|
#
|
||||||
|
# 1 : Activate
|
||||||
|
# 0 : Deactivate
|
||||||
|
#
|
||||||
|
[OPTION]
|
||||||
|
MODE : DEBUG ; [ OPT | PROFILE | DEBUG ] : Chooses the section below
|
||||||
|
CACHE : 0 ; Enable cache_compile.py
|
||||||
|
OPENMP : 1 ; Append OpenMP flags
|
||||||
|
|
||||||
|
# Optimization flags
|
||||||
|
####################
|
||||||
|
#
|
||||||
|
# -Ofast : Disregard strict standards compliance. Enables all -O3 optimizations.
|
||||||
|
# It also enables optimizations that are not valid
|
||||||
|
# for all standard-compliant programs. It turns on
|
||||||
|
# -ffast-math and the Fortran-specific
|
||||||
|
# -fno-protect-parens and -fstack-arrays.
|
||||||
|
[OPT]
|
||||||
|
FCFLAGS : -Ofast
|
||||||
|
|
||||||
|
# Profiling flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[PROFILE]
|
||||||
|
FC : -p -g
|
||||||
|
FCFLAGS : -Ofast
|
||||||
|
|
||||||
|
# Debugging flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
# -fcheck=all : Checks uninitialized variables, array subscripts, etc...
|
||||||
|
# -g : Extra debugging information
|
||||||
|
#
|
||||||
|
[DEBUG]
|
||||||
|
FCFLAGS : -g -msse4.2 -fcheck=all -Waliasing -Wampersand -Wconversion -Wsurprising -Wintrinsics-std -Wno-tabs -Wintrinsic-shadow -Wline-truncation -Wreal-q-constant -Wuninitialized -fbacktrace -ffpe-trap=zero,overflow,underflow -finit-real=nan
|
||||||
|
|
||||||
|
# OpenMP flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[OPENMP]
|
||||||
|
FC : -fopenmp
|
||||||
|
IRPF90_FLAGS : --openmp
|
||||||
|
|
62
config/gfortran_mpi_mkl.cfg
Normal file
62
config/gfortran_mpi_mkl.cfg
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
# Common flags
|
||||||
|
##############
|
||||||
|
#
|
||||||
|
# -ffree-line-length-none : Needed for IRPF90 which produces long lines
|
||||||
|
# -lblas -llapack : Link with libblas and liblapack libraries provided by the system
|
||||||
|
# -I . : Include the curent directory (Mandatory)
|
||||||
|
#
|
||||||
|
# --ninja : Allow the utilisation of ninja. (Mandatory)
|
||||||
|
# --align=32 : Align all provided arrays on a 32-byte boundary
|
||||||
|
#
|
||||||
|
#
|
||||||
|
[COMMON]
|
||||||
|
FC : mpif90 -ffree-line-length-none -I . -g -fPIC -std=legacy
|
||||||
|
LAPACK_LIB : -lblas -llapack
|
||||||
|
IRPF90 : irpf90
|
||||||
|
IRPF90_FLAGS : --ninja --align=32 -DMPI -DSET_NESTED
|
||||||
|
|
||||||
|
# Global options
|
||||||
|
################
|
||||||
|
#
|
||||||
|
# 1 : Activate
|
||||||
|
# 0 : Deactivate
|
||||||
|
#
|
||||||
|
[OPTION]
|
||||||
|
MODE : OPT ; [ OPT | PROFILE | DEBUG ] : Chooses the section below
|
||||||
|
CACHE : 0 ; Enable cache_compile.py
|
||||||
|
OPENMP : 1 ; Append OpenMP flags
|
||||||
|
|
||||||
|
# Optimization flags
|
||||||
|
####################
|
||||||
|
#
|
||||||
|
# -Ofast : Disregard strict standards compliance. Enables all -O3 optimizations.
|
||||||
|
# It also enables optimizations that are not valid
|
||||||
|
# for all standard-compliant programs. It turns on
|
||||||
|
# -ffast-math and the Fortran-specific
|
||||||
|
# -fno-protect-parens and -fstack-arrays.
|
||||||
|
[OPT]
|
||||||
|
FCFLAGS : -Ofast -msse4.2
|
||||||
|
|
||||||
|
# Profiling flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[PROFILE]
|
||||||
|
FC : -p -g
|
||||||
|
FCFLAGS : -Ofast -msse4.2
|
||||||
|
|
||||||
|
# Debugging flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
# -fcheck=all : Checks uninitialized variables, array subscripts, etc...
|
||||||
|
# -g : Extra debugging information
|
||||||
|
#
|
||||||
|
[DEBUG]
|
||||||
|
FCFLAGS : -fcheck=all -g
|
||||||
|
|
||||||
|
# OpenMP flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[OPENMP]
|
||||||
|
FC : -fopenmp
|
||||||
|
IRPF90_FLAGS : --openmp
|
||||||
|
|
63
config/ifort_2019_avx_notz.cfg
Normal file
63
config/ifort_2019_avx_notz.cfg
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
# Common flags
|
||||||
|
##############
|
||||||
|
#
|
||||||
|
# -mkl=[parallel|sequential] : Use the MKL library
|
||||||
|
# --ninja : Allow the utilisation of ninja. It is mandatory !
|
||||||
|
# --align=32 : Align all provided arrays on a 32-byte boundary
|
||||||
|
#
|
||||||
|
[COMMON]
|
||||||
|
FC : ifort -fpic
|
||||||
|
LAPACK_LIB : -mkl=parallel
|
||||||
|
IRPF90 : irpf90
|
||||||
|
IRPF90_FLAGS : --ninja --align=32 --define=WITHOUT_TRAILZ --define=WITHOUT_SHIFTRL -DSET_NESTED
|
||||||
|
|
||||||
|
# Global options
|
||||||
|
################
|
||||||
|
#
|
||||||
|
# 1 : Activate
|
||||||
|
# 0 : Deactivate
|
||||||
|
#
|
||||||
|
[OPTION]
|
||||||
|
MODE : OPT ; [ OPT | PROFILE | DEBUG ] : Chooses the section below
|
||||||
|
CACHE : 0 ; Enable cache_compile.py
|
||||||
|
OPENMP : 1 ; Append OpenMP flags
|
||||||
|
|
||||||
|
# Optimization flags
|
||||||
|
####################
|
||||||
|
#
|
||||||
|
# -xHost : Compile a binary optimized for the current architecture
|
||||||
|
# -O2 : O3 not better than O2.
|
||||||
|
# -ip : Inter-procedural optimizations
|
||||||
|
# -ftz : Flushes denormal results to zero
|
||||||
|
#
|
||||||
|
[OPT]
|
||||||
|
FC : -traceback
|
||||||
|
FCFLAGS : -xAVX -O2 -ip -ftz -g
|
||||||
|
|
||||||
|
# Profiling flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[PROFILE]
|
||||||
|
FC : -p -g
|
||||||
|
FCFLAGS : -xSSE4.2 -O2 -ip -ftz
|
||||||
|
|
||||||
|
# Debugging flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
# -traceback : Activate backtrace on runtime
|
||||||
|
# -fpe0 : All floating point exaceptions
|
||||||
|
# -C : Checks uninitialized variables, array subscripts, etc...
|
||||||
|
# -g : Extra debugging information
|
||||||
|
# -xSSE2 : Valgrind needs a very simple x86 executable
|
||||||
|
#
|
||||||
|
[DEBUG]
|
||||||
|
FC : -g -traceback
|
||||||
|
FCFLAGS : -xSSE2 -C -fpe0 -implicitnone
|
||||||
|
|
||||||
|
# OpenMP flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[OPENMP]
|
||||||
|
FC : -qopenmp
|
||||||
|
IRPF90_FLAGS : --openmp
|
||||||
|
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : ifort -fpic
|
FC : ifort -fpic
|
||||||
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
|
LAPACK_LIB : -mkl=parallel
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 --assert -DINTEL -DSET_NESTED
|
IRPF90_FLAGS : --ninja --align=32 --assert -DINTEL -DSET_NESTED
|
||||||
|
|
||||||
|
63
config/ifort_2021_avx_notz.cfg
Normal file
63
config/ifort_2021_avx_notz.cfg
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
# Common flags
|
||||||
|
##############
|
||||||
|
#
|
||||||
|
# -mkl=[parallel|sequential] : Use the MKL library
|
||||||
|
# --ninja : Allow the utilisation of ninja. It is mandatory !
|
||||||
|
# --align=32 : Align all provided arrays on a 32-byte boundary
|
||||||
|
#
|
||||||
|
[COMMON]
|
||||||
|
FC : ifort -fpic
|
||||||
|
LAPACK_LIB : -mkl=parallel
|
||||||
|
IRPF90 : irpf90
|
||||||
|
IRPF90_FLAGS : --ninja --align=32 --define=WITHOUT_TRAILZ --define=WITHOUT_SHIFTRL
|
||||||
|
|
||||||
|
# Global options
|
||||||
|
################
|
||||||
|
#
|
||||||
|
# 1 : Activate
|
||||||
|
# 0 : Deactivate
|
||||||
|
#
|
||||||
|
[OPTION]
|
||||||
|
MODE : OPT ; [ OPT | PROFILE | DEBUG ] : Chooses the section below
|
||||||
|
CACHE : 0 ; Enable cache_compile.py
|
||||||
|
OPENMP : 1 ; Append OpenMP flags
|
||||||
|
|
||||||
|
# Optimization flags
|
||||||
|
####################
|
||||||
|
#
|
||||||
|
# -xHost : Compile a binary optimized for the current architecture
|
||||||
|
# -O2 : O3 not better than O2.
|
||||||
|
# -ip : Inter-procedural optimizations
|
||||||
|
# -ftz : Flushes denormal results to zero
|
||||||
|
#
|
||||||
|
[OPT]
|
||||||
|
FC : -traceback
|
||||||
|
FCFLAGS : -xAVX -O2 -ip -ftz -g
|
||||||
|
|
||||||
|
# Profiling flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[PROFILE]
|
||||||
|
FC : -p -g
|
||||||
|
FCFLAGS : -xSSE4.2 -O2 -ip -ftz
|
||||||
|
|
||||||
|
# Debugging flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
# -traceback : Activate backtrace on runtime
|
||||||
|
# -fpe0 : All floating point exaceptions
|
||||||
|
# -C : Checks uninitialized variables, array subscripts, etc...
|
||||||
|
# -g : Extra debugging information
|
||||||
|
# -xSSE2 : Valgrind needs a very simple x86 executable
|
||||||
|
#
|
||||||
|
[DEBUG]
|
||||||
|
FC : -g -traceback
|
||||||
|
FCFLAGS : -xSSE2 -C -fpe0 -implicitnone
|
||||||
|
|
||||||
|
# OpenMP flags
|
||||||
|
#################
|
||||||
|
#
|
||||||
|
[OPENMP]
|
||||||
|
FC : -qopenmp
|
||||||
|
IRPF90_FLAGS : --openmp
|
||||||
|
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
[COMMON]
|
[COMMON]
|
||||||
FC : ifort -fpic
|
FC : ifort -fpic
|
||||||
LAPACK_LIB : -mkl=parallel -lirc -lsvml -limf -lipps
|
LAPACK_LIB : -mkl=parallel
|
||||||
IRPF90 : irpf90
|
IRPF90 : irpf90
|
||||||
IRPF90_FLAGS : --ninja --align=32 --assert -DINTEL
|
IRPF90_FLAGS : --ninja --align=32 --assert -DINTEL
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
68
scripts/import_champ_jastrow.py
Executable file
68
scripts/import_champ_jastrow.py
Executable file
@ -0,0 +1,68 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
conv = [ 0, 0, 2 , 6 , 13 , 23 , 37 , 55 , 78 , 106 , 140 ]
|
||||||
|
|
||||||
|
|
||||||
|
def import_jastrow(jastrow_filename):
|
||||||
|
with open(jastrow_filename,'r') as jastrow_file:
|
||||||
|
lines = [ line.strip() for line in jastrow_file.readlines() ]
|
||||||
|
lines = [ line for line in lines if line != "" ]
|
||||||
|
start = 0
|
||||||
|
end = len(lines)
|
||||||
|
for i,line in enumerate(lines):
|
||||||
|
if line.startswith("jastrow_parameter"):
|
||||||
|
start = i
|
||||||
|
elif line.startswith("end"):
|
||||||
|
end = i
|
||||||
|
lines = lines[start:end]
|
||||||
|
type_num = (len(lines)-4)//2
|
||||||
|
nord_a,nord_b,nord_c = [ int(i) for i in lines[1].split()[:3] ]
|
||||||
|
scale_k = float(lines[2].split()[0])
|
||||||
|
vec_a = []
|
||||||
|
for j in range(type_num):
|
||||||
|
vec_a += [ float(i) for i in lines[3+j].split()[:nord_a+1] ]
|
||||||
|
vec_b = [ float(i) for i in lines[3+type_num].split()[:nord_b+1] ]
|
||||||
|
vec_c = []
|
||||||
|
for j in range(type_num):
|
||||||
|
vec_c += [ float(i) for i in lines[4+type_num+j].split()[:conv[nord_c]] ]
|
||||||
|
|
||||||
|
return {
|
||||||
|
'type_num' : type_num,
|
||||||
|
'scale_k' : scale_k,
|
||||||
|
'nord_a' : nord_a,
|
||||||
|
'nord_b' : nord_b,
|
||||||
|
'nord_c' : nord_c,
|
||||||
|
'vec_a' : vec_a,
|
||||||
|
'vec_b' : vec_b,
|
||||||
|
'vec_c' : vec_c,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
import sys
|
||||||
|
from ezfio import ezfio
|
||||||
|
ezfio.set_file(sys.argv[1])
|
||||||
|
jastrow_file = sys.argv[2]
|
||||||
|
jastrow = import_jastrow(jastrow_file)
|
||||||
|
print (jastrow)
|
||||||
|
ezfio.set_jastrow_jast_type("Qmckl")
|
||||||
|
ezfio.set_jastrow_jast_qmckl_type_nucl_num(jastrow['type_num'])
|
||||||
|
charges = ezfio.get_nuclei_nucl_charge()
|
||||||
|
types = {}
|
||||||
|
k = 0
|
||||||
|
for c in charges:
|
||||||
|
if c not in types:
|
||||||
|
types[c] = k
|
||||||
|
k += 1
|
||||||
|
type_nucl_vector = [types[c] for c in charges]
|
||||||
|
ezfio.set_jastrow_jast_qmckl_type_nucl_vector(type_nucl_vector)
|
||||||
|
ezfio.set_jastrow_jast_qmckl_rescale_ee(jastrow['scale_k'])
|
||||||
|
ezfio.set_jastrow_jast_qmckl_rescale_en([jastrow['scale_k'] for i in type_nucl_vector])
|
||||||
|
ezfio.set_jastrow_jast_qmckl_aord_num(jastrow['nord_a'])
|
||||||
|
ezfio.set_jastrow_jast_qmckl_bord_num(jastrow['nord_b'])
|
||||||
|
ezfio.set_jastrow_jast_qmckl_cord_num(jastrow['nord_c'])
|
||||||
|
ezfio.set_jastrow_jast_qmckl_c_vector_size(len(jastrow['vec_c']))
|
||||||
|
ezfio.set_jastrow_jast_qmckl_a_vector(jastrow['vec_a'])
|
||||||
|
ezfio.set_jastrow_jast_qmckl_b_vector(jastrow['vec_b'])
|
||||||
|
ezfio.set_jastrow_jast_qmckl_c_vector(jastrow['vec_c'])
|
||||||
|
|
@ -38,6 +38,15 @@ else:
|
|||||||
QP_ROOT + "/install",
|
QP_ROOT + "/install",
|
||||||
QP_ROOT + "/scripts"] + sys.path
|
QP_ROOT + "/scripts"] + sys.path
|
||||||
|
|
||||||
|
def uint64_to_int64(u):
|
||||||
|
# Check if the most significant bit is set
|
||||||
|
if u & (1 << 63):
|
||||||
|
# Calculate the two's complement
|
||||||
|
result = -int(np.bitwise_not(np.uint64(u))+1)
|
||||||
|
else:
|
||||||
|
# The number is already positive
|
||||||
|
result = u
|
||||||
|
return result
|
||||||
|
|
||||||
def generate_xyz(l):
|
def generate_xyz(l):
|
||||||
|
|
||||||
@ -133,7 +142,7 @@ def write_ezfio(trexio_filename, filename):
|
|||||||
try:
|
try:
|
||||||
basis_type = trexio.read_basis_type(trexio_file)
|
basis_type = trexio.read_basis_type(trexio_file)
|
||||||
|
|
||||||
if basis_type.lower()[0] in ["g", "s"]:
|
if basis_type.lower() in ["gaussian", "slater"]:
|
||||||
shell_num = trexio.read_basis_shell_num(trexio_file)
|
shell_num = trexio.read_basis_shell_num(trexio_file)
|
||||||
prim_num = trexio.read_basis_prim_num(trexio_file)
|
prim_num = trexio.read_basis_prim_num(trexio_file)
|
||||||
ang_mom = trexio.read_basis_shell_ang_mom(trexio_file)
|
ang_mom = trexio.read_basis_shell_ang_mom(trexio_file)
|
||||||
@ -473,8 +482,15 @@ def write_ezfio(trexio_filename, filename):
|
|||||||
beta_s[i] = '1'
|
beta_s[i] = '1'
|
||||||
alpha_s = ''.join(alpha_s)[::-1]
|
alpha_s = ''.join(alpha_s)[::-1]
|
||||||
beta_s = ''.join(beta_s)[::-1]
|
beta_s = ''.join(beta_s)[::-1]
|
||||||
alpha = [ int(i,2) for i in qp_bitmasks.string_to_bitmask(alpha_s) ][::-1]
|
def conv(i):
|
||||||
beta = [ int(i,2) for i in qp_bitmasks.string_to_bitmask(beta_s ) ][::-1]
|
try:
|
||||||
|
result = np.int64(i)
|
||||||
|
except:
|
||||||
|
result = np.int64(i-2**63-1)
|
||||||
|
return result
|
||||||
|
|
||||||
|
alpha = [ uint64_to_int64(int(i,2)) for i in qp_bitmasks.string_to_bitmask(alpha_s) ][::-1]
|
||||||
|
beta = [ uint64_to_int64(int(i,2)) for i in qp_bitmasks.string_to_bitmask(beta_s ) ][::-1]
|
||||||
ezfio.set_determinants_bit_kind(8)
|
ezfio.set_determinants_bit_kind(8)
|
||||||
ezfio.set_determinants_n_int(1+mo_num//64)
|
ezfio.set_determinants_n_int(1+mo_num//64)
|
||||||
ezfio.set_determinants_n_det(1)
|
ezfio.set_determinants_n_det(1)
|
||||||
|
Loading…
Reference in New Issue
Block a user