Jump to content

[1.7-1.9] SMURFF: Simple Module adjUstments for Real-ish Fuel-mass Fractions 1.9.1 (02019 Nov 12)


Kerbas_ad_astra

Recommended Posts

SMURFF: Simple Module adjUstments for Real-ish Fuel-mass Fractions

For people who want real-ish fuel mass fractions without too much hassle. Formerly "Simple Mass adjUstments for Real-ish Fuel-mass Fractions."

SMURFF%20logo.png

Features

SMURFF is a Module Manager patch that reduces the dry masses of fuel tanks and engines and improves engine performance so that KSP rockets can have fuel mass fractions closer to what we make in the real world, without going into per-part configurations like e.g. Realism Overhaul.

Most of a real rocket's structural strength comes from the fuel inside of it, rather than the tanks themselves -- the "tank" is just a metal shell to hold the fuel together. KSP fuel tanks, on the other hand, seem to be made of lead plates and rebar. This is all well and good for a planet where you only need 3.5 km/s to get to orbit, but it's not a lot of fun for the real solar system. To help ease the transition to RSS (without requiring per-part configurations, thus allowing any mods to be supported), SMURFF makes several adjustments to engines, tanks, crew modules, and heat shields. These adjustments are calibrated so that stock and stockalike-balanced parts will have their performance (TWR, fuel mass fraction, and ballistic coefficient) improved to be "real-ish" -- representative of typical aerospace technology of the last few decades, so that rockets built in RSS or 10X have mass fractions similar to real rockets. You can reduce the buffs applied to parts (without tinkering with the mathematics) by reducing the values of "tanklever", "enginelever", and "podlever" at the top of SMURFF.cfg (or with a patch). When they're set to 1 (as they are by default), the adjustments are made at their full values, and when they're set to 0, parts are left at stock performance values. In-between is in-between, so those interested in intermediate-difficulty solar systems may want to experiment with setting the values to 0.5.

There are some built-in protections to prevent part masses from being sent into negative values, but otherwise, SMURFF will patch parts as if their mass and thrust values are balanced with stock parts. If you want to exclude parts from being patched (e.g. because they already have real-ish TWR), include "SMURFFExclude = true" in the top-level config. To avoid griping from KSP when SMURFF is not installed, you can use a patch like this one:

@PART[whatever_parts]:NEEDS[SMURFF]
{
    %SMURFFExclude = true
}

The specific adjustments are as follows:

  • Stock and stockalike liquid fuel tanks (LFO, LF, Monoprop) have a fuel mass fraction of 87-89%; SMURFF increases this to 97% by reducing dry mass by 76%, putting them in line with real spacecraft fuel tanks.
    • Tanks that have fuel-switching patches from Stock Fuel Switch will get the appropriate mass buff for their equivalent Liquid Fuel and Oxidizer contents.
    • Other parts with switchable fuel tanks get their dry masses divided by 4.2, except for parts which are switchable in-flight, which only get a 50% dry mass reduction.
  • Xenon gas tanks are adjusted from 56% to 90% (86% reduction in dry mass). I've seen some NASA sources saying xenon tanks are 95% fuel (or suggesting that they will soon be so), others suggesting 85%, so I went with 90%.
  • Ore tanks are adjusted from 86% to 95% ore-by-mass (70% reduction in dry mass), to baseline against 55-gallon drums.
  • Several mod resources are also handled (mostly from Nertea's various addons, since those have enough parts to produce a consistent balance).
    • LH2 tanks get their mass fractions adjusted from 83% to 78% (a slight increase in dry mass). Because of the LFO buff, hydrolox "lifter" fuel tanks still go from 84% to 93% fuel by mass.
    • The zero-boil-off power requirement is increased by a factor of 15, so they now require 1.2 EC/sec per 1000 L of hydrogen stored. (That's nearly 1400 EC/sec for the largest LH2 tank. The best way I can think of to handle that is with a dedicated 2.5m nuclear reactor.) Real zero-boil-off systems also require a heavy mass investment in passive thermal isolation and dedicated cryocooling systems, so it wouldn't be possible to use a rocket tank for zero-boil-off storage just by connecting it to a nuclear reactor, but this is one place where I bent for gameplay reasons.
    • Argon gas tanks from Near Future Propulsion are adjusted from 75% to 62% fuel (an increase in dry mass). In stock, they match the efficiency of xenon tanks for gameplay balance reasons, but in reality, xenon tanks are much more efficient, and argon not nearly as much (xenon atoms are heavier, so a much greater mass of xenon can be packed into a given tank design). Argon is more abundant (and thus cheaper) than xenon by orders of magnitude, so for large missions, the reduced fuel cost may be enough to make up for the mass penalty.
    • If anyone has a reference for the mass-efficiency of lithium storage and vaporization systems for spacecraft, I'd be happy to hear it. :) Until then, I'm buffing them to 87% fuel, which corresponds to a volume density between LFO/MP and LH2.
    • NFP's xenon tanks are 75% fuel by mass (and they adjust stock xenon tanks' masses accordingly), so SMURFF's xenon patches will adapt themselves if NFP is installed.
    • Karbonite is not handled at this time, as its tanks' mass efficiencies are already better than 95%.
  • Bipropellant (LFO and LH2/Ox -- or anything with Oxidizer) rocket engines' thrusts are increased by 50%. Any that are not crew containers or multi-mode engines also get a 62.5% reduction in mass. Comparing the stock LFO engines to real RP-1/LOX rockets (as opposed to the LH2/LOX SSME, as I did previously), the "orbital" (i.e. stackable) stock engines have TWRs from 15-25, while real engines have TWRs from 60-100 (and getting up to 150 nowadays), so the TWRs need to be quadrupled. The Skipper is actually a pretty good analog to the Merlin (several hundred kN of thrust, 2-3 meters tall), but rather than just cutting the weight to match TWRs, I increase the thrust so that stock rockets don't need ridiculous numbers of engines (recall that SpaceX uses nine Merlins on their first stages -- and incidentally, it turns out that SpaceY engines get their TWRs pushed into the 120-150 range, just like SpaceX's).
    • SRBs (baselining with the Kickback compared to the Space Shuttle SRBs) get their dry masses reduced by 40% and specific impulses get buffed by 40 seconds. Their thrusts are left unchanged -- fuel density and TWR are already close to reality.
    • Nuclear thermal rockets, jet engines, monopropellant rockets, and ion thrusters are left alone. (Oxidizer-burning modes of multi-mode engines still get the thrust buff.)
  • Crew containers (pods, cockpits, cabins, etc.) and heat shields have their masses reduced by half (and their pyrolysisLossFactor doubled). I justify this by looking at the mass-per-passenger of space capsules and jet liners, ballistic coefficents, and comparing crew cabins to fuel tanks of the same size. For example, the Mk1-2 command pod weighs as much as the Apollo Command Module despite being nearly 40% smaller (by diameter -- 26% of the volume) and carrying half-sized astronauts. The Mk1 and Mk2 crew cabins weigh as much as a full fuel tank of the same size, despite being mostly air-filled. Same for heat shields -- the Apollo heat shield was 3.9 meters across and weighed 850 kg, vs. 2800 kg for the stock 3.75m heat shield. (The reason that I didn't cut heat shield masses by 70% is so that shields can still be used for landing larger masses than just a capsule.)
  • Most of the patches stack (e.g. a service module with both monoprop and liquid fuel will have its mass reduced appropriately), but not the ones that divide tank mass by a factor (crew capsule, bipropellant engine, and general-purpose switchable tank) -- only one of those may apply to any part, and they get applied in that order.

The result is that rockets have more Earth-like mass fractions and thus are able to achieve Earth-like payload masses without requiring the construction of horrible asparagus monsters. To compare: with stock part masses, to get the Mk1-2 capsule (plus parachute and heat shield) up into space, I need to convert the Kerbal X into the "Kerbal X Triple-Heavy" (or "Kerbal 7"), with 6 asparagus-staged size 2 boosters identical to the core (actually, identical plus the round X200-6R tank from TurboNisuReloaded) and an extended upper-stage tank (an X200-32 instead of the stock -16). It gets just shy of 7 tons into LEO (not counting the spent upper stage) with a 465-ton rocket (not counting the payload -- almost 70 times as much rocket as payload) which blows up the launchpad at takeoff. With SMURFF, I just have to make the Kerbal X into the "Kerbal Xtended" by doubling the upper-stage fuel tank (the stock Kerbal X is entirely capable of getting into orbit on its own, but the extension is necessary to add the heat shield...), putting 3.52 tons into orbit (not counting the spent upper stage) with a 113.9-ton rocket (not counting the payload -- 32.36 times as much rocket as payload). The Falcon 9 v1 got 10.5 tons into orbit and weighed 335 tons (31.9 times as much rocket as payload), using slightly less efficient engines than the Skipper and Poodle, so I figure I'm close enough for Kerbal work.

Dependencies

SMURFF depends on Module Manager version 2.6.16 or later to function.

Recommendations

SMURFF is mainly intended for use with Real Solar System. It's why I made it, and that's where the default balance is set. Try setting the levers to 0.5 for intermediate solar systems, like 64K or SKY.

Big rocket fractions (i.e. 1 kg into LEO = 25+ kg of rocket) call for big rockets, so SpaceY and SpaceY Expanded (alternatively, Behemoth Aerospace Engineering or Near Future Launch Vehicles) are recommended to get big rockets without big part counts. 1.875m rocket parts from Home-Grown Rockets (maintained by yours truly) and MOLE are also great for large upper stages and for payloads that are just too big for 1.25m rockets, but where 2.5m is overkill. (Since thrust increases with the square of scale, and mass with the cube, all else being equal, the jump from 1.25 to 2.5 is proportionally much steeper than the jump from 2.5 to 3.75, so I've found 1.875m parts to be surprisingly handy.)

Of course, the other way around needing massive launch vehicles is to make smaller probes, so I've also gotten quite a bit of mileage out of RLA (Recontinued) and Modular Rocket Systems. (Most of that mileage is from the "Sparkler" engine in MRS.)

Suggestions

Other addons that bring "real-ish" capabilities and challenges to Kerbal Space Program include:

  • SCANSat, to make biome and elevation maps globally available (vs. the limited-view and limited-access KerbNet system) and optionally require just a bit more effort when scanning for resources.
  • USI Life Support, for a life support system which is simple and forgiving (unless you configure it to kill Kerbals).
  • Nertea's Cryogenic Engines, Kerbal Atomics, and Near Future Technologies provide cryogenic, nuclear thermal, and ion and plasma propulsion systems, as well as a simple boiloff and boiloff mitigation mechanism for liquid hydrogen. SMURFF will adjust their respective fuel tanks to match their actual or predicted performance. (Except for lithium, which I haven't found any references for -- it gets adjusted, but it's largely a guess on my part.)
  • For more realistic handling of engine throttles and attitude control (because real rocket engines can't be throttled down to 1% of their maximum thrust), check out Throttle Limit Extended and MandatoryRCS (I recommend turning on the option that permits reaction wheels in crewed pods to operate, since otherwise that's just yet another part you'll have to add to a vessel).

Feel free to suggest other "real-ish" addons! To give you some idea of what I'm looking for, addons suggested with SMURFF shall adhere to the following criteria:

  1. They shall not require individual parts to be configured in order to function (as e.g. RealFuels does) -- if an addon can't work out-of-the-box with any other addons that people use, it doesn't belong on the list.
  2. They shall improve the realism of some aspect of KSP that is not very or not at all realistic. (KSP has no life support whatsoever, so USI-LS is included, but it has mildly realistic aerodynamic and heating systems, so FAR and Deadly Reentry are not.)

Of course, criterion zero is that I won't suggest an addon that I don't like and use (or have used or considered using) myself. :)

Download and install

From there, just unzip the "SMURFF" folder into your GameData directory.

Please let me know in the forum thread or on the GitHub issue tracker if you find any issues!

Version history and changelog

  • 2015 08 08: Initial release.
  • 2015 11 19 (1.1): Renamed to Simple Module adjUstments for Real-ish Fuel-mass Fractions (since we're not just touching mass anymore).
    • +50% to non-SRB engine thrusts and -62.5% to mass, to bring TWRs in line with RP-1/LOX engines and reduce need for ridiculous engine clusters.
    • +40 seconds to SRB Isp, to bring Kickbacks in line with Space Shuttle SRBs.
    • Mass reduction of resource containers is now proportional to their contents, so parts which have resources and do other things (e.g. command pods, wings with fuel) only get mass reduction corresponding to the part of them which holds resources (e.g. command pods are now slightly lighter because of their monopropellant storage, but not by a factor of 4).
    • New patch to act on Procedural Parts.
    • Based on RealFuels data and further research, LH2 and argon mass fractions no longer improved.
    • Adjusted patch to properly grab all engine modules.
    • Compatible with Stock Fuel Switch and Cryogenic Engines.
      • If you replaced or modified Cryogenic Engines's fuel switcher patch, make sure you restore it to the original -- otherwise, tanks might get double-buffed.
  • 2015 11 20 (1.1.1): Minor bug fixes.
    • Fixed Procedural Parts patch (thanks to speedwaystar).
    • Excluded air-breathing jets, nuclear thermal rockets, monopropellant engines, and ion engines from TWR buffs. (They're close enough to reality already.)
  • 2015 11 22 (1.1.2): More compatibility (inspired by Atomic Age).
    • Improved selectivity of engine mass buff by excluding multi-mode engines and IntakeAtm-breathing engines. (All Oxidizer-burning engine modes will still get a thrust increase.)
  • 2015 12 07 (1.1.3): More selection adjustments.
    • Changed engine mass buffs to apply to engines which only have oxidizer-burning modes (so that SpaceY's engines get buffed -- they use a MultiModeEngine module to simulate the all-nozzle vs. center-out/center-only modes of operation, so excluding all multi-mode engines wasn't fair.)
  • 2016 01 08 (1.1.4): Argon adaptation
    • New ArgonGas patch for the tank efficiency changes made in Near Future Propulsion 0.6.0.
    • I've made some slight changes in the backend for handling Cryogenic Engines. In my testing, I haven't noticed any changes in spacecraft mass (either in the VAB or in flight), but please be careful!
  • 2016 01 27 (1.2): Entry, Descent, and Landing
    • Masses of crew containers and heat shields are reduced by half, to permit reduced (and reasonable) capsule ballistic coefficients. Now pods are more likely slow down in time to get their chutes open.
    • Added a "reserved mass" system so that engines and pods only modify mass which is not accounted for by fuel tanks and batteries.
    • Added a "SMURFFCONFIG" section -- adjust the "tanklever", "enginelever", and "podlever" variables to control how much of a buff is applied. 1 for real-ish performance (default), 0 to leave stock values alone, and everything in between is in between. Try 0.5 for the likes of 64k or SKY.
    • Changed patches to run FOR[zSMURFF], so that the patches run later. SpaceY's engines now get properly buffed when Cryogenic Engines is installed. (SpaceY replaces the ModuleEnginesFX modules of some engines in that circumstance, and since SpaceY comes after SMURFF, the thrust buff was being overwritten.)
    • Added a "fix" for parts whose mass gets sent into the negatives (i.e. any part which weighs less than it "should" by stockalike standards): their masses get restored to their initial values.
    • Added support for "SMURFFExclude" -- add "SMURFFExclude = true" to any part you don't want to get buffed.
  • 2016 02 02 (1.2.1): De-icing
    • Adapted to new Cryogenic Tanks LH2 mass fractions and tank setups. (LH2 tanks actually get hit with the nerf-bat.)
  • 2016 02 20 (1.2.2): Sore throat
    • Added some new patch logic to catch ablative engines.
  • 2016 03 17 (1.3): Wild Blue Yonder
    • Parts with WBIResourceSwitcher (e.g. the Titan fuel tanks from MOLE) are now included in the switchable-tanks patches.
    • Switchable (FS and Interstellar Fuel Switch) tanks with different tankMasses now get proper mass buffs, thanks to the new array-editing features in Module Manager.
      • This feature is only present in MM version 2.6.16 or later, so this version and later versions are not compatible with KSP 1.0.4.
  • 2016 05 17 (1.4): Inb4B9
    • Handles B9 Part Switcher, and the corresponding updates to Cryogenic Engines.
      • Also changed patches to run FOR[zzz_SMURFF], so that it comes after the cryotanks patch.
      • Because the corresponding version of Cryogenic Engines was released for KSP 1.1.2, this version and later versions are not compatible with KSP 1.0.5, 1.1.0, or 1.1.1.
    • Handles the tankResourceMassDivider variable from the generic IFS patch.
    • Lithium tanks now get buffed.
  • 2016 05 26 (1.5): Ore Rly?
    • Ore tanks are now adjusted, baselined against 55-gallon drums.
    • Compatible with tank types included in Near Future Construction 0.6.2.
    • Added new "Extras" folder for patches that are too part-specific to be included in the main distribution. The first Extra patch is for the CryoX and soft tanks from Ven's Stock Revamp. I make no promises about their balance when used with CryoTanks or other fuel-switching plugins...
  • 2016 05 28 (1.5.1): Mass Deregulation
    • Relaxed one of the "overdraft protection" checks.
  • 2016 05 28 (1.5.2): Ore you sure?
    • Added procedural ore tank type.
  • 2016 05 28 (1.5.3): B9-B
    • Made the CryoTank patches less brittle, to handle parts with multiple B9PartSwitch modules (e.g. Fuel Tanks Plus).
  • 2016 08 15 (1.5.4): Tanks F-Ore Nothing
    • Added an "Extra" patch to fix the procedural ore tank. If you're using Procedural Parts, drop the "ProcOreFixer.cfg" patch in your GameData folder (anywhere will do).
    • The license is changed to the GPL v3 (or later).
  • 02016 10 29 (1.5.5): Snow Miser
    • Updated CryoTanks patch to adapt to rebalance.
    • Because the corresponding version of CryoTanks was released for KSP 1.2, this version and later versions are not compatible with KSP 1.1.2 or 1.1.3.
  • 02017 01 28 (1.6): Happy New Year
    • Removed "Extra" patch for the procedural ore tank, as they've accepted my PR to add it directly to the part config.
    • Engine patches now operate on minThrust as well as maxThrust (if someone should ever release an engine with nonzero minThrust).
    • Reduced reaction-wheel authority on command pods in proportion to their mass reduction.
    • Adjusted IFS patch. It works again, but note that IFS already has its own RSS patch, so SMURFF defers to that.
    • Added support for Mark IV tank types. Because the corresponding version of Mark IV was released for KSP 1.2.2, this version and later versions are not compatible with KSP 1.2.0 or 1.2.1.
  • 02017 02 24 (1.6.1): B9-C
    • Another tweak to the CryoTank patch, to avoid stepping into B9's CryoTank patches.
  • 02017 04 10 (1.6.2): Kerbals Not Smurffs
    • Exclude Kerbals from SMURFF patching.
    • Add pure-LF IFS patch.
  • 02018 02 09 (1.7.0): Zero Level
    • Adjusted tank math to remove divide-by-zero error. Feel free to set tanklever = 0 now!
    • Rebalance of tank adjustment factors to adapt to changes in Near Future Propulsion and CryoTanks (and some in response to user feedback). LFO and hydrolox tanks got a bit of a buff, most everything else stays put. Because the corresponding versions of NFP and CryoTanks were released for KSP 1.3.1, this version and later versions are not compatible with KSP 1.2.2 or 1.3.0.
    • The "Extra" patch for Ven's Stock Revamp is more detailed, and now has different behavior for when CryoTanks is or is not installed. Their performance is baselined to the Super Lightweight (Space Shuttle External) Tank.
  • 02018 03 21 (1.8.0): Kerbal Equinox
    • Updated xenon patches to new balance of stock tanks. Because those changes were made in KSP 1.4.0, this version and later versions are not compatible with KSP 1.3.1.
  • 02019 05 19 (1.9.0): The Power of the Special
    • Vintage Kerbal suit variants now excluded from patching.
    • Moved Ven's "Extra" patch into the main SMURFF folder, now called "Special".
    • Squad's new capsules (Mk1-3, Mk2, and Mk2 Lander Can) now have a "Special" patch, since they're much lighter than their predecessors.
    • Update ZBO power requirement patch and Procedural Parts patch to adapt to CryoTanks update.
    • New "Special" patch for Universal Storage II tanks.
    • New "Special" patch to handle Tundra Exploration fuel tanks.
  • 02019 11 12 (1.9.1): Green Origin
    • Adding support for CryoTanks' liquid methane tank variants. Because these were added for a version of CryoTanks made for KSP 1.7, this version and later versions are not compatible with KSP 1.4 to 1.6.
    • Futuristic Kerbal suit variants (Breaking Ground) now excluded from patching.

Roadmap

As I get the time, I'll publish to CurseForge.

If you find any classes of parts (i.e. anything that can be described by using Module Manager to filter by module, resource, mass, etc.) that get horribly mistreated, I'll make an adjustment. I might even make a special patch for a particular mod's parts, if it's not too much trouble on my part.

Roadmap

As I get the time, I'll publish to CurseForge.

If you find any classes of parts (i.e. anything that can be described by using Module Manager to filter by module, resource, mass, etc.) that get horribly mistreated, I'll make an adjustment. That being said, I'm not planning to include special patches for parts that are already themselves outliers in the main distribution (although I might add some to the "Extras" folder) -- the whole point of SMURFF is to avoid that level of complication.

Credits

Thanks are owed to NathanKell and the entire Realism Overhaul team for making an incredibly detailed, thoroughly researched and calculated system...and convincing me to make something simpler. :wink: The tank-mass spreadsheet was a handy resource!

Even more thanks to ialdeboath and sarbian for the power of Module Manager. Seriously, half of my addons wouldn't exist if not for them.

License

Simple Module adjUstments for Real-ish Fuel-mass Fractions ("SMURFF") is copyright 2015-2018 Kerbas_ad_astra. Configuration files are released under the GPL v3 license (or any later version). Any redistributions must use a different name and folder (per section 7c). All other rights (e.g. the SMURFF logo) reserved.

Edited by Kerbas_ad_astra
Version 1.9.1
Link to comment
Share on other sites

Simple but effective mod, I plan to use it if and when I start playing with RSS, since I tried RO and didn't enjoy it.

I'm not sure how much if at all engine performance needs changing. As you say, what we have is within the range of hypergolic fuels or kerolox.

Link to comment
Share on other sites

Without the RishA I don't think SMURFF is enough. This rocket can not quite reach orbit. It's just short. If I tuned my ascent profile, it might make it. But still, that's far too big a rocket not to reach orbit or barely reach orbit.

zw4bWdn.png

That's why I think KIDS-like functionality is needed. And RishA seems to be just that.

EDIT: It might just be Ven's Stock Revamp or improper use of cryogenic engines. This rocket made it to orbit with fuel to spare.

Javascript is disabled. View full album
Edited by GregroxMun
Link to comment
Share on other sites

Without the RishA I don't think SMURFF is enough. This rocket can not quite reach orbit. It's just short. If I tuned my ascent profile, it might make it. But still, that's far too big a rocket not to reach orbit or barely reach orbit.

http://i.imgur.com/zw4bWdn.png

That's why I think KIDS-like functionality is needed. And RishA seems to be just that.

EDIT: It might just be Ven's Stock Revamp or improper use of cryogenic engines. This rocket made it to orbit with fuel to spare.

http://imgur.com/a/HQS1I

Ven's Stock Revamp just tweaks textures and models, right? That shouldn't be a problem.

Definitely be careful with Cryogenic Engines -- if you don't delete "CryoEngines/Patches/CryoEnginesFuelTankSwitcher.cfg", you won't get any benefit from SMURFF.

Comparing your rocket designs, I see you have a very large lower stage on your first rocket. In general, all efficiency numbers and mass fractions and such being equal, the optimal arrangement is to get roughly equal delta-V's from each stage. (Since upper-stage motors tend to be more efficient, it can be more optimal to get more delta-V from them, but be careful with TWR in that case.) Your second rocket appears to have more evenly-scaled stages. If you have Kerbal Engineer, it might help to see what it says in the VAB. In my (admittedly limited) experience, it takes about 9.2-9.5 km/s of delta-V to get to LEO, so if your first rocket doesn't get that, it might help to give it another fuel tank up top and, if TWR becomes an issue, replace one of those S3-14400's with a -7200 and -3600 (or use boosters).

Also, I see your first rocket uses a C7 adapter -- those (and all spaceplane parts) have worse fuel fractions than a vanilla fuel tank (not by much, when SMURFF is installed, but upper stages can be sensitive to that sort of thing). Modular Rocket Systems has a size2-size1 adapter that matches the typical fuel fraction.

Regarding Isps, I'm not quite sold on budging them for LFO engines. The density of Liquid Fuel is clearly more like RP-1 than LH2 (although neither is quite as dense as LOX, unlike our Liquid Fuel and Oxidizer), and there is a pretty wide gulf between the efficiencies LOX/RP-1 engines and LOX/LH2 engines, as you can see in the table in this Wikipedia article. In testing, I do get similar payload mass fractions to real rockets (in general, 1 kg of payload = 25-50 kg of rocket). SRBs could probably stand a buff, though -- the Space Shuttle SRBs had Isp from 240 s SL to 268 s vac, vs. 195/220 for the Kickback -- a boost of 30-50 seconds across the board might be in order for them. Unfortunately, the second digit is harder to reach than the first, especially if I end up having to carry the one. I've got some ideas for breaking out the atmosphere curve into dummy variables that I can manipulate more freely before sticking the modified Isps back in, but it's definitely going to take some guru meditation and serious testing before I've got something for release.

In the end, looking over engine stats, stock engines have very different TWRs (from 3-25, a spread of 8x), while real kerolox rocket engines tend to be more uniform (60-150, spread of 2.5x). Unfortunately, since SMURFF doesn't (and won't) do any individual tweaking, any imbalances between engines are preserved, so you may just have to break out KER and play around to find which engines do the best for whatever mission plan you have. Sorry. :/

Edit: However, there does seem to be a trend that TWR goes with mass. I might be able to rig up a line-fit and buff the masses of smaller engines more. I don't get a whole lot of testing time in during the week, but I'll see what I come up with -- I definitely noticed that my all-size-1 rocket was getting a worse payload mass fraction than my all-size-2 rockets. Meanwhile, ensuring that I don't mistreat engines from the mods that I use (SpaceY, RLA, HGR... argh, the whole point of SMURFF was to be simple! :rolleyes:).

Edited by Kerbas_ad_astra
Link to comment
Share on other sites

I can't seem to get CryoEngines to run on LFO-mode. I put the LFO patch config in the patches folder of CryoEngines, and removed the FuelTankSwitcher patch. If I remove CommunityResourcePack, the parts won't load (presumably because they're being patched instead of modified). Did I miss a step?

Couldn't you do a special patch for CryoEngines LH2 fuel tanks, considering that they do have more accurate fuel densities and all.

Link to comment
Share on other sites

One issue I've discovered with the LFO patch is that it misspells one of the engine names -- "cryoEngine-375-1" should be "cryoengine-375-1". After fixing that (and deleting the tankswitch patch), I can load a game with CryoEngines and without CRP just fine. That may be the only obstacle for you.

I cannot patch CryoEngines' LH2 fuel tank masses directly because (a) it doesn't have any tanks of its own and (B) the fuel switcher patches (and the fuel switcher plugins) use a variable called "tankMass" which is a list of semicolon-separated numbers (a unique mass for each tank setup, which overrides whatever value is in the stock mass variable). I can't do math on that since Module Manager tries to ingest the whole thing as a number and fails. (Modifying Module Manager to usefully process semicolon-, comma-, and space-separated lists of values would be cool, but is beyond my ability at this time.)

I can certainly make a modified fuel-switcher patch (i.e. a replacement for the one that comes with CryogenicEngines) that uses smaller numbers (reducing "massPerUnitLH2" and the like), but I need to spend some time going over Nertea's math to make sure that everything gets adjusted in step. I'll see if I can get this done in the next day or two.

EDIT: Got it done in a day. Bolded lines are the changes.


// LF/O tanks
@PART
[*]:HAS[@RESOURCE[LiquidFuel],@RESOURCE[Oxidizer],!MODULE[InterstellarFuelSwitch],!MODULE[ModuleEnginesFX],!MODULE[ModuleEngines],!MODULE[FSfuelSwitch]]:NEEDS[!modularFuelTanks]:NEEDS[!RealFuels]
{
[B] @mass /= 2 // SMURFF buff for switchable tanks -- was 88%, now 94% (vs. 97% for single-mode tanks)[/B]


%LF = #$RESOURCE[LiquidFuel]/maxAmount$
%OX = #$RESOURCE[Oxidizer]/maxAmount$

%totalCap = #$RESOURCE[LiquidFuel]/maxAmount$
@totalCap += #$RESOURCE[Oxidizer]/maxAmount$

%LH2FudgeFactor = 1.5 // <- EDIT HERE (effectively multiplies LH2 density by this number)
%mixOXProportion = 0.45 // <- EDIT HERE (proportion of tank volume containing OX; this value should be set approximately = 5.5 / [5.5 + [10 / LH2FudgeFactor]])
[B] %massPerUnitLH2 = 0.0000175 // was 67% fuel, now 80% -- not as much as real-ish value of 85%, but that's the switchable tank penalty. // 0.000035 // <- EDIT HERE (dry mass per unit LH2 capacity)[/B]

%onlyLH2 = #$totalCap$
@onlyLH2 *= 5.5
@onlyLH2 *= #$LH2FudgeFactor$

%mixOX = #$totalCap$
@mixOX *= #$mixOXProportion$
%mixLH2 = #$mixOX$
@mixLH2 *= 10

%tempVar = 0
%dryCost = 0

@dryCost = #$cost$

%LFCost = 0
%OXCost = 0
%LH2Cost = 0
%mixLH2Cost = 0
%mixLFCost = 0

// compute cost of stock tank fuel
@tempVar = #$RESOURCE[LiquidFuel]/maxAmount$
@tempVar *= 0.8
@mixLFCost += #$tempVar$

@tempVar = #$RESOURCE[Oxidizer]/maxAmount$
@tempVar *= 0.18
@mixLFCost += #$tempVar$

@dryCost -= #$mixLFCost$
@cost -= #$mixLFCost$

// Cost LF only
@tempVar = #$totalCap$
@tempVar *= 0.8
@LFCost += #$tempVar$

// Cost OX only
@tempVar = #$totalCap$
@tempVar *= 0.18
@OXCost += #$tempVar$

// Cost LH2 only
@tempVar = #$onlyLH2$
@tempVar *= 0.03675
@LH2Cost += #$tempVar$

// Cost mix
@tempVar = #$mixLH2$
@tempVar *= 0.03675
@mixLH2Cost += #$tempVar$

@tempVar = #$mixOX$
@tempVar *= 0.18
@mixLH2Cost += #$tempVar$

// masses
%massOffset = #$mass$
@tempVar = #$totalCap$
[B] @tempVar *= 0.0003125 // 0.000625 // standard dry mass per units of LF/OX[/B]
@massOffset -= #$tempVar$ // this value accounts for any non-standard fuel tank mass, which should remain constant across fuel configurations, e.g., extra mass for spaceplane tanks

%mixLH2mass = #$mixOX$
[B] @mixLH2mass *= 0.0003125 // 0.000625[/B]

@tempVar = #$mixLH2$
@tempVar *= #$massPerUnitLH2$
@mixLH2mass += #$tempVar$
@mixLH2mass += #$massOffset$

%onlyLH2mass = #$onlyLH2$
@onlyLH2mass *= #$massPerUnitLH2$
@onlyLH2mass += #$massOffset$

@tempVar = 0

MODULE
{
name = InterstellarFuelSwitch

volumeMultiplier = 1
massMultiplier = 1

resourceGui = LF/OX;LH2/OX;LF;OX;LH2
resourceNames = LiquidFuel,Oxidizer;LqdHydrogen,Oxidizer;LiquidFuel;Oxidizer;LqdHydrogen

resourceAmounts = #$../LF$,$../OX$;$../mixLH2$,$../mixOX$;$../totalCap$;$../totalCap$;$../onlyLH2$

//tankCost = #$../mixLFCost$;$../mixLH2Cost$;$../LFCost$;$../OXCost$;$../LH2Cost$
displayCurrentTankCost = true

hasGUI = true
showInfo = true

availableInFlight = false
availableInEditor = true

basePartMass = 0
tankMass = #$../mass$;$../mixLH2mass$;$../mass$;$../mass$;$../onlyLH2mass$
}

!RESOURCE[LiquidFuel] {}
!RESOURCE[Oxidizer] {}
}

// Pure LH2 tanks
@PART
[*]:HAS[@RESOURCE[LqdHydrogen],!MODULE[InterstellarFuelSwitch],!MODULE[ModuleEnginesFX],!MODULE[ModuleEngines],!MODULE[FSfuelSwitch]]:NEEDS[!modularFuelTanks]:NEEDS[!RealFuels]
{
%LH2 = #$RESOURCE[LqdHydrogen]/maxAmount$

%LH2FudgeFactor = 1.5 // (this should match LH2FudgeFactor for stock tanks above)
%mixOXProportion = 0.45 // (this should match mixOXProportion for stock tanks above)

[B] %massPerUnitLH2 = 0.0000125 // Was 75%, now 85% -- not sure how wild I am about having a full "real-ish" value for a switchable fuel tank, but at least it's in line with fuel-switch improvement factor of 2 // 0.000025 // <- EDIT HERE (dry mass per unit LH2 capacity; this should be < massPerUnitLH2 for stock tanks)[/B]
[B] %massPerUnitOX = 0.00025 // Was 91%, now 95% -- a decent penalty from real-ish of 96-97% // 0.0005 // <- EDIT HERE (dry mass per unit OX capacity; this should be < the standard stock value of 0.000625)[/B]

%OX = #$LH2$
@OX /= #$LH2FudgeFactor$
@OX /= 5.5

%mixOX = #$OX$
@mixOX *= #$mixOXProportion$
%mixLH2 = #$mixOX$
@mixLH2 *= 10

// masses
%onlyLH2mass = #$LH2$
@onlyLH2mass *= #$massPerUnitLH2$

%massOffset = #$mass$
@massOffset -= #$onlyLH2mass$ // this value accounts for any non-standard fuel tank mass, which should remain constant across fuel configurations, e.g., lower dry mass ratios for larger tanks

@onlyLH2mass += #$massOffset$

%mixLH2mass = #$mixOX$
@mixLH2mass *= #$massPerUnitOX$

%tempVar = #$mixLH2$
@tempVar *= #$massPerUnitLH2$
@mixLH2mass += #$tempVar$
@mixLH2mass += #$massOffset$

%onlyOXmass = #$OX$
@onlyOXmass *= #$massPerUnitOX$
@onlyOXmass += #$massOffset$

@tempVar = 0

MODULE
{
name = InterstellarFuelSwitch

volumeMultiplier = 1
massMultiplier = 1

resourceGui = LH2;LH2/OX;OX
resourceNames = LqdHydrogen;LqdHydrogen,Oxidizer;Oxidizer

resourceAmounts = #$../LH2$;$../mixLH2$,$../mixOX$;$../OX$

displayCurrentTankCost = true

hasGUI = true
showInfo = true

availableInFlight = false
availableInEditor = true

basePartMass = 0
tankMass = #$../onlyLH2mass$;$../mixLH2mass$;$../onlyOXmass$
}

!RESOURCE[LqdHydrogen] {}
}

Here are some test results. Basically, "how much mass is required to get 5.1 km/s of Delta-V with a Mk 1 pod, a size 1 upper-stage motor (i.e. LV-909 or Chelyabinsk), and size 1 FL-Txx tanks?"

Stock:

LV-909: 11 tons

Chel LH2: 8 tons

SMURFF, using the fuel-switch patch that comes with Cryogenic Engines (i.e. stock fuel mass fractions, reduced engine masses):

LV-909: 9 tons

Chel LH2: 6 tons

SMURFF, using the modified fuel-switch patch above:

LV-909: 6.4 tons

Chel LH2: 4.9 tons

SMURFF, no fuel switch patch, LFO patch for the Cryogenic Engines:

LV-909: 5.1 tons (note that this is the actual baseline craft -- Mk1 pod, 1 FL-T800 tank, 1 LV-909 -- hence the specific value of 5.1 km/s)

Chel LFO: 4.3 tons

Even with the hit to Isp, the LFO cryogenic engines perform better than LH2 cryogenic engines because of the slight mass fraction penalty of the switchable tank (even with the improved patch above -- 94-95% doesn't sound much worse than 96-97%, but that pesky logarithm in the rocket equation amplifies these little differences -- log(1/0.05) = 1.30, log(1/0.03) = 1.52, ratio is 1.17, which beats the Isp advantage of 455/425 = 1.07). I'm okay with this penalty, since the fuel tanks can be changed in flight, but there you go. Science!

EDIT 2: After studying the part, the tanks can't be switched in the field. I'll ask what people think about keeping the penalty vs. losing it.

Edited by Kerbas_ad_astra
Link to comment
Share on other sites

so let me know if you're interested in KSP-RishA: Real-ish Adjustments. (I'm also open to suggestions for the name.)

Yes, very much! I've not found RSS or RO much fun because of all the hassle. Yes to large systems and dV requirements, no to convoluted gameplay!

I have zero interest in making adjustments for individual parts -- the whole point of SMURFF is to avoid that level of complication.

Which is exactly why I found this mod so appealing. Thanks!

Link to comment
Share on other sites

Ah, you covered that. I might go thru my cfg files and manually nerf the isp.

I'm using k scales and still finding that my shuttles and rockets are too fuel efficient on ascent.

This mod certainly helps with the twr issues that come with the sheer size and mass of a shuttle external tank though

Link to comment
Share on other sites

I'm glad you both like SMURFF. (I see that Realism Overhaul provides an "ROMini" patch which does some of the same things as SMURFF, but I stand by my approach of reducing mass rather than tinkering with rescaleFactor...that doesn't always turn out well.) I wasn't so bothered by the complexity of RO (I figure that using CKAN would cut down on the time required to install it), but having to give up some of the mods that I use was a bridge too far. Hence SMURFF.

Also, for those looking for a more comprehensive "real-ish" experience, I've added some suggestions of other real-ish addons to the OP. AntennaRange, SCANSat, and USI Life Support (and some supporting addons) to begin with. I'm happy to hear more suggestions, though I don't plan on making the list too big.

Link to comment
Share on other sites

Just thought I would let you know that this doesn't seem to work on procedural fuel tanks.

The Kerbodyne S3-14400 tank (3.75m largest nasa mission tank) weighs 2.3t dry

A procedural tank of the same size weighs 9.1 tonnes dry.

Link to comment
Share on other sites

Procedural Parts use a special "dryDensity" variable to set their masses, which wasn't included in the mass reduction (and is now). I've pushed an update to my repo which should work (get the latest config here). Unfortunately, I don't think I'll have the time to put together a proper release for a couple of weeks or so, but you can replace SMURFF.cfg and get it working. Thanks for the heads-up!

Link to comment
Share on other sites

Awesome work!

ROMini adjusts scale because for a 1.5t payload, you do tend to need a 2m rocket, and because otherwise reentries are way harder than they should be (you get only ~40% of the drag on reentry with KSP's parts' size and mass, which is almost like saying you're reentering your capsule nose-first). This also allows more "useful for RSS-size planets" engine thrusts--the Mainsail in KSP is little better than an H-1 (8 of them were on Saturn I), and 1/7th an F-1.

Oh, and feel free to grab anything useful from ROMini. :)

(If Sarbian allows wildcard matching of values as well as nodes, the use of rescaleFactor could be abolished for MODEL-node parts)

Link to comment
Share on other sites

Awesome work!

ROMini adjusts scale because for a 1.5t payload, you do tend to need a 2m rocket, and because otherwise reentries are way harder than they should be (you get only ~40% of the drag on reentry with KSP's parts' size and mass, which is almost like saying you're reentering your capsule nose-first). This also allows more "useful for RSS-size planets" engine thrusts--the Mainsail in KSP is little better than an H-1 (8 of them were on Saturn I), and 1/7th an F-1.

Oh, and feel free to grab anything useful from ROMini. :)

(If Sarbian allows wildcard matching of values as well as nodes, the use of rescaleFactor could be abolished for MODEL-node parts)

Thanks for the compliment!

Looking at ROMini, I think the reason you're having difficulty working with MODEL nodes is that it's missing some asterisks inside brackets. To look for models, it should say "HAS[@MODEL

[*]]", or "HAS[!MODEL

[*]]" to look for parts with no models, and for "scale" and other variables, that would be "#scale

[*]" or "~scale

[*]". I don't have lots of time right now to try out my own advice, but that's the immediate issue I see.

I'm still not planning to rescale any parts with SMURFF/RishA, but I see your point re: TWR -- since real rocket engines get TWRs around 80-100, vs. up to 25 with stock KSP, I might try increasing thrust by 60% or more as well as reducing mass by half as I already have. For ballistic coefficients, I'll have to see -- I've had no trouble reentering on Earth from LEO, but I'll see how my Moon tests go. If it's a problem, I might knock down the mass of command pods some (the Mk1-2 is especially hefty compared to the Apollo CM and Orion).

Link to comment
Share on other sites

Regarding the MM code in ROMini, it works fine. That is in fact the correct syntax. :)

~scale[] will find an absence of any scale, just as ~scale[*] will, and note that MODEL doesn't have a name = line to match against with [*]. At one point, perhaps still, that would fail. (Remember @NODE[foo] is the same as @NODE:HAS[#name[foo]] and @NODE:HAS[#name[*]] will not match a NODE that lacks a name.)

What I was talking about is the bug in KSP where a part with MODEL nodes and a rescaleFactor that is not set explicitly to 1.0 will change size on revert / vessel-swap / etc. Try it yourself: give a part with a MODEL node some non-1.0 rescaleFactor. Launch it. Now revert to launch. Presto resize-o.

However, since scale = x (i.e. the scale outside MODEL nodes) is _also_ bugged, one cannot simply do @MODEL,* { %scale = 1.6, 1.6, 1.6 } and then @scale *= 1.6. In some cases the nodes will not properly scale. If there were a way to wildcard-change values (i.e node_* = foo) then I could get around it, but as of now...that's why ROMini uses rescaleFactor even for MODEL nodes.

You could (and should) give engines realistic TWRs without rescaling--indeed, the first half of ROMini does no rescaling whatsoever, and is all about mass and thrust and Isp. The point I was making with rescaling, however, is that stock KSP only supports three and a half sizes for LVs (.625 doesn't really work well for LVs since your payload will be wider than your LV). That means that if you force 1.25m capsules to use 2.5m rockets, you're running low on super-heavy stuff. If you scale everything up to real life densities as well as TWRs and dry fractions, then things "just work"--old-1.25m stacks work fine with old-1.25m payloads, etc.

As to the Mk1-2: huh? It's 4.5 tons. Apollo, in toto, was ~5.8 to 6 tons, which is just about what a Mk1-2 with a docking port, chutes, heat shield, and RCS thrusters is. Pretty close match. That means, at the correct mass and 41% the surface area, you get 41% of the drag (2.44x the ballistic coefficient).

Link to comment
Share on other sites

I'm well aware of the bad interaction between MODEL{} nodes and rescaleFactor (filed a couple of bug reports about it), but I had forgotten that scaling the nodes would also have to be done (which is odd, since I've been tinkering with patches that do just that for specific parts, but whatever). I suppose that a (permanent, cfg-altering) batch script to catch all node_* would be more trouble than ROMini is intended to go to.

Regarding the need for heavy rockets, maybe I'll have to include HGR (1.875m rockets, surprisingly handy for smoothing out the transition from 1.25 to 2.5) and SpaceY and/or Behemoth Aerospace Engineering in the suggestions. I've launched size 1 capsules with size 1 rockets (and size 2) without too much trouble, but I've yet to send up anything bigger -- that was just to prove that I was in the ballpark with my values.

As far as the Mk1-2, I should have used language relating to density, sorry for the lack of clarity. If we want to match the ballistic coefficients of the Orion or Apollo capsules (and I'm sure it's no coincidence that theirs match), the Mk1-2 pod (plus accessories) has to weigh 2.25 tons. The Mk1 pod isn't so bad compared to Mercury, though adding thrusters and such might push it to be just as over-dense.

Link to comment
Share on other sites

  • 2 weeks later...
Oh, and feel free to grab anything useful from ROMini. :)

I've figured out something I'm happy to share the other direction as well!

Your current Isp patching reads out the keys from atmosphereCurve and strips away the leading 0 or 1, which will leave behind any tangents and prevent you from doing math on those keys. To just pick out the second element (i.e. the specific impulse itself), you can do the following:


@PART
[*]:HAS[@RESOURCE[SolidFuel]]:FOR[SMURFF]
{
[...]

@MODULE[ModuleEngines*]:HAS[@PROPELLANT[SolidFuel]]
{
key0 = #$atmosphereCurve/key,0[1, ]$ //get the keys -- the second element of the first space-separated list called "key".
key1 = #$atmosphereCurve/key,1[1, ]$
@key0 += 40 //modify values -- add 40 seconds to bring Kickback close to Space Shuttle SRBs.
@key1 += 40
@atmosphereCurve //Unfortunately, this will wipe any tangents until I figure out a way to identify which keys have tangents and which don't. SRBs usually don't have any, but the "1" key of RLA Stockalike's SRBs do.
{
@key,0 = #$key,0[0, ]$ $../key0$ //$key,0[2, ]$ $key,0[3, ]$
@key,1 = #$key,1[0, ]$ $../key1$ //$key,1[2, ]$ $key,1[3, ]$
}
}

[...]
}

The only shortcoming is that it deletes any tangents, and uncommenting the second halves of the @key,X lines will result in keys that don't have tangents getting duplicated (e.g. key = 0 285 0 285 0 285). It would be great if I could find out in advance if a key has tangents or not, but at least I can always get the specific impulse whether they're there or not.

Link to comment
Share on other sites

It will probably work. The worst thing that can happen with SMURFF is "nothing" (i.e. no benefit). I understand that Interstellar adds a bunch of resources, and SMURFF won't act on those, but anything with an InterstellarFuelSwitch module will get a modest benefit (as long as the tankMass variable is not used).

Link to comment
Share on other sites

Most of a real rocket's structural strength comes from the fuel inside of it, rather than the tanks themselves -- the "tank" is just a metal shell to hold the fuel together. KSP fuel tanks, on the other hand, seem to be made of lead plates and rebar.

Intresting statement, you got any science facs to back that up?

Say, I'm looking for some advice,

For KSPI-E I introduced the Interstellar Fuel Tanks which can switch propellant. For lightest Propellant, Liquid Hydrogen, I reduced the mass by 1/8 the mass of a regular mass.

My largest tank, the X48, contains 55200 liter (3,91092t) and has a mass with a mass of 0.75t (LqdHydrogen) which would make the an effective Wetmass of 84%. How does this compare to your adjustments to the LqdHydrogen tanks of NF?

Edited by FreeThinker
Link to comment
Share on other sites

Awesome mod! Does it work with KW rocketry and SpaceY?

It certainly does! It will work with anything that has stock fuels or engine modules. (I guess it would work with ModuleEnginesRF, since it looks for "ModuleEngines*", but if you're using RealFuels, then there's really no need to use SMURFF.)

The next version will work even better with mod parts -- mass savings will scale by propellant amount, so parts with multiple purposes besides fuel storage (e.g. service modules, command pods. service bays with integrated tanks) will get appropriate mass reductions, as opposed to buffing everything like a fuel tank or not at all.

Intresting statement, you got any science facs to back that up?

Say, I'm looking for some advice,

For KSPI-E I introduced the Interstellar Fuel Tanks which can switch propellant. For lightest Propellant, Liquid Hydrogen, I reduced the mass by 1/8 the mass of a regular mass.

My largest tank, the X48, contains 55200 liter (3,91092t) and has a mass with a mass of 0.75t (LqdHydrogen) which would make the an effective Wetmass of 84%. How does this compare to your adjustments to the LqdHydrogen tanks of NF?

Anecdotally, one of my managers used to work at a Delta IV plant, and described the tanks as being like soda cans, a comparison repeated elsewhere (in fact, Don Pettit's "The Tyranny of the Rocket Equation" points out that soda cans are actually less efficient than the space shuttle external tank -- they're "only" 94% "fuel" by mass). They're designed to contain bursting pressure, not to support weight, and given how much of a rocket's cross-sectional area is fuel rather than metal, there's really no other way to go about it. In fact, this article goes even further and describes the Atlas V's upper stage as being like a balloon, unable to support its own weight when empty. I don't have any numbers specifically (nobody seems to care much about the internal pressure of lower-stage tanks -- all the numbers are on upper-stage pressure-fed tanks), but putting longitudinal compression loads on a thin hollow cylinder is bad news.

As to your second question, the wet mass of Near Future Tech's liquid hydrogen tanks comes out to 86% (like the Space Shuttle's external tank, according to my rough figuring) -- which doesn't sound that much better than 84%, but the logarithm in the rocket equation means a rocket will get about 8% less delta-V from your LH2 tanks vs. buffed NFP tanks. If your tanks are switchable in the field, that might be an acceptable balancing penalty.

Link to comment
Share on other sites

Centaur is indeed a balloon tank, as was the old (Atlas II and earlier) lower stage tank. Also the Ariane V EPC is a balloon tank. Other tanks are rigid and don't require constant pressurization, but they're still very thin and light. Your numbers seem very low; I'd expect something like 97% fuel fraction for non-balloon tanks, and not much less than 99% for balloon tanks (for kerolox density). LH2, now, the tanks will be rather heavier in a weight-weight comparison; EPC is 6.6% structural fraction (counting engines, guidance, interstage base, etc, as well as tank mass), Centaur is about 11%, and so forth. At a rough cut I'd expect LH2 tanks to have 1.3-1.6x the structural mass, per mass of propellant, as another tank.

Normal pressurized tanks (i.e. not those for pressure-fed stages) run about 2 atm of pressure IIRC.

Link to comment
Share on other sites

When you say my numbers are "too low", do you mean the fuel mass fractions should be higher? I'm treating all tanks as non-balloon tanks (since they clearly don't collapse when empty); going from 1 ton of tank per 8 tons of fuel to 0.25 tons does get to 97% fuel (96.969696...%).

For LH2, I approximated the desired mass fraction by allocating 63.1% of the space shuttle ET's dry mass to the LH2 tank (because it's 29.6/46.9 of the tank's length), hence 86.4%. I suppose this assumes no mass to the intertank (probably false...), but I was primarily interested in getting a number that's "close enough" so that I could get SMURFF out the door. Going by your guideline instead, 8 tons of LH2 should have .25 * 1.3-1.6 = 0.325-0.4 tons of tank, or 95.2-96.1%?

Link to comment
Share on other sites

Sorry, must have misread. 3% structural / 9&% fuel fraction does sound right.

For LH2 RF goes with 0.0206t per cubic meter for a non-balloon (Delta IV-like) tank, or 0.0066t for balloon cryo. That equates to 22.5% and 8.5% structural fractions Clearly I was getting confused between the LH2 tank's structural fraction alone (which is very high) and the sum of 5.5:1 or 6:1 LOX/LH2's structural fraction...(which is on the order of 1.5x compared to LOX/kero)

sorry...

You might want to check the Volumes page here: https://www.dropbox.com/s/lz2ntsqhwe192xv/Calcs.xls?dl=0

It has all the data RF uses to mass tanks.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...