Jump to content

[1.12.x] Cryogenic Engines: Liquid Hydrogen and Methane Rockets! (Jan 22, 2022)


Nertea

Recommended Posts

How do you use the patch?

if you want to try out igor's patch, grab the whole thing and open your CryoEnginesFuelTanks.cfg and paste Igor's inside it and save. Probably should make a back-up of the original in case you want to go back. I removed the section for monoprop at the end, as it seemed to under-calculate the amount of fuel that should be present.

@Eleven - in KSP LF and OX are both the same mass/unit. And I think we're assuming that for the two of them the "unit" of volume is the same. For LH2 and LF it is not, LF's volume unit is 5.5x as large as LH2's.

Link to comment
Share on other sites

Liquid Fuel = Liquid Hydrogen always was and always is; aribtrary making a new fuel...?

No. Liquid fuel is kerosene, and it always has been.

Liquid Hydrogen has a different density than kerosene, but it is so much lower that it is problematic for gameplay, so Nertea and friends are trying to decide on a ratio to use that feels realistic without being terribly inconvenient.

The patches here assume that LF and OX are the same density? Is that in fact true? So a tank that held 14400 total combined LF/OX would hold 14400 LF only, or 14400 OX only?

This is a good question. My guess would be that the tank values are in units of volume since the total is the same regardless of the contents, but I am not sure, let me look up the stoich of KeroLOx.

Edited by Starbuckminsterfullerton
Link to comment
Share on other sites

Volcano actually works pretty nice with a lander that ends up being about 28T. Command pod on that guy is a PPD-1 from NearFuture Spacecraft. But... I'm also a offset-part clipping addict soooooooo. :P

I too though would like an engine array that runs on hydrolox. Which gives me an idea: How about some part .cfgs that re-use Nertea's NF Spacecraft lander engine models? (You'd need to have that pack as well as this one installed for it to work)

I might fiddle with that a bit over the next few days. If I come up with something good I'll share.

Now keep in mind the only lander humanity as actually ever used didn't use a hydrolox engine as compactness and reliability was more important than efficiency. Real LM used Aerozine 50 & nitrogen tetroxide.

We may use hydrolox in the future because making H2 and O2 out of water ISRU isn't horribly complicated.

Link to comment
Share on other sites

This is a good question. My guess would be that the tank values are in units of volume since the total is the same regardless of the contents, but I am not sure, let me look up the stoich of KeroLOx.
@Eleven - in KSP LF and OX are both the same mass/unit. And I think we're assuming that for the two of them the "unit" of volume is the same. For LH2 and LF it is not, LF's volume unit is 5.5x as large as LH2's.

Looking at it now, it makes sense that they are the same density. It's just a shock after playing for a while with an older FSfuelswitch where I was simply doubling the individual amounts when calculating the new totals. So in my world the Size3LargeTank that holds 6480/7920 LF/OX, would hold 12960LF and 15840OX when switched. I never took into consideration that they were the same density and the total volume of the tank is what matters. :)

I was so proud of myself for coming up with a goofy spreadsheet calculation to give me the +/- for the cfg files' tankCost, then I find this thread and saw the Cryo cfg that does it all...I should have known that was a possibility as well!

Link to comment
Share on other sites

So after a little research, I've found that RP-1 (rocket grade kerosene) has a density range of ~.8-1 g/ml, and LOx is 1.141g/ml. This appears to correspond closely to the stock ratios of .9/1.1, as if the propellants were both allotted the same space in the tank the ratio of their masses would be ~.9/1.1.

However... a real keroLOx engine burns about 3x as much oxidizer by mass as kerosene, and as others have said the LiquidFuel and Oxidizer resources have the same density in-game, so... yeah. I agree with assuming consistent volume units and leaving this here worm can sealed.

For LH2 and LF it is not, LF's volume unit is 5.5x as large as LH2's.

I thought the units were the same size but lower density and the HydroLOx engines just burned 6x as many of them. Are they not? Now that I think about it that's not what my resource .cfg looked like...

Link to comment
Share on other sites

Sorry for the lack of updates/posts people, been busy with stuff. I'll read through the thread when I update this (after NFT is done) and be adjusting tanks and consumption based on some kind of compromise.

Some random notes:

  • LiquidFuel = Kerosene here for sure.
  • LiquidFuel and Oxidizer are both assumed to have 5.5L per KSP unit, and they do have equivalent density
  • LqdHydrogen and most CRP resources are 1L per KSP unit (with "real" density)
  • I don't plan on making any flat cryogenic engines, but there are low profile engines in NFSpacecraft. One is based on a methalox engine so it's semi-cryo...
  • I don't immediately plan on making any 5m engines, but they would be my next thing if I were to expand the pack.
  • I plan on rebalancing the Tunguska and the Yucatan to more closely match the Skipper than the Poodle in TWR metrics
  • I'm working on getting custom sounds! Made by the same guy who did the lovely NFP sounds.

Edited by Nertea
Link to comment
Share on other sites

I thought the units were the same size but lower density and the HydroLOx engines just burned 6x as many of them. Are they not? Now that I think about it that's not what my resource .cfg looked like...

When I was fiddling with the cfgs for different burn ratios for these engines I discovered that LF and OX are both 5kg/unit

ETA: You may want to look at the Volcano too while you're going over balance. It's pretty powerful. I've been using it in place of the poodle quite a bit. Which is pretty excellent, but making the lander engines play nice... It's better to use a volcano unless I give the lander engines big numbers - thrust in particular - compared to their LF/OX counterparts.

Edited by helaeon
Link to comment
Share on other sites

Perhaps it is PP which assumes a higher volume of the tanks. When I've made the patch I've compared the amount of LqdHydrogen/OX for stock tanks and MFT to the values given by Nerteas Fuelswitch patch. Nerteas assumes for stock tanks, that 10 units of LqdHydrogen equals 1 unit of Oxidizer and the resource using is half and half.

Of course for MFT it isn't exactly the same, e.g. for fuelswitch there is a tank with LqdHydrogen only, but it adds just the value for Oxizider to the value of LqdH2, which makes no sense, when you assume 10x higher "density". In this case MFT just doubles the amount of LqdH2.

First you can change the default basemass to 0.000625 for balance reasons. But there are some other things I've thought about, which I will try to explain later, when I've some minutes.

I did a quick check and 3 long stock 3.75m tanks (the NASAmission ones) holds *more* than my main tank on my Delta IV CBC tank (also 3.75m) of the same length, so I don't think it's PP's fault, I am sure PP assumes almost the same volumes as the stock tanks to keep it balanced with the stock game. I wouldn't say you were miles off, just maybe a little off.

EDIT/UPDATE: With a little more research I realised the Delta IV CBC is not a solid tank, it has a large gap inbetween the LH2 and LOX tanks. Once I accounted for this in my replica the fuel quantity actually balances out pretty well, I'm sorry to bother you with my lack of research ;):)

Edited by MDBenson
Link to comment
Share on other sites

When I was fiddling with the cfgs for different burn ratios for these engines I discovered that LF and OX are both 5kg/unit

ETA: You may want to look at the Volcano too while you're going over balance. It's pretty powerful. I've been using it in place of the poodle quite a bit. Which is pretty excellent, but making the lander engines play nice... It's better to use a volcano unless I give the lander engines big numbers - thrust in particular - compared to their LF/OX counterparts.

Just too much thrust compared to others, or what?

Link to comment
Share on other sites

Nice, looking forward to the rebalance (I know its easy to adjust part cfg's, but that's just not the same)! Can't wait to try to recreate a Ariane 5 (cryo mid+upper and giant SRB's).

Link to comment
Share on other sites

Any chance of a fuel switch patch for Procedural Parts?

Is 4 pages too much?

@PART[procedural*Liquid]:NEEDS[CryoEngines]{
@MODULE[TankContentSwitcher]
{
TANK_TYPE_OPTION
{
name = LqdHydrogen
dryDensity = 0.1
costMultiplier = 0.035
// Based on observation that LH2 is 1/20 the cost of LF
RESOURCE
{
name = LqdHydrogen
unitsPerT = 8800
// Based on nertea's 5.5x total of mixed tank
}
}
TANK_TYPE_OPTION
{
name = LqdHydrogen+Oxidizer
dryDensity = 0.1
costMultiplier = 0.785
// Based on observation that LH2 is 1/20 the cost of LF and adding the cost mult for oxidizer only
RESOURCE
{
name = LqdHydrogen
unitsPerT = 8000
// Based on nertea's 5x total of mixed tank
}
RESOURCE
{
name = Oxidizer
unitsPerT = 800
// Based on nertea's 1:10 ratio for mixed tank
}
}
}
}

Please critic it and let me know how it works haven't tested just made it. It is based the orignal stats from nertea's DL in OP.

Link to comment
Share on other sites

Nertea,

Is there a good way to MM hook additional fuel types into your tanks without having to remove & reapply the entire patch? Want to make a patch that adds other fuels/storage i put on the tanks but make it so I don't have to rewrite it if you decide to adjust the ratios of your fuel types in the future. Not quite that good with MM patches yet lol

Much as I like MFT I honestly find the fuel switch system easier to work with most of the time.

Link to comment
Share on other sites

Nertea,

Is there a good way to MM hook additional fuel types into your tanks without having to remove & reapply the entire patch? Want to make a patch that adds other fuels/storage i put on the tanks but make it so I don't have to rewrite it if you decide to adjust the ratios of your fuel types in the future. Not quite that good with MM patches yet lol

Much as I like MFT I honestly find the fuel switch system easier to work with most of the time.

I don't know of a way to use ModuleManager to rewrite another ModuleManager patch before applying it. But there might be a way to rewrite the patch to get all of the resource configurations and their proportions from a separate node that a patch could target (call it something like GLOBAL_FUEL_SWITCH_SETTINGS).

The problem is going to be the way InterstellarFuelSwitch packs lists of multiple resource names and numbers into a single config variable. There are still some limits on what ModuleManager can do to a variable that contains an arbitrary number of separate fields.

Link to comment
Share on other sites

I don't know of a good way, sorry :(.

WOOHOO! 5hrs of driving myself nuts digging through the ModuleManager thread and I finally cracked it :D

The trick was figuring out a variable I could check for that didn't have alot of extra punctuation in it to throw it off. After I realized variables your math creates still existed on the part I had MM search for it to narrow the filter down.

@PART
[*]:HAS[@MODULE[InterstellarFuelSwitch],#mixLFCost[>0]]:AFTER[CryoEngines]
{
%ExBaseRN = #$MODULE[InterstellarFuelSwitch]/resourceNames$
%ExBaseRA = #$MODULE[InterstellarFuelSwitch]/resourceAmounts$
%ExBaseTC = #$MODULE[InterstellarFuelSwitch]/tankCost$
%ExBaseTM = #$MODULE[InterstellarFuelSwitch]/tankMass$
%ExTotalCap = #$totalCap$
@ExTotalCap *= 1
%ExCost = #$mixLFCost$
@ExCost *= 1

@MODULE[InterstellarFuelSwitch]
{
@resourceNames = #$../ExBaseRN$;Karbonite
@resourceAmounts = #$../ExBaseRA$;$../ExTotalCap$
@tankCost = #$../ExBaseTC$;$../ExCost$
@tankMass = #$../ExBaseTM$;0
}
}

Thats as compact as I could get it.

Even Better... It stacks. I could specificity a single resource like above as individual MM patches specific to different mods. Or add multiple new types in a single patch. If someone else creates one it doesn't matter what order they run in, it will pull the most current values each time and just keep adding tanks. :P

No idea how one would go about removing tank options but I don't need to open that can of worms since that would probably be a parsing nightmare if MM even allowed it.

Ok problem solved... now maybe i can get my brain to stop ticking long enough to go to bed or work is really going to stuck tomorrow lol

EDIT: As an after thought Nertea you may want to consider adding "resourceGui" and "initialResourceAmounts" values to your config.

The first one is arguably not very important unless you like Labels on thing.

The latter one however would be helpful even if you just duplicate the "resourceAmounts" field into it. Some resources like Rover's Karborundum arn't tweak-able in the VAB and I have found that if I use the above to add it to your configs I get a free full tank on launch, which sorta defeats the point. I can't just add it in my own to start the tank off with 0 because there is no base value in yours to build off of for stacking. Just a suggestion :)

Edited by ExavierMacbeth
Link to comment
Share on other sites

Just too much thrust compared to others, or what?

Too much thrust and probably too light. Though, it does seem to exist in a sweet spot that makes it just awesome.

ISP seems right for what its supposed to do (though maybe that top end comes down to 390? That might be excessive though. I think it's good where it is.).

The poodle like thrust rules, but probably needs to come down some. I was thinking 255?

Mass I think can come up to 2.0T even with the changes to thrust.

Mostly I was looking to give you a heads up that while you're balancing you may want to look at it. It's awesome as it is and make sense for it to have the stats that it does, but it does make it a very powerful engine. Much like the Vesta from KW.

Link to comment
Share on other sites

This engines are gorgeous! But as always we wish more. :) In particular I wish for shuttle engine versions without that ring base ring:

http://i.imgur.com/JpNlRQR.jpg

Yeah, I'd also really appreciate some engines without the base ring. Cause they look awkward when clustered:

GbTONE5.png

The best solution would be to use InterstellarMeshSwitch with two options for each engine.

I'm forced to use FASA engines only for this reason.

4kfgC12.png

Edited by Enceos
Link to comment
Share on other sites

I made a ModuleManager file that adds fuel switching to parts that natively carry LF, OX & MP (e.g., Nertea's service tanks from NFSpacecraft). It leaves monopropellant the same for all configurations, while swapping out the other fuels in exactly the same manner as Nertea's patch.


@PART[*]:HAS[@RESOURCE[LiquidFuel],@RESOURCE[Oxidizer],@RESOURCE[MonoPropellant],!MODULE[InterstellarFuelSwitch]]
{
%LF = #$RESOURCE[LiquidFuel]/maxAmount$
%OX = #$RESOURCE[Oxidizer]/maxAmount$
%MP = #$RESOURCE[MonoPropellant]/maxAmount$

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

%onlyLH2 = #$totalCap$
@onlyLH2 *= 5.5
%mixLH2 = #$onlyLH2$
@mixLH2 /= 1.1
%mixOX = #$onlyLH2$
@mixOX -= #$mixLH2$

%tempVar = 0
%dryCost = 0

@dryCost = #$cost$

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

// compute MP cost
@tempVar = #$RESOURCE[MonoPropellant]/maxAmount$
@tempVar *= 1.2
@MPCost += #$tempVar$

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

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

@mixLFCost += #$MPCost$

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

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

@LFCost += #$MPCost$

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

@OXCost += #$MPCost$

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

@LH2Cost += #$MPCost$

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

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

@mixLH2Cost += #$MPCost$

@tempVar = 0

MODULE
{
name = InterstellarFuelSwitch

resourceNames = LiquidFuel,Oxidizer,MonoPropellant;LqdHydrogen,Oxidizer,MonoPropellant;LiquidFuel,MonoPropellant;Oxidizer,MonoPropellant;LqdHydrogen,MonoPropellant

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

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

hasGUI = true
showInfo = true

availableInFlight = false
availableInEditor = true

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

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

Nertea, please feel free to incorporate this patch into the mod if you'd like.

Link to comment
Share on other sites

So much for keeping memory in check, insta-downloading.

I know right? Between Nertea & Rover's mods I have very few other parts packs installed. And don't regret the choice in the least... well except maybe a couple of the monster KW Rocketry engines I sneak into my install by themselves :P

Link to comment
Share on other sites

I know right? Between Nertea & Rover's mods I have very few other parts packs installed. And don't regret the choice in the least... well except maybe a couple of the monster KW Rocketry engines I sneak into my install by themselves :P

I havent gotten around to forcing 64 bit yet. It usually gets to that point when I go to throw on my 8k E.V.E. pack (I run an older iteration of Astronomer's Visual pack at max res).

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...