Ejemplo n.º 1
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])
Ejemplo n.º 2
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))
Ejemplo n.º 3
0
    '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)
#############################################################
Ejemplo n.º 4
0
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'
Ejemplo n.º 5
0
    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 + "   ",
Ejemplo n.º 6
0
           '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)
Ejemplo n.º 7
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,
Ejemplo n.º 8
0
           '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 + "   ",
Ejemplo n.º 10
0
), (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)
Ejemplo n.º 11
0
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)
Ejemplo n.º 12
0
#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 = {}
Ejemplo n.º 13
0
#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,