Jump to content

[1.12.x] Cryogenic Engines: Liquid Hydrogen and Methane Rockets! (August 13, 2024)


Nertea

Recommended Posts

On 5/7/2018 at 1:42 PM, Someone2018 said:

@Nertea What was your reason for not fueling these engines with LqdOxygen (the cryogenic kind) that is present in the community resource pack? The combination of LqdHydrogen (the cryogenic kind) and a non-cryogenic oxidizer seems unusual (not used in real life at all as far as I can tell), especially since you bothered with cryogenic fuels to begin with (and associated boil-off mechanics).

Perhaps the better question is something along the lines of "why add LqdOxygen"? If the only answer is realism then that's insufficient. Time for a long blurb. 

In my current gameplay paradigm (which has evolved over time, but is stabilizing), a new fuel type only brings value if has particular gameplay concepts that are different than other fuels'. A lot of my mods did not build on this, which is why it's a bit of a mess in NFP (fuels that shouldn't exist by this paradigm). The effective gameplay (in a non RO context) ways of differentiating fuels:

  • Density: affects ship design significantly in terms of ship size
  • ISRU factors: affects mission design if the production chain for the resource differs or if it is limited in presence
  • Boiloff: affects mission deign and adds ship design-based mitigation strategies
  • Transport factors: transferability and similar affect how the resource is actually used (eg solid fuel)
  • Cost: a poor differentiator because a) KSP cost balance sucks and b) sandbox doesn't care
  • Tank mass ratio: a poor differentiator as it is effectively a scalar on mass and Isp. 
  • Engine selection: a poor criteria but should be mentioned because it drives reasons to use the fuels. For example, Oxidizer is a bit more valid of a fuel because LiquidFuel can be used in some cases without Oxidizer. 

Typically IMO a new fuel type should not be added unless it provides a new challenge when used. Ideally it should hit at least 2 of these factors. My current fuel lineup looks like this, and you can see why I am only partly happy with it based on the above: 

  • LH2: Fairly good differentiation with 2 strong and 2 weak factors (boiloff, density, engine selection, mass ratio)
  • Argon: moderate differentiation, probably shouldn't exist - 1 strong, 2 weak (ISRU, cost, engine selection)
  • Lithium: Poorly differentiated, should never have added it (ISRU, engine selection)
  • Uranium: Decent (ISRU, Transport, cost, mass ratio, engine selection)

Now adding LqdOxygen and looking at it in these terms:

  • Similar density to oxidizer so not great
  • Presumably same ISRU properties as LH2/Oxidizer/LF. if different, would need more models/work
  • Boiloff as LH2 - slightly different as presumably slower
  • Same transport factors as any liquid fuel
  • Cost not considerably different
  • Mass ratio not significantly different to Oxidizer
  • Engine selection limited to LH2 engines - already a gating factor to LH2 engines

The only real reason that works is engine selection - and to effectively use this, you would need to use this resource in other engines that are non-LH2, because said engines are already gated by LH2. It is my considered opinion that using LH2 in these engines is basically only a naming change and doesn't really affect gameplay. Hope that answers your question :D. 

That being said, the boiloff code completely supports multiple types of fuels and is customizable to do whatever you like, as per one of the items in the FAQ specifically addressing LqdOxygen.

Link to comment
Share on other sites

12 hours ago, Nertea said:

Perhaps the better question is something along the lines of "why add LqdOxygen"? If the only answer is realism then that's insufficient. Time for a long blurb. 

In my current gameplay paradigm (which has evolved over time, but is stabilizing), a new fuel type only brings value if has particular gameplay concepts that are different than other fuels'. A lot of my mods did not build on this, which is why it's a bit of a mess in NFP (fuels that shouldn't exist by this paradigm). The effective gameplay (in a non RO context) ways of differentiating fuels:

  • Density: affects ship design significantly in terms of ship size
  • ISRU factors: affects mission design if the production chain for the resource differs or if it is limited in presence
  • Boiloff: affects mission deign and adds ship design-based mitigation strategies
  • Transport factors: transferability and similar affect how the resource is actually used (eg solid fuel)
  • Cost: a poor differentiator because a) KSP cost balance sucks and b) sandbox doesn't care
  • Tank mass ratio: a poor differentiator as it is effectively a scalar on mass and Isp. 
  • Engine selection: a poor criteria but should be mentioned because it drives reasons to use the fuels. For example, Oxidizer is a bit more valid of a fuel because LiquidFuel can be used in some cases without Oxidizer. 

Typically IMO a new fuel type should not be added unless it provides a new challenge when used. Ideally it should hit at least 2 of these factors. My current fuel lineup looks like this, and you can see why I am only partly happy with it based on the above: 

  • LH2: Fairly good differentiation with 2 strong and 2 weak factors (boiloff, density, engine selection, mass ratio)
  • Argon: moderate differentiation, probably shouldn't exist - 1 strong, 2 weak (ISRU, cost, engine selection)
  • Lithium: Poorly differentiated, should never have added it (ISRU, engine selection)
  • Uranium: Decent (ISRU, Transport, cost, mass ratio, engine selection)

Now adding LqdOxygen and looking at it in these terms:

  • Similar density to oxidizer so not great
  • Presumably same ISRU properties as LH2/Oxidizer/LF. if different, would need more models/work
  • Boiloff as LH2 - slightly different as presumably slower
  • Same transport factors as any liquid fuel
  • Cost not considerably different
  • Mass ratio not significantly different to Oxidizer
  • Engine selection limited to LH2 engines - already a gating factor to LH2 engines

The only real reason that works is engine selection - and to effectively use this, you would need to use this resource in other engines that are non-LH2, because said engines are already gated by LH2. It is my considered opinion that using LH2 in these engines is basically only a naming change and doesn't really affect gameplay. Hope that answers your question :D. 

That being said, the boiloff code completely supports multiple types of fuels and is customizable to do whatever you like, as per one of the items in the FAQ specifically addressing LqdOxygen.

I get the arguments for only adding things that add meaningful choices for the sake of keeping the game somewhat manageable, by going a non-cryogenic oxidizer you are sacrificing specific impulse and increasing weight. Which is silly given that the cryogenic installations for liquid hydrogen are far more challenging comparatively (both lower temperature, and the small molecular size of hydrogen that likes to find leaks).

https://www.thespacerace.com/forum/index.php?topic=2583.msg17481#msg17481 shows the specific impulse for liquid hydrogen at sea level with:

* Liquid Oxygen: 381

* NItrogen Tetroxide: 340

* Hydrogen Peroxide(95%):  312

Compare to that kerosine (which is not cryogenic) at sea level:

* Liquid Oxygen: 289

* NItrogen Tetroxide: 267

* Hydrogen Peroxide(95%): 268

If you consider that Kerbal space numbers never match real life, so given:

* Kerbal space non-cryogenic stock engines tend to be around 260-295 Isp at sea level.

* We cannot assume either which non-cryogenic Oxidizer we are using, so let's take the average of Nitrogen Tetroxide  and Hydrogen Peroxide (95%).

I arrive at the conclusion:

* Isp can be 20% higher compared to stock engines (Isp of 300-355 at sea level) with Liquid Hydrodrogen and whatever oxizider KSP uses

* Isp can be 40% higher compared to stock engines (Isp of 340-410 at sea level) with Liquid Hydrogen and Liquid Oxygen, which a clear performance gain, especially for upper stages that want to maximize their delta velocity

This is not even considering mass advantages of Liquid Oxygen, but mass is a bit messed up in KSP in all sorts of ways, so let's not dive into that right now :-P

Please note that specific momentum increases as pressure drops, assuming the engine is designed to leverage the advantage. The exacts details of how this changes I don't (yet) have information on, other than that exhaust velocity is a big determining factor.

Link to comment
Share on other sites

10 hours ago, Someone2018 said:

I get the arguments for only adding things that add meaningful choices for the sake of keeping the game somewhat manageable, by going a non-cryogenic oxidizer you are sacrificing specific impulse and increasing weight. Which is silly given that the cryogenic installations for liquid hydrogen are far more challenging comparatively (both lower temperature, and the small molecular size of hydrogen that likes to find leaks).

https://www.thespacerace.com/forum/index.php?topic=2583.msg17481#msg17481 shows the specific impulse for liquid hydrogen at sea level with:

* Liquid Oxygen: 381

* NItrogen Tetroxide: 340

* Hydrogen Peroxide(95%):  312

Compare to that kerosine (which is not cryogenic) at sea level:

* Liquid Oxygen: 289

* NItrogen Tetroxide: 267

* Hydrogen Peroxide(95%): 268

If you consider that Kerbal space numbers never match real life, so given:

* Kerbal space non-cryogenic stock engines tend to be around 260-295 Isp at sea level.

* We cannot assume either which non-cryogenic Oxidizer we are using, so let's take the average of Nitrogen Tetroxide  and Hydrogen Peroxide (95%).

I arrive at the conclusion:

* Isp can be 20% higher compared to stock engines (Isp of 300-355 at sea level) with Liquid Hydrodrogen and whatever oxizider KSP uses

* Isp can be 40% higher compared to stock engines (Isp of 340-410 at sea level) with Liquid Hydrogen and Liquid Oxygen, which a clear performance gain, especially for upper stages that want to maximize their delta velocity

This is not even considering mass advantages of Liquid Oxygen, but mass is a bit messed up in KSP in all sorts of ways, so let's not dive into that right now :-P

Please note that specific momentum increases as pressure drops, assuming the engine is designed to leverage the advantage. The exacts details of how this changes I don't (yet) have information on, other than that exhaust velocity is a big determining factor.

I don't think you got my rationale quite right. But like I said.... *points to ModuleManager*

Link to comment
Share on other sites

  • 2 weeks later...

@Nertea The new volumes are not applied to the B9 parts. Looking at your patch I'm not sure I understand why your patch doesn't work for the B9 parts. Could it be that the B9 parts start as structural tanks without any fuel in the VAB, and don't get recognised by your patch because  of that?

For example the Mk1b Fuselage (4m) has 832 LF and 4160 LH, while the FL-T800 has 800 LF and 6000 LH.

To make sure nothing else is interfering I did a fresh install with only B9 parts and Cryotanks with all dependencies through CKAN.


 

Link to comment
Share on other sites

4 minutes ago, boribori said:

@Nertea The new volumes are not applied to the B9 parts. Looking at your patch I'm not sure I understand why your patch doesn't work for the B9 parts. Could it be that the B9 parts start as structural tanks without any fuel in the VAB, and don't get recognised by your patch because  of that?

For example the Mk1b Fuselage (4m) has 832 LF and 4160 LH, while the FL-T800 has 800 LF and 6000 LH.

To make sure nothing else is interfering I did a fresh install with only B9 parts and Cryotanks with all dependencies through CKAN.=

B9's CryoTanks compatibility is in B9.  I probably haven't updated it since the last time CryoTanks changed.  Put an issue on Github and I can look at it before the next B9 release.

Link to comment
Share on other sites

1 hour ago, blowfish said:

B9's CryoTanks compatibility is in B9.  I probably haven't updated it since the last time CryoTanks changed.  Put an issue on Github and I can look at it before the next B9 release.

@blowfish Thanks! I'm fairly new to github, so I hope I did it right.
I'll probably try to fix it myself on my own install, if it works I can do a pull request, if I can figure out how that works and if you don't mind.

Link to comment
Share on other sites

On 5/9/2018 at 1:50 PM, Nertea said:

Perhaps the better question is something along the lines of "why add LqdOxygen"? If the only answer is realism then that's insufficient. Time for a long blurb. 

In my current gameplay paradigm (which has evolved over time, but is stabilizing), a new fuel type only brings value if has particular gameplay concepts that are different than other fuels'. A lot of my mods did not build on this, which is why it's a bit of a mess in NFP (fuels that shouldn't exist by this paradigm). The effective gameplay (in a non RO context) ways of differentiating fuels:

  • Density: affects ship design significantly in terms of ship size
  • ISRU factors: affects mission design if the production chain for the resource differs or if it is limited in presence
  • Boiloff: affects mission deign and adds ship design-based mitigation strategies
  • Transport factors: transferability and similar affect how the resource is actually used (eg solid fuel)
  • Cost: a poor differentiator because a) KSP cost balance sucks and b) sandbox doesn't care
  • Tank mass ratio: a poor differentiator as it is effectively a scalar on mass and Isp. 
  • Engine selection: a poor criteria but should be mentioned because it drives reasons to use the fuels. For example, Oxidizer is a bit more valid of a fuel because LiquidFuel can be used in some cases without Oxidizer. 

Typically IMO a new fuel type should not be added unless it provides a new challenge when used. Ideally it should hit at least 2 of these factors. My current fuel lineup looks like this, and you can see why I am only partly happy with it based on the above: 

  • LH2: Fairly good differentiation with 2 strong and 2 weak factors (boiloff, density, engine selection, mass ratio)
  • Argon: moderate differentiation, probably shouldn't exist - 1 strong, 2 weak (ISRU, cost, engine selection)
  • Lithium: Poorly differentiated, should never have added it (ISRU, engine selection)
  • Uranium: Decent (ISRU, Transport, cost, mass ratio, engine selection)

Now adding LqdOxygen and looking at it in these terms:

  • Similar density to oxidizer so not great
  • Presumably same ISRU properties as LH2/Oxidizer/LF. if different, would need more models/work
  • Boiloff as LH2 - slightly different as presumably slower
  • Same transport factors as any liquid fuel
  • Cost not considerably different
  • Mass ratio not significantly different to Oxidizer
  • Engine selection limited to LH2 engines - already a gating factor to LH2 engines

The only real reason that works is engine selection - and to effectively use this, you would need to use this resource in other engines that are non-LH2, because said engines are already gated by LH2. It is my considered opinion that using LH2 in these engines is basically only a naming change and doesn't really affect gameplay. Hope that answers your question :D. 

That being said, the boiloff code completely supports multiple types of fuels and is customizable to do whatever you like, as per one of the items in the FAQ specifically addressing LqdOxygen.

Sorry man, got to reply to this as a Thx.  Its helpful to get good education in regards to realism as well as plain enjoyment due to correct gameplay information.  My nose is not shading brown, I really do enjoy your info and great involvement in our community Nert.

Link to comment
Share on other sites

On 5/12/2018 at 10:40 AM, Gordon Dry said:

Where do I find this?

I ask because I tried it for 5  minutes now  to find it and there must be a point where I stop and just ask.

CryoTanks repository, readme.md

On 5/24/2018 at 12:36 PM, dlrk said:

Would it be possible to get a patch to have the boiloff function in MFT Cryotanks? Could this be done with MM?

Yes it should be doable. You would just need to add the appropriate module.

Link to comment
Share on other sites

 https://www.dropbox.com/s/5tgvvfnb9hjf7ow/CryoTanksFuelTankSwitcher.cfg?dl=0
https://www.dropbox.com/s/5d9dnhoko6kjw4x/CryoTanksProceduralFuelTanks.cfg?dl=0
 

Modified the cfgs to provide boil off to all tanks, including procedural tanks, and when MFT (but not realfuels) is installed. Here they are if any one wants them. I would put this as a pull request, but these are based of the 1.3.1 cfgs.

Link to comment
Share on other sites

  • 2 weeks later...

So I am encountering a slightly mysterious issue - the Mars engine is not in the tech tree.  (The Community Tech Tree, that is.)

The other cryogenic engines are there, and the cryogenic tanks.  The Mars exists in Sandbox mode.  It just isn't in the node that it claims to be in per the .cfg file (and I can't see it anywhere else, of course).

I do have a ridiculous number of mods installed, and I am using a save game that's been migrated over since KSP 1.2.x or so, so 'generic mod incompatibility' is certainly a possibility (although I observe the same thing with a fresh save).  But I've checked the obvious things (the node does exist, it's spelled correctly, etc.), and I'm at a loss as to what could even cause that behaviour.  (I'm starting to wonder if there's an invisible unicode character in there somewhere...)

I don't suppose that anyone else has seen anything similar?

EDIT - Or alternatively, I could just have not been looking hard enough... Found it now, sorry for the disturbance!  (I'll just sneak away now...)

Edited by ChrisF0001
Link to comment
Share on other sites

  • 1 month later...
  • 2 weeks later...

Cryogenic Engines 0.6.1

  •  KSP 1.4.5
  •  Updated B9PartSwitch to 2.3.3
  •  Updated MM to 3.0.7
  •  Updated DynamicBatteryStorage to 1.3.2
  •  All engines now surface attachable by default
  •  Removed Extras surface attach patch
  •  Updated CryoTanks to 1.0.1
    •  Changed omni-tank patch to run AFTER several other mods that also omni patch.
       
Link to comment
Share on other sites

  • 1 month later...

Hi, here is a log which I bet you have seen before: https://www.dropbox.com/s/5sdzcbltobydaoj/saves for LoadingScreenManager.1.output_log.rar?dl=0

Well inside later on is this:

Spoiler

PartLoader: Compiling Part 'CryoTanks/Parts/HydrogenTanks/hydrogen-inline/hydrogen-10-1/hydrogen-10-1'
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

PartLoader Warning: Variable LH2 not found in Part
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

PartLoader Warning: Variable massOffset not found in Part
 
(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)

PartLoader Warning: Variable costOffset not found in Part

As you can guess I am wondering if this can be looked at both in terms of cleaning up the log file but also if there is indeed a need for those variables to be set, as I have a thought that other mods might be looking for their values at some point.

Edited by Apaseall
Link to comment
Share on other sites

  • 3 weeks later...
1 hour ago, AccidentalDisassembly said:

Small note - in CryoTanks\Patches\CryoTanksCTT.cfg, there's an extra closing curly brace that may or may not bork some patches. Dunno how MM handles extra stuff like that anymore.

It would really be KSP's handling - MM only sees the parsed version, still might be a good idea to fix though.

Link to comment
Share on other sites

  • 2 weeks later...

Cryogenic Engines 0.6.2

  •  KSP 1.5.1
  •  Updated B9PartSwitch to 2.4.4
  • Updated MM to 3.1.0
  •  Updated DynamicBatteryStorage to 1.3.3
  •  Updated CRP to 1.0.0
  •  Updated MiniAVC to 1.2.0.6
  • Updated CryoTanks to 1.0.2
Link to comment
Share on other sites

To mod creator

Cyrotanks causes each fuel tank to be unable to be placed radially unless using no or 2x symmetry. This is likely due to an incompatibility with Editor Extensions Redux. The single fuel tank displayed despite having 3x or more symmetry enabled will be opaque but darkened, cause horrible freezing (once every quarter of a second, for a second, each), and cannot be placed. When using 2x symmetry, the fuel tank will be symmetric about the parent part, for example, a radial decoupler, which means the other tank will be clipping inside of the main one or whatever the decoupler's attached to.

unknown.png

Link to comment
Share on other sites

1 hour ago, Unsocialite said:

To mod creator

Cyrotanks causes each fuel tank to be unable to be placed radially unless using no or 2x symmetry. This is likely due to an incompatibility with Editor Extensions Redux. The single fuel tank displayed despite having 3x or more symmetry enabled will be opaque but darkened, cause horrible freezing (once every quarter of a second, for a second, each), and cannot be placed. When using 2x symmetry, the fuel tank will be symmetric about the parent part, for example, a radial decoupler, which means the other tank will be clipping inside of the main one or whatever the decoupler's attached to.

unknown.png

A log file would be most helpful!

Link to comment
Share on other sites

Just now, Unsocialite said:

It would be, if my web browser didn't crash when I tried to paste it into a spoiler. Sorry, I can't do it.

I can't support you if you don't help me figure things out. Try pastebin, google drive, dropbox, there are many great options.

Link to comment
Share on other sites

1 minute ago, Nertea said:

I can't support you if you don't help me figure things out. Try pastebin, google drive, dropbox, there are many great options.

By now the log file is gone as I have removed them. I just wanted to let you know about it & its probably a conflict with EEX.

I also loathe file sharing services, but that's not the point

Link to comment
Share on other sites

16 hours ago, Unsocialite said:

By now the log file is gone as I have removed them. I just wanted to let you know about it & its probably a conflict with EEX.

I also loathe file sharing services, but that's not the point

Not EEX, I had the same problem with no EEX. What i remember I had debug log full of "ArgumentOutOfRangeException: parameter name index" or something in that style. These occurred near B9PartSwitch LF/O configs. After removing semi-random mods and re-installing CryoTanks via CKAN, problem has disappeared. 

Now the B9PartSwitch is not working or something, Cryotanks are rendered with both foil and icosahedra and fuel tanks have no fuel sliders.

Log: https://www.dropbox.com/s/wct4j20kvs1cc3w/output_log.zip?dl=0

Edit: After manually re-installing B9PartSwitch, the problem came back.

Log: https://www.dropbox.com/s/yfg4r3w83lmtq6d/output_log_2.zip?dl=0

Edited by Lathari
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...