# launchdrag.frink

Download or view launchdrag.frink in plain text format

``` /** This program calculates the total energy expended by a rocket fighting     atmospheric drag. */ use StandardAtmosphere.frink getDensity[altitude] := {    [temp, pressure] = StandardAtmosphere.getTemperatureAndPressure[altitude]    return StandardAtmosphere.getDensity[altitude, temp, pressure] } getDensityVelocitySquaredProduct[altitude, velocity] := {    getDensity[altitude] * velocity^2 } altitude =  0 ft v =  0 mph mass = 13500 kg        // Full mass of X-15B, empty is 4500 kg Frocket =  262.5/1 kN  // Thrust of X-15B target = 350 km Cd = 0.10 A = 33 ft^2 timestep = .01 s t = 0 s Esum = 0 J while (altitude < target) {    density = getDensity[altitude]    Fdrag = 1/2 density v^2 A Cd    weight = G earthmass mass / (altitude + earthradius)^2   // Correct weight for decreasing gravity    Fup = Frocket - Fdrag - weight    a = Fup/mass                                             // Actual upward acceleration    vnew = v + a timestep    vave = (v + vnew) / 2                  // Average velocity during timestep    stepdist = vave * timestep             // Distance traveled in timestep    Esum = Esum + Fdrag * stepdist         // Energy lost due to drag    println[format[t,"s",2] + "\t" + format[altitude,"km", 3] + "\t" + formatSig[v, "mach", 3] + "\t" + formatSig[a,"gee",3] + "\t" + formatSig[Fdrag, "lbf", 6] + "\t" + formatEng[Esum, "J", 5]]        v = vnew    altitude = altitude + stepdist    t = t + timestep } ```

Download or view launchdrag.frink in plain text format

This is a program written in the programming language Frink.
For more information, view the Frink Documentation or see More Sample Frink Programs.

Alan Eliasen was born 20117 days, 22 hours, 54 minutes ago.