Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const
- MTEMP = 393.15;
- PLSM = 200;
- OXY = 20;
- CDO = 30;
- BURN_ENRG = 397000;
- FRLLEVEL = 25;
- var
- temp: real;
- oxygen: real;
- plasma: real;
- co2: real;
- function FireLevel():real; begin
- var total_fuel := 0.0;
- total_fuel += plasma + oxygen;
- var damp := total_fuel / (total_fuel + co2); //total_combustables / (total_combustables + nitrogen + carbon_dioxide)
- var mix := 1 / (1 + (5 * power(oxygen / total_fuel, 2))); //var/mix_multiplier = 1 / (1 + (5 * ((oxygen / total_combustables) ** 2)))
- result := max(FRLLEVEL * mix * damp, 0);
- end;
- function ZBurn():boolean;
- begin
- result := true;
- if (temp >= MTEMP) then begin
- var total_fuel := 0.0;
- total_fuel += plasma;
- if (total_fuel = 0) then begin result := false; exit; end;
- var frlv := FireLevel();
- var strt_enrg := temp * ( (PLSM * plasma) + (OXY * oxygen) + (CDO * co2));
- var total_oxy := min (oxygen, total_fuel * 2);
- var usd_fuel_rat := min (oxygen / 2, total_fuel) / total_fuel;
- total_fuel *= usd_fuel_rat;
- var total_react := total_fuel + total_oxy;
- var used_react_rat := min( max( total_react * frlv / FRLLEVEL, 0.2), total_react) / total_react;
- oxygen -= min ( oxygen, total_oxy * used_react_rat );
- plasma -= min ( plasma, (plasma*usd_fuel_rat*used_react_rat)*3);
- if plasma < 0 then plasma := 0;
- co2 += max(2*total_fuel, 0);
- temp := (strt_enrg + BURN_ENRG * total_fuel) / ( (PLSM*plasma) + (OXY*oxygen) + (CDO * co2));
- end;
- end;
- begin
- plasma := 3;
- oxygen := 2;
- temp := 393.16;
- for var i := 1 to 3500000 do begin
- if not zburn() then break;
- end;
- writeln( co2 );
- writeln( plasma );
- writeln( oxygen );
- writeln( temp );
- writeln( ((PLSM*plasma) + (OXY*oxygen) + (CDO * co2)) * temp );
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement