def __init__(self, filename_in='pyposmat.config.in', filename_out='pyposmat.results.out', o_log=None, mpi_rank=None, mpi_size=None, base_directory=None): """Additional attributes are set by the base class :obj:PyposmatEngine Args: filename_in (str) - path of the configuration file filename_out (str) - path of the output file o_log (PyposmatLogFile) - if type(o_log) is a string, then the string is treated as a path in which to log information to. If type(o_log) is PyposmatLogFile then it is set as an attribute for the refernce. mpi_rank (int) mpi_size (int) base_directory (str,optional): Either the relative or full path which provides a unique drive addressing space for simultaneously running simulations. Attributes: mpi_rank (int) - this is passed in mpi_size (int) - this is passed in pyposmat_data_in_filename (str) - the path of the datafile to read in pyposmat_data_out_filename (str) - the path of the datafile to write simulation results to """ assert isinstance(filename_in, str) assert isinstance(filename_out, str) assert type(base_directory) in [str, type(None)] PyposmatEngine.__init__(self, filename_in=filename_in, filename_out=filename_out, base_directory=base_directory, fullauto=False) if mpi_rank is None: self.mpi_rank = 0 else: self.mpi_rank = mpi_rank if mpi_size is None: self.mpi_size = 1 else: self.mpi_size = mpi_size assert self.mpi_rank < self.mpi_size self.mpi_rank = mpi_rank self.mpi_size = mpi_size self.pyposmat_data_in_filename = None self.pyposmat_data_out_filename = filename_out self.pyposmat_badparameters_filename = 'pyposmat.badparameters.out' try: self.configure_logger(o_log) except TypeError as e: m = "Unable to to configure obj_log based on attribute log:{}".format( str(o_log)) raise TypeError(m)
def __init__(self, config_fn='pyposmat.config.in', data_in_fn='pyposmat.results.in', data_out_fn='pyposmat.results.out', mpi_rank = None, mpi_size=None, o_log = None, log_to_stdout=True, base_directory = None, fullauto=True): self.DEBUG = False self.configuration = None self.datafile_in = None self.datafile_out = None self.mpi_rank = None self.mpi_size = None self.qoi_mananger = None self.task_manager = None PyposmatEngine.__init__(self, filename_in=config_fn, filename_out=data_out_fn, base_directory=base_directory, fullauto=fullauto) self.configuration_fn = config_fn self.datafile_in_fn = data_in_fn self.datafile_out_fn = data_out_fn self.pyposmat_badparameters_filename = 'pyposmat.badparameters.out' self.configuration = None self.datafile = None self.subselect_df = None self.reference_potentials = None self.qoi_validation_names = None self.error_validation_names = None self.normed_error_validation_names = None self.qoi_validation_target = None self.obj_log = None self.log_to_stdout = None self.initialize_mpi_information(mpi_rank=mpi_rank, mpi_size=mpi_size) self.configure_logger(o_log=o_log, log_to_stdout=log_to_stdout) if fullauto is True: self.read_configuration_file(filename=self.configuration_fn) self.read_datafile_in(filename=data_in_fn) self.configure_datafile_out(filename=data_out_fn)