def main(*args): opts, args = get_prog_opts(args, __doc__) comm = init_mpi_petsc(opts) problem_list = [ Poisson(), ] simulation_list = [default_s] numerics_list = [ C0P1_Poisson_Numerics(), ] numerics_list[0].periodicDirichletConditions = problem_list[ 0].periodicDirichletConditions numerics_list[0].T = problem_list[0].T simulation_name = problem_list[0].name + "_" + numerics_list[ 0].__class__.__name__ simulation_name_proc = simulation_name + "_" + repr(comm.rank()) simFlagsList = [{ 'simulationName': simulation_name, 'simulationNameProc': simulation_name_proc, 'dataFile': simulation_name_proc + '.dat', 'components': [ci for ci in range(problem_list[0].coefficients.nc)], }] so = default_so so.name = problem_list[0].name so.pnList = problem_list so.sList = [default_s] try: so.systemStepControllerType = numerics_list[0].systemStepControllerType except AttributeError: pass try: so.tnList = numerics_list[0].tnList so.archiveFlag = numerics_list[0].archiveFlag except AttributeError: pass runNumber = 0 runName = so.name + repr(runNumber) Profiling.procID = comm.rank() if simulation_list[0].logAllProcesses or opts.logAllProcesses: Profiling.logAllProcesses = True Profiling.flushBuffer = simulation_list[0].flushBuffer if opts.logLevel > 0: Profiling.openLog(runName + ".log", opts.logLevel) ns = NumericalSolution.NS_base(default_so, problem_list, numerics_list, simulation_list, opts, simFlagsList) ns.calculateSolution(runName)
def proteus_runner(expr, problem_kws, numerics_kws, *args, **kws): opts, args = get_prog_opts(args, __doc__) log = kws.get('log', None) if log is None: log = Profiling.logEvent comm = init_mpi_petsc(opts, log) problem_list = [ProteusProblem(**problem_kws),] simulation_list = [default_s] numerics_list = [ProteusNumerics(**numerics_kws),] numerics_list[0].periodicDirichletConditions = problem_list[0].periodicDirichletConditions numerics_list[0].T = problem_list[0].T simulation_name = problem_list[0].name + "_" + numerics_list[0].__class__.__name__ simulation_name_proc = simulation_name + "_" + repr(comm.rank()) simFlagsList = [{ 'simulationName': simulation_name, 'simulationNameProc': simulation_name_proc, 'dataFile': simulation_name_proc + '.dat', 'components' : [ci for ci in range(problem_list[0].coefficients.nc)], }] so = default_so so.name = problem_list[0].name so.pnList = problem_list so.sList = [default_s] try: so.systemStepControllerType = numerics_list[0].systemStepControllerType except AttributeError: pass try: so.tnList = numerics_list[0].tnList so.archiveFlag = numerics_list[0].archiveFlag except AttributeError: pass runNumber = 0 runName = so.name + repr(runNumber) Profiling.procID=comm.rank() if simulation_list[0].logAllProcesses or opts.logAllProcesses: Profiling.logAllProcesses = True Profiling.flushBuffer=simulation_list[0].flushBuffer if opts.logLevel > 0: Profiling.openLog(runName+".log",opts.logLevel) ns = NumericalSolution.NS_base(default_so, problem_list, numerics_list, simulation_list, opts, simFlagsList) ns.calculateSolution(runName)
def load_simulation(context_options_str=None): """ Loads a two-phase step problem with settings Parameters ---------- settings: Returns: -------- """ from proteus import Context from proteus import default_s reload(PETSc) reload(iproteus) reload(default_p) reload(default_n) reload(default_s) Profiling.openLog("proteus.log",11) Profiling.verbose=True Context.contextOptionsString=context_options_str step2d_so = defaults.load_system('step2d_so',import_modules) twp_navier_stokes_step2d_p = defaults.load_physics('twp_navier_stokes_step2d_p',import_modules) twp_navier_stokes_step2d_n = defaults.load_numerics('twp_navier_stokes_step2d_n',import_modules) pList = [twp_navier_stokes_step2d_p] nList = [twp_navier_stokes_step2d_n] pList[0].name = 'step2d' so = step2d_so so.name = pList[0].name so.sList = pList[0].name so.sList = [default_s] _scriptdir = os.path.dirname(__file__) Profiling.logAllProcesses = False ns = NumericalSolution.NS_base(so, pList, nList, so.sList, opts) return ns
line = line[:line.index('#')] return line stripped_data = [strip_comments(line) for line in data] petsc_argv += '\n'.join(stripped_data).split() log("PETSc options from commandline") log(str(petsc_argv)) Comm.argv = petsc_argv comm = Comm.init() Profiling.procID=comm.rank() if opts.logLevel > 0: #mwf looks like just gets .py.log if no sso file given #Profiling.openLog(args[0][-3:]+".log",opts.logLevel) if len(args) == 0: Profiling.openLog("proteus.log",opts.logLevel) elif len(args[0].split(' ')) == 1: Profiling.openLog(args[0].split('.')[0]+".log",opts.logLevel) else: Profiling.openLog(args[0][-3:]+".log",opts.logLevel) if opts.logAllProcesses: Profiling.logAllProcesses = True #blanket import statements can go below here now that petsc4py should be initialized from proteus import * try: from proteusGraphical import * except: pass log("Adding "+str(opts.probDir)+" to path for loading modules")
line = line[:line.index('#')] return line stripped_data = [strip_comments(line) for line in data] petsc_argv += '\n'.join(stripped_data).split() log("PETSc options from commandline") log(str(petsc_argv)) Comm.argv = petsc_argv comm = Comm.init() Profiling.procID = comm.rank() if opts.logLevel > 0: #mwf looks like just gets .py.log if no sso file given #Profiling.openLog(args[0][-3:]+".log",opts.logLevel) if len(args) == 0: Profiling.openLog("proteus.log", opts.logLevel) elif len(args[0].split(' ')) == 1: Profiling.openLog(args[0].split('.')[0] + ".log", opts.logLevel) else: Profiling.openLog(args[0][-3:] + ".log", opts.logLevel) if opts.logAllProcesses: Profiling.logAllProcesses = True #blanket import statements can go below here now that petsc4py should be initialized from proteus import * try: from proteusGraphical import * except: pass log("Adding " + str(opts.probDir) + " to path for loading modules")
from __future__ import print_function #import sys #from proteus import Comm from future import standard_library standard_library.install_aliases() import os import sys import socket import pickle import numpy import proteus #remove blankent import statements until after Comm initialized for petsc4py # from proteus import * from proteus import Profiling, Comm from warnings import * import optparse import sys import pstats import pdb import petsc4py Profiling.openLog("proteus.log", 7) print(sys.argv[:1]) Comm.argv = sys.argv[:1] comm = Comm.init() comm = Comm.init() #petsc4py.init(sys.argv[:1]) print(comm.rank(), comm.size()) print("Hello World from", comm.rank()) from proteus import * Profiling.procID = comm.rank()
#import sys #from proteus import Comm import os import sys import socket import cPickle import numpy import proteus #remove blankent import statements until after Comm initialized for petsc4py # from proteus import * from proteus import Profiling,Comm from warnings import * import optparse import sys import pstats import pdb import petsc4py Profiling.openLog("proteus.log",7) print sys.argv[:1] comm = Comm.init(argv=sys.argv[:1]) comm = Comm.init(argv=sys.argv[:1]) #petsc4py.init(sys.argv[:1]) print comm.rank(),comm.size() print "Hellow World from",comm.rank() from proteus import * Profiling.procID=comm.rank()