Skip to content

Commit 4c2256d

Browse files
committed
change default value to [bse]save_chiloc=default
1 parent d32775a commit 4c2256d

4 files changed

Lines changed: 18 additions & 5 deletions

File tree

src/dcore/impurity_solvers/alps_cthyb_seg.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from dcore._dispatcher import *
2424
from ..tools import make_block_gf, launch_mpi_subprocesses, extract_H0, umat2dd, get_block_size, expand_path
2525
from .base import SolverBase, rotate_basis
26+
from dcore.program_options import parse_save_chiloc
2627

2728

2829
def to_numpy_array(g, names):
@@ -420,7 +421,7 @@ def calc_Xloc_ph(self, rot, mpirun_command, num_wf, num_wb, params_kw):
420421
For details, see SolverBase.calc_Xloc_ph
421422
"""
422423

423-
save_chiloc = params_kw['save_chiloc']
424+
save_chiloc = parse_save_chiloc(params_kw['save_chiloc'], default=False)
424425
only_chiloc = params_kw['only_chiloc']
425426

426427
params_kw['cthyb.MEASURE_g2w'] = 1

src/dcore/impurity_solvers/jo_cthyb_seg.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
from dcore._dispatcher import *
2525
from ..tools import make_block_gf, launch_mpi_subprocesses, extract_H0, umat2dd, get_block_size, expand_path
2626
from .base import SolverBase, rotate_basis
27+
from dcore.program_options import parse_save_chiloc
2728

2829

2930
def to_numpy_array(g, names):
@@ -359,7 +360,7 @@ def calc_Xloc_ph(self, rot, mpirun_command, num_wf, num_wb, params_kw):
359360
For details, see SolverBase.calc_Xloc_ph
360361
"""
361362

362-
save_chiloc = params_kw['save_chiloc']
363+
save_chiloc = parse_save_chiloc(params_kw['save_chiloc'], default=False)
363364
only_chiloc = params_kw['only_chiloc']
364365

365366
if save_chiloc:

src/dcore/impurity_solvers/pomerol.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
from ..tools import make_block_gf, launch_mpi_subprocesses, extract_H0, extract_bath_params, expand_path
2727
from .base import SolverBase
28+
from dcore.program_options import parse_save_chiloc
2829

2930
VERSION_REQUIRED = 1.5
3031

@@ -318,7 +319,7 @@ def calc_Xloc_ph(self, rot, mpirun_command, num_wf, num_wb, params_kw):
318319
For details, see SolverBase.calc_Xloc_ph
319320
"""
320321

321-
save_chiloc = params_kw['save_chiloc']
322+
save_chiloc = parse_save_chiloc(params_kw['save_chiloc'], default=True)
322323
only_chiloc = params_kw['only_chiloc']
323324

324325
# Set parameters

src/dcore/program_options.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def create_parser(target_sections=None):
4848
parser = TypedParser(['mpi', 'model', 'pre', 'system', 'impurity_solver', 'control', 'post', 'post.anacont', 'post.anacont.pade', 'post.anacont.spm', 'post.anacont.spm.solver', 'post.spectrum', 'post.check', 'bse', 'vertex', 'sparse_bse'])
4949
else:
5050
parser = TypedParser(target_sections)
51-
51+
5252
# tool is removed but read for warning
5353
parser.allow_undefined_options("tool")
5454
parser.allow_undefined_options("post.anacont.spm.solver")
@@ -180,7 +180,7 @@ def create_parser(target_sections=None):
180180
parser.add_option("bse", "skip_X0q_if_exists", bool, False, "[NOT USED] Skip X_0(q) calc if file already exists", OptionStatus.RETIRED)
181181
parser.add_option("bse", "skip_X0q", bool, False, "Skip X_0(q) calc")
182182
parser.add_option("bse", "skip_Xloc", bool, False, "Skip X_loc calc (for RPA)")
183-
parser.add_option("bse", "save_chiloc", bool, True, "Save chi_loc to get better convergence against num_wf. But False is recommended in CTHYB-SEGMENT solvers (See below).")
183+
parser.add_option("bse", "save_chiloc", str, 'default', "Chosen from 'default', 'True', or 'False'. If True, chi_loc is saved to get better convergence against num_wf in ChiQ. But False is recommended for CTHYB segment algorithm. For 'default', True is set for pomerol solver, while False is set for JO/cthyb-seg and ALPS/cthyb-seg solvers.")
184184
parser.add_option("bse", "calc_only_chiloc", bool, False, "Calculate only chi_loc but no X_loc (for SCL, rRPA). Do not activate skip_Xloc when using this option.")
185185
parser.add_option("bse", "use_temp_file", bool, False, "Whether or not temporary file is used in computing X0_q. This option will reduce the memory footprints.")
186186
parser.add_option("bse", "X0q_qpoints_saved", str, 'quadrant', "Specifies for which q points X0q are saved in a HDF file. quadrant or path to a q_path.dat file.")
@@ -337,6 +337,7 @@ def parse_parameters(params):
337337
if 'bse' in params:
338338
two_options_incompatible(params, ('bse', 'skip_Xloc'), ('bse', 'calc_only_chiloc'))
339339

340+
check_option_choices(params, ('bse', 'save_chiloc'), ['default', 'True', 'False'])
340341
check_option_choices(params, ('bse', 'choice_X0loc'), ['qsum', 'imp'])
341342

342343

@@ -399,6 +400,15 @@ def parse_bvec(bvec_string):
399400
return bvec
400401

401402

403+
def parse_save_chiloc(save_chiloc_in, default : bool):
404+
assert save_chiloc_in in ('default', 'True', 'False')
405+
if save_chiloc_in == 'default':
406+
save_chiloc = default
407+
else:
408+
save_chiloc = save_chiloc_in == 'True' # convert str to bool
409+
return save_chiloc
410+
411+
402412
def delete_parameters(p, block, delete=None, retain=None):
403413
"""
404414
Delete parameters

0 commit comments

Comments
 (0)