mirror of
https://github.com/LCPQ/quantum_package
synced 2024-11-04 21:24:02 +01:00
ezfio interface
This commit is contained in:
parent
1649b47a59
commit
44eac08f21
21
src/Full_CI/DEPENDENCY
Normal file
21
src/Full_CI/DEPENDENCY
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
[N_det_max_fci]
|
||||||
|
doc : Max number of determinants in the wave function
|
||||||
|
ezfio_name : N_det_max_fci
|
||||||
|
ezfio_type : integer
|
||||||
|
ezfio_dir : full_ci
|
||||||
|
ezfio_default_value : 10000
|
||||||
|
|
||||||
|
[pt2_max]
|
||||||
|
doc : The selection process stops when the largest PT2 (for all the states) is lower than pt2_max in absolute value
|
||||||
|
ezfio_name : pt2_max
|
||||||
|
ezfio_type : double precision
|
||||||
|
ezfio_dir : full_ci
|
||||||
|
ezfio_default_value : 1.e-4
|
||||||
|
|
||||||
|
|
||||||
|
[do_pt2_end]
|
||||||
|
doc : If true, compute the PT2 at the end of the selection
|
||||||
|
ezfio_name : do_pt2_end
|
||||||
|
ezfio_type : logical
|
||||||
|
ezfio_dir : full_ci
|
||||||
|
ezfio_default_value : False
|
101
src/Full_CI/ezfio_interface.py
Normal file
101
src/Full_CI/ezfio_interface.py
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import ConfigParser
|
||||||
|
from collections import defaultdict
|
||||||
|
|
||||||
|
|
||||||
|
def create_ezfio_config(config_file, save, root):
|
||||||
|
d = defaultdict(list)
|
||||||
|
|
||||||
|
ls = config_file.sections()
|
||||||
|
for i in ls:
|
||||||
|
l_to_join = [" ",
|
||||||
|
config_file.get(i, 'ezfio_name'),
|
||||||
|
config_file.get(i, 'ezfio_type'),
|
||||||
|
"\n"]
|
||||||
|
|
||||||
|
d[config_file.get(i, 'ezfio_dir')].append(l_to_join)
|
||||||
|
|
||||||
|
s = ""
|
||||||
|
for k, v in d.items():
|
||||||
|
s += k + "\n"
|
||||||
|
for i in v:
|
||||||
|
s += " ".join(i)
|
||||||
|
|
||||||
|
if (save):
|
||||||
|
for k, v in d.items():
|
||||||
|
f = open(root + k + ".ezfio_config", "w")
|
||||||
|
f.write(k + "\n")
|
||||||
|
for i in v:
|
||||||
|
f.write(" ".join(i))
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
return s
|
||||||
|
|
||||||
|
|
||||||
|
def create_ezfio_default(config_file):
|
||||||
|
|
||||||
|
d = defaultdict(list)
|
||||||
|
|
||||||
|
ls = config_file.sections()
|
||||||
|
for i in ls:
|
||||||
|
l_to_join = [" ",
|
||||||
|
config_file.get(i, 'ezfio_name'),
|
||||||
|
config_file.get(i, 'ezfio_default_value'),
|
||||||
|
"\n"]
|
||||||
|
|
||||||
|
d[config_file.get(i, 'ezfio_dir')].append(l_to_join)
|
||||||
|
|
||||||
|
f = ""
|
||||||
|
for k, v in d.items():
|
||||||
|
f += k + "\n"
|
||||||
|
for i in v:
|
||||||
|
f += " ".join(i)
|
||||||
|
|
||||||
|
return f
|
||||||
|
|
||||||
|
|
||||||
|
def create_ezfio_provider(config_file):
|
||||||
|
from ezfio_with_default import EZFIO_Provider
|
||||||
|
lp = []
|
||||||
|
|
||||||
|
T = EZFIO_Provider()
|
||||||
|
|
||||||
|
ls = config_file.sections()
|
||||||
|
for i in ls:
|
||||||
|
T.set_type(config_file.get(i, 'ezfio_type'))
|
||||||
|
T.set_name(i)
|
||||||
|
T.set_doc(config_file.get(i, 'doc'))
|
||||||
|
T.set_ezfio_dir(config_file.get(i, 'ezfio_dir'))
|
||||||
|
T.set_ezfio_name(config_file.get(i, 'ezfio_name'))
|
||||||
|
T.set_default(config_file.get(i, 'ezfio_default_value'))
|
||||||
|
|
||||||
|
T.set_output("output_%s" % config_file.get(i, 'ezfio_dir'))
|
||||||
|
lp.append(T.get_string())
|
||||||
|
|
||||||
|
return lp
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
path_config_folder = os.path.expanduser(sys.argv[1])
|
||||||
|
|
||||||
|
config = ConfigParser.ConfigParser()
|
||||||
|
|
||||||
|
try:
|
||||||
|
config.readfp(open(path_config_folder + '/DEPENDENCY'))
|
||||||
|
except:
|
||||||
|
sys.exit("No DEPENDENCY file in %s" % (path_config_folder))
|
||||||
|
|
||||||
|
create_ezfio_config(config, True, path_config_folder)
|
||||||
|
|
||||||
|
for i in create_ezfio_provider(config):
|
||||||
|
print i
|
||||||
|
|
||||||
|
path = "{root}/options.irp.f".format(
|
||||||
|
root=path_config_folder)
|
||||||
|
with open(path, "w") as f:
|
||||||
|
for i in create_ezfio_provider(config):
|
||||||
|
f.write(i)
|
Loading…
Reference in New Issue
Block a user