def special_BetaEq(EOSlist,temps,yes,mytype): for ieos in range(len(EOSlist)): myeos = eosDriver(EOSlist[ieos][1]) rhomax = (10.0e0**max(myeos.h5file['logrho']))*0.995 eostablename = EOSlist[ieos][0]+\ "_eostable_BetaEq_"+mytype+".dat" energy_shift = myeos.h5file['energy_shift'][0] if(mytype == "c30p5"): tempfunc = kentaDataTofLogRhoFit2() elif(mytype == "c30p10"): tempfunc = kentaDataTofLogRhoFit1() elif(mytype == "c30p0"): tempfunc = getTRollFunc(30.0,0.01,14.055,0.375) elif(mytype == "c20p0"): tempfunc = getTRollFunc(20.0,0.01,14.0-0.07,0.125) elif(mytype == "c40p0"): tempfunc = getTRollFunc(40.0,0.01,14.25-0.07,0.5) logrhos = linspace(log10(rhomin),log10(rhomax),nrhos) eostable = zeros((nrhos,2)) for i in range(nrhos): temp = tempfunc(logrhos[i]) ye = myeos.setBetaEqState({'rho': 10.0**logrhos[i], 'temp': temp}) (press,eps) = myeos.query(['logpress','logenergy']) # convert units eostable[i,0] = log10(10.0**press * press_gf) eostable[i,1] = log10(10.0**eps * eps_gf) if (i>0 and eostable[i,0] < eostable[i-1,0]): eostable[i,0] = eostable[i-1,0] print "Making EOS: %15.6E %15.6E %15.6E" % (10.0**logrhos[i],temp,ye) energy_shift = energy_shift*eps_gf # write EOS table eosfile=open(eostablename,"w") esstring = "%18.9E\n" % (energy_shift/eps_gf) eosfile.write(esstring) for i in range(len(eostable[:,0])): sline = "%15.6E %15.6E %15.6E\n" % \ (logrhos[i],eostable[i,0],eostable[i,1]) eosfile.write(sline) eosfile.close() del myeos
'c20p0': 'b', 'c40p0': 'r', 'cold': 'm', 'c30p5': 'c', 'c30p10': 'k'} symbols = {'c30p0': 's', 'c20p0': 'v', 'c40p0': '^', 'c30p5': 'p', 'c30p10': 'H', 'cold': '*'} scriptsList = ['c40p0', 'c30p0', 'c20p0', 'cold'] cXXp0_params = [(40.0, 14.18, 0.5,), (30.0, 14.055, 0.375), (20.0, 13.93, 0.25)] tempFuncs = [getTRollFunc(params[0], 0.01, params[1], params[2]) for params in cXXp0_params] tempFuncs.append(kentaDataTofLogRhoFit1()) tempFuncs.append(kentaDataTofLogRhoFit2()) tempFuncs.append(lambda x: 0.01) tempFuncsDict = {scriptsList[i]: tempFuncs[i] for i in range(len(scriptsList))} ############################################################# # First plot ############################################################# filters = ('edMax>2.0e14', 'ToverW<0.25', 'baryMass<2.6') plotList = [] # coldTovSet = cstDataset('cold', eosName, ye, sourceDb) # coldTovSeq = cstSequence(coldTovSet, tovSlice, filters) # theEos.resetCachedBetaEqYeVsRhobs(tempFuncsDict['cold'], 13.5, 16.0) # coldTovPlot = \ # coldTovSeq.getSeqPlot([xVar], yVars, filters, \
'c40p0': '^', 'c30p5': 'p', 'c30p10': 'H', 'cold': '*' } scriptsList = ['c40p0', 'c30p0', 'c20p0', 'cold'] cXXp0_params = [( 40.0, 14.18, 0.5, ), (30.0, 14.055, 0.375), (20.0, 13.93, 0.25)] tempFuncs = [ getTRollFunc(params[0], 0.01, params[1], params[2]) for params in cXXp0_params ] tempFuncs.append(kentaDataTofLogRhoFit1()) tempFuncs.append(kentaDataTofLogRhoFit2()) tempFuncs.append(lambda x: 0.01) tempFuncsDict = {scriptsList[i]: tempFuncs[i] for i in range(len(scriptsList))} ############################################################# # First plot ############################################################# filters = ('edMax>2.0e14', 'ToverW<0.25', 'baryMass<2.6') plotList = [] # coldTovSet = cstDataset('cold', eosName, ye, sourceDb) # coldTovSeq = cstSequence(coldTovSet, tovSlice, filters) # theEos.resetCachedBetaEqYeVsRhobs(tempFuncsDict['cold'], 13.5, 16.0) # coldTovPlot = \ # coldTovSeq.getSeqPlot([xVar], yVars, filters, \ # xcolFunc=lambda x: theEos.rhobFromEnergyDensityWithTofRho(x, ye, tempFuncsDict['cold']),
symbols = {'c30p0': 's', 'c20p0': 'v', 'c40p0': '^', 'c30p5': 'p', 'c30p10': 'H', 'cold': '*'} slicesToPlot = [a7, diffMaxRotSlice] plateauPlots = True tFuncs = [] scripts = [] if plateauPlots: scripts = ['c30p10', 'c30p5', 'cold'] tFuncs = [kentaDataTofLogRhoFit1(), kentaDataTofLogRhoFit2(), lambda x: 0.01] else: params40 = (40.0, 14.18, 0.5,) params20 = (20.0, 13.93, 0.25,) scripts = ['c40p0', 'c20p0', 'cold'] tFuncs = [getTRollFunc(params40[0], 0.01, params40[1], params40[2]), getTRollFunc(params20[0], 0.01, params20[1], params20[2]), lambda x: 0.01] ye = 'BetaEq' colorLegs = [] for i, script in enumerate(scripts):
def special_NFBetaEq_pnu(EOSlist,temps,mytype): for ieos in range(len(EOSlist)): myeos = eosDriver(EOSlist[ieos][1]) rhomax = (10.0e0**max(myeos.h5file['logrho']))*0.995 eostablename = EOSlist[ieos][0]+\ "_eostable_NFBetaEq_pnu_"+mytype+".dat" energy_shift = myeos.h5file['energy_shift'][0] logrhos = linspace(log10(rhomin),log10(rhomax),nrhos) eostable = zeros((nrhos,2)) energy_shift = energy_shift*eps_gf rhotrap = 10.0e0**12.5 if(mytype == "c30p5"): tempfunc = kentaDataTofLogRhoFit2() elif(mytype == "c30p10"): tempfunc = kentaDataTofLogRhoFit1() elif(mytype == "c30p0"): tempfunc = getTRollFunc(30.0,0.01,14.055,0.375) elif(mytype == "c20p0"): tempfunc = getTRollFunc(20.0,0.01,14.0-0.07,0.125) elif(mytype == "c40p0"): tempfunc = getTRollFunc(40.0,0.01,14.25-0.07,0.5) for i in range(nrhos): temp_cold = 0.5e0 temp = tempfunc(logrhos[i]) rho = 10.0**logrhos[i] ylep = myeos.setBetaEqState({'rho': rho, 'temp': temp_cold}) ye2 = myeos.setBetaEqState({'rho': rho, 'temp': temp}) ye1 = myeos.setNuFullBetaEqState({'rho': rho, 'temp': temp},ylep) ye = ye2*(1-exp(-rhotrap/rho)) + ye1*(exp(-rhotrap/rho)) myeos.setState({'rho': rho, 'temp': temp, 'ye' : ye}) print "Making EOS: %15.6E %15.6E %15.6E %15.6E %15.6E %15.6E" %\ (10.0**logrhos[i],temp,ye,ye1,ye2,ylep) (press,eps,munu) = myeos.query(['logpress','logenergy','munu']) eta = munu/temp pnu = get_pnu(eta,temp,rho,rhotrap) epsnu = 3.0e0*pnu / rho # convert units eostable[i,0] = log10((10.0**press+pnu) * press_gf) eostable[i,1] = log10((10.0**eps+epsnu) * eps_gf) if (i>0 and eostable[i,0] < eostable[i-1,0]): eostable[i,0] = eostable[i-1,0] eostable[i,0] = eostable[i-1,0] # write EOS table eosfile=open(eostablename,"w") esstring = "%18.9E\n" % (energy_shift/eps_gf) eosfile.write(esstring) for i in range(len(eostable[:,0])): sline = "%15.6E %15.6E %15.6E\n" % \ (logrhos[i],eostable[i,0],eostable[i,1]) eosfile.write(sline) eosfile.close() del myeos
##### change a few standard settings rcParams['xtick.major.size'] = 13 rcParams['xtick.major.pad'] = 8 rcParams['xtick.minor.size'] = 7 rc('legend', fontsize=26) #16 rcParams['ytick.major.size'] = 13 rcParams['ytick.major.pad'] = 8 rcParams['ytick.minor.size'] = 7 ############################################################################## # Load Shen EOS for ye comparisons ############################################################################## shen = eosDriver.eosDriver('/home/jeff/work/HShenEOS_rho220_temp180_ye65_version_1.1_20120817.h5') plotBetaEq = True parametrizedTempProfile = False paramdTfunc = eosDriver.kentaDataTofLogRhoFit1() nuFullBetaEq = True def readFile(filename): data = {'d': [], 'rho': [], 'p': [], 's': [], 'T': [], 'Omega': [], 'ye': [], 'yeBetaEq': [], 'yeBetaParamdTemp': [], 'tableP': [], 'betaP': [], 'constP': [], 'yeNuFull': [], 'constP.08': [], 'constP.1': [], 'constP.12': [] } labels = {'d': None, 'rho': None, 'p': None, 's': None, 'T': None, 'Omega': None, 'ye': None, 'yeBetaEq': "Ye in BetaEq", 'tableP': 'Simulation', 'betaP': 'BetaEq', 'yeNuFull': "Ye in NuFull BetaEq", 'constP': 'Ye=.15', 'constP.08': 'Ye=.08', 'constP.1': 'Ye=.1', 'constP.12': 'Ye=.12' } answer = data.copy() infile = open(filename, 'r')
rcParams['ytick.minor.size'] = 7 fig = plt.figure(figsize=(10, 8)) fig.subplots_adjust(left=0.14) fig.subplots_adjust(bottom=0.14) fig.subplots_adjust(top=0.967) fig.subplots_adjust(right=0.97) ############################################################################## # Load Shen EOS for ye comparisons ############################################################################## shen = eosDriver.eosDriver('/home/jeff/work/HShenEOS_rho220_temp180_ye65_version_1.1_20120817.h5') ls220 = eosDriver.eosDriver('/home/jeff/work/LS220_234r_136t_50y_analmu_20091212_SVNr26.h5') theEos = shen plotBetaEq = True parametrizedTempProfile = False paramdTfunc = eosDriver.kentaDataTofLogRhoFit1() nuFullBetaEq = True colors = {'c30p0': 'g', 'c20p0': 'b', 'c40p0': 'r', 'cold': 'k', 'c30p5': 'c', 'c30p10': 'm', 'sim': plot_defaults.kotzbraun} scripts = {key: [] for key in colors.keys()} scriptsList = ['c40p0', 'c30p0', 'c20p0', 'c30p10', 'c30p5', 'cold'] cXXp0_params = [(40.0, 14.18, 0.5,), (30.0, 14.055, 0.375), (20.0, 13.93, 0.25)] tempFuncs = [getTRollFunc(params[0], 0.01, params[1], params[2]) for params in cXXp0_params] tempFuncs.append(kentaDataTofLogRhoFit1()) tempFuncs.append(kentaDataTofLogRhoFit2())
##### change a few standard settings rcParams["xtick.major.size"] = 13 rcParams["xtick.major.pad"] = 8 rcParams["xtick.minor.size"] = 7 rc("legend", fontsize=26) # 16 rcParams["ytick.major.size"] = 13 rcParams["ytick.major.pad"] = 8 rcParams["ytick.minor.size"] = 7 ############################################################################## # Load Shen EOS for ye comparisons ############################################################################## shen = eosDriver.eosDriver("/home/jeff/work/HShenEOS_rho220_temp180_ye65_version_1.1_20120817.h5") plotBetaEq = True parametrizedTempProfile = False paramdTfunc = eosDriver.kentaDataTofLogRhoFit1() nuFullBetaEq = True def readFile(filename): data = { "d": [], "rho": [], "p": [], "s": [], "T": [], "Omega": [], "ye": [], "yeBetaEq": [], "yeBetaParamdTemp": [],
theEos.setState({'rho': rho, 'ye': ye, 'temp': thisT}) lps.append(theEos.queryTrappedNuPress() / pFull ) pBetaList.append(lpsBeta) lrsList.append(logrhos) legends.append(str(troll).replace(" ", "")) mpl.semilogy(logrhos, lps, c=escolors[i]) #### # Manual entry 1 #### lpsBeta = [] lps = [] tRollFunc = kentaDataTofLogRhoFit1() for lr in logrhos: thisT = tRollFunc(lr) rho = numpy.power(10.0, lr) theEos.setState({'rho': rho, 'ye': ye, 'temp': thisT}) pFull = theEos.query('logpress', deLog10Result=True) theEos.setNuFullBetaEqState({'rho': rho, 'temp': thisT}) pBetaFull = theEos.query('logpress', deLog10Result=True) ts.append(thisT) theEos.setNuFullBetaEqState({'rho': rho, 'temp': thisT}) lpsBeta.append(theEos.queryTrappedNuPress() / pBetaFull ) theEos.setState({'rho': rho, 'ye': ye, 'temp': thisT}) lps.append(theEos.queryTrappedNuPress() / pFull )
'c20p0': 'v', 'c40p0': '^', 'c30p5': 'p', 'c30p10': 'H', 'cold': '*' } slicesToPlot = [a7, diffMaxRotSlice] plateauPlots = True tFuncs = [] scripts = [] if plateauPlots: scripts = ['c30p10', 'c30p5', 'cold'] tFuncs = [ kentaDataTofLogRhoFit1(), kentaDataTofLogRhoFit2(), lambda x: 0.01 ] else: params40 = ( 40.0, 14.18, 0.5, ) params20 = ( 20.0, 13.93, 0.25, ) scripts = ['c40p0', 'c20p0', 'cold'] tFuncs = [
def makeeostable(nrhos,rhomin,rhomax,myeos,myeosname,mytype,par1,par2): assert isinstance(myeos, eosDriver) logrhos = linspace(log10(rhomin),log10(rhomax),nrhos) eostable = zeros((nrhos,2)) eostable2 = zeros((nrhos,4)) energy_shift = 0.0 print mytype if(mytype == 'fixed_ye_temp'): ye = par2 temp = par1 eostablename = myeosname+"_eostable_Ye=%06.3f_T=%06.3f.dat" % \ (par2,par1) energy_shift = myeos.h5file['energy_shift'][0] for i in range(nrhos): myeos.setState({'rho': 10.0**logrhos[i], 'ye': ye, 'temp': temp}) press = myeos.query('logpress') myeos.setState({'rho': 10.0**logrhos[i], 'ye': ye, 'temp': temp}) eps = myeos.query('logenergy') # convert units eostable[i,0] = log10(10.0**press * press_gf) eostable[i,1] = log10(10.0**eps * eps_gf) energy_shift = energy_shift*eps_gf # write EOS table eosfile=open(eostablename,"w") esstring = "%18.9E\n" % (energy_shift/eps_gf) eosfile.write(esstring) for i in range(len(eostable[:,0])): sline = "%15.6E %15.6E %15.6E\n" % \ (logrhos[i],eostable[i,0],eostable[i,1]) eosfile.write(sline) eosfile.close() elif(mytype == 'c30p0_fixed_Ye'): ye = par2 tempfunc = getTRollFunc(30.0,0.01,14.055,0.375) eostablename = myeosname+"_eostable_Ye=%06.3f_c30p0.dat" % \ (par2) energy_shift = myeos.h5file['energy_shift'][0] for i in range(nrhos): temp = tempfunc(logrhos[i]) myeos.setState({'rho': 10.0**logrhos[i], 'ye': ye, 'temp': temp}) press = myeos.query('logpress') myeos.setState({'rho': 10.0**logrhos[i], 'ye': ye, 'temp': temp}) eps = myeos.query('logenergy') # convert units eostable[i,0] = log10(10.0**press * press_gf) eostable[i,1] = log10(10.0**eps * eps_gf) energy_shift = energy_shift*eps_gf # write EOS table eosfile=open(eostablename,"w") esstring = "%18.9E\n" % (energy_shift/eps_gf) eosfile.write(esstring) for i in range(len(eostable[:,0])): sline = "%15.6E %15.6E %15.6E\n" % \ (logrhos[i],eostable[i,0],eostable[i,1]) eosfile.write(sline) eosfile.close() elif(mytype == 'c20p0_fixed_Ye'): ye = par2 tempfunc = getTRollFunc(20.0,0.01,14.0-0.07,0.125) eostablename = myeosname+"_eostable_Ye=%06.3f_c20p0.dat" % \ (par2) energy_shift = myeos.h5file['energy_shift'][0] for i in range(nrhos): temp = tempfunc(logrhos[i]) myeos.setState({'rho': 10.0**logrhos[i], 'ye': ye, 'temp': temp}) press = myeos.query('logpress') myeos.setState({'rho': 10.0**logrhos[i], 'ye': ye, 'temp': temp}) eps = myeos.query('logenergy') # convert units eostable[i,0] = log10(10.0**press * press_gf) eostable[i,1] = log10(10.0**eps * eps_gf) energy_shift = energy_shift*eps_gf # write EOS table eosfile=open(eostablename,"w") esstring = "%18.9E\n" % (energy_shift/eps_gf) eosfile.write(esstring) for i in range(len(eostable[:,0])): sline = "%15.6E %15.6E %15.6E\n" % \ (logrhos[i],eostable[i,0],eostable[i,1]) eosfile.write(sline) eosfile.close() elif(mytype == 'c40p0_fixed_Ye'): ye = par2 tempfunc = getTRollFunc(40.0,0.01,14.25-0.07,0.5) eostablename = myeosname+"_eostable_Ye=%06.3f_c40p0.dat" % \ (par2) energy_shift = myeos.h5file['energy_shift'][0] for i in range(nrhos): temp = tempfunc(logrhos[i]) myeos.setState({'rho': 10.0**logrhos[i], 'ye': ye, 'temp': temp}) press = myeos.query('logpress') myeos.setState({'rho': 10.0**logrhos[i], 'ye': ye, 'temp': temp}) eps = myeos.query('logenergy') # convert units eostable[i,0] = log10(10.0**press * press_gf) eostable[i,1] = log10(10.0**eps * eps_gf) energy_shift = energy_shift*eps_gf # write EOS table eosfile=open(eostablename,"w") esstring = "%18.9E\n" % (energy_shift/eps_gf) eosfile.write(esstring) for i in range(len(eostable[:,0])): sline = "%15.6E %15.6E %15.6E\n" % \ (logrhos[i],eostable[i,0],eostable[i,1]) eosfile.write(sline) eosfile.close() elif(mytype == 'c30p10_fixed_Ye'): ye = par2 tempfunc = kentaDataTofLogRhoFit1() eostablename = myeosname+"_eostable_Ye=%06.3f_c30p10.dat" % \ (par2) energy_shift = myeos.h5file['energy_shift'][0] for i in range(nrhos): temp = tempfunc(logrhos[i]) myeos.setState({'rho': 10.0**logrhos[i], 'ye': ye, 'temp': temp}) press = myeos.query('logpress') myeos.setState({'rho': 10.0**logrhos[i], 'ye': ye, 'temp': temp}) eps = myeos.query('logenergy') # convert units eostable[i,0] = log10(10.0**press * press_gf) eostable[i,1] = log10(10.0**eps * eps_gf) energy_shift = energy_shift*eps_gf # write EOS table eosfile=open(eostablename,"w") esstring = "%18.9E\n" % (energy_shift/eps_gf) eosfile.write(esstring) for i in range(len(eostable[:,0])): sline = "%15.6E %15.6E %15.6E\n" % \ (logrhos[i],eostable[i,0],eostable[i,1]) eosfile.write(sline) eosfile.close() elif(mytype == 'c30p5_fixed_Ye'): ye = par2 tempfunc = kentaDataTofLogRhoFit2() eostablename = myeosname+"_eostable_Ye=%06.3f_c30p5.dat" % \ (par2) energy_shift = myeos.h5file['energy_shift'][0] for i in range(nrhos): temp = tempfunc(logrhos[i]) myeos.setState({'rho': 10.0**logrhos[i], 'ye': ye, 'temp': temp}) press = myeos.query('logpress') myeos.setState({'rho': 10.0**logrhos[i], 'ye': ye, 'temp': temp}) eps = myeos.query('logenergy') # convert units eostable[i,0] = log10(10.0**press * press_gf) eostable[i,1] = log10(10.0**eps * eps_gf) energy_shift = energy_shift*eps_gf # write EOS table eosfile=open(eostablename,"w") esstring = "%18.9E\n" % (energy_shift/eps_gf) eosfile.write(esstring) for i in range(len(eostable[:,0])): sline = "%15.6E %15.6E %15.6E\n" % \ (logrhos[i],eostable[i,0],eostable[i,1]) eosfile.write(sline) eosfile.close() elif(mytype == 'fixed_temp_betaeq'): eostablename = myeosname+"_eostable_BetaEq_T=%06.3f.dat" % (par1) energy_shift = myeos.h5file['energy_shift'][0] temp = par1 lastPress = -1e-300 lastEps = None for i in range(nrhos): ye = myeos.setBetaEqState({'rho': 10.0**logrhos[i], 'temp': temp}) (press,eps) = myeos.query(['logpress','logenergy']) if press < lastPress: print "WOW, PRESSURE DECREASE WHEN INCREASING DENSITY, THAT'S F****D" print "MANUALLY SETTING VALUES TO LAST VALUES" press = lastPress eps = lastEps lastPress = press lastEps = eps # convert units eostable[i,0] = log10(10.0**press * press_gf) eostable[i,1] = log10(10.0**eps * eps_gf) eostable2[i,0] = eostable[i,0] eostable2[i,1] = eostable[i,1] eostable2[i,2] = ye eostable2[i,3] = temp print "Making EOS: %15.6E %15.6E %15.6E" % (10.0**logrhos[i],temp,ye) energy_shift = energy_shift*eps_gf # write EOS table eosfile=open(eostablename,"w") esstring = "%18.9E\n" % (energy_shift/eps_gf) eosfile.write(esstring) for i in range(len(eostable2[:,0])): sline = "%22.14E %22.14E %22.14E %22.14E %22.14E\n" % \ (logrhos[i],eostable2[i,0],eostable2[i,1],eostable2[i,2],eostable2[i,3]) eosfile.write(sline) eosfile.close() elif(mytype == 'fixed_ye_entropy'): ye = par2 entropy = par1 energy_shift = myeos.h5file['energy_shift'][0] eostablename = "eostable_ye=%06.3f_s=%06.3f.dat" % (par2,par1) print eostablename try: eosin = (numpy.loadtxt(eostablename)) eostable[:,0] = eosin[:,1] eostable[:,1] = eosin[:,2] except IOError: for i in range(nrhos): temp = 0.0 temp = myeos.getTemperatureFromQuantityTYe({'rho': 10.0**logrhos[i], 'ye': ye, 'temp': temp},'entropy', entropy) myeos.setState({'rho': 10.0**logrhos[i], 'ye' : ye, 'temp': temp}) (press,eps) = myeos.query(['logpress','logenergy']) # convert units eostable[i,0] = log10(10.0**press * press_gf) eostable[i,1] = log10(10.0**eps * eps_gf) print "Making EOS: %15.6E %15.6E %15.6E" % (10.0**logrhos[i],temp,ye) energy_shift = energy_shift*eps_gf # write EOS table eosfile=open(eostablename,"w") for i in range(len(eostable[:,0])): sline = "%15.6E %15.6E %15.6E\n" % \ (logrhos[i],eostable[i,0],eostable[i,1]) eosfile.write(sline) eosfile.close() elif(mytype == 'fixed_entropy_betaeq'): energy_shift = myeos.h5file['energy_shift'][0] entropy = par1 eostablename = "eostable_betaeq_s=%06.3f.dat" % (par1) print eostablename try: eosin = (numpy.loadtxt(eostablename)) eostable[:,0] = eosin[:,1] eostable[:,1] = eosin[:,2] except IOError: for i in range(nrhos): (ye,temp) = \ myeos.setConstQuantityAndBetaEqState({'rho': 10.0**logrhos[i]},\ 'entropy',par1) (press,eps) = myeos.query(['logpress','logenergy']) # convert units eostable[i,0] = log10(10.0**press * press_gf) eostable[i,1] = log10(10.0**eps * eps_gf) print "Making EOS: %15.6E %15.6E %15.6E" % (10.0**logrhos[i],temp,ye) energy_shift = energy_shift*eps_gf # write EOS table eosfile=open(eostablename,"w") for i in range(len(eostable[:,0])): sline = "%15.6E %15.6E %15.6E\n" % \ (logrhos[i],eostable[i,0],eostable[i,1]) eosfile.write(sline) eosfile.close() elif(mytype == 'poly_G2_K100'): eostable[:,0] = log10(100.0*(10.0**logrhos[:]*rho_gf)**2.0) eostable[:,1] = log10(10.0**eostable[:,0]/(10.0**logrhos[:]*rho_gf) ) else: print "This kind of table can't be done yet: ",mytype sys.exit() logrhos = log10(10.0**logrhos * rho_gf) dlrho = logrhos[1]-logrhos[0] return (eostable,energy_shift,dlrho,logrhos)
scripts = {'c30p0': deepcopy(modelParamsTemplate.copy()), 'c20p0': deepcopy(modelParamsTemplate.copy()), 'c40p0': deepcopy(modelParamsTemplate.copy()), 'T=00010': deepcopy(modelParamsTemplate.copy()), 'c30p5': deepcopy(modelParamsTemplate.copy()), 'c30p10': deepcopy(modelParamsTemplate.copy())} shen = eosDriver.eosDriver('/home/jeff/work/HShenEOS_rho220_temp180_ye65_version_1.1_20120817.h5') tfuncs = {'c30p0': eosDriver.getTRollFunc(30.0, 0.01, 14.055, .375), 'c20p0': eosDriver.getTRollFunc(20.0, 0.01, 13.93, .25), 'c40p0': eosDriver.getTRollFunc(40.0, 0.01, 14.18, .5), 'T=00010': lambda x: 0.01, 'c30p5': eosDriver.kentaDataTofLogRhoFit2(), 'c30p10': eosDriver.kentaDataTofLogRhoFit1()} ye = 0.1 massFraction = .5 def thermalPressureSupport(rho, tfunc): shen.setState({'rho': rho, 'temp': 0.01, 'ye': ye}) cold = shen.query('logpress', deLog10Result=True) shen.setState({'rho': rho, 'temp': tfunc(rho), 'ye': ye }) hot = shen.query('logpress', deLog10Result=True) return hot/cold - 1.0 def findPointOfHalfM(modelData, fract=0.5):
import eosDriver import plot_defaults #plt.rcParams['legend.fontsize'] = 18 print rcParams.keys() rcParams['ytick.major.pad'] = 5 rcParams['xtick.major.pad'] = 10 rcParams['figure.subplot.left'] = 0.13 rcParams['figure.figsize'] = 8, 6 ############################################################################## # Load Shen EOS for ye comparisons ############################################################################## shen = eosDriver.eosDriver( '/home/jeff/work/HShenEOS_rho220_temp180_ye65_version_1.1_20120817.h5') plotBetaEq = True parametrizedTempProfile = True paramdTfunc = eosDriver.kentaDataTofLogRhoFit1() def readFile(filename): data = { 'd': [], 'rho': [], 'p': [], 's': [], 'T': [], 'Omega': [], 'ye': [], 'yeBetaEq': [], 'yeBetaParamdTemp': [], 'tableP': [],
print ls220.query(["logpress", "entropy", "logenergy"]) max = 30.0 min = 0.01 logrhos = numpy.arange(10.0, 16.0, 0.05) rhos = numpy.power(10.0, logrhos) midsAndScales = [(14.0, 0.5), (13.5, 0.5), (14.0, 0.25)] # ls220.writeRotNSeosfile("test10WithNuYeLess-2.eos", {'funcTofLogRho': 'kentaDataTofLogRhoFit1'}, None, True) labels = [] # print shen.getBetaEqYeVsRhobTable(kentaDataTofLogRhoFit1(), 14, 16) for mid, scale in midsAndScales: mpl.plot(logrhos, getTRollFunc(max, min, mid, scale)(logrhos), logrhos, kentaDataTofLogRhoFit1()(logrhos)) labels.append("mid=" + str(mid) + " scale=" + str(scale)) mpl.legend(labels, loc=2) mpl.ylabel("T (MeV)") mpl.xlabel(r"log10($\rho_b$ CGS)") # mpl.show() # print ls220.solveForQuantity({'rho': 1e7, 'temp': 1.0}, 'munu', 0., bounds=None) # print ls220.solveForQuantity({'rho': 1e15, 'ye': 0.1}, 'entropy', 1., bounds=None) ye = "BetaEq" # shen.resetCachedRhobVsEds(getTRollFunc(20., .01, 13.93,.25), ye) # print shen.cachedRhobVsEd # mpl.loglog(numpy.power(10.0, shen.cachedRhobVsEd[1]), (numpy.power(10.0,shen.cachedRhobVsEd[0])-numpy.power(10.0, shen.cachedRhobVsEd[1]))/numpy.power(10.0, shen.cachedRhobVsEd[1])) # mpl.show() # exit()
from eosDriver import eosDriver, getTRollFunc, kentaDataTofLogRhoFit1, kentaDataTofLogRhoFit2 import matplotlib import matplotlib.pyplot as plt import numpy from datasetManager import cstDataset, cstSequence sourceBase = '/home/jeff/work/rotNSruns/refReportsOneMod.db' source6 = '/home/jeff/work/rotNSruns/refReportsOneMod_surf6.db' source = source6 filters = () theSet = cstDataset("c30p10", "LS220", "BetaEq", source) theSeq = cstSequence(theSet, {'a': 0.0, 'rpoe': 'min'}, filters) toPlot = theSeq.getSeqPlot('edMax', 'baryMass', filters) print toPlot #otherSet = cstDataset("c30p10", "LS220", "BetaEq", source6) ## EOS convert density ls220EosTableFilename = '/home/jeff/work/LS220_234r_136t_50y_analmu_20091212_SVNr26.h5' theEos = eosDriver(ls220EosTableFilename) print theEos.rhobFromEnergyDensityWithTofRho(1.0e15, "BetaEq", kentaDataTofLogRhoFit1())
import numpy import eosDriver import plot_defaults #plt.rcParams['legend.fontsize'] = 18 print rcParams.keys() rcParams['ytick.major.pad'] = 5 rcParams['xtick.major.pad'] = 10 rcParams['figure.subplot.left'] = 0.13 rcParams['figure.figsize'] = 8, 6 ############################################################################## # Load Shen EOS for ye comparisons ############################################################################## shen = eosDriver.eosDriver('/home/jeff/work/HShenEOS_rho220_temp180_ye65_version_1.1_20120817.h5') plotBetaEq = True parametrizedTempProfile = True paramdTfunc = eosDriver.kentaDataTofLogRhoFit1() def readFile(filename): data = {'d': [], 'rho': [], 'p': [], 's': [], 'T': [], 'Omega': [], 'ye': [], 'yeBetaEq': [], 'yeBetaParamdTemp': [], 'tableP': [], 'betaP': [], 'constP': [], 'constP.08': [], 'constP.1': [], 'constP.12': [] } labels = {'d': None, 'rho': None, 'p': None, 's': None, 'T': None, 'Omega': None, 'ye': None, 'yeBetaEq': "Ye in BetaEq", 'tableP': 'Simulation', 'betaP': 'BetaEq', 'constP': 'Ye=.15', 'constP.08': 'Ye=.08', 'constP.1': 'Ye=.1', 'constP.12': 'Ye=.12' } answer = data.copy() infile = open(filename, 'r') headers = infile.readline().split() print headers