From 57525d458813bcc72e810dbf8cf5deb4497e1dc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20R=C3=BC=C3=9Fmann?= Date: Fri, 2 Dec 2022 13:56:58 +0000 Subject: [PATCH 1/7] First version (not working yet) --- aiida_kkr/calculations/voro.py | 4 + aiida_kkr/parsers/voro.py | 62 +++++ aiida_kkr/workflows/base_restart_calc.py | 137 ----------- aiida_kkr/workflows/restart/base_restart.py | 239 ++++++++++++++++++++ aiida_kkr/workflows/restart/restart_voro.py | 51 +++++ tests/workflows/test_voro_restart.py | 38 ++++ 6 files changed, 394 insertions(+), 137 deletions(-) delete mode 100644 aiida_kkr/workflows/base_restart_calc.py create mode 100644 aiida_kkr/workflows/restart/base_restart.py create mode 100644 aiida_kkr/workflows/restart/restart_voro.py create mode 100644 tests/workflows/test_voro_restart.py diff --git a/aiida_kkr/calculations/voro.py b/aiida_kkr/calculations/voro.py index b7ea4dee..174a1f4f 100644 --- a/aiida_kkr/calculations/voro.py +++ b/aiida_kkr/calculations/voro.py @@ -82,6 +82,10 @@ def define(cls, spec): # define exit codes, also used in parser spec.exit_code(301, 'ERROR_NO_OUTPUT_FILE', message='Voronoi output file not found') spec.exit_code(302, 'ERROR_VORONOI_PARSING_FAILED', message='Voronoi parser retuned an error') + spec.exit_code(303, 'ERROR_OPENING_OUTPUTS', message='Voronoi parser could not open an output file') + spec.exit_code(304, 'ERROR_CALCULATION_FAILED', message='VoronoiCalculation failed for an unknown reason') + spec.exit_code(305, 'ERROR_NOT_ENOUGH_MEMORY', message='VoronoiCalculation needs more memory') + spec.exit_code(306, 'ERROR_TIME_LIMIT', message='VoronoiCalculation needs more runtime') def prepare_for_submission(self, tempfolder): """Create the input files from the input nodes passed to this instance of the `CalcJob`. diff --git a/aiida_kkr/parsers/voro.py b/aiida_kkr/parsers/voro.py index d1e371f5..5c0c31f6 100644 --- a/aiida_kkr/parsers/voro.py +++ b/aiida_kkr/parsers/voro.py @@ -125,5 +125,67 @@ def parse(self, debug=False, **kwargs): # create output node and link self.out('output_parameters', Dict(dict=out_dict)) + OUT_OF_MEMORY_PHRASES = [ + 'cgroup out-of-memory handler', + 'Out Of Memory', + 'Allocation of array for communication failed' #from io/eig66_mpi + ] + + # check if something was written to the error file + errorfile = self.node.attributes['scheduler_stderr'] + + print('errorfile', errorfile, errorfile in list_of_files) + + if errorfile in list_of_files: + # read + try: + with out_folder.open(errorfile, 'r') as efile: + error_file_lines = efile.read() # Note: read(), not readlines() + except OSError: + print(f'Failed to open error file: {errorfile}.') + self.logger.error(f'Failed to open error file: {errorfile}.') + return self.exit_codes.ERROR_OPENING_OUTPUTS + + print( + 'errorfile content', + error_file_lines, + error_file_lines == '', + error_file_lines is None, + ) + + # check lines in the errorfile + if error_file_lines: + + print('in error file line') + + if isinstance(error_file_lines, bytes): + error_file_lines = error_file_lines.replace(b'\x00', b' ') + else: + error_file_lines = error_file_lines.replace('\x00', ' ') + + print(error_file_lines) + + print(f'The following was written into std error and piped to {errorfile} : \n {error_file_lines}') + self.logger.warning( + f'The following was written into std error and piped to {errorfile} : \n {error_file_lines}' + ) + + # here we estimate how much walltime was available and consumed + try: + time_avail_sec = self.node.attributes['last_job_info']['requested_wallclock_time_seconds'] + time_calculated = self.node.attributes['last_job_info']['wallclock_time_seconds'] + if 0.97 * time_avail_sec < time_calculated: + return self.exit_codes.ERROR_TIME_LIMIT + except KeyError: + if 'TIME LIMIT' in error_file_lines.upper() or 'time limit' in error_file_lines: + return self.exit_codes.ERROR_TIME_LIMIT + + if any(phrase in error_file_lines for phrase in OUT_OF_MEMORY_PHRASES): + return self.exit_codes.ERROR_NOT_ENOUGH_MEMORY + + # Catch all exit code for an unknown failure + return self.exit_codes.ERROR_CALCULATION_FAILED + + print('success?', success) if not success: return self.exit_codes.ERROR_VORONOI_PARSING_FAILED diff --git a/aiida_kkr/workflows/base_restart_calc.py b/aiida_kkr/workflows/base_restart_calc.py deleted file mode 100644 index b7c8c0bc..00000000 --- a/aiida_kkr/workflows/base_restart_calc.py +++ /dev/null @@ -1,137 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -""" -In this module you find the base workflow that defines the restart -caclulation functionality. -""" - -from aiida_kkr.calculations import KkrimpCalculation, VoronoiCalculation, KkrCalculation -from aiida.engine import WorkChain -from aiida.orm import CalcJobNode - -__copyright__ = (u'Copyright (c), 2019, Forschungszentrum Jülich GmbH, ' - 'IAS-1/PGI-1, Germany. All rights reserved.') -__license__ = 'MIT license, see LICENSE.txt file' -__version__ = '0.1' -__contributors__ = u'Philipp Rüßmann' - -# similar to base restart workflow of aiida-quantumespresso - - -class base_restart_calc(WorkChain): - """ - Use this base workflow in workflows that directly sumbit calculations (not workflows) - - This workflow defines the following functions that can be used to encapsulate functions that submit calculations: - * cls.prepare_new_restart_calc - * cls.inspect_restart_calc_done - - You can set the behavior of the restart block by setting these values (defaults after the `=`: - * _max_iter_restart_calc = 2 - * _clean_workdir_restart_calc = False - - Then you should make sure to run prepare_new_restart_calc each time you want to do a new calculation (with restarts). - - Make sure self.ctx.last_calc is being set to the calculation you want to be able to resubmit. - - If you want to cleanup all called claculations after running you should have a call to `cleanup_all_calcs_work` in your workflow. - - usage example: - class my_workflow(base_restart_calc): - - ... - - spec.outline( - ... - #here the calculation is submitted: - cls.prepare_new_restart_calc, - while_(cls.inspect_restart_calc_done)( - cls.my_custom_run_function), - # now the calculation should have finished, eventually after being restarted to overcome cluster problems - ... - # if we want to cleanup the work directories (`my_workflow` class needs to - # `set _clean_workdir_restart_calc` to True if the work directories are supposed to be removed!) - cls.cleanup_all_calcs_work - ) - """ - - _workflowversion = __version__ - - _max_iter_restart_calc = 2 - _clean_workdir_restart_calc = False - - def __init__(self, *args, **kwargs): - super(base_restart_calc, self).__init__(*args, **kwargs) - - @classmethod - def define(cls, spec): - super(base_restart_calc, cls).define(spec) - - # define general exit codes for restart of calculations - spec.exit_code( - 100, - 'ERROR_ITERATION_RETURNED_NO_CALCULATION', - message='the run_calculation step did not successfully add a calculation node to the context' - ) - - def prepare_new_restart_calc(self): - """initialize counters etc. used within inspect_restart_calc_done""" - self.ctx.restart_iteration = 0 - self.ctx.last_calc_restart_failed = False - - def inspect_restart_calc_done(self): - """check if the calculation should be submitted""" - # initial go - if self.ctx.restart_iteration == 0: - self.ctx.restart_iteration += 1 - return True - - # stop after _max_iter_restart_calc iterations - if self.ctx.restart_iteration > self._max_iter_restart_calc: - self.cleanup_calc_work() - return False - - # extract last calculation - try: - last_calculation = self.ctx.last_calc - except: - self.report('') - return self.exit_codes.ERROR_ITERATION_RETURNED_NO_CALCULATION # pylint: disable=no-member - - # now inspect last calculation - if last_calculation.is_finished_ok: - # calculation already succesful - self.cleanup_calc_work() - return False - else: - # check if this is the second consecutive failure - if self.ctx.last_calc_restart_failed: - self.cleanup_calc_work() - return False - - # here we know already that the current calculation has failed - self.ctx.last_calc_restart_failed = True - - # TODO: handle other known errors (maybe pause calculation until some problem is fixed) - # TODO: maybe capture out of walltime or out of memory issues here as well (could automatically increase the options) - - # if nothing else was caught, run the calculation - self.ctx.restart_iteration += 1 - return True - - # this is probably not working yet (check again with aiida-quantumespresso plugin) - def cleanup_all_calcs_work(self): - # cleanup work directories of all called calculations - if self._clean_workdir_restart_calc: - cleaned_calcs = [] - - for called_descendant in self.calc.called_descendants: - if isinstance(called_descendant, CalcJobNode): - try: - called_descendant.outputs.remote_folder._clean() - cleaned_calcs.append(called_descendant.pk) - except (IOError, OSError, KeyError): - pass - - if cleaned_calcs: - self.report(f"cleaned remote folders of calculations: {' '.join(map(str, cleaned_calcs))}") diff --git a/aiida_kkr/workflows/restart/base_restart.py b/aiida_kkr/workflows/restart/base_restart.py new file mode 100644 index 00000000..04ad7eb4 --- /dev/null +++ b/aiida_kkr/workflows/restart/base_restart.py @@ -0,0 +1,239 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +In this module you find the base workflow that defines the restart +functionality for calculations of the AiiDA-KKR package. +""" + +from aiida import orm +from aiida.common import AttributeDict +from aiida.engine import BaseRestartWorkChain, while_ +from aiida.engine.processes.workchains.utils import process_handler, ProcessHandlerReport + +__copyright__ = (u'Copyright (c), 2022, Forschungszentrum Jülich GmbH, ' + 'IAS-1/PGI-1, Germany. All rights reserved.') +__license__ = 'MIT license, see LICENSE.txt file' +__contributors__ = u'Philipp Rüßmann' + + +class CalculationBaseWorkChain(BaseRestartWorkChain): + """Workchain to run a Calculation with automated error handling and restarts""" + # calculation process class, needs to be overwritten from calculation restart plugin! + _process_class = None + + # these exit codes have to be overwritten by the calculation restart plugin! + # list of exit codes we cannot handle automatically + _exit_codes_nohandler = None # can be a list of exit codes + # common exit codes for which we know what to do + _exit_code_memory = None + _exit_code_timelimit = None + + # default values for limits, can be overwritten + _max_queue_nodes = 20 + _max_queue_wallclock_sec = 86400 # 24h + + @classmethod + def define(cls, spec): + """Define the process specification.""" + super().define(spec) + + # inputs + spec.expose_inputs(cls._process_class, namespace='calc') + # additionally some parameters for retries: + spec.input( + 'add_comp_para', + valid_type=orm.Dict, + default=lambda: orm.Dict( + dict={ + 'only_even_MPI': False, + 'forbid_single_mpi': False, + 'max_queue_nodes': cls._max_queue_nodes, + 'max_queue_wallclock_sec': cls._max_queue_wallclock_sec + } + ), + help='Gives additional control over computational parameters' + 'only_even_MPI: set to true if you want to suppress odd number of MPI processes in parallelisation.' + 'This might speedup a calculation for machines having even number of sockets per node.' + 'max_queue_nodes: maximal number of nodes allowed on the remote machine.' + 'max_queue_wallclock_sec: maximal wallclock time allowed on the remote machine.' + ) + + # outputs + spec.expose_outputs(cls._process_class) + + # exit codes + spec.exit_code(397, 'ERROR_MEMORY_HANDLER_FAILED', message='Cannot use a larger timelimit.') + spec.exit_code(398, 'ERROR_TIMELIMIT_HANDLER_FAILED', message='Cannot use a larger timelimit.') + spec.exit_code( + 399, + 'ERROR_SOMETHING_WENT_WRONG', + message='Calculation failed and BaseWorkChain has no strategy to resolve this' + ) + + spec.outline( + cls.setup, + cls.validate_inputs, + while_(cls.should_run_process)( + cls.run_process, + cls.inspect_process, + ), + cls.results, + ) + + def validate_inputs(self): + """ + Validate inputs that might depend on each other and cannot be validated by the spec. + Also define dictionary `inputs` in the context, that will contain the inputs for the + calculation that will be launched in the `run_calculation` step. + """ + self.ctx.inputs = AttributeDict(self.exposed_inputs(self._process_class, namespace='calc')) + + self.ctx.max_queue_nodes = self.inputs.add_comp_para['max_queue_nodes'] + self.ctx.max_queue_wallclock_sec = self.inputs.add_comp_para['max_queue_wallclock_sec'] + + input_options = self.ctx.inputs.metadata.options + self.ctx.optimize_resources = input_options.pop('optimize_resources', True) + self.ctx.inputs.metadata.options = input_options + + if 'description' in self.inputs: + self.ctx.inputs.metadata.description = self.inputs.description + else: + self.ctx.inputs.metadata.description = '' + if 'label' in self.inputs: + self.ctx.inputs.metadata.label = self.inputs.label + else: + self.ctx.inputs.metadata.label = '' + + if not self.ctx.optimize_resources: + self.ctx.can_be_optimised = False # set this for handlers to not change resources + return + + resources_input = self.ctx.inputs.metadata.options['resources'] + try: + self.ctx.num_machines = int(resources_input['num_machines']) + self.ctx.num_mpiprocs_per_machine = int(resources_input['num_mpiprocs_per_machine']) + except KeyError: + self.ctx.can_be_optimised = False + self.report('WARNING: Computation resources were not optimised.') + else: + try: + self.ctx.num_cores_per_mpiproc = int(resources_input['num_cores_per_mpiproc']) + self.ctx.use_omp = True + self.ctx.suggest_mpi_omp_ratio = self.ctx.num_mpiprocs_per_machine / self.ctx.num_cores_per_mpiproc + except KeyError: + self.ctx.num_cores_per_mpiproc = 1 + self.ctx.use_omp = False + self.ctx.suggest_mpi_omp_ratio = 1 + + @process_handler(priority=1, exit_codes=_exit_codes_nohandler) + def _handle_general_error(self, calculation): + """ + Calculation failed for unknown reason. + """ + self.ctx.restart_calc = calculation + self.ctx.is_finished = True + self.report('Calculation failed for a reason that can not be resolved automatically') + self.results() + return ProcessHandlerReport(True, self.exit_codes.ERROR_SOMETHING_WENT_WRONG) + + @process_handler(priority=10, exit_codes=_exit_code_memory) + def _handle_not_enough_memory(self, calculation): + """ + Calculation failed due to lack of memory. + """ + + if not self.ctx.can_be_optimised: + self.ctx.restart_calc = calculation + self.ctx.is_finished = True + self.report( + 'I am not allowed to optimize your settings. Consider providing at least' + 'num_machines and num_mpiprocs_per_machine' + ) + self.results() + return ProcessHandlerReport(True, self.exit_codes.ERROR_MEMORY_HANDLER_FAILED) + + self.ctx.restart_calc = None + self.ctx.is_finished = False + self.report( + 'Calculation failed due to lack of memory, I resubmit it with twice larger' + ' amount of computational nodes and smaller MPI/OMP ratio' + ) + + # increase number of nodes + propose_nodes = self.ctx.num_machines * 2 + if propose_nodes > self.ctx.max_queue_nodes: + propose_nodes = self.ctx.max_queue_nodes + self.ctx.num_machines = propose_nodes + + return ProcessHandlerReport(True) + + @process_handler(priority=20, exit_codes=_exit_code_timelimit) + def _handle_time_limits(self, calculation): + """ + If calculation fails due to time limits, we simply resubmit it. + """ + from aiida.common.exceptions import NotExistent + + # if previous calculation failed for the same reason, do not restart + prev_calculation_remote_link = calculation.get_incoming(node_class=orm.CalcJobNode).first() + if prev_calculation_remote_link is not None: + prev_calculation_remote = prev_calculation_remote_link.node + prev_calculation_status = prev_calculation_remote.creator.exit_status + if prev_calculation_status in self._process_class.get_exit_statuses(['ERROR_TIME_LIMIT']): + self.ctx.is_finished = True + self.results() + return ProcessHandlerReport(True) + + self.report('Calculation failed due to time limits, I restart it from where it ended') + + # increase wallclock time + if 'max_wallclock_seconds' in self.ctx.inputs.metadata.options: + propose_wallclock = self.ctx.inputs.metadata.options['max_wallclock_seconds'] * 2 + if propose_wallclock > self.ctx.max_queue_wallclock_sec: + propose_wallclock = self.ctx.max_queue_wallclock_sec + self.inputs.calc.metadata.options['max_wallclock_seconds'] = propose_wallclock + else: + return ProcessHandlerReport(True, self.exit_codes.ERROR_TIMELIMIT_HANDLER_FAILED) + + # increase number of nodes + propose_nodes = self.ctx.num_machines * 2 + if propose_nodes > self.ctx.max_queue_nodes: + propose_nodes = self.ctx.max_queue_nodes + self.ctx.num_machines = propose_nodes + + remote = calculation.get_outgoing().get_node_by_label('remote_folder') + + # # resubmit providing inp.xml and cdn from the remote folder + # self.ctx.is_finished = False + # if _is_remote_reusable(self.ctx.inputs, calculation): + # if 'fleurinpdata' in self.ctx.inputs: + # del self.ctx.inputs.fleurinpdata + # self.ctx.inputs.parent_folder = remote + + return ProcessHandlerReport(True) + + +# def _is_remote_reusable(inputs, calculation): +# """ +# Check whether the remote folder of the given calculation +# can be resubmitted +# """ +# can_use_remote = False +# #If no charge density file is available to restart from the calculation will except +# #with a not nice error message. So we can only reuse the charge density if these files are available +# retrieved_filenames = calculation.get_outgoing().get_node_by_label('retrieved').list_object_names() +# if any(file in retrieved_filenames for file in ( +# 'cdn_last.hdf', +# 'cdn1', +# )): +# can_use_remote = True + +# if 'fleurinpdata' in inputs: +# modes = inputs.fleurinpdata.get_fleur_modes() +# if modes['force_theorem'] or modes['dos'] or modes['band']: +# # in modes listed above it makes no sense copying cdn.hdf +# can_use_remote = False +# # without fleurinp it is harder to extract modes in this case +# # - simply try to reuse cdn.hdf and hope it works + +# return can_use_remote diff --git a/aiida_kkr/workflows/restart/restart_voro.py b/aiida_kkr/workflows/restart/restart_voro.py new file mode 100644 index 00000000..e45c90b3 --- /dev/null +++ b/aiida_kkr/workflows/restart/restart_voro.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +In this module you find the base workflow that defines the restart +functionality for the VoronoiCalculation. +""" + +from aiida import orm +from .base_restart import CalculationBaseWorkChain +from aiida_kkr.calculations import VoronoiCalculation + +__copyright__ = (u'Copyright (c), 2022, Forschungszentrum Jülich GmbH, ' + 'IAS-1/PGI-1, Germany. All rights reserved.') +__license__ = 'MIT license, see LICENSE.txt file' +__version__ = '0.1.0' +__contributors__ = u'Philipp Rüßmann' + + +class VoronoiCalculationBaseWorkChain(CalculationBaseWorkChain): + """Workchain to run a Voronoi calculation with automated error handling and restarts""" + _workflowversion = __version__ + _process_class = VoronoiCalculation + + _max_queue_nodes = 1 + _max_queue_wallclock_sec = 3600 + + # list of exit codes we cannot handle automatically + _exit_codes_nohandler = [ + VoronoiCalculation.exit_codes.ERROR_NO_OUTPUT_FILE, + VoronoiCalculation.exit_codes.ERROR_VORONOI_PARSING_FAILED, + VoronoiCalculation.exit_codes.ERROR_OPENING_OUTPUTS, + VoronoiCalculation.exit_codes.ERROR_CALCULATION_FAILED, + ] + # common exit codes for which we know what to do + _exit_code_memory = VoronoiCalculation.exit_codes.ERROR_NOT_ENOUGH_MEMORY + _exit_code_timelimit = VoronoiCalculation.exit_codes.ERROR_TIME_LIMIT + + @classmethod + def define(cls, spec): + """Define the process specification.""" + super().define(spec) + + # additional calculation specific process handlers go here + # @process_handler(...) + # def _handle_something(self, calculation): + # """ + # If calculation fails due to time some reason ... + # """ + # ... + + # return ProcessHandlerReport(True) diff --git a/tests/workflows/test_voro_restart.py b/tests/workflows/test_voro_restart.py new file mode 100644 index 00000000..b2addfb4 --- /dev/null +++ b/tests/workflows/test_voro_restart.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python + +import pytest +from aiida.manage.tests.pytest_fixtures import aiida_profile +from aiida_testing.export_cache._fixtures import export_cache +from ..dbsetup import queuename +from ..conftest import voronoi_local_code + + +# tests +def test_voronoi_base_restart(aiida_profile, voronoi_local_code): + """ + simple Cu noSOC, FP, lmax2 full example + """ + from aiida.orm import Dict, StructureData + from masci_tools.io.kkr_params import kkrparams + from aiida_kkr.workflows.restart.restart_voro import VoronoiCalculationBaseWorkChain + + # create StructureData instance for Cu + alat = 3.61 # lattice constant in Angstroem + bravais = [[0.5 * alat, 0.5 * alat, 0], [0.5 * alat, 0, 0.5 * alat], [0, 0.5 * alat, + 0.5 * alat]] # Bravais matrix in Ang. units + Cu = StructureData(cell=bravais) + Cu.append_atom(position=[0, 0, 0], symbols='Cu') + + # create Dict input node using kkrparams class from masci-tools + params = kkrparams(params_type='voronoi') + params.set_multiple_values(LMAX=2, NSPIN=1, RCLUSTZ=2.3) + ParaNode = Dict(params.get_dict()) + + options = {'resources': {'num_machines': 1, 'tot_num_mpiprocs': 1}, 'queue_name': queuename} + builder = VoronoiCalculationBaseWorkChain.get_builder() + builder.calc.code = voronoi_local_code + builder.calc.metadata.options = options + builder.calc.parameters = ParaNode + builder.calc.structure = Cu + from aiida.engine import run + run(builder) From 5274a291836a75b306877aa8536baae78da1b6c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20R=C3=BC=C3=9Fmann?= Date: Mon, 5 Dec 2022 22:08:23 +0000 Subject: [PATCH 2/7] First working version of VoronoiBaseRestart workchain --- aiida_kkr/calculations/voro.py | 11 ++-- aiida_kkr/parsers/voro.py | 18 ++----- aiida_kkr/workflows/restart/base_restart.py | 44 ++++++++------- aiida_kkr/workflows/restart/restart_voro.py | 50 ++++++++++++++---- ...es-ef0edc7ecdd51b7ec723e737fbfe46c8.tar.gz | Bin 0 -> 231251 bytes tests/run_all.sh | 1 + tests/workflows/test_voro_restart.py | 25 ++++++--- 7 files changed, 89 insertions(+), 60 deletions(-) create mode 100644 tests/data_dir/VoronoiCalculationBaseWorkChain-nodes-ef0edc7ecdd51b7ec723e737fbfe46c8.tar.gz diff --git a/aiida_kkr/calculations/voro.py b/aiida_kkr/calculations/voro.py index 174a1f4f..498a60f2 100644 --- a/aiida_kkr/calculations/voro.py +++ b/aiida_kkr/calculations/voro.py @@ -81,11 +81,12 @@ def define(cls, spec): spec.default_output_node = 'output_parameters' # define exit codes, also used in parser spec.exit_code(301, 'ERROR_NO_OUTPUT_FILE', message='Voronoi output file not found') - spec.exit_code(302, 'ERROR_VORONOI_PARSING_FAILED', message='Voronoi parser retuned an error') - spec.exit_code(303, 'ERROR_OPENING_OUTPUTS', message='Voronoi parser could not open an output file') - spec.exit_code(304, 'ERROR_CALCULATION_FAILED', message='VoronoiCalculation failed for an unknown reason') - spec.exit_code(305, 'ERROR_NOT_ENOUGH_MEMORY', message='VoronoiCalculation needs more memory') - spec.exit_code(306, 'ERROR_TIME_LIMIT', message='VoronoiCalculation needs more runtime') + spec.exit_code(302, 'ERROR_NOT_ENOUGH_MEMORY', message='VoronoiCalculation needs more memory') + spec.exit_code(303, 'ERROR_TIME_LIMIT', message='VoronoiCalculation needs more runtime') + spec.exit_code(304, 'ERROR_VORONOI_PARSING_FAILED', message='Voronoi parser retuned an error') + spec.exit_code(305, 'ERROR_OPENING_OUTPUTS', message='Voronoi parser could not open an output file') + spec.exit_code(306, 'ERROR_CALCULATION_FAILED', message='VoronoiCalculation failed for an unknown reason') + spec.exit_code(307, 'ERROR_NACLSD_TOO_SMALL', message='NACLSD in VoronoiCalculation too small.') def prepare_for_submission(self, tempfolder): """Create the input files from the input nodes passed to this instance of the `CalcJob`. diff --git a/aiida_kkr/parsers/voro.py b/aiida_kkr/parsers/voro.py index 5c0c31f6..9afe9412 100644 --- a/aiida_kkr/parsers/voro.py +++ b/aiida_kkr/parsers/voro.py @@ -134,42 +134,32 @@ def parse(self, debug=False, **kwargs): # check if something was written to the error file errorfile = self.node.attributes['scheduler_stderr'] - print('errorfile', errorfile, errorfile in list_of_files) - if errorfile in list_of_files: # read try: with out_folder.open(errorfile, 'r') as efile: error_file_lines = efile.read() # Note: read(), not readlines() except OSError: - print(f'Failed to open error file: {errorfile}.') self.logger.error(f'Failed to open error file: {errorfile}.') return self.exit_codes.ERROR_OPENING_OUTPUTS - print( - 'errorfile content', - error_file_lines, - error_file_lines == '', - error_file_lines is None, - ) - # check lines in the errorfile if error_file_lines: - print('in error file line') - if isinstance(error_file_lines, bytes): error_file_lines = error_file_lines.replace(b'\x00', b' ') else: error_file_lines = error_file_lines.replace('\x00', ' ') - print(error_file_lines) - print(f'The following was written into std error and piped to {errorfile} : \n {error_file_lines}') self.logger.warning( f'The following was written into std error and piped to {errorfile} : \n {error_file_lines}' ) + # check if NACLSD is too small + if 'STOP clsgen: Dimension error (a).' in error_file_lines: + return self.exit_codes.ERROR_NACLSD_TOO_SMALL + # here we estimate how much walltime was available and consumed try: time_avail_sec = self.node.attributes['last_job_info']['requested_wallclock_time_seconds'] diff --git a/aiida_kkr/workflows/restart/base_restart.py b/aiida_kkr/workflows/restart/base_restart.py index 04ad7eb4..40f98779 100644 --- a/aiida_kkr/workflows/restart/base_restart.py +++ b/aiida_kkr/workflows/restart/base_restart.py @@ -8,7 +8,7 @@ from aiida import orm from aiida.common import AttributeDict from aiida.engine import BaseRestartWorkChain, while_ -from aiida.engine.processes.workchains.utils import process_handler, ProcessHandlerReport +from aiida.engine.processes.workchains.utils import ProcessHandlerReport __copyright__ = (u'Copyright (c), 2022, Forschungszentrum Jülich GmbH, ' 'IAS-1/PGI-1, Germany. All rights reserved.') @@ -18,19 +18,11 @@ class CalculationBaseWorkChain(BaseRestartWorkChain): """Workchain to run a Calculation with automated error handling and restarts""" - # calculation process class, needs to be overwritten from calculation restart plugin! - _process_class = None - # these exit codes have to be overwritten by the calculation restart plugin! - # list of exit codes we cannot handle automatically - _exit_codes_nohandler = None # can be a list of exit codes - # common exit codes for which we know what to do - _exit_code_memory = None - _exit_code_timelimit = None - - # default values for limits, can be overwritten + # default values for limits, can be overwritten in subclasses _max_queue_nodes = 20 _max_queue_wallclock_sec = 86400 # 24h + _optimize_resources = True @classmethod def define(cls, spec): @@ -92,7 +84,7 @@ def validate_inputs(self): self.ctx.max_queue_wallclock_sec = self.inputs.add_comp_para['max_queue_wallclock_sec'] input_options = self.ctx.inputs.metadata.options - self.ctx.optimize_resources = input_options.pop('optimize_resources', True) + self.ctx.optimize_resources = input_options.pop('optimize_resources', self._optimize_resources) self.ctx.inputs.metadata.options = input_options if 'description' in self.inputs: @@ -109,9 +101,15 @@ def validate_inputs(self): return resources_input = self.ctx.inputs.metadata.options['resources'] + # extract resources try: self.ctx.num_machines = int(resources_input['num_machines']) - self.ctx.num_mpiprocs_per_machine = int(resources_input['num_mpiprocs_per_machine']) + if 'tot_num_mpiprocs' in resources_input: + self.ctx.tot_num_mpiprocs = int(resources_input['tot_num_mpiprocs']) + self.ctx.num_mpiprocs_per_machine = self.ctx.tot_num_mpiprocs // self.ctx.num_machines + else: + self.ctx.num_mpiprocs_per_machine = int(resources_input['num_mpiprocs_per_machine']) + self.ctx.tot_num_mpiprocs = self.ctx.num_mpiprocs_per_machine * self.ctx.tot_num_mpiprocs except KeyError: self.ctx.can_be_optimised = False self.report('WARNING: Computation resources were not optimised.') @@ -125,7 +123,7 @@ def validate_inputs(self): self.ctx.use_omp = False self.ctx.suggest_mpi_omp_ratio = 1 - @process_handler(priority=1, exit_codes=_exit_codes_nohandler) + # @process_handler(priority=1, exit_codes=_exit_codes_nohandler) # if uncommented, exit code is None, solved with a little bit of boilerplate in subclasses def _handle_general_error(self, calculation): """ Calculation failed for unknown reason. @@ -134,9 +132,9 @@ def _handle_general_error(self, calculation): self.ctx.is_finished = True self.report('Calculation failed for a reason that can not be resolved automatically') self.results() - return ProcessHandlerReport(True, self.exit_codes.ERROR_SOMETHING_WENT_WRONG) + return ProcessHandlerReport(True, self.exit_codes.ERROR_SOMETHING_WENT_WRONG) # pylint: disable=no-member - @process_handler(priority=10, exit_codes=_exit_code_memory) + # @process_handler(priority=10, exit_codes=_exit_code_memory) def _handle_not_enough_memory(self, calculation): """ Calculation failed due to lack of memory. @@ -150,7 +148,8 @@ def _handle_not_enough_memory(self, calculation): 'num_machines and num_mpiprocs_per_machine' ) self.results() - return ProcessHandlerReport(True, self.exit_codes.ERROR_MEMORY_HANDLER_FAILED) + + return ProcessHandlerReport(True, self.exit_codes.ERROR_MEMORY_HANDLER_FAILED) # pylint: disable=no-member self.ctx.restart_calc = None self.ctx.is_finished = False @@ -167,7 +166,7 @@ def _handle_not_enough_memory(self, calculation): return ProcessHandlerReport(True) - @process_handler(priority=20, exit_codes=_exit_code_timelimit) + # @process_handler(priority=20, exit_codes=_exit_code_timelimit) def _handle_time_limits(self, calculation): """ If calculation fails due to time limits, we simply resubmit it. @@ -184,16 +183,15 @@ def _handle_time_limits(self, calculation): self.results() return ProcessHandlerReport(True) - self.report('Calculation failed due to time limits, I restart it from where it ended') - # increase wallclock time if 'max_wallclock_seconds' in self.ctx.inputs.metadata.options: propose_wallclock = self.ctx.inputs.metadata.options['max_wallclock_seconds'] * 2 if propose_wallclock > self.ctx.max_queue_wallclock_sec: propose_wallclock = self.ctx.max_queue_wallclock_sec - self.inputs.calc.metadata.options['max_wallclock_seconds'] = propose_wallclock + self.ctx.inputs.metadata.options['max_wallclock_seconds'] = propose_wallclock else: - return ProcessHandlerReport(True, self.exit_codes.ERROR_TIMELIMIT_HANDLER_FAILED) + self.report('Cannot increase walltime') + return ProcessHandlerReport(True, self.exit_codes.ERROR_TIMELIMIT_HANDLER_FAILED) # pylint: disable=no-member # increase number of nodes propose_nodes = self.ctx.num_machines * 2 @@ -201,7 +199,7 @@ def _handle_time_limits(self, calculation): propose_nodes = self.ctx.max_queue_nodes self.ctx.num_machines = propose_nodes - remote = calculation.get_outgoing().get_node_by_label('remote_folder') + # remote = calculation.get_outgoing().get_node_by_label('remote_folder') # # resubmit providing inp.xml and cdn from the remote folder # self.ctx.is_finished = False diff --git a/aiida_kkr/workflows/restart/restart_voro.py b/aiida_kkr/workflows/restart/restart_voro.py index e45c90b3..b39272dc 100644 --- a/aiida_kkr/workflows/restart/restart_voro.py +++ b/aiida_kkr/workflows/restart/restart_voro.py @@ -6,8 +6,10 @@ """ from aiida import orm -from .base_restart import CalculationBaseWorkChain +from aiida_kkr.workflows.restart.base_restart import CalculationBaseWorkChain from aiida_kkr.calculations import VoronoiCalculation +from aiida_kkr.tools import kkrparams +from aiida.engine.processes.workchains.utils import process_handler, ProcessHandlerReport __copyright__ = (u'Copyright (c), 2022, Forschungszentrum Jülich GmbH, ' 'IAS-1/PGI-1, Germany. All rights reserved.') @@ -18,29 +20,55 @@ class VoronoiCalculationBaseWorkChain(CalculationBaseWorkChain): """Workchain to run a Voronoi calculation with automated error handling and restarts""" + _workflowversion = __version__ + + # set process class (needed by BaseRestartWorkChain) _process_class = VoronoiCalculation + # change default value (voronoi runs in serial and is fast) _max_queue_nodes = 1 _max_queue_wallclock_sec = 3600 + _optimize_resources = False # list of exit codes we cannot handle automatically _exit_codes_nohandler = [ - VoronoiCalculation.exit_codes.ERROR_NO_OUTPUT_FILE, - VoronoiCalculation.exit_codes.ERROR_VORONOI_PARSING_FAILED, - VoronoiCalculation.exit_codes.ERROR_OPENING_OUTPUTS, - VoronoiCalculation.exit_codes.ERROR_CALCULATION_FAILED, + VoronoiCalculation.exit_codes.ERROR_NO_OUTPUT_FILE, # pylint: disable=no-member + VoronoiCalculation.exit_codes.ERROR_VORONOI_PARSING_FAILED, # pylint: disable=no-member + VoronoiCalculation.exit_codes.ERROR_OPENING_OUTPUTS, # pylint: disable=no-member + VoronoiCalculation.exit_codes.ERROR_CALCULATION_FAILED, # pylint: disable=no-member ] # common exit codes for which we know what to do - _exit_code_memory = VoronoiCalculation.exit_codes.ERROR_NOT_ENOUGH_MEMORY - _exit_code_timelimit = VoronoiCalculation.exit_codes.ERROR_TIME_LIMIT + _exit_code_memory = VoronoiCalculation.exit_codes.ERROR_NOT_ENOUGH_MEMORY # pylint: disable=no-member + _exit_code_timelimit = VoronoiCalculation.exit_codes.ERROR_TIME_LIMIT # pylint: disable=no-member + + # some boilerplate code needed to set the proper exit codes + @process_handler(priority=1, exit_codes=_exit_codes_nohandler) + def _handle_general_error(self, calculation): + super()._handle_general_error(calculation) - @classmethod - def define(cls, spec): - """Define the process specification.""" - super().define(spec) + @process_handler(priority=10, exit_codes=_exit_code_memory) + def _handle_not_enough_memory(self, calculation): + super()._handle_not_enough_memory(calculation) + + @process_handler(priority=20, exit_codes=_exit_code_timelimit) + def _handle_time_limits(self, calculation): + super()._handle_time_limits(calculation) # additional calculation specific process handlers go here + + @process_handler(priority=30, exit_codes=VoronoiCalculation.exit_codes.ERROR_NACLSD_TOO_SMALL) # pylint: disable=no-member + def _handle_naclsd(self, calculation): + """Handle NACLSD too small error""" + try: + # update to smaller RCLUSTZ (here we try decreasing it by 20%) + params = kkrparams(**self.ctx.inputs.parameters) + params.set_multiple_values(RCLUSTZ=self.ctx.inputs.parameters['RCLUSTZ'] * 0.8) + self.ctx.inputs.parameters = orm.Dict(params) + return ProcessHandlerReport(True) + except: + return ProcessHandlerReport(True, self.exit_codes.ERROR_SOMETHING_WENT_WRONG) # pylint: disable=no-member + # @process_handler(...) # def _handle_something(self, calculation): # """ diff --git a/tests/data_dir/VoronoiCalculationBaseWorkChain-nodes-ef0edc7ecdd51b7ec723e737fbfe46c8.tar.gz b/tests/data_dir/VoronoiCalculationBaseWorkChain-nodes-ef0edc7ecdd51b7ec723e737fbfe46c8.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..d52c1788f61515fe7c3391e3f967bb75d34a1d98 GIT binary patch literal 231251 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

(E*tX;+LTlowtOU~N?{)k5Hr{!a(9RDI^UzgW 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

hW!%eNEpZD5w3=k-|mU!MmNb{`uvdY7U#UIv%K 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 z
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 literal 0 HcmV?d00001 diff --git a/tests/run_all.sh b/tests/run_all.sh index 19fdc79b..4bd9350e 100755 --- a/tests/run_all.sh +++ b/tests/run_all.sh @@ -123,6 +123,7 @@ elif [[ ! -z "$GITHUB_SUITE" ]]; then ./workflows/test_kkrimp_dos_wc.py \ ./workflows/test_kkrimp_full_wc.py \ ./workflows/test_combine_imps.py \ + ./workflows/test_voro_restart.py \ $addopt else # tests without running actual calculations diff --git a/tests/workflows/test_voro_restart.py b/tests/workflows/test_voro_restart.py index b2addfb4..195c058d 100644 --- a/tests/workflows/test_voro_restart.py +++ b/tests/workflows/test_voro_restart.py @@ -2,13 +2,13 @@ import pytest from aiida.manage.tests.pytest_fixtures import aiida_profile -from aiida_testing.export_cache._fixtures import export_cache from ..dbsetup import queuename -from ..conftest import voronoi_local_code +from ..conftest import voronoi_local_code, data_dir +from aiida_testing.export_cache._fixtures import run_with_cache # tests -def test_voronoi_base_restart(aiida_profile, voronoi_local_code): +def test_voronoi_base_restart(aiida_profile, voronoi_local_code, run_with_cache): """ simple Cu noSOC, FP, lmax2 full example """ @@ -16,16 +16,19 @@ def test_voronoi_base_restart(aiida_profile, voronoi_local_code): from masci_tools.io.kkr_params import kkrparams from aiida_kkr.workflows.restart.restart_voro import VoronoiCalculationBaseWorkChain - # create StructureData instance for Cu + # create a sample StructureData + # with an additional Cu atom to artificially increase the number of atoms in the cluster alat = 3.61 # lattice constant in Angstroem bravais = [[0.5 * alat, 0.5 * alat, 0], [0.5 * alat, 0, 0.5 * alat], [0, 0.5 * alat, 0.5 * alat]] # Bravais matrix in Ang. units Cu = StructureData(cell=bravais) Cu.append_atom(position=[0, 0, 0], symbols='Cu') + Cu.append_atom(position=[0, 0.1, 0], symbols='Cu') # create Dict input node using kkrparams class from masci-tools + # use large RLCUSTZ which is then reduced in the BaseWorkChain workchain params = kkrparams(params_type='voronoi') - params.set_multiple_values(LMAX=2, NSPIN=1, RCLUSTZ=2.3) + params.set_multiple_values(LMAX=2, NSPIN=1, RCLUSTZ=4.5) ParaNode = Dict(params.get_dict()) options = {'resources': {'num_machines': 1, 'tot_num_mpiprocs': 1}, 'queue_name': queuename} @@ -34,5 +37,13 @@ def test_voronoi_base_restart(aiida_profile, voronoi_local_code): builder.calc.metadata.options = options builder.calc.parameters = ParaNode builder.calc.structure = Cu - from aiida.engine import run - run(builder) + + # run test + out, node = run_with_cache(builder, data_dir=data_dir) + print(out, node) + # check if two voronoi runs were done (one failed, but was handled) + assert len(node.called) == 2 + # check if cluster radius has right size + assert 'output_parameters' in out + out_dict = out['output_parameters'].get_dict() + assert out_dict['cluster_info_group']['cluster_info_atoms'][1]['sites'] == 530 From 082b30698348bc157fcd2e09f501a442c890088b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20R=C3=BC=C3=9Fmann?= Date: Tue, 6 Dec 2022 21:06:29 +0000 Subject: [PATCH 3/7] First version of KkrCalculation restart workchain --- aiida_kkr/calculations/kkr.py | 23 ++---- aiida_kkr/parsers/kkr.py | 58 +++++++++++++ aiida_kkr/parsers/voro.py | 27 ++++--- aiida_kkr/workflows/restart/restart_kkr.py | 76 ++++++++++++++++++ aiida_kkr/workflows/restart/restart_voro.py | 4 +- ...es-706d766ad8897a8e0a5dc48d3b07320d.tar.gz | Bin 0 -> 77488 bytes tests/workflows/test_kkr_restart.py | 44 ++++++++++ 7 files changed, 204 insertions(+), 28 deletions(-) create mode 100644 aiida_kkr/workflows/restart/restart_kkr.py create mode 100644 tests/data_dir/KkrCalculationBaseWorkChain-nodes-706d766ad8897a8e0a5dc48d3b07320d.tar.gz create mode 100644 tests/workflows/test_kkr_restart.py diff --git a/aiida_kkr/calculations/kkr.py b/aiida_kkr/calculations/kkr.py index f60101b6..8d3a4f47 100644 --- a/aiida_kkr/calculations/kkr.py +++ b/aiida_kkr/calculations/kkr.py @@ -257,21 +257,14 @@ def define(cls, spec): spec.default_output_node = 'output_parameters' # define exit codes, also used in parser - spec.exit_code( - 301, - 'ERROR_NO_OUTPUT_FILE', - message='KKR output file not found', - ) - spec.exit_code( - 302, - 'ERROR_KKR_PARSING_FAILED', - message='KKR parser retuned an error', - ) - spec.exit_code( - 303, - 'ERROR_NO_SHAPEFUN_FOUND', - message='Could not find shapefun from voronoi parent', - ) + spec.exit_code(301, 'ERROR_NO_OUTPUT_FILE', message='KKR output file not found') + spec.exit_code(302, 'ERROR_NOT_ENOUGH_MEMORY', message='KkrCalculation needs more memory') + spec.exit_code(303, 'ERROR_TIME_LIMIT', message='KkrCalculation needs more runtime') + spec.exit_code(304, 'ERROR_KKR_PARSING_FAILED', message='KKR parser retuned an error') + spec.exit_code(305, 'ERROR_OPENING_OUTPUTS', message='Kkr parser could not open an output file') + spec.exit_code(306, 'ERROR_CALCULATION_FAILED', message='KkrCalculation failed for an unknown reason') + spec.exit_code(307, 'ERROR_NO_SHAPEFUN_FOUND', message='Could not find shapefun from voronoi parent') + spec.exit_code(308, 'ERROR_RLOG_TOO_SMALL', message='RLOG too small for Chebychev solver') def prepare_for_submission(self, tempfolder): """ diff --git a/aiida_kkr/parsers/kkr.py b/aiida_kkr/parsers/kkr.py index 555072ee..c396e151 100644 --- a/aiida_kkr/parsers/kkr.py +++ b/aiida_kkr/parsers/kkr.py @@ -222,6 +222,11 @@ def parse(self, debug=False, **kwargs): msg = 'Automatically returned success=True for KKR importer although some parsing errors occurred' self.logger.warning(msg) + # check error + exit_code = self.check_error_file(out_folder) + if exit_code is not None: + return exit_code + if not success: return self.exit_codes.ERROR_KKR_PARSING_FAILED else: # cleanup after parsing (only if parsing was successful) @@ -242,3 +247,56 @@ def remove_unnecessary_files(self): for fileid in files_to_delete: if fileid in self.retrieved.list_object_names(): self.retrieved.delete_object(fileid, force=True) + + def check_error_file(self, out_folder): + """Check if anything is in the error file and get some hints for error handler in restart workchain""" + + # check if something was written to the error file + errorfile = self.node.attributes['scheduler_stderr'] + + if errorfile in out_folder.list_object_names(): + # read + try: + with out_folder.open(errorfile, 'r') as efile: + error_file_lines = efile.read() # Note: read(), not readlines() + except OSError: + self.logger.error(f'Failed to open error file: {errorfile}.') + return self.exit_codes.ERROR_OPENING_OUTPUTS + + # check lines in the errorfile + if error_file_lines: + + if isinstance(error_file_lines, bytes): + error_file_lines = error_file_lines.replace(b'\x00', b' ') + else: + error_file_lines = error_file_lines.replace('\x00', ' ') + + print(f'The following was written into std error and piped to {errorfile} : \n {error_file_lines}') + self.logger.warning( + f'The following was written into std error and piped to {errorfile} : \n {error_file_lines}' + ) + + # check for some errors which we can fix automatically + if 'STOP Error creating newmesh!' in error_file_lines: + return self.exit_codes.ERROR_RLOG_TOO_SMALL + + # here we estimate how much walltime was available and consumed + try: + time_avail_sec = self.node.attributes['last_job_info']['requested_wallclock_time_seconds'] + time_calculated = self.node.attributes['last_job_info']['wallclock_time_seconds'] + if 0.97 * time_avail_sec < time_calculated: + return self.exit_codes.ERROR_TIME_LIMIT + except KeyError: + if 'TIME LIMIT' in error_file_lines.upper() or 'time limit' in error_file_lines: + return self.exit_codes.ERROR_TIME_LIMIT + + # check for out of memory errors + OUT_OF_MEMORY_PHRASES = [ + 'cgroup out-of-memory handler', + 'Out Of Memory', + ] + if any(phrase in error_file_lines for phrase in OUT_OF_MEMORY_PHRASES): + return self.exit_codes.ERROR_NOT_ENOUGH_MEMORY + + # Catch all exit code for an unknown failure + return self.exit_codes.ERROR_CALCULATION_FAILED diff --git a/aiida_kkr/parsers/voro.py b/aiida_kkr/parsers/voro.py index 9afe9412..a4f13397 100644 --- a/aiida_kkr/parsers/voro.py +++ b/aiida_kkr/parsers/voro.py @@ -125,16 +125,22 @@ def parse(self, debug=False, **kwargs): # create output node and link self.out('output_parameters', Dict(dict=out_dict)) - OUT_OF_MEMORY_PHRASES = [ - 'cgroup out-of-memory handler', - 'Out Of Memory', - 'Allocation of array for communication failed' #from io/eig66_mpi - ] + # check error + exit_code = self.check_error_file(out_folder) + if exit_code is not None: + return exit_code + + print('success?', success) + if not success: + return self.exit_codes.ERROR_VORONOI_PARSING_FAILED + + def check_error_file(self, out_folder): + """Check if anything is in the error file and get some hints for error handler in restart workchain""" # check if something was written to the error file errorfile = self.node.attributes['scheduler_stderr'] - if errorfile in list_of_files: + if errorfile in out_folder.list_object_names(): # read try: with out_folder.open(errorfile, 'r') as efile: @@ -170,12 +176,13 @@ def parse(self, debug=False, **kwargs): if 'TIME LIMIT' in error_file_lines.upper() or 'time limit' in error_file_lines: return self.exit_codes.ERROR_TIME_LIMIT + # check for out of memory errors + OUT_OF_MEMORY_PHRASES = [ + 'cgroup out-of-memory handler', + 'Out Of Memory', + ] if any(phrase in error_file_lines for phrase in OUT_OF_MEMORY_PHRASES): return self.exit_codes.ERROR_NOT_ENOUGH_MEMORY # Catch all exit code for an unknown failure return self.exit_codes.ERROR_CALCULATION_FAILED - - print('success?', success) - if not success: - return self.exit_codes.ERROR_VORONOI_PARSING_FAILED diff --git a/aiida_kkr/workflows/restart/restart_kkr.py b/aiida_kkr/workflows/restart/restart_kkr.py new file mode 100644 index 00000000..6693a0cb --- /dev/null +++ b/aiida_kkr/workflows/restart/restart_kkr.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +In this module you find the base workflow that defines the restart +functionality for the VoronoiCalculation. +""" + +from aiida import orm +from aiida_kkr.workflows.restart.base_restart import CalculationBaseWorkChain +from aiida_kkr.calculations import KkrCalculation +from aiida_kkr.tools import kkrparams +from aiida.engine.processes.workchains.utils import process_handler, ProcessHandlerReport + +__copyright__ = (u'Copyright (c), 2022, Forschungszentrum Jülich GmbH, ' + 'IAS-1/PGI-1, Germany. All rights reserved.') +__license__ = 'MIT license, see LICENSE.txt file' +__version__ = '0.1.0' +__contributors__ = u'Philipp Rüßmann' + + +class KkrCalculationBaseWorkChain(CalculationBaseWorkChain): + """Workchain to run a KKRhost calculation with automated error handling and restarts""" + + # set process class (needed by BaseRestartWorkChain) + _process_class = KkrCalculation + + # list of exit codes we cannot handle automatically + _exit_codes_nohandler = [ + KkrCalculation.exit_codes.ERROR_NO_OUTPUT_FILE, # pylint: disable=no-member + KkrCalculation.exit_codes.ERROR_KKR_PARSING_FAILED, # pylint: disable=no-member + KkrCalculation.exit_codes.ERROR_OPENING_OUTPUTS, # pylint: disable=no-member + KkrCalculation.exit_codes.ERROR_CALCULATION_FAILED, # pylint: disable=no-member + KkrCalculation.exit_codes.ERROR_NO_SHAPEFUN_FOUND, # pylint: disable=no-member + ] + # common exit codes for which we know what to do + _exit_code_memory = KkrCalculation.exit_codes.ERROR_NOT_ENOUGH_MEMORY # pylint: disable=no-member + _exit_code_timelimit = KkrCalculation.exit_codes.ERROR_TIME_LIMIT # pylint: disable=no-member + + # some boilerplate code needed to set the proper exit codes to process_handler decorators + @process_handler(priority=1, exit_codes=_exit_codes_nohandler) + def _handle_general_error(self, calculation): + super()._handle_general_error(calculation) + + @process_handler(priority=10, exit_codes=_exit_code_memory) + def _handle_not_enough_memory(self, calculation): + super()._handle_not_enough_memory(calculation) + + @process_handler(priority=20, exit_codes=_exit_code_timelimit) + def _handle_time_limits(self, calculation): + super()._handle_time_limits(calculation) + + # additional calculation specific process handlers go here + + @process_handler(priority=30, exit_codes=KkrCalculation.exit_codes.ERROR_RLOG_TOO_SMALL) # pylint: disable=no-member + def _handle_rlog_too_small(self, calculation): + """ + Increase R_LOG parameter + """ + try: + with calculation.outputs.retrieved.open('out_kkr') as _f: + txt = _f.readlines() + rlog = [float(i.split()[-1]) for i in txt if 'Rmesh(IRMIN' in i][0] + 0.05 + params = kkrparams(**self.ctx.inputs.parameters) + params.set_multiple_values(R_LOG=rlog) + self.ctx.inputs.parameters = orm.Dict(params) + except: + return ProcessHandlerReport(True, self.exit_codes.ERROR_SOMETHING_WENT_WRONG) # pylint: disable=no-member + + # @process_handler(...) + # def _handle_something(self, calculation): + # """ + # If calculation fails due to time some reason ... + # """ + # ... + + # return ProcessHandlerReport(True) diff --git a/aiida_kkr/workflows/restart/restart_voro.py b/aiida_kkr/workflows/restart/restart_voro.py index b39272dc..4fc3699c 100644 --- a/aiida_kkr/workflows/restart/restart_voro.py +++ b/aiida_kkr/workflows/restart/restart_voro.py @@ -21,8 +21,6 @@ class VoronoiCalculationBaseWorkChain(CalculationBaseWorkChain): """Workchain to run a Voronoi calculation with automated error handling and restarts""" - _workflowversion = __version__ - # set process class (needed by BaseRestartWorkChain) _process_class = VoronoiCalculation @@ -42,7 +40,7 @@ class VoronoiCalculationBaseWorkChain(CalculationBaseWorkChain): _exit_code_memory = VoronoiCalculation.exit_codes.ERROR_NOT_ENOUGH_MEMORY # pylint: disable=no-member _exit_code_timelimit = VoronoiCalculation.exit_codes.ERROR_TIME_LIMIT # pylint: disable=no-member - # some boilerplate code needed to set the proper exit codes + # some boilerplate code needed to set the proper exit codes to process_handler decorators @process_handler(priority=1, exit_codes=_exit_codes_nohandler) def _handle_general_error(self, calculation): super()._handle_general_error(calculation) diff --git a/tests/data_dir/KkrCalculationBaseWorkChain-nodes-706d766ad8897a8e0a5dc48d3b07320d.tar.gz b/tests/data_dir/KkrCalculationBaseWorkChain-nodes-706d766ad8897a8e0a5dc48d3b07320d.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..e5368c56f94b31a24a01cf8194a0b2df74a783f1 GIT binary patch literal 77488 zcmZ6y1yox>*Dj2^yHgyBg^&<}dvPsJfg}ViQYc!AON+a^Yk}fUp;*zjxVyWS0_ErX z?)vX~-3}Owj7LC@`a9#uuJo4svWN)_M$5}NK9>RJw7wfn&77A=A$%^+2_ei$7W8Wuy zA=I{{UR>MU-28AQ8~x34raa;1p;!uhuzMWqoZDSV936qnmhclZH{wN1h6p4ZpRMJ~ z=*QHTJ4@M00gYG<#b!ONCo}o4URvb$P!G*jS()d&L;1^5xYB)yrM8UXO|`{BK)3(1 zL`H5ircVcFGfFAk1kNuemmXS?YVV%5U`7yJ*?aiz_B4VL9BA?O%rE0R8QaWYT*SEl zMY1XkdqONtSJ`<8;1M7A=VemA5n~5G-PfF8VYBR>ZU12AAP!06@H zD~wZn(Fn4^gdY5B%{l_|eor+W^G=C>hs|CDSs!b8edXN!4SqM846Em(8lBFxQ{9hE zIXQ)WZ10w}E%j@sZMp~hE~RrEZy!vAr<`7zxpzo&eL$tY^H{9hw9x)9WB=Yxi5h=4 z^6O`V|6gMxz;GZ8Ac_D2kwT(iAyFh4E{p)dgy3K+AuCY;P!tS=Bj5QSP>$!2Fd2E z@%OgB(ZppWg}VSVdhGt_%?wa6O36sQAqah+VxU`xCO9m*HxY8UqR|lag_oF98}mbP zwqa}*m#5*w-u)p&V;IZ17$xm=I8iWCv}CB`Fapxzm(BED-PoRw${_d8)JIBgnwbLF z12g4$in76amaild^51}6DHNI{KLb|ypMZ&ggrNusRM^T|1S|v;23lK*KoMYJ1QLuu z!a%~-AR!T9AsE663W5oXSb;!r7!WA(KOO@>0-*q5;pBJ?yl23aZrviX^4QDoctE`k z?@5&l*>%`I2)^+02e;wcPa6AOdNGgY^?_gwKjVOznwRGFvbd_{ugOXRUNw;ZNb!hx z=`jIDnBd7~@Kl#Lmd#I?{|SDCpS4)Y(~Q#mBIEaw|F!LdMI+zZ+q8VHhPSr4^7qw9 zn$Yn~X(F+6mg%__PB@@lUj6PGb>$lDiT>Z~j+1oW>3d!``hTw53IG!o0tyKWTMNU% zqM}GqFdPoGwt|a1J3kTtLOw$P76OBWgy29V004$ti98Pw1tEYSVK^LOjX-LS*!KZQ zIu3cUe430@?BJA!FP6&QF-X_yu=4y`H_G8pm+XDJinSfCjGo3f|N1yyZS0pm_R^szZv zkq{6F20#cs?*If8U$q!~ zxgAAWb!vlexx7_OzmAFwMHU4^Mp?Q(4m)PMX&E~ zJ2M43y%wqgGl9;NlVJ<8A-4B2PjQ>)1!^9)_bAJEK>uOniKq;lJ6A0A z|JaGVoMeix6=w>GIc+o^PAePp*=)(W%fvAWb;RnkB4EM^0|=T=Sdu7Dp)G_8ZfRe; z$NtEKI0ta8V;SL9S<4>jf7T);F05cc4^|qg-rPipY|Jpwi!ojPflw(Ci_T!WCyhBA zZ4SmJ=NeDovfXj7E8+f*bsT9d-L=s}d<$;8JVzG~Zub)Q;6DllyoC_KHs+uaSf<}| zG_%+@;`&{lMR+L|-+>iO-kVj=f zWqVRx=xQfD5po!P$8ehfmvB#6oH?RybdxO1%LkmaZ@a!-mGSF$frnvVGE0k;qn*`M z*97Q^+k2)1K8)<8C`wf(mKlA)55Atw53>Y>G=;t!Z#^EQPu1#+-o#}<`G^)fMINR# zw-AAbJ(c&~mdT<`mo<)w0;j0==FRN6C_pJQC+;riUi&B4Z!AWayT|ufjPk_=_V9k; zunD6JZF&RGx$Xnn-0MKxvWJzf#tx3$Ux0un02eO4^4sP-3!u>_zW_vPWtGYqZ#%7V*amHl3^)wxft-xc4z4+u)<_m8)c}h zrFrjr_2ujLr0q_y*P?ePZ3kaIdv^_Xaw`<$Fw1bsu&0z!H)d|Zy9iFITTR8E z-R^e4Xmtn>z3l_;D^!&Afi6l{l%oHUNB{F(IDGtCzaZ>EDkec`{g${W0N;w9Fr7eHWKMlYbQ0DYI@NMPT#(W__ZwgJ4bO;=fEK|TMPti(l^-ow_z>%T2{{B}SUSd#kfK!r7Mkw774(VitxWO^!!;|6|Qqf+T{QKG%On|{|SeUxfHT9?Kd7t1rQ zGhnW~NU{*4M>%G11*GMQcRi7zVgTH*O!oL%et03qIpVB}8iZD0O-mP(ea#t0M6AdB zniwRQ#_FYl4wG~GrzumKIsH=N9k*|?uy;LyxGs$t zYA1gW=b7%8mgU1{=LTZ!t=d_o(TWqt8j;hdY(b6`D1>tD6WP-2nD4XOxb=2p-@9W< z_%X!4nUbJLI+SjL$KkkW3|aO#EuuQrZ=uobF>1Yz{Q%nR9gHm0Q1{E2?*zzTf4=(A zgwqowNbSIDw(q9t*fbu~(`a&eX7Jep%}>97k*R)%{c=ZBH3MxxR#JvlsY1 z8cj>(1Gq4PPuS2(0q-O^rt9eQ{>@9=8!8Orpn=a*qWn4gXHoT)>qToX@s#5!wJtR? z-oHO#JL8>{+Q%>z?kTbs_B9IDqZD1`AG_3+V*K*fb})ckZ590u`fKm8AtK*jtxQ@< zv!>J1`Oq4=hSzy>DXNOEwPQB}+GixaUc}6PyJkfc@1?(&V_={F$$YMzYx$7!S^b~l z%=Hw5dzkbecjbi3QemmMZBRN0Ghwou4<7fKO^BcHm~pFsze!F1c418b!yf ztR8FcP}B|_XPQ}Z^GfIq3x&}*1Td7TDhkc zhA6Z>Qt&qi?j92Iy{64Y{}$ZQ`!`aPBqEM_Q9zLv&JF+;DfI=WP9hy_6{&0w;Le1& zUS0t*^DI7eO6@AX9IZTKkzIQ$i3?JJ{AQ+~PtCt8Y2`*bbz?BXSfzgiGyRet6$q?V zVxvfrP#WhCOmfG$Sw|P&cCxD5lb#-6%Iv>eY>Ug2HJ18X5;C44msn0|vJm&P743;2 zOH-T7QF9tYjHa#K3H-5ummDhF&n?cP`hu{!;3M%jGOgKhNzroSP&8-C1-`4@_JoIfpqa3>OcqXEm4E(*pO&*{81!+n@Xv zzuTo&inx93sXo7kMMwWeQI$`?8J>!!{aHaios#IztcBZZ^43JjsVX3oQ|nLURGmYzu~#(eRS-o!{MU~+b{2oe8z zyOCt|F1Dtr6%<4hSF}I;V3t@(?!VuzDRFsP;btzmn}hAtm#)319V?YDbTvw^j**s@ zSPtLqmt@uGV$>nHtD&LoX=tJAQj6Q3S)xm^ud z+XMi0;tW~lp7`c)TujwlNoE>5{^6gShqSqRDKdPvU=hGyu2Eb&SdWA?e`F;ADNCB$ zBC5(({ha$>w?jEllz?@fT`_gWrhc6@IA5T=k3>e@V5kR8)kuf$=)8DNlI zmf7tO^o$U?KrQmo-&>q5D>v1$TPY{ya4ELTg8A4@V4r^}&)uZ}Dj|kp`m-x=Po} zg4?33rPXCmvBu~@Ci>-Y5J0~Q^SepY+XQo5{e#DsNoxm;8U+ek#^We4u=2uFcXm*| zC)Q}GWa1}O#{U#Qe()Kq0t}xTI7-WSW(TCEn;o1h^JyuYJ;~a564%%f?784f69U4& zZ+%CzUSJ|IW=lgAkBLL2TUa?8+1CrccRLC9>7j)0^`3nhrTr{n!CA7vIpps&v8}3x z2}C$oeHTK*4H^Nt6nIHfLx!amL6lQt={Af4COJR9=Io>5wKVvC$*PQNkF4mjxBo+8 znJmbpNBmkSjp)lg^92=M*HEl*IeVeAM>t!t3tEs#T|>XQTG~1Zx1gG)(#9BP`E6Ed zd|q3A69+Epckf*c(hzjLg+85o%}Z$FE&c~_2#Ky{*yFo$E>1G<+6|4LT83*1WHKcL zb`#_&6Qah_+ZW}@M`spQc73?C13{T-m1uwPY1(x1M5z}?Udm%+ z(X`+C{B}cB#S#gnKPGf!^b~pAU+nPBAFxH1C?)mw4;t4Oqd4)Y&pfhxz3C6}xvl8i za+Br`jv_ucxce#)7nd1dGKsPEzHt^l#o+Q*Z#l(x($WF?64h)%hg2O+@%_%XJ`m+s zcRbLxX-PwNT;Urlc#vuLez946^R9Vxn-#!Yzrzsz6+-~l83|RVU`={$x6Jb`9*1vm z#Kczcy*KzOq=ZcSNHhOV0{op;B3)EX#Ks{Sn0qitZ?1Z zwxZ)pmr)LVaDs1{CjCNa&{Dofk}|!>3a4W^P(XDpI;tM%HR**fk=;>%!G2ZV$&Hkc zgH1i$GRznM7L2blKsAae-;|xyP5U<`-P*w*TW>D_A@ZDX&HQ6L31e882#h{f4T!B7 z+&0GhY)Kxf=(i~*8xyPkL-F6@)ZyJ5Cy_lqIY57Uoam54)`DeEMA}fWl>vzn@i2yi zOE+eGwnZvXdv_b{5@dAn2WP45b!{$cbDEr>oL~>(yLz(sDQkwfe(*G4Wy8HpGt>Iz zS0+sV(6eIZeJNus&XPe$^Na;*qjw(hzBr>|nDY+m<}1A1-HT?|N>??UY`W;hm5Z;#gO(i6 z{fKY$nBqy~S;B?d7&ez4VbpuSt%u!*dy|LM?eL)-Vs=S8nSaUtz^|R6WrdozbcbU0 zTC~s}uJEXyUJ%Kp=hD9Rk{d@GH_56VU;LAf^X-rd@RwvmRn2GOdQ+P;YqSOWl ztuSdi8)PL|bsWmJ-~ZtKuxP32Vl5C}NbZ*KwxPf*zqe9@AUs4ZMrA_*dI>l9rovBsJaEoQ;6z;#3wanzTiWjiqeN zPhW`NwIKQwry&rfg6&r$p#Ec>p#6= z5B0w)+=s@C=W`rpMgEupN}({S8HTLDcfoeL)Ojeu<69%iAdItJUbop>jLVB7h7zE{ zM51^6n32Eh%s!ASfYPkCN}S=ng}*_@E3k@aBD#GMIw?A`O4ZDcUFr4gvVEhO#go6g zCm@H$aFf}}WlZU^PYY9M+4Ujh*p%5%RX(D0@pRS#=V`A`YrVQrw&oOioOznpd3@Pl zzh)?-T>W7SdHIUQ*qbJgb>DlpUM$xPUTEKWBcLPGm?Z3BWY|_Fc+f4i`2bBKw5;y! z4pxzW0QGCBC47A0XR=Y#@UL1G%XohxGG=h?F&X_6WMY(w7Iyi=a_3L4L?$5EuZW8y zj6FKPfyh|NnQJ$+NPmu_6F{U`IEibSH5MrW+kPefnlw7hmPy#02K zekhYdW-*FFBx3O??N=;0-EVB{1`&X&w>1zw?C&}^5icXNz)IUv-<1ul_T4{fp?m*( zkoverry)O|KeCha$GhmgfTx$iRjmpt2qR$N5>+(NiW3b*xRcAzTn3dR?Si6*{Q5~m>jV!B^v$C$x z*E$g%3I<%(4>&r5oGPN(Adlr>7d{ zFlCOYHKU>hckRRp+hsGH*Z(we^UDp^J6mXA(7h4k43*KmUD4YHk$W2AN+U1)08s_> zzKrR;rU7fewa;QBAM}$9zd>d!E(4JJm$7PIYjIeNo4k+kX)B;p>o2aux18L+{VjZO zvX+@J_tBTa!xCkj#kJjs%kF+wlcQNZ1iBMjU=hqWW8(KmPSA$b{OiZ{m}e&BN)GuTn3Ynx zzPZcw{hQLx+JO(6PTcu?R@66^KOxL@aoClvu8T5;-dvL!huFLtQ|i>89ZwU}o6I=YrI~(}SI26G zSv@TfsuN;>#zuTh3FT6wp0|DPL@@V?sl5B`r#r50c*R>(g`+CoGs&b*wkpy|ivh z`F$UijH2;Q{L#R_ZD%z1aL)UU?__b7D?sn*-CUCP#m^D#VpbMew!O}U5K{Qq%Qwsf)eh!MM0i$wM`ka6Ym@^G)DNCwJ?bV zFByZm&PZU0#rmHNjInuuvuJ`p&+k*RrxW=(H-B5dnEOnr(ENd##)p&Gf81}g&h=o^ z3$Nyit2|qzQu-Z$-?ITTV}a=-5n%eJyWXDGFnc((r zv8}&N*hg7nWE9`K;4ALyQopGsXYF>3D0hn+qrmhtu>Rpj`==>^dg|=s*61u)hV;fXeR$zd+U1`fq9*2zcWgaqOram0Gl$ z{w}SUugRn_`1X|eMlr6u9e?+$B6{y;@S}X33@PMT>MLWOnHhk{QfZx9W(sBYhG~M- zK+LLuotFHBfk~xqaj-`*T7j9puAt=F4or-ULzlM(H7Rw{%t>WRfq7bXaiyromEo^p zsuUXl^Kj`U%^crO5O$&uy+u(8dx06vi&yEnL5*6x!l@730eh zc#zCHv3V(6jA1daWuAz=Yq>tC@~xS?V&1m?v2V7&GWEdSG^M?E>MrWl@ZB$y8h&r7 z(g`#>dbxs3ZWi+8DX4oP{=7yOBpE#?$hO4KtNBh+aoNP{c;@<=f+PGx6O8ZxcNv=ct-Y8Xd7lba=^tyzq9uJu$_>3o@pR|827VAur+2 ztsQ?cIpt+*F9FhH(xv}a6tVL9eC+>k*l2xI1pkulcI+GP@V8k38VFRC;?90F!%VSF z@xR8Tf-(D{hd1~F{-LF~2%i7mn&t2Maf?Pyk2-_5YD&pTj-Wr{TR1AeHQ0(|yV(Ag zq$GH*@Cy>DU>I|v+=elEh%!$g-g3E63gQk06lR3qMMlLt`EJw4x)40{BZsiwy2tu6 zolSVEm-pH}y>t-^Spq2(Ee<`{_24zF@?FJ+>hrIsGw%5}U1?9h)xbLkJ|E2)wh$%! zJJ9+vc*$`_^WElGD;BBTH=GA$(J~duP7bN8Xy@BbNq>6db6!4{@~^0_9|LyQI6DFG zRIZwp$v|T_e2W`@MKarp>uZG>jS;?A^YdGjlf2au()1QIohxZmy55B6Ve4cuN2#ZU zGJgPWA3qfDZ`u9*mwWc;GA}vd_mgz_IxMVmmDb{=`ju0GZ#?JYfVpl!5^Io(kP^a8 zbh09`j0jI6`p}$s>1vppUwVZ3sga>lEasi1``;Eqfc3akSJ&*d|9|s|s`4CZ%g?N< z=6`B20K!O+C=~k4wnD7IR&bcGHQY+rN*EvnvxZq&KU0a%L@el;h_$l*9|eXLLjtRpp8+t`=Z%-JxJAy5Xj++MSr3jM%ww+s#|ofp@{n93QW|3lp^f z-7@MNsS6O_?=8_b&)NT-8pq#t(%l?(ya&^TWrEuJf8%~23fdWyaS;*QB5Gr+`ZZf- zF*sRl&Ui=lT75&6=fmN-pG4V+tjrSXju8*Pca+Dz91OV>*j#wVds!OTo^h=%o{XZK(xrazl z;CTb+{HFswI}hxcdk4ayfM>Q{6a)c0i<_*WU=eE}VW5>26ajlC;zf`kYbX*5v=Rk@ zph8gL=e_YPWP$;#fkM%`Kb`ts5IiJD?CShXO0eqI)gSs+qR2r)3UsXady1dl)}+UL z6Y{Z1Ygd?BM1yGlK4PBEVVZ8^2i}%$Qy8Rz$_!Rahi;IDHMbaXXWQdI9xiyioVNS( zF-K>yX>KaPd0NSJ-d&u?iULv~x77I6-bF8LketA(^o)Xe#o)>2lO9t^2NPUi{y}?) zNJ4y+k55M$ePYA!EQ{geq@a=Q)m;`|IKFUxU`Ql4`EbgM@0JB&E>}gnJ776KREIP3 zcJ+M&!MQh6Z)%KoCmzxwyOpow4v&1OV`AUqR0ISC!L6+!NZ9}ANRG`+ofnm;{BCP#^0?O;NQG`An|apQT@RuK z-=Ba8El&+Gz8XAD$LGi>+KSJ6tKM^IIYiMNYcrk&O{FFDm-+o3xJN`h zDZR@qZEhxA8`AKJw90*Ux;aFR^ULYiJ8*vzSp)}18lW@0t^Rxug_2Ho@91Kq)+_qt zTQ0=ePq8_;%3m_ggZbBC_u9mbQKHDh7W5T5c8p#Ho{T;Z(ce2e$TuZG+k zww(7VUB+fRM_{qT@f2#3cefbheqsmKA7=?G>8+kr>fgKGQZC10&yPwv0vWoR{KNK- zkH8s3;U`Vy-2t5YS5l!}5=DJAih;@nfA$v*aUL&rqNyG7Q7V7?sStu$QRwf&+vlYo z^T?(8f{9~NW~)gepGxnZKB&cPSl&0S_I~auzRBPWB2f`d3Bn)awkcWeP3x-IEKuY% zk^Mw2hf}KRQcX!sMy@;3ztIw<4kZEjm`_G|O-pmRVJ$DQ*S+G^_Yg%uSU+GEfY}aQSK0_JbqD zGKg0_KbCH&pjAD2gp|iF3H1XRtBD1MVe6VTM={n1v_}N(gyKsxb#aF&nZD0}@ve=Q z3Xh49kSp*iy6UcJlWWlAZyAmQ zjScr7(d4;%u+kt{vhrDZ;!kxUFis+pGx8HFr5TI?4CXwVka6NbOvn$$y zV2ACS=;*PRfbllkw(xinkrdYo=j&uOy0B=hM3*k@a$A8n+rZZ_teJz44N<3skZz^51O-XfvZ^Wimd2<;S-i) zrB=4i`3NKg7%fm$kO9%hEm2&*Ap5j0-MNH8?de6$+>V5UoA;gLi;*`!QU9X&zsWc7 zYM55ck8`2GE$Qkt#x8R2$@8xx8nO@UvW-6sSVF%P>qmbiVDVzq-jcCM`i_o73BzM& zDnkP#(VxpO2IMz=!p=as3RRGpq$CNgU}2)+;}Rs@2>j+MCrKh5!)~OR^Du}WyuFp~ zCjl_hR6c}E+Sg`DgvVlIjSQ3Dcv(K5i2v`2-ns1y!W49|#{FBY9!qGPXPcQg6U|#p z@?4`qbYm3PT*c@6xEL)ar4KqJM=Y`Y{VvMHjXr7f?K~yX)JEAGf^x8gdH*27ly)e@ zUjI|3NjrSZ%(%mqYG(h}>rPa_Es%vP8v8559@(T9n@y{6_*-En8mBS65iiR<{UNr^ zXbH$yiA@}tT!903nK#&@Zhh`DdiVsN*XS&z(A9cM>xncE0*qSKW2?}AnY_5QTNZm! ziAk2*cicJe$XgNsKBm4p-^AQssE+t{<+kvu`@}53d8%;ph$UMcdy~LD+;el-^2R%4 zM{n;Ns@UK6u0fi_;?#rwRR^~xp?}LKC*RS}6Osol*c?X^`!D!YrSqF`{@UBLyT5>V z@~(;phA>3u>-lY3`J6$P{uCzOIDaa?Mtzl3*}8vY47 zZZX%}9fl{TuEk-}{^}88bLF(<2&~ zhaaE1Cs*gi+=W^ns;!E*dUXupjDIb+H&}6|A#%NVXB04-(sHIzxq!FoF)kjb%LPcK zrD6L7Y2GX`829Jf*)s6M}4v2btVjiUxI^wIu<$;N_#Bk%zjKYg2g61PL##N+u;jKn0 zBovGP#2t7F>Eg25wZVj@ml`1825`{Z5xJxy(U3T6njp{CV!0*4bgG-(kmepYCk zL1g`;*!f-*qdk9Nf;+8S`m|{~+=Z%B5GS$ta=u8MVYJJnb!Xl(WhA&m7%dQEwUXOi z;;2wWOqHt;^(9kWklncy<9J)y$B#+O^8pRSNQ%fZJ5|0;qIfXN4U@B{GXc{4txurf6F0kwdPY=^*k+ck~X={ zOp-fWXIIDfeTUL3t;<109ao1ZLAw^&xp|xQn((J$P+fS*H$vOJyXkfPe;SdW6l7G9 zN%#EM({|X8?H}Kr=;ImFP_W!I$E{l8{=51UJ2I~5NNgrT&*ulsX!4 zEr!-7Atqh>8*Ysmh_RB)X`C^J2me*A{g#(v6_2AyZn#?8o;PU)57{J3+CdrdHgw^K z$dEykY|~f5ugQ*a)o+8}BI&Jo7hjmpV=ey>*)u3qZ>B^3$bIkQ@onww`{_Azv*0YB z`<5nge#{3*o#`WO(Qie-SBvWFIlZ{|X$AKuRw4m%KEsxR?yugI1+PUGdwMp4d>9^y z9^}*_T@=Zb>f(}kx_f_Z5U^Hg>&mv(Dra3LN14zq9ub3%4A8i81}uPN0=4$hx=xQM zET3UhB%}R_B<&5sa{r=uHY2=;PUH&xy{`(1v%W9|p=avIDkj_ViE_DWtaQDF z^rtHAI={O)B~z;{_+d+gAPXyi* z@a6&R;dHrnEdGsXL8?-$Q+wPhf5e&vVSpP zQ;zzw6<5#5Pof5^Qsgi;cznpr`%rV#d)#C!UK+8cKpRMC*dU7dyLm^bjz^O}>OGCu zHn$YDo@RP0i;== zy>jCxDAuav>XeH;<9BK_2N*NHT*g0@Eo&>Si_+}5D)@Gf`pKu=LiT66$T+-pywhRs1O|TKUEo`U@-ds zBT1+F;2$UT90B+LX9`3Vgan8pg@Fi=l?dQjx{rWDKu9PY0s{b_D|^6TfUqb43bO)$ z5!ND*XT|z+R1C8cwT6iRpw=)UAS^mj(&1USA9ni>Pu3=~J@Nf7_tQyh-sNDjteL60 z;Eke53k#?Si_p}yINsHnpK|PhQOV00t%K_Zlg{c1B}Cwc`Z;MI5kGzNKU+-)G*)&? zIT>=MDJcWOve1i#Ud8m06}qimv;ZtTCH*p|#2?Gj6zu##ti9j&LZD_bHAzUhnr~O; zq5#v~wV1EN=1p}g9`i&Q-8^})0v_aSj;?+Qls8X^AT_vtgD)Xnw_?Yv1Tih*_8CM> zajKBDmF={6%wyrc$mD13Fl=s>G$9jA+t-2|=_dfR~b3z}qQk**`_*eMqI7zTEw&k@WKroXuik)?;O>uuVseB&j$MO{QkeY00w=o7!b9B zTLY|xo=psS4tjwiFsK#M3JA7Ff}o0H0+Z3Mh|g-%U>1?8ucm4WG?1K&b0YXv0(t69%_hPv_T9-9h* zR&11-PLQFZm90TzeK1b=RkafEiL5B3L*G>|g8&bksmTRn zmErCcg|%6F8xXXhI;qj|K3a=L?(zj{e9$O9X@isB-|F*-nneZGB4CRg=H&SCXf3^= z$PKr{|;CGos2MFy!xZ7`|l#RbL@us(xUtB#IXDRCUv!lbr3 zJQg;^f55$U-Z+FHW72&({Og-;p#o0)&Dv^znJ4~aUg+#HFx*@deArIaGcIYP@{_~k zX_%?$dn4Xv+gX~0u&bAD_^G!Je2FdIFh7#UGM4e>xAIZ`1e56qM^30@43koNs|4{a zXfdrY=5I$4@1e=xsJs5!i;ek@%k{PIjzDsZHK{JC#p49C;UY?ol8s`$eJ&w1;`iy^ zS)puHf10y4>igowuw!t_BpWu`-5eb|Xl8U5qw;5V#|qD-8wB2bZM9_^G@HBj6;d$W zIlF#@4c(!`t#&7ztm%rAv~@Pa4Qd$`MVV;FsU~mY|9A@>y)AJiW|79XIibu}JO9Lj z)xbo^$bTE2f)x}Ez44(L&~91JBkZJVqRSgw=#~FXQJb5=M3;$kV4ym|?{GvIC|^C% zyFu7fyAwXZ7%J-UxyHTFrI1$K?-&51>#!>F2^kY#3)hS~KjKU_cAFNLATUljuyu_2 z2Om=7O=Y-f)d>M26dbi1!VQ4CpXMyQZL1Fz&g^O!chYrer^+STVH$l|FQkdxjtdJ& zHA)@E>j$@gWBov9EoKc&6RS!H$BGbF_@<7awW5QAm>s>;-4+}7PvNWTdYh#?t z6hPNXu9{soeZTg-LpURzcvee(IBcSEX0D;yhDEA%6v+@Cb_PlgbM~`^&SrTH`U)|O zeb}Y@<<{}J2rXQ_#&m%H#jdW4I&rnz(eTqND8aiDL~CX$S*i9MvtOp0RKqt+IA2Jq zygX&CC#XSE{Pou|`EUF)Hu)#&nRKtrY2@YC@!-#oRQX@P3x{wT*1z9+{~bLOGRZFj zxtSNT)Es8|Ln2kXgLhb7VmP?ykq&4`iBhtN91yIXJ({G z(c1n&AK-E&#IpxwT<&d4ej5My#pD@L9h_ocgDnFS&9FjCoyBR5k?!G_PJGtcD*0n< ztf!Kmq_AA(T|U^1`4`h;e_UQv&^BGpT45vkN!;@KJ)qkLD?Gd4rKD3lgl zZWMhlN61WWCtX~k-ELon;S`hJzY{%$3u?YP1q{!QcX-`mIKV^=`QFJ0>%(7SpP$^nkA=jW4XJ;Z}#7Un#J$0;&qi|8qU zTbICb!-ujZq=AT_4c@I1JN;v8Si`b*9rZyGlK9&TV53aJ=)}N7Zf#MCGJ$zE!*$kf@_Nu@qL|bEIWMc{g%+(V{UT z#)2X&OOFy`GFlSo+g~J_=RqN!5gjn8li|N1=?Xw2Hu^htbN2k*N9F7xAeT8hNd z7WODEW)mGmEpqtizjvL>73o=_&&v{@LQZA%nRn`ue&8KpvESt!H7@T z-29nYz9{%Cd=K_Jj*62#drA&kD%!2P;E>>_65JeWPnFhSXQlv^Hn zm8VBL<8{+3KxT|u#IO({ZbVLk=*FlD>H|kAw=#we5uZ~e7F}8wQpmoHVZ_ZZ?-I5- z_Ozf#fNa5r2X$Wrji1kKz3X)B|AN1tb~EZ$*!bfkvfgckPJY8BAcbyFhaN7cXXyQB zkGh+y6D(8GIz}Kv0QlLnI}amGZEkR#Xrn#gb?MdixWK8#wRI=8W1xei-@lZ&>Lb}x zhrbe;KbVIZ+a)r{FAes+ZLzo-5*yJV&j!W6tnjr>6OSpvav;sjUt?IM=D#?i#{^%} zy_4fHHBYxF4IMbF^JWo_`QG*;W`ra-G;yG5aE{otQ}~?EAY5b&V-QGIutZ>76yBeh zTZUbS_Y?OWIFz40vRbER7^{g!8$1SmS>FdpJ3wt3Agr)b*2dNb^NP6(f&}U_f#%Io zrQfIzF&FB#ap13@1(WBZ*uwdtw4@6wgvN~45eZ3VxAC8y4ajCX-}=*(Y{R3NR$V-} zfi|C~6I!oH{sf8l*^hZcs?ky=pQe7DXL1|R8L$Et+2p?v@qCp&vOFd6m8h~@H;Q5F z*>#o6;!*Ye4BJq{rJzfaIT)k~C+W+%KBAGK?mz$pP}(IA_}Vto;&BWUxIP)h$O+QB3htuMb4_>+qZ z)p`X#I>+|KPhNpfERORm<9GoH5P1aAAbFjDz6pUlVLop2#>?AQZETrI1qs7`Zod-+ zQJ`h8Ob2sVSYn2IvZq`(tp`IXP@B+H{Z_63$TahEtSS>Gv^an@`a-0ysvD;g(1`ag zl0`MD9Y-#HTm22rm0Z=vuOvYs&;}%ej&C(A^#3F7ufp1jwm)2$7I$|q?twrOio1Jp zCdG5?}OqUkC6zi=%Ci=Kw1@zINSXE3brQ}10KSIWt- z9W*DZmzLxO@H{(g2KiaHs5_G)=*xWymtDHs00$$FF~UaN;Sb%vdSwV5tSB-`N>w6z zE1q$~$xUYl*}PiF@7mN=vO!{x#3Vo8a5zZjzHI7LJVR3wl?PS6futtL9&*L~Lw$H^ z4Nb!p<(qE+0SAU9tAt%fO*W=pAgfOdckSe6gjC%bI;B@1tv6Ub><_I!gY%nO-586a zQ$ojnnbu^q5mV-KF@D8!tWEx$=a-eYjeNeJ2|KjcmC6wVWBZvW2C@{6;vrdb@om4J zE-R(cI3dSYR_KAb^gBT<%_k%o@(7$LdJZoDPA@v9KI5>Ly|W^L+vwaY51gru_+;+a z8$e9=DbDGUu)WRO-F{3Xf!^rw%&xg&h50;UB_5;>@AQKrnV#=D^iC^aNe{zF<{t&@N1k)Ho~^aTf%jMms8a?t1LfmiukStZ1A zTQIsV99{HHID`iEF&(<1J#9;FCeF13{hx0Zn#qGc=+ER-&?vPYf|{T55QT(l@oeaQ z=@wtU%8!v@UslDoN&QRO!DZ?**n%$DpKqb>&2}4N+PMRDB;x!kN|S`>@`O{Z0;cRq z)Op7fe?XIas5{8VH8?qf9_&-Ij16yl3W9L2NJ7{{c+)Y8tRg0dDdvq4J zo9%7(nzWpy+`&BR4EMVdGd~Y&zePtU{OjYeK4hAn&ts2L{N-`?67?ESP2W0^EeU(4 zmPEgYnQZAdG`M+0A`Mh>I#8hww-+*jm*4dJEpl{m$P}TEX{e8E<^=UVX&#$yh1ti= z`C4zZ14vPX3av)T?RXbipHf05$}BgpCskHpRfr!WtsR|+_Kf~gbfbc5)zDCNzB(RC>DI1J{8s!3Pj{xp}Ce4xWC7eG7+(kq06Dh z2xdR!cUZ0cP#_fz3_jS;gB}eke0hHaL!;{Q@3SSXYnyPZ6BL|OT<7PIK+@Ieb+f)j znLsXopjz}T+fqFKGSh}vg15Hs>;8#!R8a=rDwBpAyRc{JGK(vfQu=n$c+&{;%e9Oy z&_@VM*V~KJPFRjPd(4C4O53%OjQOcHMZ-$)a!SMw-+cL!y>c@ZjgC`Du0D>9UHsq# zfCamrB>(D0Ge@nj40~y`xd%c$+}~Q$WFTW2PU{j1eVlEQ^%qN}T@sQW>piXRjd>v$ z7Y|>~IvI@EyT{dkKeof_0YBj2&bW0Z5%3NV0X+SK+_w$1fkItu`*h1br>C$v1 zkI}F<>vJj$f8LpUX85>kdw~$G?nx(JhA|{=WvH|nC&Ij^I|(drM$rQ2o0C0*R2;?= zGd^N*VJLq#?yd!`Vh(Bty1iY=I8-5=PGnE7rVX!IsCTn)oblovX=Tb#^hCWckGPVn z|Ga#!>vnmQPdtT-X*QQMq{5KBqmS1~cd~#LRH-9uuO8~lgXDg0K0^N}<_2;1)+coeqK%R`29kcfq(3ghr-;z@819}_DbmGkBGm{|mjU+mJJAZdLtyh~a zGCk^Ib@6%E`CUxu#+_m|q4IroQLibfdu@2Xm>tRO_?`-hL(#0|%yu>LZ9d8wx~_@X zhkK|-fW8Gr=#Wt9vHt-Y(3c}hf*J-?U8_1#^9eH#4yz9c6cKryJ z{b2hGSFDD(C((vOl|+>FH1B1#6~5Mnmi6dZwqVbRHWbXz^k)$C5#EeeesCN8@-cU5U(2uydUN1Z%_WUiFlVPpa(WI&( zeB1rU+;T)QKXw1O1CTKw>*xn|t+!ZK_6K)ss@K_oK$6cMU4`1H^Wg44+f z`ptj*A$^l--^4m|1%RNM5DSmiB1Hk>m; zWEsEfYNqJ?IXX#x5xrNL|D(;wZk4}il=^LTnkZQ6ii5jH?Te~-SL8fitBq!p4P!%J zV6*K?X1L%2_~YPNuakdcM{{A;LX|=Xktzr>ZG{uMMW}nclT!vmHM;>mksRbw*Nqp2*WcLTWwu z4A3-{efoGD$$d0f(y2Q$tF1WzcBm_$%CR?R^Z3{xJck!tX^S6ydxDojn~kr+WAIvu zX1C8z@ZzhW&HvugH!OrHk|QN~eqIcD;o-lIp;tnweC~nXo%sqQunwAqg1<50AmtOb zXjBfLU;(d!0f~b@nJ!gpwa1zVAXZid-?iK!q}j}KJYAz^A^Qk*KXR_0?c$A(KgAX} z!9VQY(sSauo~=f%YbiX5t1PI3F?U^^e>s2j-Ac8MIm*Z5&;SW?nn{LLTcd)dYnkg{hW86D^a3m+v zYy7y0$b3E&%(t!yV-3DrxQ&_QS-X>@Tr%j1{YO&v8(S6c zn^xP!aOg2}iIiVvUOr8Uv>TigE)=pplE1;7Y)ur;M_zwCp6H77@YJo+3CA)R^9N5& z=P}9gMVSzO8?7`zuA1Hx-iDVcCN6&aUU7DbBVU8}yc`$l&BUmFwIFCc2M#m;q#X=z zB6r!|vx-Zc^<(pYbiA_nlder}lo4woPxRfkn781UQnK?FW)fieeX=k<>eAJt<;Z$vm_MeSp$lBMN+SG8!+{dVmhnAS3uDY=RKJ$h0!9UX;v%5VogFC%c4L zR9ka&7RvbAl(xvk>QlC#;g`t;+$U0TEKh|Gi}a>`T3=r@IeL@AtvFEqX(HY3x+$EU z>gi4XSWRN_5;yGN{ZpOSGL(92VXSr`sCV@4(z;>3U?g6<%A*=*o&OB2K@{ldp;|$j zNe)7#gya!Y-9-6>EG)hJoSB&J$4Ng5F)li#0yJs5@^{xS{a9xh@h{r**KR@iRK~Q%e^i+kGPoBbRMGIfS(K@#wD8b8eahJF zbF1?yqg#LM6&dy7lfgi^w%8))e6&~@zT*B!wLof8H|e&s@wBsNG89{t81vJwq2%rg z`Y70F*Em_X1dhL<`XuDpaTQZx`eK1Z@o3>Bbf;g}ZjE~+`xTX={(j@;&uaU(cW&}W z6&d<2fQX!-Z~HGt)Lq%#x+N&n6>qo+M>(7X8BZ;Iv)%V^?ge{Q?&%xXyxS~)e_=Q~ zLj1!K@#*N(5?Ou{zN5hgLWXycQ=3XiT=T;=F_lGRQK9!I_(dA zqp-JEkFD)`@+EYnc0?pP^QG+ApZBM$b zYvOPl6Ft3NptMxz6r*%?G{k`NGl8MA$Lgv;P{6wWm4?A?57qJPai;etQIhp`3!3|o z0zQ)B8V4)qiMl#Q=xip-LWecIXOJHpCB`QA?Ww~?mttjS_oyVkcp#?7!kOW}pI_T< z|2eI%WBpEnX;1OUz%firH~CsCrNZMUufwlOgTZETn7i(RDj{<*Bd(mo4}O2QQ5?yX zGzBFe1`IyANiiYY!~Dxs>Y@s~2q;ocfb$OTTH?l++TY2_=lp2z#G1))p3BHS<=0G_ zE|}kPd7>8A#qgomS0mncC6vn`E}qOAg%Zws@Mj<%N-3P7{iCSxNBw^Gdatv3MCt3Qp1lqWVn+xdT)sRgNEO;2cNxNanm_T zufS8enkw;8^C3o|p^4dU$`OT?*w-BxUh7s4_X@H8{MiTa>Jp^#^>!697G7D$b`(+0 zv71j+udU53?0(FUK$Nqx99IM380w6(GQUN6OOJB&XP zo%B8z!KPhrl~?)Cv3@UG4H`EVOU(iQL#=Y+9m=jb-ajiXF)VYGeun1%AK4Rfy*1a6KS|9|ni+Ed;@4 z04TgS!xH{k;Jq!p@BrN0%nS(6WBDz?KudGDlF}RihQRMROLGWsvW5gs@PGPQI3C|9 zU|QQrDv;PG{0y|g)Zor~4*c?}OQbA7u|?&RmOgUqsPSWXB1Pvbx-(sud?i0u6*kI z6#c*@njs&11s^vR0juz3+??`rRt2&jad=J_)Bmm|+EI-exeRiY`%(1$IC zfVTlWJi-n&|HwEOf4AD;8enfTOSS7RvSo88*XoF*KTTuTPiFJgc>ND1GTSaaMn;Q( zu=d|^HN0Jg*NmUf%+kUPuHA%()s~iKPys>satOd+AWIkk0zZzx<}e7HmWRSmA2Yak z5C~sXI7n~#AC|y9%W&9nSVQ(~zCv%KV3F2O)Qg3iho3-3nnwyRIhU1D`uQPlvZiIf zL;-|yS3LV^T=av;%}m~%$usxpS-@Sx>v?L&eMHCORma0W)Ypg9*N1(vr+@LUH_HL9 z6*(`{6|dXt0k_fXFSoiK|3u&3MVwNc;m&M)5RXg!T(a*FAw~}*9?mVQ{zf~W53B|wO#YN zpl#yD*gZo=D>lT&k~;nqQ-2By;An~^GfejzX|-^uCy`c~EXLuLh}?k}_= zpLwrBgk3h{AC~VPMc&_dw!dmU71Q_4z|wjD-A^Z+u3uNInHTe3YqAFriv5G_Q23PD z%yh1ohWW?a)zetn3*2cuy~GA+wZG3)a{meH`-g3}%d>w?c1Up_d$lp6R3_2`vU8S+ zFYTqG;5gY#zB!GsRl7>AiY1qgtrKn0Sddbviut(Th$wWGI@c9>l3bwwd6#jjzcH9O zCa5w%c_7!|=y+V0M*oPx{gk1d#T#0}u>>o{U;o+y$tpwi`m_An`Hq84`r=(< z^L8|=g7DUXF~3k@y-n?gU#K`KCS81aFkD^Ol7IMGvZ|zWNuNGu1NQVM-;*S)1tmY2 z%Vb}2P;$3~-5zo*1WDB69p0w_3RXCZ-VC)ODrM*G4PjN3LiMP|IBBmRq`nE5GV2Q=Md2Hd>Wuu$^^&Z7N>66g`#;?=mf{ z>buMTAaxCxqgq4fU?(x&wtIu`ClOv3;~91=w*P%`fMZ)46BVNMl$LPzcCfDQp}aB( zhxh~4g$N2(;>#Pzg~uCQv&=G4ga5dVl!W#yj_8H8vD z+Mkr;DM^0WM9Nys#ydmdGxgc7Bk~6s@e{`BhSQt-kv(uA+69X3Jpn{~ap;f~>*pP1 zFIS?^Qs`ol6a>Cp&ub?61}tMN@tMxEz!H^;6Y zzj1PhIExQIS!Vfgh=c$tN-K;#OLt$;@JOG>e(`i(T5%zY&Ys4)>`Ja9FkEtET4Tw@ zQa19n8r!I6zZc~W)7n&R4D?~)e1nNg(|05W$eO#}r1u+GD6s;Hj^QaG9Vp4xoD~oS z;@oLi`Htdyq6ar_&mSpBi$8Mqd$A~IF#M!z+eeP=3<-P{?9~NH7#Er*>-MpczWLSb zIlRI<=F}P5)k5JhEE0svv(oa?obbDq_RZcOsjSfm8rvu(io<>JKYkAhxcXEJ(qpt% zqsm4kI1GOFw*O^R5@=_mn~qF zF(E#!^)Y7vd+TKpQ5ed<=#ROBcKMxD;o}uz%oh1keqFpKB^&o8Saj{rc(wgq>2&F+?;d;tk#xCix6R?&<)2okJ<2RlOts86}K2VOSzcs zTtj<*0;Ipky&Y+7Tu=U8rH?dh)y3KYYe)$7;X9%EHM?}g7 zu@Xl()pIydIf9SEBAd3G?ZV+5yOt4oA6jyVrg6qdqRyw)*%kCjymEzT9?~UJ140$a z0q(SXiPOA;lCc!1Rsu9Abl_4|KI=`L{j~TE7Lr3Xs?Nu1q*}=&_GfTgi7IxMxtLRl z-EiX%MmdDwaspH;8JFIK9@meMzp_1XKBHCw>)WYSSfW9QnEgd`NH&dkZ?-=5%A$bs zmnTxH5os;Tf}BDT^u$G~qfGWr-vctwLQQqSD4Vb2KtM_R26u$NWdf7=T9}6%GgElg zOtoh9-VxnGi5YwCS`tKc*|N0M4o#A zd69vmFV;zV>#)Z5wRF(MoA{O4gEKg@na$j$!=f$IgVxZVyR85N(IJw^>Z7 zp;yBQSX^?3ZLB3@4JsbmD{dxQBKv@Dac)WQ$iPub@=+U2dpH}Q^uWwm6(&UQR;Nh0 za3LtA6YYP29eI+tXjmFxQgFiGK{y0Nval#jiX z!i~M&z~=OauUB8?2C`>b-wRq%fBzT6zU+w^ECAETeJ|$FPBJl66+l){ZlO2j+wK-i zR#R0?iQG$Hqyh|zH?761#C+g^DSC>wY~rm8Q-32Zl`}czB&6KpLZ7i_GzCDx7|mJ1 zw>U?9Or-FNuG=mj?$0;jVRR&{k)8Gi3q?vl!sO397iRuwag1;^v{<%c zsj8{r?>+Dtq_r$IfzFW0n$@Vq03Kr*5H$a_U7D*UJ_>BxOX&TwAf;XeK6knO+>^OZ zH+8bNvAEH1_Gyt$t0voSZOPrrPyMGs_mLcb)unzrma`hPyJ;Zv%c~zn zx%r+UflZYVy}InmTWV!eDrLB@MSQj`FpxUxGly7}1tF)yxa|gF`FnqaOj!kq^RXR8oAi(=i^ND2=y=%VuCx}1m~Vv`!4>QR!hz_4uDZS{M>xnHIg7U z9!Li?8^dJwNn(WXq`HnJ5EBm5E4N43HF&YA#_{X1KKv#@3hb?7IYwYfwP_r?$qB0C zRIzGKm`-s%mrhGVkD6*2(H75IR4euDvKH(TA2;ivY23ocQgnGOZQkstNrO_PTLvZ^~Bua}f@G<^&R8>`Ejz+}v^T z*5px6qn9-joc}hl2u$$m^T8;!wr?3Vp+Yl|*V7vxwR#5YnOG_d>;dzLv-0_zhTU%eGc$xsCqz1<+3N-gxS3$W5LIfWl4n>OruMt9!Q*0&uXG zSJJe~LN=Nj_?M0cop4B>^p*@j9ise6Z+-h6AaPOb&Wt5i=wnd{DR0&7A zw+#+o_@k;d-TP98pROQg?@)q#lqq^p;0mdc7r zJyDWPhTQUb`byfn6|S1PCsi3LrU6e);n=t<-Ok#h?u<(!IM;ohB~xEQgT+-k?Y zA&4iQGx63~s26geC+Dlz7z!rGT$1kY$q*VW#KI+%W15!p39BUZS~=23#je^f+zsWe z4|BkxX(MgbfBYBk_w!Xgg4Uy$lWKRB;obhL7 zLS-F>ap3{b%|4Api`+L&p`Cjz6y{jxIb`|STvzjsSn?;^>>%6kFCv5{y>aH+rlYzJ zxK?o}1l;W|CUVL7O)N(Tdorh?>e0D;62_;YK2`ShpVu%W3xhKLHmmn1znQJ_#cbN$XxO11Ahu7;h2=UeDA597viPU}^`pH4nMrd#ps&E@mZ=d-{}Mx2b!M*xva!v8}=7GzRAItbJJ#;iO=ir6wYv#lLnkRFg$T zfLgTfyymrqbl}Se`ngUEaY$`&$-6hjA$dr451uSAuRoh#qJ78le&D90eNjBMMUpFF z%X91m`~}V>hWY;*P((t0!f4$)xlu++{|@+*4kFeFrwDqh!Yazg)=g4~%f8*VPt#v4jGVwICfrM3-So}{9?}AIn_l$ z!b>f+ozAW#-$O!7^46VhWpZqfb*_()9eP$i-gC2r#bFyy<-KDb6c_Z0<$pMspP1Io zvj7uvkyBW45tjQ|miToyTJ;C0@nJ7#ny;=I$NCC2-|C#*j>u4acX7P4&IidH>*jE- z0qJ)dmM_g7cCZ-ZIKQsCka{vh$q&IaB^^I$jw z@P)Y0GG9LjJz}xk^f_3up%s;R7`B(+On%B$!x|RsN^+B(5It8U5kHj|uN3~1;u_r1bL(*c*~~D6 z{ZKTrH4F6M?)7bO(Br@gaQu{Ub_5gNa$Q(Es4N_tZ=pFzgl?!`C$o=jrdRsmj}nBV zyF2G#vu`=*73~4amkz)Yy|P_t3^l6CSg1;)H_GxzR>IN#`cl3q)wNwB5^Uy>_wzgE zVcp2tV-XSh0fyW~WpP%+%@HujaQWThw^=5JQ>TLcw^7pLvU3yTquY;>@)2!<1zCpQ zL2kqyZ@emku1d=0BARh-1*K{tVUE>;X&bgfL#`PGiKod0F7O|)7L{16O&lmb)9JBp z05RmMEeq9ye}BNlFbv;~)t069JNYTxKHknGq&?mISbgyGH)YULU#uKV`G7ho+3xeu zxs1p5Aklmi2^*osbm$=at1uzKyyrl1%NzQo6ooHb3`->H4fgW;bb>CEZCzWbT)X&t z!47t&57ne8Op;|+DYF%|&1fw)17r;`>zwPUy$@DhFm?tEM*AX>65dbyZ^&Z*!2cuL zPHGOyV-ho@@m=sB^y1vy__#>~)BU24ardm3KB#tta+O?npG9}8*MQZLZjbPFCIYz0 zin~39GDMEnPYb%*wBJhki>`7}*-aE@KRe&27+dQ){O7m^6tC)y<2`sz+IOv|B*N#M zQ1bS^`!(rJz(jfxyn6gs+H)SYg2xODzhO&EH?UCxEhx-8ek~IjhY(YW6`d?P+JkS3 zi={JRjPb5z>ZC};@-OO8xx97$MrI%n&TCCrVf_u_I4JLO8%&Y!E8zr827%*rEW`6?VeskzYRh`D4@ zdx-^qK;T3DT4~c`=O(Z3kGUMu1ZAKyP-(PEsvk^2>rru69rX9GG{E z#$R)1o}P|)HS}(dIH#YX#`J?u#|?zgASk#=+1`cs>?mw!X|s{J)@?vCqv;f!kBV(S@C#5RfZ7l3b`u$ zjOGUZG3Y#Sf?WY@6M_09q94C+U7V+9H~78xzT64^`xD|0uoBJxefq+76RYrh4e1>n zEce?cQQcIuDOrCWWG{h-4(j{n$@c2HMd|a00ow_=#V;$D+L?|G->zd7;%Qu{Q#6aX zI5!XIKUZ~PlnlEM8}N>XhxD|MhcZKUt&MCOqp-cCO?<@-9;*z7@)zAfcIfN(2m-MOkHFee z3O4)8+)*Px{)DXyz0TL3?b)El+Ab|HK$nO7<4b#sX-;zFJD&=|FsZ(-gl}^YAW#-<-wt1<$}l_;VljP5%m92< zQzU89WoA}Ex2`*HVy;z%3HIvUOB~nwVt8pZvSR(v+l5Ro|TCHqho4k{OXtFkQl;ic_=%%n$H zUqRf0C~?~^d<|ZX>@-$vwR?}{(bmdWF@Tc;>7ApAPVaG>j2Tm_Ds5~pZ@EoOQ2BRw zP4SUyTH!MP+uwm>#)FiND|7)41G{__Wa{0}O?NgKf&I4)LV0=kel$onAkt6zj-sLp zB`KfZ@*C2X`Ky)$hndGZ(O1StHSyEpy{}0$wbeb}{ zh$Etnxu4=Nup!U&Wz2PW6gFXvi+T6F{pE)1&(3TV#?b4+mtb4|+1Rl-GerDwW)S^m zw%TF8+(+%P#qZ+fFwa$XtP1l=f!HX zUsiudQw!jW+;2Y$@30_Prm;rhH^?f+JxJ9ijl5NsFWD#5G0?7Ao#8w66|G+JGm4Kn z#u#+KMespR8V)P#3+J%xVS2kJ3 z;2~G5wtPxY#>^qhTwIcHoYmB+5T>$|8yHO~v&L$q@M*xhA@#<7^tkNg#HHkw(4#$K zpd9SOC<#~h{z+(HG&MtQ(gW>X5|+VBYA5(fK^4Q6ThUHqE_haY|oBU;!+c<0B$L zN%MAmn$a#=T#UwViTA2 z`|lBNdhh+p7=}CC$fKBg)@VODU{&_Qh=KR`b+8#{&spby0mlwC-|L?U`K_xMpDs{x zN~Mj%sF(8GZ7s-t$mtIqS9VNX#i*7s(}6E{uV>SsRoBs%>85YQE%IwVEe}j)RM#SD z-$bqMTVa>ReopyXXh&n0-GUvmc``$YW$fvM6R(Y^f2|y#37G_&8S>vH zH>mK-RWZ3pQz=+2+=;*YNNYHn%=8|XqEnKJVc@vt*v3|TI~+kdZwN8%Uu+NtW8DoV z-4Bq{wA6hqLRKi{f#^LNq&cMik)_Q1t&Z397#mJo9ZbHFHhnhSwNSlRA6{A?mbuSA zZK6_qkM?gPi@vL_ z4oD)XMBpi8tJFaB2)OOjeSRz4_la3cZHCh#gYal?Hg2S6&c}=D6Iq*77z{(S%Jg;6+tG;>ma zvT4r&lezriCFx37Ri@|R2T^~lS436aH+;z0_efv-V9i_&z-{+q&i1UsT1)QK2$aN!WV!lDs0YIHNb#%jg zJGF#x|E!mzIkGw+sI*d@JV`!0;jt&tTc19?GfG%g3fAiTBpRU*UMKe5E4w$P@iBEj zNyF>wO=;*sk?5aopK3&wYMvB3@(V!3UI4eOe>crCjoz_O4Q+`q`ZIMmE>KqgZwhjD zsDLy>g_R`vH{+Q0htU_dV7zW*+BQ}3gF&1<;_;DPnWsZbU6hdr)4(L&QqN(I@;lzr zs;Ip4FGm+J(ZB|~*oGO(K(P zMF0v|SOUR(g8Tq;7!>{o0tJ|X1p$H<<`$OlbRG*~k_cd6; zc;S{jfH@Ru0ks5M0$>2R5&{C`1pwieOLHK6qM#Ws2#)ny0O0~lekfcgzz>4(!VQ-H zna29e@%^!R#(@^~7)lnE#~Oum@I8en)E-zvaP;Hbheou=b-DL(+sp?c(5+LqckU~{ z(>Ux14$#WZC~nI1j<~nxCGj;qRCTGxI%6vkR!iv5IGcM$PW?i&>+?S>rOEO*mJ@AP zIaa;N(HcMxRxLv_6?cuOjr<$)Z19at=I{EW6Uong%tmJQq0x zQyJdw4`jaOSuBF??B4Hmt4U|!qw;YNF5HU#vvK_i)2*|DOcFjs$RmFa_zv4KMjj>x z>S9rFpiBBjvm9lx4!;`__nNh^7~NjPi>UJ+Omnu?daP+ijh>sPv@ekYzy6Oe@v8%M z;4u8#C;#7e2toMxRbChbj*)=`fqW1s49Ew9y9mtq&CJc=42`+D1;A3kQV^~U;e*38 z{P6Lkmb@VN&V%8M$bZI^#>Q9KBJyH|dy0i+5D7oT6iL!kOY(gaC(yK(+s;C^Iv>;> zCcV6O4rVLRLRIMahl_6W@N+!qdhvoTrT+%?7uL+o{g2xX$#d1VG?;IFMyHEdZVm&i zx3{RtZP$RJSB%K@pG-#{R-fkOLJZnnxbB{NhP9>i8T7*Fi^xJnw@rh$7*{A>qB!qC znh&Y_YVK9cNOMR0Qhz!KkCgPsnk-e~P#Nm*< z-ERn==#EP2(+PU8|L^^puV?MU1z)NEqx%HIZ&>sH5P2{Fd~z{dlL6r8gYcR20?he9 zW&pT0S3m%+&;|1g!e_X`AtbN`TnlOjUp6oZ3J`?zG_jh?|IvNEz;&ORiIggjaF+%Z zfQvmSGQmb`Hh|V*Xi3#?0kb~-=D7V)~~o=3wb40w*omA(sVOh5gK$4E$%@YA`I|D{ERK&e{_sqNL|21u>{<*wigYQQ)+JBL0ycS>x5X1{Nn?NCOfe9a2 z5bjuoOHTeXGZy%t*{Cpp8Q?$GT^I!Jo8jZ}M(U1ItE&Ljm_!W1c|k-C9=u4;wqrVIb`<a{=rTp+DP zMOsgjZYjpI88xvVj*YFnJw{BT5A9Wq<+hR*rc6#}gcmkw=n zYe)BS9;L4Bz7K<4TmJI+mT4vzZj-l+`kP#B-lyA?husH&w6HyARk8I&rfB*ib(j~L z3w!|Ev(74ZLbdFF=6e55&Q9}4Sqs%>l2hH1MaW2x4}dalg=%St(_Sncs8uq(7jdz1 zPmpdGu!>J6Y~Q#3R+QhDxjqp-0gbi4GH1z>5VT2UMuaxRki>qUXfGlb-pLU^w&kZD zu{-8|>b`hl$@Rg9zYmAh@#l#B*Wc(TP~ZQ-$XpP<3Jb#}K#wT@wHM|9_&)Fp!o?=M zX8%7aGJHTS816R_Ff#|isX@3;#uD!T;S+!hSmAgeK)`|ze(dl8dBFl^P&24GxJ-N5 zWl0{-Z(cX+MyvWGTeBdvAYoBL}@u2=_Vug2m zkb$cKEx%qY>Bp3NjW~}_UB8(|nf8NuoOKoSBZ+}$#dQF}U=xQ%=?|AigNj6gnoOBS z0$POiag=?U;v^p5qkV5G zjaIzAIM$E*d;NCYsOmInJL2QSp}pq^>JLIP2JW;RlL&6=uKJY(`HP~O1QZ_(dqsO& zTa-wwTDb!jwZs4MJzVVdeHk9saLmbvU~y;DE}!yB!#VqOKHyp? z@^RLPT9Q**TlZm9fKT1PN@5~COyWl|SMRXC{;A;yxuW@cOVf`>keUNmilPfY!~6gQ zJCm6ZWweiTKZO}-4gB7d$=qEn%6+n+d(=6I%5pSrS1@RqZkLZRSFUCyw@C6zc{hrp zaO-+Tb+SfKp`&bj(38jf9J1{%j#jww-VfsU?q889(BCLK%fcC@zupJB@gTwCEAkMR zITy#BXXI?wtnoEDY$@bWakV_*NWXoKq|jmUJ1xpT9$-EtV;4lRknpjZYyG0F@(2P& zh}pU}t|jXbyBD{15B~0OHP0HcDj&Spj&abBAje&}$Ziq^~DWjb3R5Nzp0PkC{Zl+wUHT`mbVO4_nH%llGynDOnf)Gg$o4 z{=Ii3{6YWwze`OxR124H!9Z|VIS9;eVGc2e*L86I6<+-b!oWZ{18Ttsr(ogdDF6!N z<>iO)^T8!yP!N26JJcLLhg?f%Mr~+hT1}C2Y(ue3UPY%;E0RZbOkRa;RDo-Xi(6rk zhij7KH*1hQMc!~B32~5RP%b|U5L_cI(V&;dk2|8Q^2U~ZfQMb<{0=)37suJ{7Uwp` zrB1*FwOD6h$o9{>P>!fPx(Fdx4;T)Ge8wczIk!x3e;ai5P51~0?;Ea1bt0T6&Cd_(>}n&7>r zOGaZZw6U`7>hTvfXq&6-upr<_Th1TO_0a&jcRh&iznj-M6ZLoyp=P)ok?T)7Zl@Zp{1K}zez5@5k&DV9Fcmq2uM}6A<6rWGqf5;Vi2lW(2qh7bG`O2%2 zdDG`Ccm>9<#aPA)A0!jT!-9Tn{r-n8;TLi(rpZ9w;So(T_|qDKS{HUDk=|(VLJ2|6 zI~rMSK@^nO1jGLRe*2y>L6Dp9-o+=*7#gQi%tO}9`Gx*?S`M+A?}W0K8eOpjg|y2l zc536}g?+)OcKh3?9w?p{uw#P-Oz46mRaZ}yD-m{mq)6s>J$&E-xrez>=cEAc(sAll zO|kRsup`N=^T3bae#2I{TH_I$m)@<3zc}wQZ}6DO1YLszc{ce?^UnH0(ZZK|#}GDg z&VunOsr^xFA((p)_<)e{2VY%=?kmK3Y-6yRLL$X_%C}Bq5RFGr$(y^BNv>#L9Ttr$ zBT|&33MuSArf3eB+gYy5@nG(paLRr{2*M*0&2JX0oXR?4WSn0Tem6T0!5Dy3DqCk z{Or7yL<^t@4p3Dc2$t>N3pA_{+u;v}^;K`}MkT`CNc>Mf-k?o_u(SZue=a57J(55I zrB{kkveE>sUfurv`pVwT877L})91PF|I02i7u%f!Bc!u6^lw`8(cgC-t6jgGE?3=W zjR~)O<3DReD&mUl7(P1RLt)`yNHW z2#Zw2%A1l6yAzeOS%w}two9Y=KCS1B=!tnL6=S4v`7iljaRfQ*Q3O$C7(&wD3kU}1 z{FfPV;hZmW%EB%y2SLcs;|u8bt)oVct9dI#7%1;TjDk2cfpzmRq z8cu%D^M#%>9SSy>#+^FpXr$p`t6IQp#OnuTP`(jXp#xc2v<7$%;@ci!$X5xWZw*GM zsLbZxqIWJ)u@Iq9m2%zLR}wPH$UHg`yxZ|}-}AD#N)pw)baM{2a&k>1E$(XlSBKJh(=&_@jy|ijOR0wR(s;OvnFWzuvCa66*d-L{OQS{%G6YAPepGCF zmx8%|Z@tfaPEyG`i9jHrLQ@P(SezHqFxWW7Jf%2hI&{Lf@nHRdo1a;}GOQKKu}m;N zwv6necq00T`8bEk+nTs3_DlSP!e4K$w9cPou3Kec`&l*}?^XTn z0r@NsZ(&xWtj*ReRq3gNJia(Y_}O;yTAXh!{CR zyrhPx2Z=%~v)ABS*h4o}9T4wRMv5h%%s$RyIy>DI-Br!?nulyQ@fDvkd94L2p|I=L zOh3u<aMWQoE90x9P6{v0#Tfx~sq(nx z!>S3m5FVD8V>}CFVu7lFoK6%n%;|$%!v=U}1yik*fd||l+%4z{H46_3 zpSD>$oMBK*&qypP7??J1VtF>4YIbpG8{_ZoEx_-H^dnQGbHb~{uhAo_*IXBAlNXR? zYxCcouF$A#9@H&wNRECX??iC!LZ4J^ApIy2GAg&oOidv23;4?caOd%@QG+?3@+fYW zh=-Pc`1}F&o<`D;SvxkT%k<&aKvPA*#(??S314*uct&H{;i z7#hMKIR3=hzw}T$g$5|lZHjg3mAC02PTeFeINL1YK@&KsM+4|vVSSxrdXmgV=|9YP ze7ZgzioQxh-zMu~uYjtP8o8pi%~&=1XB=$kI?Nn104y6oR>|Pb_b__TD0N^myV632$vAs-)lZE?KU} zJIW`W?$g|Go4-->**qLC0mIWY)>H^OdQwGw86ygqJi@yewG6*Ib1p16j}2{vKw1S) z2_ZcwD~WY$An%h`dLb`NJ4$MM#DhmPV4sWV3N7h$Z)in|X10}3xI$~5t1Pk|QH)Q| zdL#@#Xp_7jfL)K;LJfMja?+m7u4|Oe!M{+6*B(4{^BVC5BP)zN zB~*TDvldo*kFu$V^ZmYVlNuno47k1-7>9Byc83W}qCB)RHl2yRIwE8Gda3e~|1{ z^t)7?IPWtQyeavd%JjlR0x(PB6NU$qPEDBJKZym!cF6Ym_*dmLSGe z@n=tZ%_2B~b-(pV6gU6mkKS$}&-vw3KYiaQozn4Ons~D%$fDT*hh4+w}$ukbuR6$&1=Mq*_ zVh;qQ$-q3KE17NpUrr}EGjcFPTH%IWmXQCSpta;*pwNeDNCF7(;>M7I=d5E#k{i@# zXB)i2Oqh=Y1z9Pgd%dBI{G96EFd|w4J+=g7 zKJ*|D1tD@CZ}?+3(Vd^yk&t#9=iHHIb?I5DttY}%GOk{3s#I_Yc422MC&j?Xv@Qg% zi~=oMA_XXCRvOnn(80H?;aGW2y$7$vm4t^1oe?Z9e=vP%`nYudhROU`b&~OxVoX+X zRj-%h1v3X8hDe4)^~`B^MYJ>t)RPbhHhSlqr{a@gHC${1h7V#lWj1<5u7+nFwme`9+0 z<*qe@Mvz+l?x>EbWI|+R^X-cMga~TUDNVCFr}q}8kkZ7tt62gMZWf`8t_=3cR?~~H zq`^ z{Y{p%Y_P7gk67*+atGKNbAT~7k^pdZV&YhkBJvOghyhCV}FVo`%wxJKw z3Doh$+&3XUrRuBs`#DHwtYZG+XT#lpV$2Qo4Yeo9JMUEwBPA7MYg5$&gwkPyV3Pz$ z;V?N^Nty1xa zjC+Q1GmZW{W8k85Xpx^3b5P@6%t&h>_5AA4L{_uHvaJC~BEB$Vf{sPbCe#g&Z8Y#q z73_VWKmky^%XJHTnigMW@OauE3XLGNyc}RU-k~b8>^9+Y@llvQ1Q+SZfCeqEjWh zNFYpUdJa=On<1$>*ZL?3F_6Fz*+FWfE{V|cs#K9gu@%u_y4pr|4btRc)nwoq?tuit za7rCu8QRllvr~)nMI)CgXB3F9?E$d0)J|k+F!Vi*K^RrGc-Og4Sq?t;FWHz0sxy4S z_H|r>QK5&Kx-KHFNy{|dRA8i}1YtzP_GXMQGs^4Yy0bbII@JmgVIom7GPl}%L8&Oy zN@^FttHv^3mbFwj{!k*rM39<=K~hb0hh1FLUjhQ(@Wr+x0kRHiQt@lu%OX(gM1vu% zPANn`dUn#8zqSekh2_AIy+VM2zVIR`%KW&7bI~UWuT)y51$(`k%AF~cLcczb3y%6# z*sS;5NRDkMDg8H@PQ%A+ZCqnI&SwgZHjC%?uAdC5FkcsvG?Ec{iX=|%yAnR|Cm&4% zCKt8#PPf(lUXNjuM&3&1>lUlH%q{l>S zX2NX(L8=*O1nf}_CBBmj0x%Mlw;r_~&4edtEoT&!6Y`Et^Dzf^!YAXetJQRldOCkR zMnl^72OPh7Bj9SLRlyErBIl+~4lgAgo|)4gMY=AjlInDExjlH8Rn3LLrQ|IxmA_Jx z_kzgbS?5@SrnP=SQ0xO3gmyV10&*Em$MVN)h4`I3oT38CBgccI8?bo`tRkqMP4?gT z8Cqxwu%9~Gsfh#V&K;Naj7;6hv#%|QX^#nV%MHy3b&{=OKTrTsPy}D}T3&t`4l&yN|E^MdW-<3=;7V&l@ z;EQ751YqN8Nv-o@k)_ogOBQY2-#_QqdR+9?!@Q%r=~2faIZy`eN3W0@Ej*uz!AP<# zJ2gG<-*X{3{hF2mIy;W*tULT38z&K_eKo$Z8ZV<0$1!yE_jG*1^AFRe|9IL4MV8#J zwDWx}$W1S6tDWR^7k#{j-yF#>do_Z5z!QRB&BJq&i9Yx~8wYjGzciCz>gRJ%v19r^ zD8b=vv(va4`j3`gGb6gxjR ztBlCT=91pbd2+^25F|@!&4s%Jugk)45YCS3c+W1NfWS!R-z z;$t+|wP0uzuOf*XqMsR5=CM@67c9O2at&LtA`I}H2&i4oewm^j)AP|IdTMJrw#Bfa z1((RmDD0Mz<6fb0m80_)@7ZAYpKo68z0B#s^@1r=+;=N5Xx|l~sA?1b6o+lx4KlwK1|XPQ9#X!VgMrv<*62+P!U*bdCf_K3Y(Td=#saH`+iq$Ao_fA(h`fIwgB zI4Y@Y>leh<%&ed3aa8JVQ2^{i!Gf79=B%TpK6?@WCBKxD)%e?1_8bFF%%9+<-1g%C z;TTqZA1WU++H@$AU0#!tEB@(zglFsEhMEU&h5N&M-1}PPtFGO{0lK7mysrqt^P~wd z8m+!_>cfHQVgvJRAA^#`uB%pud3GU%jj01SIp&DLx+e2ulya3Dh1%hYt3YIn@pSy1 z!HTY?=TwC@i44(PSvQ=ng7jmhOu3QAEME*Y!Q-5J9xwk;ph*fc`U-r3(+z`GZwrkQ zj+(;=q5Bnqcv;VjAwvQAqQgclJ1{aM8yXNb*|+orl8<-Lz>XducnisEfDfngcH2Jk z%v`#XCN()DDrzlX-g(G_GR`y0X;>o@gjZlHOc$Vph%SOca=u}%!6|JHUFPX%+^sx= z(WKJ#R=s3_B`#L-_|4>q%%>%EZFHrqsY!fP!E$%!^o;pb;BxcSuo!^+OTl(PJL@87Y)on|$!%Icq6?o5r@Nok ziE{+nZ8{OV*`0PdU=~$xLohcM-}wj-q_42uZgd_>2q@6F$lbQ++Nf#3&Q$Rv0`xwQ z)MIA{X9Jy$PHA1I>}KfGLMrI=rLGp6W`8wsHzezR$;?gp$SytwA2X4?=| zw=Jt9))a5EDaYzPUi)yf%HIjyfPKY1o$3^m{M$uYDsgZXvygy(F3ud+aZXqdF%z90 zg4(I$%PZ_94!vK8~i4W>ZPEv(I2F!A2<=~RYE@y#CRsV46_ zuUz{Y)ibff@ig|8X-N5v{JW@S1<3L+8b5T;*{ZF;=huz~<5>m`t4IqqFC=1kJS;E3 z4!9WQkGtw|>f8pH8a6<*Yzt#LnqdQDEHW;y*&OysDaZ%dYaM~!@DSfIa#S*E6e&9& z7H_>DoL}Zq(Ajb2c$(3{atVk>Mbap?YW;Ec^9TQ`dxr!dpOl@0gs3lVOH!0dxO-S; z4^Y>!?fs!n$6IcekLn-Nni-1ljPd)RwTI!IVJ&{v6n+r!XEP4=v5f*FR&~@m`4{*5 zQxp0ElAIo{?t;l-@!RZ6SLRt3sKNc>$Kp+9LmANQF0QZ zvk6LwDZ(8B!*tAd_NKf)gHjm-hm~#+PB=fCQ5m9_7Hsrjhz$#rVhq@y+cp6MM|Fsl zp*AlxbdORv-mZ|6p8%`1bOdn%ilhaV|g^UqPWxh(=c5wp;dEX$XN zToB5%+Z`vIY0^L*P+>Is%CmEfx3PxMl)7BfI!{I>n*gWPwD+(>X-oG$M$>96eF-jG z7!sQ9=uhtau&p#*iKAICnR3-FWB#PGZL45U(|MYSLsLC-ZA@Oe@Wjvx^=B||_iSuo zX2#IU1i^NfpdB=sc8fXnI9fbbgP&9_u%KMVdF4e4>Lz6y*7f$+VN-2=@aMZy&0}j9 z{7bh_1nhW4+StfNqZOZFJfM?Qw`#HgzuCdPjKEWLL7g^^01F%e{|LeJBd}TbGUDWG zYt_T*jqIoOEd{K;;?5?lbQ%>BXCT>R=ZZIIiSdiT2;&hm5SG4Ju)rC|0}q}wvx;)3 zuk~W_vQV&_LG+}_j2kTNPb3@E?}YVf&Ek47MFS(e;v>vs3z6@*Yu-L z;BEpdGb1{1L1{3m9*y-T0klM^nmux2DgoJDpVLVKH{I7Cli+Vls?;!N@)1%Kp-Q`S z(M;u{U-p0=6aP@uq@#K7DU$;_&k`uaDlb6NUgmf%f?A)!W=jFi1v)47b!+qB;oj|2 zlVxfBteg?P+_)~5VR5pv@LgV|cgEfEC`vj%h)7dW>tI_mKx&b9&`BjT_w@^rt4704NH?Aq( zRE?sF9!><1N9pW`722YNRby?%IYH*G0M?^B+nqGYn#)1yi!j4IprR9Qy^gcu?4i9z zOvL_KJ;(Xs+ReF1RS25UEeT9nX9Vd=FQSg=iWtMR&#8^)YC1YHv;MRsIEc) za$%4JgUI1yyIf^bd2A$CjFm2&*0Th84ew-LilqM^=~U%9F@f`ox9#Ejzru&Vw4VQ% z)A~%ztVX{ABt|1TeRg_=Us;Pj`)@!||CisxM$c-@VDjr7X3WB5L~lrEY{2jv+x^vS zvC=WqGhJy|JMOdn{jS!X`=_bNOdAHifoAAzS^WuOJmFjvg1GXM$EXT z>$7#A(L0Ra(ANIpO94W~ZPB7pb)Bri`)OyT|2+N&@FyQRB*uH!qZ@jow+Als&&3-w zEF2ev_Rd9bjt>|mZ{#$tQ<44l;^TuygK<;xGK_sjRmbtJEul~__DaO7`x6`VCMdMq zE{Emq{!}D*?c-g*Z0&=`=ib2KHQp2_|ACBUskQPF(`V|R2yE_3Tr`h|t)MQyN-2*7 zZ=cm35F?af!Vca>@GVO;+4qC%LQ6OiL0?S|JMLOuM6K)h$@}9QIvCW??I%49&^xYh z;AyHeo?`$az;7lW6Qfa_cCRhZzd@06E$kEO~7e_Cz0k`3JvOjzAEkDhP=FfUuc zl#q-<)oAQRbez2QUh7d*gKF`L;|sPyja1GHw@zm40zHctDnV8s#Rn1KP(Sp&Z>xAGJ zBBG$9e1*M|Mtq<2XmB!F=7Pb$;y|8$PsbUqQy~?)_NVw(cf>kO;H`Bv?c8?2v>@)j zWgn=fCnqPiGrHAuvs6LBRKr=3YVSnxquv#-9X~3{asT9V=o9E4oo^hwUp~Z5blmMC zm8&w1J9QEg+fd_*;uc}1^>IXZX;WVN)}H?|J0d7J>D@{)YnOp|MvRNUg2T!j+Qy~| zq~n=15C&3v)86tgQCAq8&bU+k!RB!i{h|%Z?yGg-M&3#IPEvytH#ge3w2kn{0cIj# zi5xb1EY1=zxY_O+tU)b#*+1|xcmH+EzuAI9z1KxNk9gpcYkK+dC7j@esNqGl%unj z84!d)@K@Ej#W={6LJvd`*{De6SnhT!KyI?=s6rzFmgRnEWRyj1Dp&b5%q?$UPt=W< zKEt{o=$1p{h@72j#YcrV*$-eB1z&ut788O&qh^m@t$!ZL1efW?)uRjX)SG4I&yYt% z^#kyH*TUqGcBD-W(U<9MsAGWAj7{hWG2)!{!#v4|cSOv$AeC1X)rcq_diE%4)EBFc z&mden*bgC@RxW8+d>s*{+67v*3 zsSQ`CgxOH**e2UOy$WoL?lmP>^2#1$lvjd_&hDV^ARI6sJvo7NYcB_Ac&{J1RSl&a z=|-$XG3+!wJ~7}ny^4r`Ke;v${kVTu#eZ7fEx9|pb}>c{H8dQe0)Brmv{$T!i}+IHu7>y$88X}7XE>H*HEYVy>(P69G&`!Z`DOL6P{dA ztQqxOF}ox2M=pb|#6KP|+jJA|>YTdB4mAUqSHIWzzCdv%%iZ1C6R`fIz+S_AQK!x< z%ltT1ZhyW1koCxL%lg4-mTYx*!xK$XuxB>wN0WsQeV!oQs6iW7IR{U?V;ZqcZk>j| zMK61>hNBPgJ%#KRk#p3qhjm+pC>J2QmY#-7X!@-%o6vHV*ek~1=(N2Xp(WLe>Ojj% z#ZhWxK4i`Z>l=hA63u!-E;m{*$3VScrIBnN=AB5{PmjP`24OcL^@h(Owl*Q+bt!xK zP5M<2{DpTL5G@^sKQ70Sn37rbMk4-K-r~#;+$kTK0;W24-TBH@iy+v-<=EpwG0&)fzGo&5Df4;7qOsJE*TJpITvv0QHol zY6u~_yjc_M%`*LoDhF%0p*KceR{n*A_1S}Lv1`s}!|W3zVa{41Yfij^d?@`aB&>?! zQ%rCK;W7%r{D;#SH6Emse#!1TP$iVod`)D;+4S*sdgV>GpKZosX63A zq>x{{CnEVXNn9quHi_sTktJtVR9+(JH>KnZYq{h_|FuR zwA?5iwS|stdi&h0M)G>IMtaξ^^JQ?X4W)j*@hRHe7+efkxPprWJC%p44L{UA5} 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 literal 0 HcmV?d00001 diff --git a/tests/workflows/test_kkr_restart.py b/tests/workflows/test_kkr_restart.py new file mode 100644 index 00000000..7aa3ff9b --- /dev/null +++ b/tests/workflows/test_kkr_restart.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python + +import pytest +from aiida.manage.tests.pytest_fixtures import aiida_profile +from ..dbsetup import queuename +from ..conftest import kkrhost_local_code, data_dir, import_with_migration +from aiida_testing.export_cache._fixtures import run_with_cache + + +# tests +def test_kkr_base_restart(aiida_profile, kkrhost_local_code, run_with_cache): + """ + simple example that fixes the R_LOG error + """ + from aiida.orm import load_node, Dict + from masci_tools.io.kkr_params import kkrparams + from aiida_kkr.workflows.restart.restart_kkr import KkrCalculationBaseWorkChain + + # load necessary files from db_dump files + import_with_migration('files/db_dump_vorocalc.tar.gz') + + # first load parent voronoi calculation + voro_calc = load_node('559b9d9b-3525-402e-9b24-ecd8b801853c') + + # extract and update KKR parameter (add missing values) + params = kkrparams(**voro_calc.inputs.parameters.get_dict()) + params.set_multiple_values(RMAX=7., GMAX=65., DECOUPLE_SPIN_CHEBY=True, USE_CHEBYCHEV_SOLVER=True, R_LOG=0.01) + params_node = Dict(params.get_dict()) + + options = {'resources': {'num_machines': 1, 'tot_num_mpiprocs': 1}, 'queue_name': queuename} + builder = KkrCalculationBaseWorkChain.get_builder() + builder.calc.code = kkrhost_local_code + builder.calc.metadata.options = options + builder.calc.parameters = params_node + builder.calc.parent_folder = voro_calc.outputs.remote_folder + + # run test + out, node = run_with_cache(builder, data_dir=data_dir) + # check if two voronoi runs were done (one failed, but was handled) + assert len(node.called) == 2 + # check if cluster radius has right size + assert 'output_parameters' in out + out_dict = out['output_parameters'].get_dict() + assert out_dict['convergence_group']['rms'] < 0.18 From 9a935d8e898a7eff3c4af1cdd98e03521186f3c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20R=C3=BC=C3=9Fmann?= Date: Tue, 6 Dec 2022 21:09:21 +0000 Subject: [PATCH 4/7] Minor improvements --- aiida_kkr/workflows/restart/restart_kkr.py | 1 + 1 file changed, 1 insertion(+) diff --git a/aiida_kkr/workflows/restart/restart_kkr.py b/aiida_kkr/workflows/restart/restart_kkr.py index 6693a0cb..862cb706 100644 --- a/aiida_kkr/workflows/restart/restart_kkr.py +++ b/aiida_kkr/workflows/restart/restart_kkr.py @@ -63,6 +63,7 @@ def _handle_rlog_too_small(self, calculation): params = kkrparams(**self.ctx.inputs.parameters) params.set_multiple_values(R_LOG=rlog) self.ctx.inputs.parameters = orm.Dict(params) + return ProcessHandlerReport(True) except: return ProcessHandlerReport(True, self.exit_codes.ERROR_SOMETHING_WENT_WRONG) # pylint: disable=no-member From fbb3edb34779e8fb03f6aa3a886a4957e90125c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20R=C3=BC=C3=9Fmann?= Date: Tue, 6 Dec 2022 21:14:25 +0000 Subject: [PATCH 5/7] Activate KkrCalculation restart test --- aiida_kkr/workflows/restart/restart_kkr.py | 9 --------- tests/run_all.sh | 1 + 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/aiida_kkr/workflows/restart/restart_kkr.py b/aiida_kkr/workflows/restart/restart_kkr.py index 862cb706..13d9d8b7 100644 --- a/aiida_kkr/workflows/restart/restart_kkr.py +++ b/aiida_kkr/workflows/restart/restart_kkr.py @@ -66,12 +66,3 @@ def _handle_rlog_too_small(self, calculation): return ProcessHandlerReport(True) except: return ProcessHandlerReport(True, self.exit_codes.ERROR_SOMETHING_WENT_WRONG) # pylint: disable=no-member - - # @process_handler(...) - # def _handle_something(self, calculation): - # """ - # If calculation fails due to time some reason ... - # """ - # ... - - # return ProcessHandlerReport(True) diff --git a/tests/run_all.sh b/tests/run_all.sh index 4bd9350e..01ef20ef 100755 --- a/tests/run_all.sh +++ b/tests/run_all.sh @@ -124,6 +124,7 @@ elif [[ ! -z "$GITHUB_SUITE" ]]; then ./workflows/test_kkrimp_full_wc.py \ ./workflows/test_combine_imps.py \ ./workflows/test_voro_restart.py \ + ./workflows/test_kkr_restart.py \ $addopt else # tests without running actual calculations From 1d076d8952aa32e4d61700ee4d0b4e5b81632045 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20R=C3=BC=C3=9Fmann?= Date: Tue, 6 Dec 2022 21:50:26 +0000 Subject: [PATCH 6/7] First version of KKRimp restart workchain --- aiida_kkr/calculations/kkrimp.py | 7 +- aiida_kkr/parsers/kkr.py | 2 +- aiida_kkr/parsers/kkrimp.py | 58 ++++++++++++++++ aiida_kkr/workflows/restart/restart_kkrimp.py | 68 +++++++++++++++++++ tests/workflows/test_kkrimp_restart.py | 54 +++++++++++++++ 5 files changed, 187 insertions(+), 2 deletions(-) create mode 100644 aiida_kkr/workflows/restart/restart_kkrimp.py create mode 100644 tests/workflows/test_kkrimp_restart.py diff --git a/aiida_kkr/calculations/kkrimp.py b/aiida_kkr/calculations/kkrimp.py index 6e603450..6495f1f1 100644 --- a/aiida_kkr/calculations/kkrimp.py +++ b/aiida_kkr/calculations/kkrimp.py @@ -182,7 +182,12 @@ def define(cls, spec): # define exit codes, also used in parser spec.exit_code(301, 'ERROR_NO_RETRIEVED_FOLDER', message='Retrieved folder of KKRimp calculation not found.') spec.exit_code(302, 'ERROR_PARSING_KKRIMPCALC', message='KKRimp parser returned an error.') - #TBD + spec.exit_code(303, 'ERROR_NO_OUTPUT_FILE', message='KKRimp output file not found') + spec.exit_code(304, 'ERROR_NOT_ENOUGH_MEMORY', message='KkrimpCalculation needs more memory') + spec.exit_code(305, 'ERROR_TIME_LIMIT', message='KkrimpCalculation needs more runtime') + spec.exit_code(306, 'ERROR_OPENING_OUTPUTS', message='Kkrimp parser could not open an output file') + spec.exit_code(307, 'ERROR_CALCULATION_FAILED', message='KkrimpCalculation failed for an unknown reason') + spec.exit_code(308, 'ERROR_RLOG_TOO_SMALL', message='RLOG too small for Chebychev solver') def prepare_for_submission(self, tempfolder): """ diff --git a/aiida_kkr/parsers/kkr.py b/aiida_kkr/parsers/kkr.py index c396e151..24b9e7f2 100644 --- a/aiida_kkr/parsers/kkr.py +++ b/aiida_kkr/parsers/kkr.py @@ -222,7 +222,7 @@ def parse(self, debug=False, **kwargs): msg = 'Automatically returned success=True for KKR importer although some parsing errors occurred' self.logger.warning(msg) - # check error + # check error file exit_code = self.check_error_file(out_folder) if exit_code is not None: return exit_code diff --git a/aiida_kkr/parsers/kkrimp.py b/aiida_kkr/parsers/kkrimp.py index d3d40a4c..836db8f4 100644 --- a/aiida_kkr/parsers/kkrimp.py +++ b/aiida_kkr/parsers/kkrimp.py @@ -132,6 +132,11 @@ def parse(self, debug=False, **kwargs): # create output node and link self.out('output_parameters', Dict(dict=out_dict)) + # check error file + exit_code = self.check_error_file(out_folder) + if exit_code is not None: + return exit_code + # cleanup after parsing (only if parsing was successful), only works below aiida-core v2.0 if success: if int(aiida_core_version.split('.')[0]) < 2: @@ -236,3 +241,56 @@ def final_cleanup(self): # finally delete files that have been added to tarfile for f in to_delete: ret.delete_object(f, force=True) + + def check_error_file(self, out_folder): + """Check if anything is in the error file and get some hints for error handler in restart workchain""" + + # check if something was written to the error file + errorfile = self.node.attributes['scheduler_stderr'] + + if errorfile in out_folder.list_object_names(): + # read + try: + with out_folder.open(errorfile, 'r') as efile: + error_file_lines = efile.read() # Note: read(), not readlines() + except OSError: + self.logger.error(f'Failed to open error file: {errorfile}.') + return self.exit_codes.ERROR_OPENING_OUTPUTS + + # check lines in the errorfile + if error_file_lines: + + if isinstance(error_file_lines, bytes): + error_file_lines = error_file_lines.replace(b'\x00', b' ') + else: + error_file_lines = error_file_lines.replace('\x00', ' ') + + print(f'The following was written into std error and piped to {errorfile} : \n {error_file_lines}') + self.logger.warning( + f'The following was written into std error and piped to {errorfile} : \n {error_file_lines}' + ) + + # check for some errors which we can fix automatically + if 'STOP Error creating newmesh!' in error_file_lines: + return self.exit_codes.ERROR_RLOG_TOO_SMALL + + # here we estimate how much walltime was available and consumed + try: + time_avail_sec = self.node.attributes['last_job_info']['requested_wallclock_time_seconds'] + time_calculated = self.node.attributes['last_job_info']['wallclock_time_seconds'] + if 0.97 * time_avail_sec < time_calculated: + return self.exit_codes.ERROR_TIME_LIMIT + except KeyError: + if 'TIME LIMIT' in error_file_lines.upper() or 'time limit' in error_file_lines: + return self.exit_codes.ERROR_TIME_LIMIT + + # check for out of memory errors + OUT_OF_MEMORY_PHRASES = [ + 'cgroup out-of-memory handler', + 'Out Of Memory', + ] + if any(phrase in error_file_lines for phrase in OUT_OF_MEMORY_PHRASES): + return self.exit_codes.ERROR_NOT_ENOUGH_MEMORY + + # Catch all exit code for an unknown failure + return self.exit_codes.ERROR_CALCULATION_FAILED diff --git a/aiida_kkr/workflows/restart/restart_kkrimp.py b/aiida_kkr/workflows/restart/restart_kkrimp.py new file mode 100644 index 00000000..499b4604 --- /dev/null +++ b/aiida_kkr/workflows/restart/restart_kkrimp.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +In this module you find the base workflow that defines the restart +functionality for the VoronoiCalculation. +""" + +from aiida import orm +from aiida_kkr.workflows.restart.base_restart import CalculationBaseWorkChain +from aiida_kkr.calculations import KkrimpCalculation +from aiida_kkr.tools import kkrparams +from aiida.engine.processes.workchains.utils import process_handler, ProcessHandlerReport + +__copyright__ = (u'Copyright (c), 2022, Forschungszentrum Jülich GmbH, ' + 'IAS-1/PGI-1, Germany. All rights reserved.') +__license__ = 'MIT license, see LICENSE.txt file' +__version__ = '0.1.0' +__contributors__ = u'Philipp Rüßmann' + + +class KkrimpCalculationBaseWorkChain(CalculationBaseWorkChain): + """Workchain to run a KKRhost calculation with automated error handling and restarts""" + + # set process class (needed by BaseRestartWorkChain) + _process_class = KkrimpCalculation + + # list of exit codes we cannot handle automatically + _exit_codes_nohandler = [ + KkrimpCalculation.exit_codes.ERROR_NO_RETRIEVED_FOLDER, # pylint: disable=no-member + KkrimpCalculation.exit_codes.ERROR_PARSING_KKRIMPCALC, # pylint: disable=no-member + KkrimpCalculation.exit_codes.ERROR_NO_OUTPUT_FILE, # pylint: disable=no-member + KkrimpCalculation.exit_codes.ERROR_OPENING_OUTPUTS, # pylint: disable=no-member + KkrimpCalculation.exit_codes.ERROR_CALCULATION_FAILED, # pylint: disable=no-member + ] + # common exit codes for which we know what to do + _exit_code_memory = KkrimpCalculation.exit_codes.ERROR_NOT_ENOUGH_MEMORY # pylint: disable=no-member + _exit_code_timelimit = KkrimpCalculation.exit_codes.ERROR_TIME_LIMIT # pylint: disable=no-member + + # some boilerplate code needed to set the proper exit codes to process_handler decorators + @process_handler(priority=1, exit_codes=_exit_codes_nohandler) + def _handle_general_error(self, calculation): + super()._handle_general_error(calculation) + + @process_handler(priority=10, exit_codes=_exit_code_memory) + def _handle_not_enough_memory(self, calculation): + super()._handle_not_enough_memory(calculation) + + @process_handler(priority=20, exit_codes=_exit_code_timelimit) + def _handle_time_limits(self, calculation): + super()._handle_time_limits(calculation) + + # additional calculation specific process handlers go here + + @process_handler(priority=30, exit_codes=KkrimpCalculation.exit_codes.ERROR_RLOG_TOO_SMALL) # pylint: disable=no-member + def _handle_rlog_too_small(self, calculation): + """ + Increase R_LOG parameter + """ + # try: + with calculation.outputs.retrieved.open('out_kkr') as _f: + txt = _f.readlines() + rlog = [float(i.split()[-1]) for i in txt if 'Rmesh(IRMIN' in i][0] + 0.05 + params = kkrparams(**self.ctx.inputs.parameters) + params.set_multiple_values(R_LOG=rlog) + self.ctx.inputs.parameters = orm.Dict(params) + return ProcessHandlerReport(True) + # except: + # return ProcessHandlerReport(True, self.exit_codes.ERROR_SOMETHING_WENT_WRONG) # pylint: disable=no-member diff --git a/tests/workflows/test_kkrimp_restart.py b/tests/workflows/test_kkrimp_restart.py new file mode 100644 index 00000000..a48f8ae0 --- /dev/null +++ b/tests/workflows/test_kkrimp_restart.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python + +import pytest +from aiida.manage.tests.pytest_fixtures import aiida_profile +from ..dbsetup import queuename +from ..conftest import kkrimp_local_code, data_dir, import_with_migration +from aiida_testing.export_cache._fixtures import run_with_cache + + +# tests +def test_kkr_base_restart(aiida_profile, kkrimp_local_code, run_with_cache): + """ + simple example that fixes the R_LOG error + """ + from aiida.orm import Code, load_node, Dict, load_group, WorkChainNode, CalcJobNode + from masci_tools.io.kkr_params import kkrparams + from aiida_kkr.workflows.restart.restart_kkrimp import KkrimpCalculationBaseWorkChain + + # # first load parent voronoi calculation + # group_pk = import_with_migration('data_dir/KkrCalculationBaseWorkChain-nodes-706d766ad8897a8e0a5dc48d3b07320d.tar.gz') + # import_group = load_group(group_pk) + # kkr_restart_wf = [i for i in import_group.nodes if isinstance(i, WorkChainNode)][0] + # kkrhost_parent = [i for i in kkr_restart_wf.get_outgoing(node_class=CalcJobNode).all() if i.link_label=='iteration_02'][0] + + # # now create a SingleFileData node containing the impurity starting potential + # from aiida_kkr.tools import neworder_potential_wf + # settings_dict = {'neworder': [0]]} + # settings = Dict(settings_dict) + # startpot_imp_sfd = neworder_potential_wf( + # settings_node=settings, parent_calc_folder=kkrhost_parent.outputs.remote_folder + # ) + + # # set 1 simple mixing step + # kkrimp_params = kkrparams(params_type='kkrimp') + # kkrimp_params.set_multiple_values(SCFSTEPS=1, IMIX=0, MIXFAC=0.05) + # ParamsKKRimp = Dict(kkrimp_params.get_dict()) + + # # create new KKRimp calculation + # options = {'resources': {'num_machines': 1, 'tot_num_mpiprocs': 1}, 'queue_name': queuename} + # builder = KkrimpCalculationBaseWorkChain.get_builder() + # builder.calc.code = kkrimp_local_code + # builder.calc.host_Greenfunction_folder = GF_host_calc.outputs.remote_folder + # builder.calc.impurity_potential = startpot_imp_sfd + # builder.calc.metadata.options = options + # builder.calc.parameters = ParamsKKRimp + + # # run test + # out, node = run_with_cache(builder, data_dir=data_dir) + # # check if two voronoi runs were done (one failed, but was handled) + # assert len(node.called) == 2 + # # check if cluster radius has right size + # assert 'output_parameters' in out + # out_dict = out['output_parameters'].get_dict() + # assert out_dict['convergence_group']['rms'] < 0.18 From 2a1afabc62b6b062a7c4869808919dbf713d10f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20R=C3=BC=C3=9Fmann?= Date: Wed, 14 Dec 2022 20:46:15 +0000 Subject: [PATCH 7/7] Cleanup deprecated code that is not needed in aiida-core v2 anymore --- aiida_kkr/calculations/kkrimp.py | 7 --- aiida_kkr/parsers/kkr.py | 29 ++-------- aiida_kkr/parsers/kkrimp.py | 96 +++----------------------------- aiida_kkr/parsers/voro.py | 12 ++-- 4 files changed, 19 insertions(+), 125 deletions(-) diff --git a/aiida_kkr/calculations/kkrimp.py b/aiida_kkr/calculations/kkrimp.py index 6495f1f1..df51e3af 100644 --- a/aiida_kkr/calculations/kkrimp.py +++ b/aiida_kkr/calculations/kkrimp.py @@ -168,13 +168,6 @@ def define(cls, spec): Note: The length of the theta, phi and fix_dir lists have to be equal to the number of atoms in the impurity cluster. """ ) - spec.input( - 'cleanup_outfiles', - valid_type=Bool, - required=False, - default=lambda: Bool(False), - help='Cleanup and compress output (works only in aiida-core<2.0 and breaks caching ability).' - ) # define outputs spec.output('output_parameters', valid_type=Dict, required=True, help='results of the KKRimp calculation') diff --git a/aiida_kkr/parsers/kkr.py b/aiida_kkr/parsers/kkr.py index 24b9e7f2..e6c49844 100644 --- a/aiida_kkr/parsers/kkr.py +++ b/aiida_kkr/parsers/kkr.py @@ -222,31 +222,14 @@ def parse(self, debug=False, **kwargs): msg = 'Automatically returned success=True for KKR importer although some parsing errors occurred' self.logger.warning(msg) - # check error file - exit_code = self.check_error_file(out_folder) - if exit_code is not None: - return exit_code - + # return an exit code if parsing fails if not success: + # check error file + exit_code = self.check_error_file(out_folder) + if exit_code is not None: + return exit_code + # if nothing was returned we have a general parising failure return self.exit_codes.ERROR_KKR_PARSING_FAILED - else: # cleanup after parsing (only if parsing was successful) - # cleanup only works below aiida-core v2.0 - if int(aiida_core_version.split('.')[0]) < 2: - # delete completely parsed output files - self.remove_unnecessary_files() - # then (maybe) tar the output to save space - # TODO needs implementing (see kkrimp parser) - - def remove_unnecessary_files(self): - """ - Remove files that are not needed anymore after parsing - The information is completely parsed (i.e. in outdict of calculation) - and keeping the file would just be a duplication. - """ - files_to_delete = [KkrCalculation._POTENTIAL, KkrCalculation._SHAPEFUN] - for fileid in files_to_delete: - if fileid in self.retrieved.list_object_names(): - self.retrieved.delete_object(fileid, force=True) def check_error_file(self, out_folder): """Check if anything is in the error file and get some hints for error handler in restart workchain""" diff --git a/aiida_kkr/parsers/kkrimp.py b/aiida_kkr/parsers/kkrimp.py index 836db8f4..c30dd3f8 100644 --- a/aiida_kkr/parsers/kkrimp.py +++ b/aiida_kkr/parsers/kkrimp.py @@ -132,27 +132,13 @@ def parse(self, debug=False, **kwargs): # create output node and link self.out('output_parameters', Dict(dict=out_dict)) - # check error file - exit_code = self.check_error_file(out_folder) - if exit_code is not None: - return exit_code - - # cleanup after parsing (only if parsing was successful), only works below aiida-core v2.0 - if success: - if int(aiida_core_version.split('.')[0]) < 2: - # check if we should do the cleanup or not - cleanup_outfiles = False - if 'cleanup_outfiles' in self.node.inputs: - cleanup_outfiles = self.node.inputs.cleanup_outfiles.value - if cleanup_outfiles: - # reduce size of timing file - self.cleanup_outfiles(files['out_timing'], ['Iteration number', 'time until scf starts']) - # reduce size of out_log file - self.cleanup_outfiles(files['out_log'], ['Iteration Number']) - # delete completely parsed output files and create a tar ball to reduce size - self.remove_unnecessary_files() - self.final_cleanup() - else: + # return an exit code if parsing fails + if not success: + # check error file + exit_code = self.check_error_file(out_folder) + if exit_code is not None: + return exit_code + # if nothing was retuned here we mark the calculation with the general parsing failure return self.exit_codes.ERROR_PARSING_KKRIMPCALC def _check_file_existance(self, files, keyname, fname, icrit, file_errors): @@ -174,74 +160,6 @@ def _check_file_existance(self, files, keyname, fname, icrit, file_errors): file_errors.append((icrit, crit_level + f" File '{fname}' not found.")) files[keyname] = None - def cleanup_outfiles(self, fileidentifier, keyslist): - """open file and remove unneeded output""" - if fileidentifier is not None: - lineids = [] - with self.retrieved.open(fileidentifier) as tfile: - txt = tfile.readlines() - for iline in range(len(txt)): - for key in keyslist: # go through all keys - if key in txt[iline]: # add line id to list if key has been found - lineids.append(iline) - # rewrite file deleting the middle part - if len(lineids) > 1: # cut only if more than one iteration was found - txt = txt[:lineids[0]] + \ - ['# ... [removed output except for last iteration] ...\n'] + \ - txt[lineids[-1]:] - with self.retrieved.open(fileidentifier, 'w') as tfilenew: - tfilenew.writelines(txt) - - def remove_unnecessary_files(self): - """ - Remove files that are not needed anymore after parsing - The information is completely parsed (i.e. in outdict of calculation) - and keeping the file would just be a duplication. - """ - # first delete unused files (completely in parsed output) - files_to_delete = [ - KkrimpCalculation._OUT_ENERGYSP_PER_ATOM, KkrimpCalculation._OUT_ENERGYTOT_PER_ATOM, - KkrimpCalculation._SHAPEFUN - ] - for fileid in files_to_delete: - if fileid in self.retrieved.list_object_names(): - self.retrieved.delete_object(fileid, force=True) - - def final_cleanup(self): - """Create a tarball of the rest.""" - - # short name for retrieved folder - ret = self.retrieved - - # Now create tarball of output - # - # check if output has been packed to tarfile already - # only if tarfile is not there we create the output tar file - if KkrimpCalculation._FILENAME_TAR not in ret.list_object_names(): - # first create dummy file which is used to extract the full path that is given to tarfile.open - with ret.open(KkrimpCalculation._FILENAME_TAR, 'w') as f: - filepath_tar = f.name - - # now create tarfile and loop over content of retrieved directory - to_delete = [] - with tarfile.open(filepath_tar, 'w:gz') as tf: - for f in ret.list_object_names(): - with ret.open(f) as ftest: - filesize = os.stat(ftest.name).st_size - ffull = ftest.name - if ( - f != KkrimpCalculation._FILENAME_TAR # ignore tar file - and filesize > 0 # ignore empty files - # ignore files starting with '.' like '.nfs...' - and f[0] != '.' - ): - tf.add(ffull, arcname=os.path.basename(ffull)) - to_delete.append(f) - - # finally delete files that have been added to tarfile - for f in to_delete: - ret.delete_object(f, force=True) - def check_error_file(self, out_folder): """Check if anything is in the error file and get some hints for error handler in restart workchain""" diff --git a/aiida_kkr/parsers/voro.py b/aiida_kkr/parsers/voro.py index a4f13397..d59b4a5d 100644 --- a/aiida_kkr/parsers/voro.py +++ b/aiida_kkr/parsers/voro.py @@ -125,13 +125,13 @@ def parse(self, debug=False, **kwargs): # create output node and link self.out('output_parameters', Dict(dict=out_dict)) - # check error - exit_code = self.check_error_file(out_folder) - if exit_code is not None: - return exit_code - - print('success?', success) + # return an exit code if parsing fails if not success: + # check error file + exit_code = self.check_error_file(out_folder) + if exit_code is not None: + return exit_code + # if nothing was returned so far we have an unidentified failure of the parser return self.exit_codes.ERROR_VORONOI_PARSING_FAILED def check_error_file(self, out_folder):