Plot Examples — RocketCEA v1.1.25 documentation

# Plot Examples

The following examples show easy approaches to plotting RocketCEA results.

Copy and Paste any of the code below into your text editor, save it and run it. (For many text editors, hitting the F5 key will execute the code)

## Cstar Plot

The script below plots Cstar Values for LOX/LH2 for several values of chamber pressure and a range of mixture ratio.

    from rocketcea.cea_obj import CEA_Obj
    from pylab import *

    pcL = [ 2000., 500., 70.]

    ispObj = CEA_Obj(propName='', oxName='LOX', fuelName="LH2")

    for Pc in pcL:
        cstarArr = []
        MR = 2.0
        mrArr = []
        while MR < 8.0:
            cstarArr.append( ispObj.get_Cstar( Pc=Pc, MR=MR) )
            mrArr.append(MR)
            MR += 0.05
        plot(mrArr, cstarArr, label='Pc=%g psia'%Pc)

    legend(loc='best')
    grid(True)
    title( ispObj.desc )
    xlabel( 'Mixture Ratio' )
    ylabel( 'Cstar (ft/sec)' )
    savefig('cea_cstar_plot.png', dpi=120)

    show()

Click images to see full size

## Isp Plot

Plot several area ratios over a range of mixture ratio.

    from rocketcea.cea_obj import CEA_Obj
    from pylab import *

    Pc = 500.0

    ispIRFNA = CEA_Obj(propName='', oxName='IRFNA', fuelName="MHF3")
    for e in [50.0,20.0,10.0]:
        ispArr = []
        MR = 1.1
        mrArr = []
        while MR < 3.5:
            ispArr.append( ispIRFNA(Pc, MR, e ))
            mrArr.append(MR)
            MR += 0.05
        plot(mrArr, ispArr, label='AreaRatio %g'%e)

    legend(loc='best')
    grid(True)
    title( ispIRFNA.desc )
    xlabel( 'Mixture Ratio' )
    ylabel( 'Isp ODE (sec)' )
    savefig('cea_plot.png', dpi=120)

    show()

Click images to see full size

## Isp Comparisons

Compare propellant combinations.

Notice that the plots are sorted by max Isp to make them easier to interpret.

    from rocketcea.cea_obj import CEA_Obj
    from pylab import *

    Pc = 500.0
    eps = 25.0
    mrMin = 1.0
    mrStep = 0.05
    mrMax = 4.0

    mrL = [mrMin + i*mrStep for i in range( int((mrMax-mrMin)/mrStep))]
    ispLL = [] # a list of lists of Isp data

    for oxName,fuelName in [('N2O4','N2H4'),('N2O4','MMH'),('N2O4','M20'),
        ('CLF5','N2H4'),('CLF5','NH3')]:

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

        ispL = [ispObj.get_Isp(Pc=Pc, MR=MR, eps=eps) for MR in mrL]
        ispLL.append( [max(ispL), '%s/%s'%(oxName,fuelName), ispL] )

    ispLL.sort(reverse=True) # sort in-place from high to low

    for maxIsp, name, ispL in ispLL:
        plot(mrL, ispL, label=name, linewidth=2)

    legend(loc='best')
    grid(True)
    title( 'Propellant Performance Comparison at Eps=%g, Pc=%g psia'%(eps,Pc) )
    xlabel( 'Mixture Ratio' )
    ylabel( 'Isp ODE (sec)' )
    savefig('cea_compare2.png', dpi=120)

    show()

Click images to see full size