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']), # ycolFunc=yFunc) # plot = plt.semilogx(*coldTovPlot, c=colors['cold'], ls='-.', label="TOV") # del coldTovSet for script in scriptsList: xFunc = lambda x: theEos.rhobFromEnergyDensityWithTofRho( x, ye, tempFuncsDict[script]) xFunc = lambda x: x thisSet = cstDataset(script, eosName, ye, sourceDb) thisSeq = cstSequence(thisSet, theMaxRotSlice, filters) #cursor = thisSeq.dbConn.cursor() #cursor.execute("SELECT rpoe FROM models") #print cursor.fetchall() eds = [] plotVars = [] for rpoe in numpy.arange(0.64, 1.0, 0.04): ed = thisSet.getSecInstabilitySeq(a, rpoe, 1e15, 3e15) setCursor = thisSet.dbConn.cursor() ptDict = {'a': a, 'rpoe': rpoe, 'edMax': ed} pointFilters = equalsFiltersFromDict(ptDict) query = "WHERE " + " AND ".join(pointFilters) setCursor.execute("SELECT " + ','.join(yVars) + " FROM models " + query) answer = yFunc(*setCursor.fetchall()[0])
############################################################# 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']), # ycolFunc=yFunc) # plot = plt.semilogx(*coldTovPlot, c=colors['cold'], ls='-.', label="TOV") # del coldTovSet for script in scriptsList: xFunc = lambda x: theEos.rhobFromEnergyDensityWithTofRho(x, ye, tempFuncsDict[script]) xFunc = lambda x: x thisSet = cstDataset(script, eosName, ye, sourceDb) thisSeq = cstSequence(thisSet, theMaxRotSlice, filters) #cursor = thisSeq.dbConn.cursor() #cursor.execute("SELECT rpoe FROM models") #print cursor.fetchall() eds = [] plotVars = [] for rpoe in numpy.arange(0.64, 1.0, 0.04): ed = thisSet.getSecInstabilitySeq(a, rpoe, 1e15, 3e15) setCursor = thisSet.dbConn.cursor() ptDict = {'a': a, 'rpoe': rpoe, 'edMax': ed} pointFilters = equalsFiltersFromDict(ptDict) query = "WHERE " + " AND ".join(pointFilters) setCursor.execute("SELECT " + ','.join(yVars) + " FROM models " + query) answer = yFunc(*setCursor.fetchall()[0]) eds.append(xFunc(ed))
'c30p10': 'H' } ############################################################# # W/Mg vs T/W for diff scripts a = 0.6 w T/W < 0.25 threshold ############################################################# xVar = 'ToverW' yVar = None xLabel = latexField(xVar) a = 0.6 slicer = {'a': a, 'rpoe': 'min'} filters = ('ToverW<0.25', ) for script, c in colors.items(): thisSet = cstDataset(script, "HShenEOS", ye, sourceDb) thisSeq = cstSequence(thisSet, slicer, filters) thisPlot = thisSeq.getSeqPlot([xVar], ['gravPotW', 'gravMass'], filters, ycolFunc=lambda a, b: a / b) plt.plot(*thisPlot, label=script, c=c) del thisSet plt.xlabel(xLabel) plt.ylabel("$W/M_g$") plt.legend(loc=2) plt.axes().annotate(r"HShen \," + r"$\tilde{A}=$" + str(a), xy=(.17, 0.36), fontsize=20) plt.show() shen_cold = cstDataset("cold", "HShenEOS", ye, sourceDb) #############################################################
import matplotlib import matplotlib.pyplot as plt import numpy from datasetManager import cstDataset, cstSequence, reduceTwoSeqPlots from plotUtilsForPaper import latexField, fixExponentialAxes, removeExponentialNotationOnAxis import plot_defaults sourceDb = '/home/jeff/work/rotNSruns/allRuns3-25-13.db' ye = 0.1 # shen_c40p0 = cstDataset("c40p0", "HShenEOS", ye, sourceDb) # shen_c30p0 = cstDataset("c30p0", "HShenEOS", ye, sourceDb) # shen_c20p0 = cstDataset("c20p0", "HShenEOS", ye, sourceDb) # shen_c30p10 = cstDataset("c30p10", "HShenEOS", ye, sourceDb) # shen_c30p5 = cstDataset("c30p5", "HShenEOS", ye, sourceDb) shen_cold = cstDataset("cold", "HShenEOS", ye, sourceDb) # ls220_c40p0 = cstDataset("c40p0", "LS220", ye, sourceDb) # ls220_c30p0 = cstDataset("c30p0", "LS220", ye, sourceDb) # ls220_c20p0 = cstDataset("c20p0", "LS220", ye, sourceDb) # ls220_c30p10 = cstDataset("c30p10", "LS220", ye, sourceDb) # ls220_c30p5 = cstDataset("c30p5", "LS220", ye, sourceDb) ls220_cold = cstDataset("cold", "LS220", ye, sourceDb) tovSlice = {'a': 0.0, 'rpoe': 1.0} uniformMaxRotSlice = {'a': 0.0, 'rpoe': 'min'} xVar = 'edMax' xLabel = latexField(xVar) yVar = 'gravMass'
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))} scriptsList = scriptsList[::-1] for script in scriptsList: thisSet = cstDataset(script, eosName, ye, shedDb) c = thisSet.dbConn.cursor() c.execute("SELECT MAX(baryMass) FROM models") mb = c.fetchall()[0][0] c.execute("SELECT MAX(gravMass) FROM models WHERE ToverW<0.25") mg_max = c.fetchall()[0][0] filt = nearValueFilter('baryMass', mb, 1e-7) #print filt c.execute( "SELECT edMax,baryMass,gravMass,arealR,rpoe,omega_c,ToverW FROM models WHERE " + " AND ".join(filt)) values = c.fetchall()[0] mg_at_maxMb = values[2] rhob = theEos.rhobFromEnergyDensityWithTofRho(values[0], ye, tempFuncsDict[script]) print eosText + " " + script + " ",
'cold': '*'} 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()) tempFuncs.append(lambda x: 0.01) tempFuncsDict = {scriptsList[i]: tempFuncs[i] for i in range(len(scriptsList))} scriptsList = ['cold'] ############################################################# # First plot: Just Shen, frac diffs ############################################################# filters = ('edMax>0.5e14',) 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']), ycolFunc=yFunc) plot = plt.semilogx(*coldTovPlot, c=colors['cold'], ls='--', dashes=plot_defaults.longDashes, label="TOV") del coldTovSet for script in scriptsList: thisSet = cstDataset(script, eosName, ye, sourceDb) thisSeq = cstSequence(thisSet, uniformMaxRotSlice, filters) theEos.resetCachedBetaEqYeVsRhobs(tempFuncsDict[script], 13.5, 16.0)
import matplotlib.pyplot as plt from datasetManager import cstDataset, cstSequence, reduceTwoSeqPlots import numpy sourceDb = '/home/jeff/work/rotNSruns/vdenseBetaEqOnly.db' ye = 'BetaEq' eosTable = 'LS220' #c40p0 = cstDataset("c40p0", eosTable, 'BetaEq', sourceDb) c0p0 = cstDataset("cold", eosTable, 'BetaEq', sourceDb) point = {'a': 1., 'rpoe': 0.38, 'edMax': 595697963600000.} print numpy.linalg.det(c0p0.gradientsAtPoint(['J', 'baryMass'], point)) c0p0.getSecInstabilitySeq(0.0, 0.7, 1e15, 3e15) exit() sliceDict = {'a': 1.0, 'rpoe': 'min'} filters = () # ('ToverW<.12', 'RedMax=0.0')#('ToverW>0.1',) thisSeq40 = cstSequence(c40p0, sliceDict, filters) thisSeq0 = cstSequence(c0p0, sliceDict, filters) #thisSeq.getColumnData(['J', 'gravMass'], lambda j, m: j / (m * m), ('ToverW<.25',)) # # guy40 = thisSeq40.getSeqPlot(['rpoe'], ['J', 'gravMass'], filters, # ycolFunc=lambda j, m: j / (m * m)) # guy0 = thisSeq0.getSeqPlot(['rpoe'], ['J', 'gravMass'], filters,
'c30p10': 'H'} ############################################################# # W/Mg vs T/W for diff scripts a = 0.6 w T/W < 0.25 threshold ############################################################# xVar = 'ToverW' yVar = None xLabel = latexField(xVar) a = 0.6 slicer = {'a': a, 'rpoe': 'min'} filters = ('ToverW<0.25',) for script, c in colors.items(): thisSet = cstDataset(script, "HShenEOS", ye, sourceDb) thisSeq = cstSequence(thisSet, slicer, filters) thisPlot = thisSeq.getSeqPlot([xVar], ['gravPotW', 'gravMass'], filters, ycolFunc=lambda a, b: a / b) plt.plot(*thisPlot, label=script, c=c) del thisSet plt.xlabel(xLabel) plt.ylabel("$W/M_g$") plt.legend(loc=2) plt.axes().annotate(r"HShen \," + r"$\tilde{A}=$" + str(a), xy=(.17, 0.36), fontsize=20) plt.show() shen_cold = cstDataset("cold", "HShenEOS", ye, sourceDb) ############################################################# # W/Mg vs T/W for cold: w T/W < 0.25 threshold ############################################################# xVar = 'ToverW'
theEos = shen scriptsList = ['c40p0', 'c30p10', 'c30p5', '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))} scriptsList = scriptsList[::-1] for script in scriptsList: if script == 'c30p10': thisSet = cstDataset(script, eosName, ye, c30p10Db) else: thisSet = cstDataset(script, eosName, ye, shedDb) c = thisSet.dbConn.cursor() # c.execute("SELECT MAX(gravMass) FROM models WHERE ToverW<0.25") # mg_max = c.fetchall()[0][0] c.execute("SELECT MAX(baryMass) FROM models WHERE ToverW<0.25") mb = c.fetchall()[0][0] filt = nearValueFilter('baryMass', mb, 1e-7) + ('ToverW<0.25',) #print filt c.execute("SELECT edMax,baryMass,gravMass,arealR,rpoe,a,omega_c,ToverW FROM models WHERE " + " AND ".join(filt)) values = c.fetchall()[0] mg_at_maxMb = values[2] rhob = theEos.rhobFromEnergyDensityWithTofRho(values[0], ye, tempFuncsDict[script]) print eosText + " " + script + " ",
), (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: Just Shen, frac diffs ############################################################# filters = ('edMax>0.5e14', ) 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']), ycolFunc=yFunc) plot = plt.semilogx(*coldTovPlot, c=colors['cold'], ls='--', dashes=plot_defaults.longDashes, label="TOV") del coldTovSet for script in colors.keys(): thisSet = cstDataset(script, eosName, ye, sourceDb) thisSeq = cstSequence(thisSet, uniformMaxRotSlice, filters)
from consts import CGS_C, CGS_MSUN 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)
#scriptsList = ['c40p0'] ############################################################# # First plot the curves ############################################################# cacheMin = 14.0 # expected minimum log10(rhob) in runs cacheMax = 15.6 # expected maximum log10(rhob) in runs plotListScriptLegend = [] plotListALegend = [] for script in scriptsList: # break #xFunc = lambda x: theEos.rhobFromEnergyDensityWithTofRho(x, ye, tempFuncsDict[script]) #xFunc = lambda x: x if script == 'c30p10': thisSet = cstDataset(script, eosName, ye, '/home/jeff/work/rotNSruns/svdense30p10A.db') else: thisSet = cstDataset(script, eosName, ye, sourceDb) theEos.resetCachedBetaEqYeVsRhobs(tempFuncsDict[script], cacheMin, cacheMax) theEos.resetCachedRhobVsEds(tempFuncsDict[script], ye, cacheMin, cacheMax) xFunc = lambda x: theEos.rhobFromEdCached(x)/1.0e15 for i, a in enumerate(aList): theMaxRotSlice.update({'a': a}) thisSeq = cstSequence(thisSet, theMaxRotSlice, filters) thisPlot = thisSeq.getSeqPlot([xVar], yVars, filters, xcolFunc=xFunc, ycolFunc=yFunc) kwargs = {}
#scriptsList = ['c40p0'] ############################################################# # First plot the curves ############################################################# cacheMin = 14.0 # expected minimum log10(rhob) in runs cacheMax = 15.6 # expected maximum log10(rhob) in runs plotListScriptLegend = [] plotListALegend = [] for script in scriptsList: # break #xFunc = lambda x: theEos.rhobFromEnergyDensityWithTofRho(x, ye, tempFuncsDict[script]) #xFunc = lambda x: x if script == 'c30p10': thisSet = cstDataset(script, eosName, ye, '/home/jeff/work/rotNSruns/svdense30p10A.db') else: thisSet = cstDataset(script, eosName, ye, sourceDb) theEos.resetCachedBetaEqYeVsRhobs(tempFuncsDict[script], cacheMin, cacheMax) theEos.resetCachedRhobVsEds(tempFuncsDict[script], ye, cacheMin, cacheMax) xFunc = lambda x: theEos.rhobFromEdCached(x) / 1.0e15 for i, a in enumerate(aList): theMaxRotSlice.update({'a': a}) thisSeq = cstSequence(thisSet, theMaxRotSlice, filters) thisPlot = thisSeq.getSeqPlot([xVar], yVars, filters,