def __init__(self, conf, options, output_prefix, **kwargs): PDESolverApp.__init__(self, conf, options, output_prefix, init_equations=False) self.setup_options() self.cached_coefs = None self.n_micro = kwargs.get('n_micro', None) self.macro_deformation = None self.micro_coors = None self.updating_corrs = None self.micro_state_cache = {} self.multiproc_mode = None mac_def = self.app_options.macro_deformation if mac_def is not None and isinstance(mac_def, nm.ndarray): self.n_micro = mac_def.shape[0] self.setup_macro_deformation(mac_def) if self.n_micro is not None: coors = self.problem.domain.get_mesh_coors() self.micro_coors = nm.empty((self.n_micro,) + coors.shape, dtype=nm.float64) for im in range(self.n_micro): self.micro_coors[im, ...] = coors output_dir = self.problem.output_dir if conf._filename is not None: shutil.copyfile(conf._filename, op.join(output_dir, op.basename(conf._filename)))
def __init__(self, conf, options, output_prefix, **kwargs): PDESolverApp.__init__(self, conf, options, output_prefix, init_equations=False) self.setup_options() self.cached_coefs = None self.n_micro = kwargs.get('n_micro', None) self.macro_deformation = None self.micro_coors = None self.updating_corrs = None self.micro_state_cache = {} self.multiproc_mode = None mac_def = self.app_options.macro_deformation if mac_def is not None and isinstance(mac_def, nm.ndarray): self.n_micro = mac_def.shape[0] self.setup_macro_deformation(mac_def) if self.n_micro is not None: coors = self.problem.domain.get_mesh_coors() self.micro_coors = nm.empty((self.n_micro, ) + coors.shape, dtype=nm.float64) for im in range(self.n_micro): self.micro_coors[im, ...] = coors output_dir = self.problem.output_dir if conf._filename is not None: shutil.copyfile(conf._filename, op.join(output_dir, op.basename(conf._filename)))
def __init__(self, conf, options, output_prefix, **kwargs): PDESolverApp.__init__(self, conf, options, output_prefix, init_equations=False) self.setup_options() output_dir = self.problem.output_dir shutil.copyfile(conf._filename, op.join(output_dir, op.basename(conf._filename)))
def create_app(filename, is_homog=False, **kwargs): from sfepy.base.conf import ProblemConf, get_standard_keywords from sfepy.homogenization.homogen_app import HomogenizationApp from sfepy.applications import PDESolverApp required, other = get_standard_keywords() if is_homog: required.remove('equations') conf = ProblemConf.from_file(filename, required, other, define_args=kwargs) options = Struct(output_filename_trunk=None, save_ebc=False, save_ebc_nodes=False, save_regions=False, save_regions_as_groups=False, save_field_meshes=False, solve_not=False) if is_homog: app = HomogenizationApp(conf, options, 'material_opt_micro:') else: app = PDESolverApp(conf, options, 'material_opt_macro:') app.conf.opt_data = {} opts = conf.options if hasattr(opts, 'parametric_hook'): # Parametric study. parametric_hook = conf.get_function(opts.parametric_hook) app.parametrize(parametric_hook) return app
def __init__(self, conf, options, output_prefix, **kwargs): PDESolverApp.__init__(self, conf, options, output_prefix, init_equations=False) self.setup_options() self.n_micro = kwargs.get('n_micro', self.app_options.get('n_micro', None)) self.updating_corrs = None self.micro_state_cache = {} self.multiproc_mode = None self.micro_states = None if self.n_micro is None else {} # macroscopic data given in problem options dict. macro_data = self.app_options.macro_data if macro_data is not None: self.n_micro = macro_data[list(macro_data.keys())[0]].shape[0] self.setup_macro_data(macro_data) if self.n_micro is not None: for k in self.app_options.micro_update: if not k == 'coors': self.micro_states[k] = None coors = self.problem.domain.get_mesh_coors() c_sh = (self.n_micro, ) + coors.shape self.micro_states['coors'] = nm.empty(c_sh, dtype=nm.float64) mac_ids = kwargs.get('mac_ids', self.app_options.get('mac_ids', None)) self.micro_states['id'] = [] for im in range(self.n_micro): self.micro_states['coors'][im] = coors self.micro_states['id'].append( mac_ids[im] if mac_ids is not None else im) output_dir = self.problem.output_dir if conf._filename is not None: shutil.copyfile(conf._filename, op.join(output_dir, op.basename(conf._filename)))
def setup_options(self): PDESolverApp.setup_options(self) po = HomogenizationApp.process_options self.app_options += po(self.conf.options) if hasattr(self, 'he'): self.he.setup_options()
def main(): parser = OptionParser(usage=usage, version="%prog " + sfepy.__version__) parser.add_option( "-c", "--conf", metavar='"key : value, ..."', action="store", dest="conf", type="string", default=None, help=help["conf"], ) parser.add_option( "-O", "--options", metavar='"key : value, ..."', action="store", dest="app_options", type="string", default=None, help=help["options"], ) parser.add_option( "-d", "--define", metavar='"key : value, ..."', action="store", dest="define_args", type="string", default=None, help=help["define"], ) parser.add_option( "-o", "", metavar="filename", action="store", dest="output_filename_trunk", default=None, help=help["filename"] ) parser.add_option( "", "--format", metavar="format", action="store", dest="output_format", default=None, help=help["output_format"] ) parser.add_option("", "--log", metavar="file", action="store", dest="log", default=None, help=help["log"]) parser.add_option("-q", "--quiet", action="store_true", dest="quiet", default=False, help=help["quiet"]) parser.add_option("", "--save-ebc", action="store_true", dest="save_ebc", default=False, help=help["save_ebc"]) parser.add_option( "", "--save-ebc-nodes", action="store_true", dest="save_ebc_nodes", default=False, help=help["save_ebc_nodes"] ) parser.add_option( "", "--save-regions", action="store_true", dest="save_regions", default=False, help=help["save_regions"] ) parser.add_option( "", "--save-regions-as-groups", action="store_true", dest="save_regions_as_groups", default=False, help=help["save_regions_as_groups"], ) parser.add_option( "", "--save-field-meshes", action="store_true", dest="save_field_meshes", default=False, help=help["save_field_meshes"], ) parser.add_option("", "--solve-not", action="store_true", dest="solve_not", default=False, help=help["solve_not"]) parser.add_option("", "--list", metavar="what", action="store", dest="_list", default=None, help=help["list"]) options, args = parser.parse_args() if len(args) == 1: filename_in = args[0] else: if options._list == "terms": print_terms() else: parser.print_help(), return output.set_output(filename=options.log, quiet=options.quiet, combined=options.log is not None) required, other = get_standard_keywords() if options.solve_not: required.remove("equations") required.remove("solver_[0-9]+|solvers") other.extend(["equations"]) conf = ProblemConf.from_file_and_options(filename_in, options, required, other, define_args=options.define_args) opts = conf.options output_prefix = opts.get("output_prefix", "sfepy:") app = PDESolverApp(conf, options, output_prefix) if hasattr(opts, "parametric_hook"): # Parametric study. parametric_hook = conf.get_function(opts.parametric_hook) app.parametrize(parametric_hook) app()
def main(): # if multi_mpi.cpu_count() < 2: # raise ValueError('MPI mode - the number of nodes is less then 2!') if multi_mpi.mpi_rank == multi_mpi.mpi_master: # MPI master node - solve problem at macro scale parser = ArgumentParser(description=__doc__, formatter_class=RawDescriptionHelpFormatter) parser.add_argument('--debug', action='store_true', dest='debug', default=False, help=helps['debug']) parser.add_argument('--debug_mpi', action='store_true', dest='debug_mpi', default=False, help=helps['debug_mpi']) parser.add_argument('-c', '--conf', metavar='"key : value, ..."', action='store', dest='conf', type=str, default=None, help=helps['conf']) parser.add_argument('-O', '--options', metavar='"key : value, ..."', action='store', dest='app_options', type=str, default=None, help=helps['options']) parser.add_argument('-d', '--define', metavar='"key : value, ..."', action='store', dest='define_args', type=str, default=None, help=helps['define']) parser.add_argument('-o', metavar='filename', action='store', dest='output_filename_trunk', default=None, help=helps['filename']) parser.add_argument('--format', metavar='format', action='store', dest='output_format', default=None, help=helps['output_format']) parser.add_argument('--log', metavar='file', action='store', dest='log', default=None, help=helps['log']) parser.add_argument('-q', '--quiet', action='store_true', dest='quiet', default=False, help=helps['quiet']) group = parser.add_mutually_exclusive_group(required=True) group.add_argument('filename_in', nargs='?') options = parser.parse_args() for k in ['save_ebc', 'save_ebc_nodes', 'save_regions', 'save_regions_as_groups', 'save_field_meshes', 'solve_not']: setattr(options, k, False) if options.debug: from sfepy.base.base import debug_on_error; debug_on_error() if options.debug_mpi: multi_mpi.set_logging_level('debug') filename_in = options.filename_in output.set_output(filename=options.log, quiet=options.quiet, combined=options.log is not None) required, other = get_standard_keywords() conf = ProblemConf.from_file_and_options(filename_in, options, required, other, define_args=options.define_args) opts = conf.options nslaves = multi_mpi.cpu_count() - 1 opts.n_mpi_homog_slaves = nslaves output_prefix = opts.get('output_prefix', 'sfepy:') app = PDESolverApp(conf, options, output_prefix) if hasattr(opts, 'parametric_hook'): # Parametric study. parametric_hook = conf.get_function(opts.parametric_hook) app.parametrize(parametric_hook) app() multi_mpi.master_send_task('finalize', None) else: # MPI slave mode - calculate homogenized coefficients homogen_app = None done = False rank = multi_mpi.mpi_rank while not done: task, data = multi_mpi.slave_get_task('main slave loop') if task == 'init': # data: micro_file, n_micro output.set_output(filename='homog_app_mpi_%d.log' % rank, quiet=True) micro_file, n_micro = data[:2] required, other = get_standard_keywords() required.remove('equations') conf = ProblemConf.from_file(micro_file, required, other, verbose=False) options = Struct(output_filename_trunk=None) homogen_app = HomogenizationApp(conf, options, 'micro:', n_micro=n_micro, update_micro_coors=True) elif task == 'calculate': # data: rel_def_grad, ts, iteration rel_def_grad, ts, iteration = data[:3] homogen_app.setup_macro_deformation(rel_def_grad) homogen_app(ret_all=True, itime=ts.step, iiter=iteration) elif task == 'finalize': done = True
def setup_options(self, app_options=None): PDESolverApp.setup_options(self) app_options = get_default(app_options, self.conf.options) po = HomogenizationEngine.process_options self.app_options += po(app_options)
def setup_options(self): PDESolverApp.setup_options(self) opts = EVPSolverApp.process_options(self.conf.options) self.app_options += opts
def __init__(self, conf, options, output_prefix, **kwargs): PDESolverApp.__init__(self, conf, options, output_prefix, init_equations=False)
def main(): parser = ArgumentParser(description=__doc__, formatter_class=RawDescriptionHelpFormatter) parser.add_argument('--version', action='version', version='%(prog)s ' + sfepy.__version__) parser.add_argument('--debug', action='store_true', dest='debug', default=False, help=helps['debug']) parser.add_argument('-c', '--conf', metavar='"key : value, ..."', action='store', dest='conf', type=str, default=None, help=helps['conf']) parser.add_argument('-O', '--options', metavar='"key : value, ..."', action='store', dest='app_options', type=str, default=None, help=helps['options']) parser.add_argument('-d', '--define', metavar='"key : value, ..."', action='store', dest='define_args', type=str, default=None, help=helps['define']) parser.add_argument('-o', metavar='filename', action='store', dest='output_filename_trunk', default=None, help=helps['filename']) parser.add_argument('--format', metavar='format', action='store', dest='output_format', default=None, help=helps['output_format']) parser.add_argument('--save-restart', metavar='mode', type=int, action='store', dest='save_restart', default=None, help=helps['save_restart']) parser.add_argument('--load-restart', metavar='filename', action='store', dest='load_restart', default=None, help=helps['load_restart']) parser.add_argument('--log', metavar='file', action='store', dest='log', default=None, help=helps['log']) parser.add_argument('-q', '--quiet', action='store_true', dest='quiet', default=False, help=helps['quiet']) parser.add_argument('--save-ebc', action='store_true', dest='save_ebc', default=False, help=helps['save_ebc']) parser.add_argument('--save-ebc-nodes', action='store_true', dest='save_ebc_nodes', default=False, help=helps['save_ebc_nodes']) parser.add_argument('--save-regions', action='store_true', dest='save_regions', default=False, help=helps['save_regions']) parser.add_argument('--save-regions-as-groups', action='store_true', dest='save_regions_as_groups', default=False, help=helps['save_regions_as_groups']) parser.add_argument('--save-field-meshes', action='store_true', dest='save_field_meshes', default=False, help=helps['save_field_meshes']) parser.add_argument('--solve-not', action='store_true', dest='solve_not', default=False, help=helps['solve_not']) group = parser.add_mutually_exclusive_group(required=True) group.add_argument('--list', metavar='what', action='store', dest='_list', default=None, help=helps['list']) group.add_argument('filename_in', nargs='?') options, petsc_opts = parser.parse_known_args() if options._list is not None: if options._list == 'terms': print_terms() elif options._list == 'solvers': print_solvers() return if options.debug: from sfepy.base.base import debug_on_error debug_on_error() filename_in = options.filename_in output.set_output(filename=options.log, quiet=options.quiet, combined=options.log is not None) required, other = get_standard_keywords() if options.solve_not: required.remove('equations') required.remove('solver_[0-9]+|solvers') other.extend(['equations']) conf = ProblemConf.from_file_and_options(filename_in, options, required, other, define_args=options.define_args) opts = conf.options output_prefix = opts.get('output_prefix', 'sfepy:') opts.save_restart = options.save_restart opts.load_restart = options.load_restart if conf.options.get('evps') is None: app = PDESolverApp(conf, options, output_prefix) else: app = EVPSolverApp(conf, options, output_prefix) if hasattr(opts, 'parametric_hook'): # Parametric study. parametric_hook = conf.get_function(opts.parametric_hook) app.parametrize(parametric_hook) app()
def main(): # if multi_mpi.cpu_count() < 2: # raise ValueError('MPI mode - the number of nodes is less then 2!') if multi_mpi.mpi_rank == multi_mpi.mpi_master: # MPI master node - solve problem at macro scale parser = ArgumentParser(description=__doc__, formatter_class=RawDescriptionHelpFormatter) parser.add_argument('--debug', action='store_true', dest='debug', default=False, help=helps['debug']) parser.add_argument('--debug_mpi', action='store_true', dest='debug_mpi', default=False, help=helps['debug_mpi']) parser.add_argument('-c', '--conf', metavar='"key : value, ..."', action='store', dest='conf', type=str, default=None, help=helps['conf']) parser.add_argument('-O', '--options', metavar='"key : value, ..."', action='store', dest='app_options', type=str, default=None, help=helps['options']) parser.add_argument('-d', '--define', metavar='"key : value, ..."', action='store', dest='define_args', type=str, default=None, help=helps['define']) parser.add_argument('-o', metavar='filename', action='store', dest='output_filename_trunk', default=None, help=helps['filename']) parser.add_argument('--format', metavar='format', action='store', dest='output_format', default=None, help=helps['output_format']) parser.add_argument('--log', metavar='file', action='store', dest='log', default=None, help=helps['log']) parser.add_argument('-q', '--quiet', action='store_true', dest='quiet', default=False, help=helps['quiet']) group = parser.add_mutually_exclusive_group(required=True) group.add_argument('filename_in', nargs='?') options = parser.parse_args() for k in [ 'save_ebc', 'save_ebc_nodes', 'save_regions', 'save_regions_as_groups', 'save_field_meshes', 'solve_not' ]: setattr(options, k, False) if options.debug: from sfepy.base.base import debug_on_error debug_on_error() if options.debug_mpi: multi_mpi.set_logging_level('debug') filename_in = options.filename_in output.set_output(filename=options.log, quiet=options.quiet, combined=options.log is not None) required, other = get_standard_keywords() conf = ProblemConf.from_file_and_options( filename_in, options, required, other, define_args=options.define_args) opts = conf.options nslaves = multi_mpi.cpu_count() - 1 opts.n_mpi_homog_slaves = nslaves output_prefix = opts.get('output_prefix', 'sfepy:') app = PDESolverApp(conf, options, output_prefix) if hasattr(opts, 'parametric_hook'): # Parametric study. parametric_hook = conf.get_function(opts.parametric_hook) app.parametrize(parametric_hook) app() multi_mpi.master_send_task('finalize', None) else: # MPI slave mode - calculate homogenized coefficients homogen_app = None done = False rank = multi_mpi.mpi_rank while not done: task, data = multi_mpi.slave_get_task('main slave loop') if task == 'init': # data: micro_file, n_micro output.set_output(filename='homog_app_mpi_%d.log' % rank, quiet=True) micro_file, n_micro = data[:2] required, other = get_standard_keywords() required.remove('equations') conf = ProblemConf.from_file(micro_file, required, other, verbose=False) options = Struct(output_filename_trunk=None) homogen_app = HomogenizationApp(conf, options, 'micro:', n_micro=n_micro) elif task == 'calculate': # data: rel_def_grad, ts, iteration macro_data, ts, iteration = data[:3] homogen_app.setup_macro_data(macro_data) homogen_app(ret_all=True, itime=ts.step, iiter=iteration) elif task == 'finalize': done = True
def main(): parser = OptionParser(usage=usage, version='%prog ' + sfepy.__version__) parser.add_option('-c', '--conf', metavar='"key : value, ..."', action='store', dest='conf', type='string', default=None, help= help['conf']) parser.add_option('-O', '--options', metavar='"key : value, ..."', action='store', dest='app_options', type='string', default=None, help=help['options']) parser.add_option('-d', '--define', metavar='"key : value, ..."', action='store', dest='define_args', type='string', default=None, help=help['define']) parser.add_option('-o', '', metavar='filename', action='store', dest='output_filename_trunk', default=None, help=help['filename']) parser.add_option('', '--format', metavar='format', action='store', dest='output_format', default=None, help=help['output_format']) parser.add_option('', '--log', metavar='file', action='store', dest='log', default=None, help=help['log']) parser.add_option('-q', '--quiet', action='store_true', dest='quiet', default=False, help=help['quiet']) parser.add_option('', '--save-ebc', action='store_true', dest='save_ebc', default=False, help=help['save_ebc']) parser.add_option('', '--save-ebc-nodes', action='store_true', dest='save_ebc_nodes', default=False, help=help['save_ebc_nodes']) parser.add_option('', '--save-regions', action='store_true', dest='save_regions', default=False, help=help['save_regions']) parser.add_option('', '--save-regions-as-groups', action='store_true', dest='save_regions_as_groups', default=False, help=help['save_regions_as_groups']) parser.add_option('', '--save-field-meshes', action='store_true', dest='save_field_meshes', default=False, help=help['save_field_meshes']) parser.add_option('', '--solve-not', action='store_true', dest='solve_not', default=False, help=help['solve_not']) parser.add_option('', '--list', metavar='what', action='store', dest='_list', default=None, help=help['list']) options, args = parser.parse_args() if (len(args) == 1): filename_in = args[0]; else: if options._list == 'terms': print_terms() else: parser.print_help(), return output.set_output(filename=options.log, quiet=options.quiet, combined=options.log is not None) required, other = get_standard_keywords() if options.solve_not: required.remove('equations') required.remove('solver_[0-9]+|solvers') other.extend(['equations']) conf = ProblemConf.from_file_and_options(filename_in, options, required, other, define_args=options.define_args) opts = conf.options output_prefix = get_default_attr(opts, 'output_prefix', 'sfepy:') app = PDESolverApp(conf, options, output_prefix) if hasattr(opts, 'parametric_hook'): # Parametric study. parametric_hook = conf.get_function(opts.parametric_hook) app.parametrize(parametric_hook) app()
def setup_options( self ): PDESolverApp.setup_options(self) po = HomogenizationApp.process_options self.app_options += po( self.conf.options )
def setup_options(self): PDESolverApp.setup_options(self) opts = SchroedingerApp.process_options(self.conf.options) self.app_options += opts
def main(): parser = ArgumentParser(description=__doc__, formatter_class=RawDescriptionHelpFormatter) parser.add_argument('--version', action='version', version='%(prog)s ' + sfepy.__version__) parser.add_argument('--debug', action='store_true', dest='debug', default=False, help=helps['debug']) parser.add_argument('-c', '--conf', metavar='"key : value, ..."', action='store', dest='conf', type=str, default=None, help= helps['conf']) parser.add_argument('-O', '--options', metavar='"key : value, ..."', action='store', dest='app_options', type=str, default=None, help=helps['options']) parser.add_argument('-d', '--define', metavar='"key : value, ..."', action='store', dest='define_args', type=str, default=None, help=helps['define']) parser.add_argument('-o', metavar='filename', action='store', dest='output_filename_trunk', default=None, help=helps['filename']) parser.add_argument('--format', metavar='format', action='store', dest='output_format', default=None, help=helps['output_format']) parser.add_argument('--save-restart', metavar='mode', type=int, action='store', dest='save_restart', default=None, help=helps['save_restart']) parser.add_argument('--load-restart', metavar='filename', action='store', dest='load_restart', default=None, help=helps['load_restart']) parser.add_argument('--log', metavar='file', action='store', dest='log', default=None, help=helps['log']) parser.add_argument('-q', '--quiet', action='store_true', dest='quiet', default=False, help=helps['quiet']) parser.add_argument('--save-ebc', action='store_true', dest='save_ebc', default=False, help=helps['save_ebc']) parser.add_argument('--save-ebc-nodes', action='store_true', dest='save_ebc_nodes', default=False, help=helps['save_ebc_nodes']) parser.add_argument('--save-regions', action='store_true', dest='save_regions', default=False, help=helps['save_regions']) parser.add_argument('--save-regions-as-groups', action='store_true', dest='save_regions_as_groups', default=False, help=helps['save_regions_as_groups']) parser.add_argument('--save-field-meshes', action='store_true', dest='save_field_meshes', default=False, help=helps['save_field_meshes']) parser.add_argument('--solve-not', action='store_true', dest='solve_not', default=False, help=helps['solve_not']) group = parser.add_mutually_exclusive_group(required=True) group.add_argument('--list', metavar='what', action='store', dest='_list', default=None, help=helps['list']) group.add_argument('filename_in', nargs='?') options = parser.parse_args() if options._list is not None: if options._list == 'terms': print_terms() elif options._list == 'solvers': print_solvers() return if options.debug: from sfepy.base.base import debug_on_error; debug_on_error() filename_in = options.filename_in output.set_output(filename=options.log, quiet=options.quiet, combined=options.log is not None) required, other = get_standard_keywords() if options.solve_not: required.remove('equations') required.remove('solver_[0-9]+|solvers') other.extend(['equations']) conf = ProblemConf.from_file_and_options(filename_in, options, required, other, define_args=options.define_args) opts = conf.options output_prefix = opts.get('output_prefix', 'sfepy:') opts.save_restart = options.save_restart opts.load_restart = options.load_restart app = PDESolverApp(conf, options, output_prefix) if hasattr(opts, 'parametric_hook'): # Parametric study. parametric_hook = conf.get_function(opts.parametric_hook) app.parametrize(parametric_hook) app()