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
Example #2
0
          '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, \
Example #3
0
    '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
Example #6
0
##### 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')
Example #7
0
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())
Example #8
0
##### 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 )
Example #10
0
    '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 = [
Example #11
0
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)
Example #12
0
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):
Example #13
0
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': [],
Example #14
0
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())
Example #16
0
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