def __init__(self, config): self.cfg = config self.verbose = self.cfg.get('general.verbose') self.time_period = self.cfg.get('time.time_period') self.delta_t = self.cfg.get('time.dt') self.timesteps = int((self.time_period*(1.+self.delta_t*1e-6)) // self.delta_t) self.times = np.linspace(0, self.time_period, self.timesteps + 1) #set correct delta_t self.delta_t = self.times[1]-self.times[0] if self.verbose: print "Timestep used in bednet model:", self.delta_t self.dx = self.cfg.get('domain.dx') self.dy = self.cfg.get('domain.dy') self.nvertyarns = self.cfg.get('domain.nr_vert_yarns') self.nhoryarns = self.cfg.get('domain.nr_hor_yarns') self.diff_coef = self.cfg.get('diffusion.diff_coef') self.saturation_conc = self.cfg.get('saturation.saturation_conc') x0 = self.cfg.get('observer.x0') self.x0 = np.empty(len(x0)+1, float) self.x0[1:] = x0[:] #we set a distance for the yarn bc self.x0[0] = 0.1 self.cfg_yarn = [] for filename in self.cfg.get('sample.yarn_config'): if not os.path.isabs(filename): filename = os.path.normpath(os.path.join( os.path.dirname(self.cfg.filename), filename)) self.cfg_yarn.append(YarnConfigManager.get_instance(filename)) #set values from the yarn on this inifile print 'time', self.time_period self.cfg_yarn[-1].set("time.time_period", self.time_period) self.cfg_yarn[-1].set("boundary.dist_conc_out", float(self.x0[0])) self.cfg_yarn[-1].set("boundary.D_out", self.diff_coef) #create yarn models self.yarn_models = [] for cfg in self.cfg_yarn: self.yarn_models.append(Yarn1DModel(cfg)) self.nr_models = len(self.yarn_models) #some memory self.source_mass = np.empty((self.nr_models, self.timesteps + 1), float) #plot the result every few seconds so outcome becomes visible during calculations self.plotevery = self.cfg.get("plot.plotevery")
pylab.subplot(122) pylab.plot(zone_position_real, ratio_cotton, '*') pylab.plot(draw_real, poly_cotton(draw_real), '-') pylab.xlim(0., 1.05) pylab.ylim(0., 0.8) pylab.axis() pylab.show() raw_input("check the figure") #set up a yarn computation from fiber.config import FiberConfigManager from yarn.config import YarnConfigManager from lib.utils.utils import set_outputdir cfgf1 = FiberConfigManager.get_instance('tmpfiber1.ini', realdatastr=ini_fiber1) cfgf2 = FiberConfigManager.get_instance('tmpfiber2.ini', realdatastr=ini_fiber2) #cfgf3 = FiberConfigManager.get_instance('tmpfiber3.ini', realdatastr=ini_fiber3) cfg = YarnConfigManager.get_instance('tmpyarn.ini', realdatastr=ini_yarn) #create outputdir if not existing if not os.path.isdir('temp'): os.mkdir('temp') set_outputdir('temp') #create 10 2D grids for statistics from yarn2d.yarn2dgrid import Yarn2dGrid grid = Yarn2dGrid(cfg) ouroptions = { 'x_central' : grid.x_central, 'y_central' : grid.y_central, 'number_fiber' : grid.number_fiber, 'number_fiber_blend' : grid.number_fiber_blend, 'radius_fiber' : grid.radius_fiber, 'radius_yarn' : grid.radius_yarn, 'theta_value' : grid.theta_value,