コード例 #1
0
    def test_get_Pinj_over_Pcomb(self):
        """ test call to get_Pinj_over_Pcomb( Pc=100.0, MR=1.0) """
        C = CEA_Obj(oxName="LOX", fuelName="MMH", fac_CR=2.5)

        prat = C.get_Pinj_over_Pcomb(Pc=100.0, MR=1.0)
        self.assertAlmostEqual(prat, 1.0701504515007396, places=7)

        prat = C.get_Pinj_over_Pcomb(Pc=100.0, MR=1.0, fac_CR=3.0)
        self.assertAlmostEqual(prat, 1.0477109324175184, places=7)

        prat = C.get_Pinj_over_Pcomb(Pc=100.0, MR=1.0)
        self.assertAlmostEqual(prat, 1.0701504515007396, places=7)

        del C
コード例 #2
0
def make_pratL(oxName, fuelName, MR):
    C = CEA_Obj(oxName=oxName, fuelName=fuelName)
    pratL = [C.get_Pinj_over_Pcomb(Pc=Pc, MR=MR, fac_CR=cr) for cr in crL]

    plot(crL,
         pratL,
         label='%s/%s (Pinj/Pcomb)' % (oxName, fuelName),
         linewidth=2)
"""
    figure out Pcinj_face to get desired Pcomb_end (100 atm in example)
"""
from rocketcea.cea_obj import CEA_Obj

cr = 2.5  # contraction ratio
ispObj = CEA_Obj(oxName='LOX', fuelName='LH2', fac_CR=cr)

# Use 100 atm to make output easy to read
Pc = 100.0 * 14.6959

# use correlation to make 1st estimate of Pcinj_face / Pcomb_end
PinjOverPcomb = 1.0 + 0.54 / cr**2.2

# use RocketCEA to refine initial estimate
PinjOverPcomb = ispObj.get_Pinj_over_Pcomb(Pc=Pc * PinjOverPcomb, MR=6.0)

# print results (noting that "COMB END" == 100.00 atm)
s = ispObj.get_full_cea_output(Pc=Pc * PinjOverPcomb, MR=6.0, eps=40.0)
print(s)
fuelName = 'MMH'

ispObj = CEA_Obj(propName='', oxName=oxName, fuelName=fuelName)

cr_min = 1.4
cr_max = 5.1
d_cr = 0.2

crL = []
cea_pratL = []
est_pratL = []
fac_CR = cr_min

while fac_CR < cr_max:
    crL.append(fac_CR)
    cea_pratL.append(ispObj.get_Pinj_over_Pcomb(Pc=Pc, MR=MR, fac_CR=fac_CR))
    est_pratL.append(1.0 + 0.54 / fac_CR**2.2)

    fac_CR += d_cr
plot(crL, cea_pratL, label='CEA %s/%s' % (oxName, fuelName), linewidth=2)
plot(crL, est_pratL, label='Est Eqn = 1.0 + 0.54 / CR**2.2', linewidth=2)

legend(loc='best')
grid(True)
title('Rayleigh Pressure Ratio for %s at Pc=%g' % (ispObj.desc, Pc))
xlabel('Contraction Ratio')
ylabel('Pinjector / Pchamber')
savefig('pinj_over_pcomb.png', dpi=120)

show()