JSFiddle - React, Tailwind, and code Playground

by mLuby

HTML

<body>
    <h1>Circular Hohemann</h1>
    <h2>initial r (in km above earth)</h2>
    <input id="r_initial" type="text" value="300" />
    <h2>final r (in km above earth)</h2>
    <input id="r_final" type="text" value="35785.9" />
    <h2 id="button" style="border: thin blue solid; background-color: #444;">calculate delta V</h2>
    <label id="delta_v">?</label>
    
</body>

JavaScript

$(document).ready(function(){
    $("#button").click(function(){
        // i=initial t=transfer p=periapsis a=apoapsis f=final
        var g = 6.67e-11;
        var m = 5.97e24;
        var r_earth = 6.3781e6;
        var mu = g*m;
        var r_i = parseFloat($("#r_initial").val())*1e3+r_earth;
        var r_f = parseFloat($("#r_final").val())*1e3+r_earth;
        var a_i = (r_i+r_i)/2;
        var v_i = Math.sqrt(mu*(2/r_i-1/a_i));
        console.log("v_i="+v_i);
        var a_t = (r_f+r_i)/2;
        var v_tp = Math.sqrt(mu*(2/r_i-1/a_t));
        var dVtp = v_tp-v_i; //always use final periapsis
        console.log("dV1="+dVtp);
        var v_ta = Math.sqrt(mu*(2/r_f-1/a_t));
        var a_f = (r_f+r_f)/2;
        var v_f = Math.sqrt(mu*(2/r_f-1/a_f));
        var dVta = v_f-v_ta; //always use final periapsis
        console.log("dV2="+dVta);
        console.log("total dV="+(dVtp+dVta))
        $("#delta_v").text(dVtp+dVta);
        
        v_escape = Math.sqrt(2*mu/r_f);
        dV_escape = v_escape - v_f;
        console.log("dV_escape="+dV_escape);
        dV_to_mars = 3e3;
        dV_escape_to_mars = Math.sqrt(dV_escape*dV_escape + dV_to_mars*dV_to_mars);
        console.log("dV_escape_to_mars="+dV_escape_to_mars);        
                
    });
});