11import os
22import numpy as np
3+ import torch
34
4- ## from utils.py
5- QCDIR = os .path .dirname (os .path .realpath (__file__ ))
5+ DEVICE = torch .device ("cuda:0" if torch .cuda .is_available () else "cpu" )
6+ BOHR2ANG = 0.52917721067
7+ NAME_TYPE = {'X' : 0 , # Ghost
8+ 'H' : 1 , 'He' : 2 , 'Li' : 3 , 'Be' : 4 , 'B' : 5 , 'C' : 6 , 'N' : 7 ,
9+ 'O' : 8 , 'F' : 9 , 'Ne' : 10 , 'Na' : 11 , 'Mg' : 12 , 'Al' : 13 ,
10+ 'Si' : 14 , 'P' : 15 , 'S' : 16 , 'Cl' : 17 , 'Ar' : 18 , 'K' : 19 ,
11+ 'Ca' : 20 , 'Sc' : 21 , 'Ti' : 22 , 'V' : 23 , 'Cr' : 24 , 'Mn' : 25 ,
12+ 'Fe' : 26 , 'Co' : 27 , 'Ni' : 28 , 'Cu' : 29 , 'Zn' : 30 , 'Ga' : 31 ,
13+ 'Ge' : 32 , 'As' : 33 , 'Se' : 34 , 'Br' : 35 , 'Kr' : 36 , 'Rb' : 37 ,
14+ 'Sr' : 38 , 'Y' : 39 , 'Zr' : 40 , 'Nb' : 41 , 'Mo' : 42 , 'Tc' : 43 ,
15+ 'Ru' : 44 , 'Rh' : 45 , 'Pd' : 46 , 'Ag' : 47 , 'Cd' : 48 , 'In' : 49 ,
16+ 'Sn' : 50 , 'Sb' : 51 , 'Te' : 52 , 'I' : 53 , 'Xe' : 54 , 'Cs' : 55 ,
17+ 'Ba' : 56 , 'La' : 57 , 'Ce' : 58 , 'Pr' : 59 , 'Nd' : 60 , 'Pm' : 61 ,
18+ 'Sm' : 62 , 'Eu' : 63 , 'Gd' : 64 , 'Tb' : 65 , 'Dy' : 66 , 'Ho' : 67 ,
19+ 'Er' : 68 , 'Tm' : 69 , 'Yb' : 70 , 'Lu' : 71 , 'Hf' : 72 , 'Ta' : 73 ,
20+ 'W' : 74 , 'Re' : 75 , 'Os' : 76 , 'Ir' : 77 , 'Pt' : 78 , 'Au' : 79 ,
21+ 'Hg' : 80 , 'Tl' : 81 , 'Pb' : 82 , 'Bi' : 83 , 'Po' : 84 , 'At' : 85 ,
22+ 'Rn' : 86 , 'Fr' : 87 , 'Ra' : 88 , 'Ac' : 89 , 'Th' : 90 , 'Pa' : 91 ,
23+ 'U' : 92 , 'Np' : 93 , 'Pu' : 94 , 'Am' : 95 , 'Cm' : 96 , 'Bk' : 97 ,
24+ 'Cf' : 98 , 'Es' : 99 , 'Fm' : 100 , 'Md' : 101 , 'No' : 102 , 'Lr' : 103 ,
25+ 'Rf' : 104 , 'Db' : 105 , 'Sg' : 106 , 'Bh' : 107 , 'Hs' : 108 ,
26+ 'Mt' : 109 , 'Ds' : 110 , 'Rg' : 111 , 'Cn' : 112 , 'Uut' : 113 ,
27+ 'Fl' : 114 , 'Uup' : 115 , 'Lv' : 116 , 'Uus' : 117 , 'Uuo' : 118
28+ } #dict
29+ TYPE_NAME = {v :k for k , v in NAME_TYPE .items ()}
30+ ELEMENTS = list (NAME_TYPE .keys ())
31+
32+ # Default settings for abacus
33+ DEFAULT_SCF_ARGS_ABACUS = {
34+ # for STRU
35+ "orb_files" : ["orb" ],
36+ "pp_files" : ["upf" ],
37+ "proj_file" : ["orb" ],
38+ "lattice_constant" : 1 ,
39+ "lattice_vector" : np .eye (3 ,dtype = int ),
40+ "coord_type" : "Cartesian" ,
41+ # for INPUT
42+ "nspin" : 1 ,
43+ "symmetry" : 0 ,
44+ "nbands" : None ,
45+ "ecutwfc" : 50 ,
46+ "scf_thr" : 1e-7 ,
47+ "scf_nmax" : 50 ,
48+ "dft_functional" : "pbe" ,
49+ "basis_type" : "lcao" ,
50+ "gamma_only" : 1 ,
51+ "k_points" : None , # also used for KPT file if not None
52+ "kspacing" : None ,
53+ "smearing_method" :"gaussian" ,
54+ "smearing_sigma" : 0.02 ,
55+ "mixing_type" : "pulay" ,
56+ "mixing_beta" : 0.4 ,
57+ "cal_force" : 0 ,
58+ "cal_stress" : 0 ,
59+ "deepks_bandgap" : 0 ,
60+ "deepks_v_delta" : 0 ,
61+ "deepks_out_labels" : 1 ,
62+ "deepks_scf" : 0 ,
63+ "out_wfc_lcao" : 0 ,
64+ # for running
65+ "run_cmd" : "mpirun" ,
66+ "sub_size" : 1 ,
67+ "abacus_path" : "/usr/local/bin/ABACUS.mpi" ,
68+ }
69+
70+ ## Default settings for pyscf
671_zeta = 1.5 ** np .array ([17 ,13 ,10 ,7 ,5 ,3 ,2 ,1 ,0 ,- 1 ,- 2 ,- 3 ])
772_coef = np .diag (np .ones (_zeta .size )) - np .diag (np .ones (_zeta .size - 1 ), k = 1 )
873_table = np .concatenate ([_zeta .reshape (- 1 ,1 ), _coef ], axis = 1 )
974DEFAULT_BASIS = [[0 , * _table .tolist ()], [1 , * _table .tolist ()], [2 , * _table .tolist ()]]
1075DEFAULT_SYMB = "Ne"
76+ DEFAULT_UNIT = "Bohr"
77+ DEFAULT_FNAMES = {"e_tot" , "e_base" , "dm_eig" , "conv" }
78+ DEFAULT_HF_ARGS = {
79+ "conv_tol" : 1e-9
80+ }
81+ DEFAULT_SCF_ARGS = {
82+ "conv_tol" : 1e-7 ,
83+ # "level_shift": 0.1,
84+ # "diis_space": 20
85+ }
86+ MOL_ATTRIBUTE = {"charge" , "basis" , "unit" } # other molecule properties
1187
12- ## from iterate/template.py
13- SCF_CMD = " " .join ([
14- "{python} -u" ,
15- "-m deepks.scf.run"
16- # os.path.join(QCDIR, "scf/run.py") # this is the backup choice
17- ])
18-
19- TRN_CMD = " " .join ([
20- "{python} -u" ,
21- "-m deepks.model.train"
22- # os.path.join(QCDIR, "train/train.py") # this is the backup choice
23- ])
24-
25-
88+ ## default settings for make scf tasks
89+ SCF_CMD = "{python} -u -m deepks.scf.run"
90+ TRN_CMD = "{python} -u -m deepks.model.train"
2691DEFAULT_SCF_RES = {
2792 "time_limit" : "24:00:00" ,
2893 "cpus_per_task" : 8 ,
3196 "PYSCF_MAX_MEMORY" : 8000
3297 }
3398}
34-
3599DEFAULT_SCF_SUB_RES = {
36100 "numb_node" : 1 ,
37101 "task_per_node" : 1 ,
38102 "cpus_per_task" : 8 ,
39103 "exclusive" : True
40104}
41-
42105DEFAULT_TRN_RES = {
43106 "time_limit" : "24:00:00" ,
44107 "cpus_per_task" : 8 ,
45108 # "numb_gpu": 1, # do not use gpu by default
46109 "mem_limit" : 8
47110}
48-
49111DEFAULT_DPDISPATCHER_RES = {
50112 "number_node" : 1 ,
51113 "cpu_per_node" : 8 ,
83145
84146DATA_TRAIN = "data_train"
85147DATA_TEST = "data_test"
86- MODEL_FILE = "model.pth"
87148PROJ_BASIS = "proj_basis.npz"
88149
89150SCF_STEP_DIR = "00.scf"
96157DEFAULT_TRAIN = "systems_train.raw"
97158DEFAULT_TEST = "systems_test.raw"
98159
99-
100- ## from iterate/template_abacus.py
101160MODEL_FILE = "model.pth"
102- CMODEL_FILE = "model.ptg"
103-
104- NAME_TYPE = { 'H' : 1 , 'He' : 2 , 'Li' : 3 , 'Be' : 4 , 'B' : 5 , 'C' : 6 , 'N' : 7 ,
105- 'O' : 8 , 'F' : 9 , 'Ne' : 10 , 'Na' : 11 , 'Mg' : 12 , 'Al' : 13 ,
106- 'Si' : 14 , 'P' : 15 , 'S' : 16 , 'Cl' : 17 , 'Ar' : 18 , 'K' : 19 ,
107- 'Ca' : 20 , 'Sc' : 21 , 'Ti' : 22 , 'V' : 23 , 'Cr' : 24 , 'Mn' : 25 ,
108- 'Fe' : 26 , 'Co' : 27 , 'Ni' : 28 , 'Cu' : 29 , 'Zn' : 30 , 'Ga' : 31 ,
109- 'Ge' : 32 , 'As' : 33 , 'Se' : 34 , 'Br' : 35 , 'Kr' : 36 , 'Rb' : 37 ,
110- 'Sr' : 38 , 'Y' : 39 , 'Zr' : 40 , 'Nb' : 41 , 'Mo' : 42 , 'Tc' : 43 ,
111- 'Ru' : 44 , 'Rh' : 45 , 'Pd' : 46 , 'Ag' : 47 , 'Cd' : 48 , 'In' : 49 ,
112- 'Sn' : 50 , 'Sb' : 51 , 'Te' : 52 , 'I' : 53 , 'Xe' : 54 , 'Cs' : 55 ,
113- 'Ba' : 56 ,
114- ## La-Lu
115- ## 'La': 57, 'Ce': 58, 'Pr': 59, 'Nd': 60, 'Pm': 61,
116- ## 'Sm': 62, 'Eu': 63, 'Gd': 64, 'Tb': 65, 'Dy': 66, 'Ho': 67,
117- ## 'Er': 68, 'Tm': 69, 'Yb': 70, 'Lu': 71,
118- 'Hf' : 72 , 'Ta' : 73 ,
119- 'W' : 74 , 'Re' : 75 , 'Os' : 76 , 'Ir' : 77 , 'Pt' : 78 , 'Au' : 79 ,
120- 'Hg' : 80 , 'Tl' : 81 , 'Pb' : 82 , 'Bi' : 83 ,
121- ## Here after are radioactive elements
122- ## 'Po': 84, 'At': 85, 'Rn': 86, 'Fr': 87, 'Ra': 88,
123- ## Ac-Lr
124- ## 'Ac': 89, 'Th': 90, 'Pa': 91,
125- ## 'U': 92, 'Np': 93, 'Pu': 94, 'Am': 95, 'Cm': 96, 'Bk': 97,
126- ## 'Cf': 98, 'Es': 99, 'Fm': 100, 'Md': 101, 'No': 102, 'Lr': 103,
127- ## 'Rf': 104, 'Db': 105, 'Sg': 106, 'Bh': 107, 'Hs': 108,
128- ## 'Mt': 109, 'Ds': 110, 'Rg': 111, 'Cn': 112, 'Uut': 113,
129- ## 'Fl': 114, 'Uup': 115, 'Lv': 116, 'Uus': 117, 'Uuo': 118
130- } #dict
131- TYPE_NAME = {v :k for k , v in NAME_TYPE .items ()}
132- TYPE_INDEX = {k :v for k , v in NAME_TYPE .items ()}
133-
134- ABACUS_CMD = "bash run_abacus.sh"
135-
136- DEFAULT_SCF_ARGS_ABACUS = {
137- "orb_files" : ["orb" ], #atomic number order
138- "pp_files" : ["upf" ], #atomic number order
139- "proj_file" : ["orb" ],
140- "ntype" : 1 ,
141- "nspin" : 1 ,
142- "symmetry" : 0 ,
143- "nbands" : None ,
144- "ecutwfc" : 50 ,
145- "scf_thr" : 1e-7 ,
146- "scf_nmax" : 50 ,
147- "dft_functional" : "pbe" ,
148- "basis_type" : "lcao" ,
149- "gamma_only" : 1 ,
150- "k_points" : None ,
151- "kspacing" : None ,
152- "smearing_method" :"gaussian" ,
153- "smearing_sigma" :0.02 ,
154- "mixing_type" : "pulay" ,
155- "mixing_beta" : 0.4 ,
156- "cal_force" : 0 ,
157- "cal_stress" : 0 ,
158- "deepks_bandgap" : 0 ,
159- "deepks_v_delta" : 0 ,
160- "deepks_out_labels" :1 ,
161- "deepks_scf" :0 ,
162- "lattice_constant" : 1 ,
163- "lattice_vector" : np .eye (3 ,dtype = int ),
164- "coord_type" : "Cartesian" ,
165- "run_cmd" : "mpirun" ,
166- "sub_size" : 1 ,
167- "abacus_path" : "/usr/local/bin/ABACUS.mpi" ,
168- "out_wfc_lcao" : 0 ,
169- }
170-
171-
172- ## from iterate/generator_abacus.py
173- BOHR2ANG = 0.52917721067
174-
175- ## from model
176- DEVICE = torch .device ("cuda:0" if torch .cuda .is_available () else "cpu" )
177-
178- SCALE_EPS = 1e-8
179-
180- ## from tools
181- BOHR = 0.52917721092
182-
183-
184- ## from scf
185- DEFAULT_UNIT = "Bohr"
186-
187- DEFAULT_FNAMES = {"e_tot" , "e_base" , "dm_eig" , "conv" }
188-
189- DEFAULT_HF_ARGS = {
190- "conv_tol" : 1e-9
191- }
192-
193- DEFAULT_SCF_ARGS = {
194- "conv_tol" : 1e-7 ,
195- # "level_shift": 0.1,
196- # "diis_space": 20
197- }
198-
199- MOL_ATTRIBUTE = {"charge" , "basis" , "unit" } # other molecule properties
161+ CMODEL_FILE = "model.ptg"
0 commit comments