Esempio n. 1
0
def initTriCycle(IGEElement,doPickle=True,samples=10):
    fitHist=param.fitHistory()
    lumInterval=runLumCycle(maxIter=5)
    curParam=param.param()
    curParam['lum']=lumInterval['suggestValue']
    intervals={'luminterval':lumInterval['interval'],
               'vphinterval':initialize.getVphBounds(),
                #make sure that no other metal really shoots up
                'igeinterval':initialize.getElementBounds(IGEElement,curParam.comp)}
    #pdb.set_trace()
    lumRange=np.linspace(intervals['luminterval'][0],intervals['luminterval'][1],num=samples)
    vphRange=np.linspace(intervals['vphinterval'][0],intervals['vphinterval'][1],num=samples)
    IGERange=np.linspace(intervals['igeinterval'][0],intervals['igeinterval'][1],num=samples)
    lumMG,vphMG,IGEMG,curParamMG=launcherSteps.launchTriCycle(lumRange,vphRange,IGERange,IGEElement,initParam=curParam)
    if doPickle:
        pickle.dump(lumMG,file('lumMG0.pkl','w'))
        pickle.dump(vphMG,file('vphMG0.pkl','w'))
        pickle.dump(IGEMG,file('igeMG0.pkl','w'))
    
    evalTriCycle(lumMG,vphMG,IGEMG,curParamMG,curParam,intervals,fitHist,IGEElement,mode='init')
    return fitHist,curParam,intervals
Esempio n. 2
0
def runLumCycle(doPickle=True,maxIter=None,meritThresh=0.01,samples=10,fitHist=None):
    if fitHist==None: fitHist=param.fitHistory()
    lumModelGrid,interval=initLum()
    #fitHist.addHistItem([interval],[lumModelGrid],[None])
    
    #print interval
    i=1
    while True:
        runDirs,params=launcherSteps.launchLum(np.linspace(interval['interval'][0],interval['interval'][1],samples))
        lumModelGrid=read.modelGrid(runDirs,params)
        basePath=os.path.split(runDirs[0])[0]
        if doPickle:
            pickle.dump(lumModelGrid,file(os.path.join(basePath,'lum%d.pkl'%i),'w'))
        i+=1
        interval=dalekSteps.getNextLumInterval(lumModelGrid)
        #fitHist.addHistItem([interval],[lumModelGrid],[None])
        print "Current interval:",interval
        if maxIter!=None:
            if i>maxIter: break
        #fitHist.write2pickle('lumCycle.pkl')
        if interval['merit']<meritThresh: break
        
    return interval