def main(): parser = ArgumentParser() 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("-o", metavar='filename', action="store", dest="output_filename_trunk", default=None, help=helps['filename']) parser.add_argument('filename_in') options = parser.parse_args() if options.debug: from sfepy.base.base import debug_on_error; debug_on_error() filename_in = options.filename_in required, other = get_standard_keywords() required.remove('equations') conf = ProblemConf.from_file(filename_in, required, other) app = HomogenizationApp(conf, options, 'homogen:') opts = conf.options if hasattr(opts, 'parametric_hook'): # Parametric study. parametric_hook = conf.get_function(opts.parametric_hook) app.parametrize(parametric_hook) app()
def main(): parser = ArgumentParser(description=__doc__, formatter_class=RawDescriptionHelpFormatter) parser.add_argument("-v", "--version", action="version", version="%(prog)s " + sfepy.__version__) parser.add_argument("--print-doc", action="store_true", dest="print_doc", default=False, help=helps["print-doc"]) parser.add_argument( "-d", "--dir", metavar="directory", action="store", dest="test_dir", default=get_dir("tests"), help=helps["dir"] ) parser.add_argument( "-o", "--output", metavar="directory", action="store", dest="out_dir", default=get_dir("output-tests"), help=helps["out_dir"], ) parser.add_argument( "--raise", action="store_true", dest="raise_on_error", default=False, help=helps["raise_on_error"] ) parser.add_argument("--debug", action="store_true", dest="debug", default=False, help=helps["debug"]) parser.add_argument( "--filter-none", action="store_true", dest="filter_none", default=False, help=helps["filter-none"] ) parser.add_argument( "--filter-less", action="store_true", dest="filter_less", default=False, help=helps["filter-less"] ) parser.add_argument( "--filter-more", action="store_true", dest="filter_more", default=False, help=helps["filter-more"] ) parser.add_argument("test_filename", nargs="*", default=[]) options = parser.parse_args() if options.print_doc: print(__doc__) return if options.debug: options.raise_on_error = True from sfepy.base.base import debug_on_error debug_on_error() run_tests = wrap_run_tests(options) stats = [0, 0, 0, 0.0] if len(options.test_filename) > 0: for test_filename in options.test_filename: dirname, filename = op.split(test_filename) run_tests(stats, dirname, [filename]) else: for dirpath, dirnames, filenames in os.walk(options.test_dir): run_tests(stats, dirpath, filenames) print("%d test file(s) executed in %.2f s, %d failure(s) of %d test(s)" % (stats[0], stats[3], stats[1], stats[2])) return stats[1]
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('-o', metavar='filename', action='store', dest='output_filename_trunk', default=None, help=helps['filename']) parser.add_argument('--auto-dir', action='store_true', dest='auto_dir', default=False, help=helps['auto_dir']) parser.add_argument('--same-dir', action='store_true', dest='same_dir', default=False, help=helps['same_dir']) parser.add_argument('-f', '--format', metavar='format', action='store', dest='output_format', default='png', help=helps['output_format']) parser.add_argument('--only-names', metavar='list of names', action='store', dest='only_names', default=None, help=helps['only_names']) parser.add_argument('-s', '--step', type=int, metavar='step', action='store', dest='step', default=0, help=helps['step']) parser.add_argument('-c', '--close-limit', type=float, metavar='distance', action='store', dest='close_limit', default=0.1, help=helps['close_limit']) parser.add_argument('-p', '--postprocess', action='store_true', dest='postprocess', default=False, help=helps['postprocess']) parser.add_argument('--radial', action='store_true', dest='radial', default=False, help=helps['radial']) parser.add_argument('filename_in') parser.add_argument('filename_out') options = parser.parse_args() if options.debug: from sfepy.base.base import debug_on_error; debug_on_error() filename_input = options.filename_in filename_results = options.filename_out if options.only_names is not None: options.only_names = options.only_names.split(',') output.prefix = 'probe:' if options.postprocess: postprocess(filename_input, filename_results, options) else: generate_probes(filename_input, filename_results, options)
def main(): parser = ArgumentParser() 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("-o", metavar='filename', action="store", dest="output_filename_trunk", default=None, help=helps['filename']) parser.add_argument("-b", "--band-gaps", action="store_true", dest="detect_band_gaps", default=False, help=helps['detect_band_gaps']) parser.add_argument("-d", "--dispersion", action="store_true", dest="analyze_dispersion", default=False, help=helps['analyze_dispersion']) parser.add_argument("-p", "--plot", action="store_true", dest="plot", default=False, help=helps['plot']) parser.add_argument("--phase-velocity", action="store_true", dest="phase_velocity", default=False, help=helps['phase_velocity']) parser.add_argument("filename_in") options = parser.parse_args() if options.debug: from sfepy.base.base import debug_on_error; debug_on_error() if options.plot: if plt is None: output('matplotlib.pyplot cannot be imported, ignoring option -p!') options.plot = False elif options.analyze_dispersion == False: options.detect_band_gaps = True required, other = get_standard_keywords() required.remove('equations') if not options.analyze_dispersion: required.remove('solver_[0-9]+|solvers') if options.phase_velocity: required.remove('ebc_[0-9]+|ebcs') conf = ProblemConf.from_file(options.filename_in, required, other) app = AcousticBandGapsApp(conf, options, 'phonon:') opts = conf.options 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 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('-o', metavar='filename', action='store', dest='output_filename_trunk', default=None, help=helps['filename']) group = parser.add_mutually_exclusive_group() group.add_argument('--oscillator', action='store_true', dest='oscillator', default=False, help=helps['oscillator']) group.add_argument('--well', action='store_true', dest='well', default=False, help=helps['well']) group.add_argument('--hydrogen', action='store_true', dest='hydrogen', default=False, help=helps['hydrogen']) group.add_argument('--boron', action='store_true', dest='boron', default=False, help=helps['boron']) parser.add_argument('-n', '--n-eigs', type=int, metavar='int', action='store', dest='n_eigs', default=None, help=helps['n_eigs']) parser.add_argument('-t', '--tau', type=float, metavar='float', action='store', dest='tau', default=None, help=helps['tau']) parser.add_argument('filename_in', nargs='?') options = parser.parse_args() if options.debug: from sfepy.base.base import debug_on_error; debug_on_error() filename_in = options.filename_in if not filename_in: if options.oscillator: filename_in = fix_path("examples/quantum/oscillator.py") elif options.well: filename_in = fix_path("examples/quantum/well.py") elif options.hydrogen: filename_in = fix_path("examples/quantum/hydrogen.py") elif options.boron: filename_in = fix_path("examples/quantum/boron.py") else: parser.print_help() return define_args = {} if options.n_eigs is not None: define_args['n_eigs'] = options.n_eigs if options.tau is not None: define_args['tau'] = options.tau required, other = get_standard_keywords() conf = ProblemConf.from_file_and_options(filename_in, options, required, other, define_args=define_args) app = SchroedingerApp(conf, options, 'schroedinger:') opts = conf.options if hasattr(opts, 'parametric_hook'): # Parametric study. parametric_hook = conf.get_function(opts.parametric_hook) app.parametrize(parametric_hook) app()
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( "-o", metavar="filename", action="store", dest="output_filename_trunk", default=None, help=helps["filename"] ) parser.add_argument("-d", "--dump", action="store_true", dest="dump", default=False, help=helps["dump"]) parser.add_argument("--same-dir", action="store_true", dest="same_dir", default=False, help=helps["same_dir"]) parser.add_argument( "-l", "--linearization", metavar="options", action="store", dest="linearization", default=None, help=helps["linearization"], ) parser.add_argument("--times", action="store_true", dest="times", default=False, help=helps["times"]) parser.add_argument( "-f", "--from", type=int, metavar="ii", action="store", dest="step_from", default=0, help=helps["from"] ) parser.add_argument( "-t", "--to", type=int, metavar="ii", action="store", dest="step_to", default=None, help=helps["to"] ) parser.add_argument( "-s", "--step", type=int, metavar="ii", action="store", dest="step_by", default=1, help=helps["step"] ) parser.add_argument( "-e", "--extract", metavar="list", action="store", dest="extract", default=None, help=helps["extract"] ) parser.add_argument("-a", "--average", action="store_true", dest="average", default=False, help=helps["average"]) parser.add_argument("input_file", nargs="?", default=None) parser.add_argument("results_file") options = parser.parse_args() if options.debug: from sfepy.base.base import debug_on_error debug_on_error() filename_in = options.input_file filename_results = options.results_file if filename_in is None: linearize = False else: linearize = True options.dump = True if options.times: steps, times, nts, dts = th.extract_times(filename_results) for ii, time in enumerate(times): step = steps[ii] print("%d %e %e %e" % (step, time, nts[ii], dts[ii])) if options.dump: trunk = get_default(options.output_filename_trunk, get_trunk(filename_results)) if options.same_dir: trunk = os.path.join(os.path.dirname(filename_results), os.path.basename(trunk)) args = {} if linearize: problem = create_problem(filename_in) linearization = Struct(kind="adaptive", min_level=0, max_level=2, eps=1e-2) aux = problem.conf.options.get("linearization", None) linearization.update(aux) if options.linearization is not None: aux = parse_linearization(options.linearization) linearization.update(aux) args.update({"fields": problem.fields, "linearization": linearization}) if options.step_to is None: args.update({"step0": options.step_from}) else: args.update({"steps": nm.arange(options.step_from, options.step_to + 1, options.step_by, dtype=nm.int)}) th.dump_to_vtk(filename_results, output_filename_trunk=trunk, **args) if options.extract: ths, ts = th.extract_time_history(filename_results, options.extract) if options.average: ths = th.average_vertex_var_in_cells(ths) if options.output_filename_trunk: th.save_time_history(ths, ts, options.output_filename_trunk + ".h5") else: print(dict_to_struct(ths, flag=(1, 1, 1)).str_all())
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()
def main(): parser = ArgumentParser() parser.add_argument("--version", action="version", version="%(prog)s " + sfepy.__version__) parser.add_argument('--debug', action='store_true', dest='debug', default=False, help=help['debug']) parser.add_argument("-o", metavar='filename', action="store", dest="output_filename_trunk", default=None, help=help['filename']) parser.add_argument("-b", "--band-gaps", action="store_true", dest="detect_band_gaps", default=False, help=help['detect_band_gaps']) parser.add_argument("-d", "--dispersion", action="store_true", dest="analyze_dispersion", default=False, help=help['analyze_dispersion']) parser.add_argument("-p", "--plot", action="store_true", dest="plot", default=False, help=help['plot']) parser.add_argument("--phase-velocity", action="store_true", dest="phase_velocity", default=False, help=help['phase_velocity']) parser.add_argument("filename_in") options = parser.parse_args() if options.debug: from sfepy.base.base import debug_on_error debug_on_error() if options.plot: if plt is None: output('matplotlib.pyplot cannot be imported, ignoring option -p!') options.plot = False elif options.analyze_dispersion == False: options.detect_band_gaps = True required, other = get_standard_keywords() required.remove('equations') if not options.analyze_dispersion: required.remove('solver_[0-9]+|solvers') if options.phase_velocity: required.remove('ebc_[0-9]+|ebcs') conf = ProblemConf.from_file(options.filename_in, required, other) app = AcousticBandGapsApp(conf, options, 'phonon:') opts = conf.options if hasattr(opts, 'parametric_hook'): # Parametric study. parametric_hook = conf.get_function(opts.parametric_hook) app.parametrize(parametric_hook) app()
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']) group = parser.add_argument_group('Output Options') group.add_argument('-o', '--output', metavar='filename', action='store', dest='filename', default=None, help=helps['filename']) group.add_argument('--output-dir', metavar='directory', action='store', dest='output_dir', default=None, help=helps['output_dir']) group.add_argument('-n', '--no-show', action='store_false', dest='show', default=True, help=helps['no_show']) group.add_argument('--no-offscreen', action='store_false', dest='offscreen', default=None, help=helps['no_offscreen']) group.add_argument('-a', '--animation', metavar='<ffmpeg-supported format>', action='store', dest='anim_format', default=None, help=helps['anim_format']) group.add_argument('--ffmpeg-options', metavar='<ffmpeg options>', action='store', dest='ffmpeg_options', default='-r 10 -sameq', help=helps['ffmpeg_options']) group = parser.add_argument_group('Data Options') group.add_argument('--step', type=int, metavar='step', action='store', dest='step', default=None, help=helps['step']) group.add_argument('--time', type=float, metavar='time', action='store', dest='time', default=None, help=helps['time']) group.add_argument('-w', '--watch', action='store_true', dest='watch', default=False, help=helps['watch']) group.add_argument('--all', action='store_true', dest='all', default=False, help=helps['all']) group.add_argument('--only-names', metavar='list of names', action='store', dest='only_names', default=None, help=helps['only_names']) group.add_argument('-l', '--list-ranges', action='store_true', dest='list_ranges', default=False, help=helps['list_ranges']) group.add_argument('--ranges', type=str, metavar='name1,min1,max1:name2,min2,max2:...', action=ParseRanges, dest='ranges', help=helps['ranges']) group = parser.add_argument_group('View Options') group.add_argument('-r', '--resolution', type=str, metavar='resolution', action=ParseResolution, dest='resolution', help=helps['resolution']) group.add_argument('--layout', metavar='layout', action='store', dest='layout', default='rowcol', help=helps['layout']) group.add_argument('--3d', action='store_true', dest='is_3d', default=False, help=helps['is_3d']) group.add_argument('--view', type=str, metavar='angle,angle[,distance[,focal_point]]', action=ParseView, dest='view', help=helps['view']) group.add_argument('--roll', type=float, metavar='angle', action='store', dest='roll', default=0.0, help=helps['roll']) group.add_argument('--parallel-projection', action='store_true', dest='parallel_projection', default=False, help=helps['parallel_projection']) group.add_argument('--fgcolor', metavar='R,G,B', action='store', dest='fgcolor', default='0.0,0.0,0.0', help=helps['fgcolor']) group.add_argument('--bgcolor', metavar='R,G,B', action='store', dest='bgcolor', default='1.0,1.0,1.0', help=helps['bgcolor']) group.add_argument('--colormap', metavar='colormap', action='store', dest='colormap', default='blue-red', help=helps['colormap']) group.add_argument('--anti-aliasing', type=int, metavar='value', action='store', dest='anti_aliasing', default=None, help=helps['anti_aliasing']) group = parser.add_argument_group('Custom Plots Options') group.add_argument('-b', '--scalar-bar', action='store_true', dest='is_scalar_bar', default=False, help=helps['is_scalar_bar']) group.add_argument('--wireframe', action='store_true', dest='is_wireframe', default=False, help=helps['is_wireframe']) group.add_argument('--group-names', type=str, metavar='name1,...,nameN:...', action=ParseGroupNames, dest='group_names', help=helps['group_names']) group.add_argument('--subdomains', type=str, metavar='mat_id_name,threshold_limits,single_color', action=ParseSubdomains, dest='subdomains_args', default=None, help=helps['subdomains']) group.add_argument('-d', '--domain-specific', type=str, metavar='"var_name0,function_name0,' \ 'par0=val0,par1=val1,...:var_name1,..."', action=ParseDomainSpecific, dest='domain_specific', default=None, help=helps['domain_specific']) group = parser.add_argument_group('Mayavi Options') group.add_argument('--scalar-mode', metavar='mode', action='store', dest='scalar_mode', default='iso_surface', help=helps['scalar_mode']) group.add_argument('--vector-mode', metavar='mode', action='store', dest='vector_mode', default='arrows_norm', help=helps['vector_mode']) group.add_argument('-s', '--scale-glyphs', type=float, metavar='scale', action='store', dest='rel_scaling', default=0.05, help=helps['rel_scaling']) group.add_argument('--clamping', action='store_true', dest='clamping', default=False, help=helps['clamping']) group.add_argument('--opacity', type=str, metavar='opacity', action=ParseOpacity, dest='opacity', help=helps['opacity']) group.add_argument('--rel-text-width', type=float, metavar='width', action='store', dest='rel_text_width', default=0.02, help=helps['rel_text_width']) parser.add_argument('filenames', nargs='+') options = parser.parse_args() if options.debug: from sfepy.base.base import debug_on_error; debug_on_error() filenames = options.filenames options.fgcolor = tuple([float(ii) for ii in options.fgcolor.split(',')]) assert_(len(options.fgcolor) == 3) options.bgcolor = tuple([float(ii) for ii in options.bgcolor.split(',')]) assert_(len(options.bgcolor) == 3) can_save = not options.show # Output dir / file names. if options.filename is None: can_save = False options.filename = 'view.png' if options.output_dir is None: options.output_dir = '.' else: options.output_dir, options.filename = os.path.split(options.filename) # Data filtering, if not options.all: filter_names = ['node_groups', 'mat_id'] else: filter_names = [] if options.anim_format is not None: # Do not call show when saving an animation. options.show = False if options.list_ranges: all_ranges = {} for ii, filename in enumerate(filenames): output('%d: %s' % (ii, filename)) file_source = create_file_source(filename) if (options.step is None) and (options.time is None): steps, _ = file_source.get_ts_info() else: if options.step is not None: step, _ = file_source.get_step_time(step=options.step) else: step, _ = file_source.get_step_time(time=options.time) steps = [step] if not len(steps): steps = [0] for iis, step in enumerate(steps): output('%d: step %d' %(iis, step)) file_source.get_step_time(step=step) source = file_source.create_source() ranges = get_data_ranges(source, return_only=True) for key, val in six.iteritems(ranges): all_ranges.setdefault(key, []).append(val[3:]) if (len(filenames) > 1) or (len(steps) > 1): output('union of ranges:') else: output('ranges:') for key, ranges in six.iteritems(all_ranges): aux = nm.array(ranges) mins = aux[:, [0, 2]].min(axis=0) maxs = aux[:, [1, 3]].max(axis=0) output(' items: %s,%e,%e' % (key, mins[0], maxs[0])) output(' norms: %s,%e,%e' % (key, mins[1], maxs[1])) else: if len(filenames) == 1: filenames = filenames[0] view = view_file(filenames, filter_names, options) if can_save: view.save_image(options.filename) if options.anim_format is not None: view.save_animation(options.filename) view.encode_animation(options.filename, options.anim_format, options.ffmpeg_options)
def main(): parser = ArgumentParser(description=__doc__, formatter_class=RawDescriptionHelpFormatter) parser.add_argument("-v", "--version", action="version", version="%(prog)s " + sfepy.__version__) parser.add_argument("--print-doc", action="store_true", dest="print_doc", default=False, help=helps['print-doc']) parser.add_argument("-d", "--dir", metavar='directory', action="store", dest="test_dir", default=get_dir('tests'), help=helps['dir']) parser.add_argument("-o", "--output", metavar='directory', action="store", dest="out_dir", default=get_dir('output-tests'), help=helps['out_dir']) parser.add_argument("--raise", action="store_true", dest="raise_on_error", default=False, help=helps['raise_on_error']) parser.add_argument("--debug", action="store_true", dest="debug", default=False, help=helps['debug']) parser.add_argument("--filter-none", action="store_true", dest="filter_none", default=False, help=helps['filter-none']) parser.add_argument("--filter-less", action="store_true", dest="filter_less", default=False, help=helps['filter-less']) parser.add_argument("--filter-more", action="store_true", dest="filter_more", default=False, help=helps['filter-more']) parser.add_argument("test_filename", nargs="*", default=[]) options = parser.parse_args() if options.print_doc: print(__doc__) return if options.debug: options.raise_on_error = True from sfepy.base.base import debug_on_error debug_on_error() run_tests = wrap_run_tests(options) stats = [0, 0, 0, 0.0] if len(options.test_filename) > 0: for test_filename in options.test_filename: dirname, filename = op.split(test_filename) run_tests(stats, dirname, [filename]) else: for dirpath, dirnames, filenames in os.walk(options.test_dir): run_tests(stats, dirpath, filenames) print('%d test file(s) executed in %.2f s, %d failure(s) of %d test(s)' % (stats[0], stats[3], stats[1], stats[2])) return stats[1]
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 main(): parser = ArgumentParser() 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("-s", "--server", action = "store_true", dest = "server_mode", default = False, help = helps['server_mode']) parser.add_argument("-a", "--adjoint", action = "store_true", dest = "adjoint", default = False, help = helps['adjoint']) parser.add_argument("-d", "--direct", action = "store_true", dest = "direct", default = False, help = helps['direct']) parser.add_argument("-t", "--test", type = int, metavar = 'idsg', action = "store", dest = "test", default = None, help = helps['test']) parser.add_argument("--dump", metavar = 'filename', action = "store", dest = "dump_filename", default = None, help = helps['dump']) parser.add_argument("--pert-mesh", metavar = 'filename', action = "store", dest = "pert_mesh_filename", default = None, help = helps['pert']) parser.add_argument("-f", "--full", action = "store_true", dest = "optimize", default = False, help = helps['optimize']) parser.add_argument('filename_in') options = parser.parse_args() if options.debug: from sfepy.base.base import debug_on_error; debug_on_error() if options.test is not None: options.adjoint = options.direct = True if options.optimize: options.adjoint = options.direct = False if (options.direct or options.adjoint or options.optimize): filename_in = options.filename_in else: parser.print_help(), return required, other = get_standard_keywords() required.remove('equations') if options.adjoint: required += ['equations_adjoint_.*', 'filename_vp', 'equations_direct_.*'] options.direct = True elif options.direct: required += ['equations_direct_.*'] elif options.optimize: required += ['equations_direct_.*', 'equations_adjoint_.*', 'equations_sensitivity_.*', 'filename_vp'] conf = ProblemConf.from_file( filename_in, required, other ) if options.direct: dpb, state_dp, data = solve_direct( conf, options ) else: dpb, state_dp, data = None, None, None if options.adjoint: solve_adjoint( conf, options, dpb, state_dp, data ) if options.optimize: solve_optimize( conf, options )
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=help['debug']) parser.add_argument('-o', metavar='filename', action='store', dest='output_filename_trunk', default=None, help=help['filename']) parser.add_argument('-d', '--dump', action='store_true', dest='dump', default=False, help=help['dump']) parser.add_argument('--same-dir', action='store_true', dest='same_dir', default=False, help=help['same_dir']) parser.add_argument('-l', '--linearization', metavar='options', action='store', dest='linearization', default=None, help=help['linearization']) parser.add_argument('--times', action='store_true', dest='times', default=False, help=help['times']) parser.add_argument('-f', '--from', type=int, metavar='ii', action='store', dest='step_from', default=0, help=help['from']) parser.add_argument('-t', '--to', type=int, metavar='ii', action='store', dest='step_to', default=None, help=help['to']) parser.add_argument('-s', '--step', type=int, metavar='ii', action='store', dest='step_by', default=1, help=help['step']) parser.add_argument('-e', '--extract', metavar='list', action='store', dest='extract', default=None, help=help['extract']) parser.add_argument('-a', '--average', action='store_true', dest='average', default=False, help=help['average']) parser.add_argument('input_file', nargs='?', default=None) parser.add_argument('results_file') options = parser.parse_args() if options.debug: from sfepy.base.base import debug_on_error debug_on_error() filename_in = options.input_file filename_results = options.results_file if filename_in is None: linearize = False else: linearize = True options.dump = True if options.times: steps, times, nts, dts = th.extract_times(filename_results) for ii, time in enumerate(times): step = steps[ii] print('%d %e %e %e' % (step, time, nts[ii], dts[ii])) if options.dump: trunk = get_default(options.output_filename_trunk, get_trunk(filename_results)) if options.same_dir: trunk = os.path.join(os.path.dirname(filename_results), os.path.basename(trunk)) args = {} if linearize: problem = create_problem(filename_in) linearization = Struct(kind='adaptive', min_level=0, max_level=2, eps=1e-2) aux = problem.conf.options.get('linearization', None) linearization.update(aux) if options.linearization is not None: aux = parse_linearization(options.linearization) linearization.update(aux) args.update({ 'fields': problem.fields, 'linearization': linearization }) if options.step_to is None: args.update({'step0': options.step_from}) else: args.update({ 'steps': nm.arange(options.step_from, options.step_to + 1, options.step_by, dtype=nm.int) }) th.dump_to_vtk(filename_results, output_filename_trunk=trunk, **args) if options.extract: ths, ts = th.extract_time_history(filename_results, options.extract) if options.average: ths = th.average_vertex_var_in_cells(ths) if options.output_filename_trunk: th.save_time_history(ths, ts, options.output_filename_trunk + '.h5') else: print(dict_to_struct(ths, flag=(1, 1, 1)).str_all())
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 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(): 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=help['debug']) parser.add_argument('-c', '--conf', metavar='"key : value, ..."', action='store', dest='conf', type=str, default=None, help= help['conf']) parser.add_argument('-O', '--options', metavar='"key : value, ..."', action='store', dest='app_options', type=str, default=None, help=help['options']) parser.add_argument('-o', metavar='filename', action='store', dest='output_filename_trunk', default=None, help=help['filename']) group = parser.add_mutually_exclusive_group() group.add_argument('--oscillator', action='store_true', dest='oscillator', default=False, help=help['oscillator']) group.add_argument('--well', action='store_true', dest='well', default=False, help=help['well']) group.add_argument('--hydrogen', action='store_true', dest='hydrogen', default=False, help=help['hydrogen']) group.add_argument('--boron', action='store_true', dest='boron', default=False, help=help['boron']) parser.add_argument('-n', '--n-eigs', type=int, metavar='int', action='store', dest='n_eigs', default=None, help=help['n_eigs']) parser.add_argument('-t', '--tau', type=float, metavar='float', action='store', dest='tau', default=None, help=help['tau']) parser.add_argument('filename_in', nargs='?') options = parser.parse_args() if options.debug: from sfepy.base.base import debug_on_error; debug_on_error() filename_in = options.filename_in if not filename_in: if options.oscillator: filename_in = fix_path("examples/quantum/oscillator.py") elif options.well: filename_in = fix_path("examples/quantum/well.py") elif options.hydrogen: filename_in = fix_path("examples/quantum/hydrogen.py") elif options.boron: filename_in = fix_path("examples/quantum/boron.py") else: parser.print_help() return define_args = {} if options.n_eigs is not None: define_args['n_eigs'] = options.n_eigs if options.tau is not None: define_args['tau'] = options.tau required, other = get_standard_keywords() conf = ProblemConf.from_file_and_options(filename_in, options, required, other, define_args=define_args) app = SchroedingerApp(conf, options, 'schroedinger:') opts = conf.options if hasattr(opts, 'parametric_hook'): # Parametric study. parametric_hook = conf.get_function(opts.parametric_hook) app.parametrize(parametric_hook) app()