Jump to content

[WIP]Nuclear Salt Water Rocket dev thread


shynung

Recommended Posts

Disclaimer: I am a total noob in regards to KSP modding. My coding skills are not the best in the world. I can't make part models worth a damn. So essentially, I'm doing the "stone soup" approach to making a mod. :)

So here's the deal. I plan on making an engine mod based on the concept of the Nuclear Salt Water Rocket. Basically, a uranium salt solution in water is injected into a cylindrical reaction chamber, allowing it to undergo nuclear fission. This reaction turns the water into superheated steam, which is then expelled through the rocket nozzle, creating thrust.

To summarize, the plan is as follows:

-3.75m fuel tank, carrying a special fuel resource (NuclearSaltWater). Effective tank capacity is 50% of standard tank volume, simulating boron carbide neutron damper to keep the tank contents from going critical.

-3.75m engine, 11t mass, 2150kn thrust, 6728s vacuum Isp. (Specs are subject to later changes.)

Qkp54tA.png

1BGs1VV.png

R43Pvuy.png

-ISRU capable, using CRP. MM config to make stock ISRU converter make NuclearSaltWater out of Uraninite and Water.

UPDATE: Prototype configs are uploaded to GitHub. Feel free to try doing things.

Any advice on balancing will be highly appreciated.

GITHUB REPOSITORY

RELEASES

Credits:

Modelling and Textures: ThatOneBritishGuy...

Configuration files: shynung

Advisor: FreeThinker

License:

This project is public domain. I take no responsibility for any damages that may occur by the use of this project. Use at your own risk.

Edited by shynung
Link to comment
Share on other sites

Here's a prototype config that I just slapped together:

//Nuclear Salt Water Rocket - part config
//MIT License

PART//:NEEDS[CommunityResourcePack]
{
name = NSWR-Engine
module = Part
author = NovaSilisko, shynung
mesh = Squad/Parts/Engine/liquidEngineLV-N/model.mu
scale = 1
rescaleFactor = 1
node_stack_top = 0.0, 1.40383, 0.0, 0.0, 1.0, 0.0
node_stack_bottom = 0.0, -1.731957, 0.0, 0.0, -1.0, 0.0
fx_exhaustFlame_blue = 0.0, -1.6, 0.0, 0.0, 1.0, 0.0, running
fx_exhaustLight_blue = 0.0, -1.6, 0.0, 0.0, 0.0, 1.0, running
fx_smokeTrail_light = 0.0, -1.6, 0.0, 0.0, 1.0, 0.0, running
sound_vent_medium = engage
sound_rocket_hard = running
sound_vent_soft = disengage
sound_explosion_low = flameout
TechRequired = nuclearPropulsion
entryCost = 45000
cost = 10000
category = Engine
subcategory = 0
title = "Zubrin" Nuclear Salt Water Thruster
manufacturer = ShyTech Engineering
description = Despite the big scary trefoil painted onto the side of this engine, its radioactive exhaust, and tendency to overheat, the LV-N Atomic Rocket Motor is harmless. Mostly. Note that the LV-N is the only LV series engine to run solely on Liquid Fuel - the future is glowing bright!
attachRules = 1,0,1,0,0
mass = 1.5
// heatConductivity = 0.06 // half default
skinInternalConductionMult = 4.0
emissiveConstant = 0.85 // engine nozzles are good at radiating, NTRs even better
dragModelType = default
maximum_drag = 0.2
minimum_drag = 0.2
angularDrag = 2
crashTolerance = 12
maxTemp = 2500 // = 4000
bulkheadProfiles = size1
radiatorMax = 0.35 //Default = 0.25 but nuke engines are meant to run hot
MODULE
{
name = ModuleEngines
thrustVectorTransformName = thrustTransform
exhaustDamage = True
ignitionThreshold = 0.1
minThrust = 0
maxThrust = 60
heatProduction = 1000
fxOffset = 0, 0, 1.6
EngineType = Nuclear
PROPELLANT
{
name = Water
ratio = 0.998
DrawGauge = True
}
PROPELLANT
{
name = EnrichedUranium
ratio = 0.002
DrawGauge = True
}
atmosphereCurve
{
key = 0 8000
key = 1 500
key = 2 0.001
}
}
MODULE
{
name = ModuleJettison
jettisonName = fairingL
bottomNodeName = bottom
isFairing = False
jettisonedObjectMass = 0.1
jettisonForce = 1
jettisonDirection = 1 0 0
}
MODULE
{
name = ModuleJettison
jettisonName = fairingR
bottomNodeName = bottom
isFairing = False
jettisonedObjectMass = 0.1
jettisonForce = 1
jettisonDirection = -1 0 0
}
MODULE
{
name = ModuleAnimateHeat
ThermalAnim = overheat
}
MODULE
{
name = ModuleAlternator
RESOURCE
{
name = ElectricCharge
rate = 5.0
}
}
RESOURCE
{
name = ElectricCharge
amount = 0
maxAmount = 0
isTweakable = false
hideFlow = true
}
MODULE
{
name = ModuleTestSubject
environments = 8
useStaging = False
useEvent = True
}
MODULE
{
name = ModuleSurfaceFX
thrustProviderModuleIndex = 0
fxMax = 0.7
maxDistance = 50
falloff = 2.5
thrustTransformName = thrustTransform
}
}

Though, for some reason, the KSP executable cannot find the model, so the part didn't load.

Error log:

[LOG 15:50:18.869] PartLoader: Compiling Part '/NSWR/NSWR-Engine'
[ERR 15:50:18.877] PartCompiler: Cannot clone model from '' directory as model does not exist

[ERR 15:50:18.878] PartCompiler: Cannot compile model

[ERR 15:50:18.878] PartCompiler: Cannot compile part

Can anyone clarify where did I derped? Thanks in advance.:)

Link to comment
Share on other sites

I actualy considered adding a salt core rocket to KSPI as a precursor to the Vista engine, but I couldn't find a good model for it. The Nucleal Salt water is potential very powerfull low tech technology which offers high thrust, at a relatively high Isp . However it would need some serious limitations to get balanced correctly because just using it raw power would be too overpowered. It should suffer from som serious overeating issues and cannot be throttled like regular chemical engines. To keep the nozzle from melting after several seconds, it would require some extreme cooling, making the engine heavy.

Also extreme measures must be taken to prevent contamination. For example, It should only be allowed to operate after reacting orbit, otherwise the exaust would contaminate the entire atmosphere with radiactive dust, slowly killing all life. The Salt water reactor is many times worse than project orion in terms of radiation because 99% of all enriched uranium would not be unused for fission.

To realise this, you cannot simply put together some Stock parts, it would require a specialed controler, similar to the KSPI Vista controller.

Note EnrichedUranium would not be a good resource for several resons.

For one, it not trasferable, which Niclear Salt Water is.

Second, it requires some specialised tanks.

Third the density and other properties are all wrong. It should be slightly more dense than normal water. Al alternative would be UraniumNitrate, which could be mixed with regular water to create a nuckear salt water rocket.

Edited by FreeThinker
Link to comment
Share on other sites

Actually, yes, I intended it to be slightly overpowered. With a little twist: a single engine generates so much heat, even a quadruplet of large deployable radiators can barely keep it from exploding. So heat management, not cost or performance, is going to be the limitation.

You are correct, though, on the exhaust gases being radioactive, and the nuclear radiation generated by this thing thrusting. However, I plan to put this one on hold right now, until I learned some coding to prevent this thing firing at certain conditions - having another ship nearby not already docked in, for instance.

Despite that, I think we can just have this thing firing it atmosphere; the Kerbal people seem to have no problem firing off Porkjet's nuclear lightbulb engine right on the pad, so why not this one?

Link to comment
Share on other sites

Despite that, I think we can just have this thing firing it atmosphere; the Kerbal people seem to have no problem firing off Porkjet's nuclear lightbulb engine right on the pad, so why not this one?

Well Porcjet Nuclear LightBulb engine is a closed cycle gas core reactor. This explains their low performance and it's ability to allowed and function in the atmosphere. A big step up are open cycle design which can react much higher core temperatures at the expanse of lose a bit of uranium whenever the engine is under acceleration. This is the reason they cannot be developed on earth. Salt Water reactor are many times worse as 99% is dumped though the exasut, making effectivly a global dooms day weapon, many times worse than anything developed on conceived. A single atmospheric launch should be enough to radiate the entire atmosphere for many generations. :P

There are many good reasons why this engine wasn't developed, you absolutely have to be mad to even consider developing it.

Being powerfull it not a problem, but there needs to be a high cost and limitations to make it realistic and balanced

Edited by FreeThinker
Link to comment
Share on other sites

Not 99%. 100% of fission material goes out of the exhaust. So yeah, apparently I will have to implement some sort of control measure to make sure it won't fire when in the wrong circumstances. However, I will hold this issue back until I can get the engine working, which for now I have failed to manage. I'll get back on that later.

On another point, I'm not aiming for all-out realism. I'm aiming for simplicity and interoperability with other mods, which is why I plan to use CRP's EnrichedUranium. If the density doesn't seem right, I'd ask RoverDude.

Also, I don't plan to have specialized tanks for uranium salt water propellant. Instead, the EnrichedUranium and the Water propellant are planned to be stored in separate tanks, to be combined in the engine when firing. Also, I may be able to avoid the issue of EnrichedUranium being untransferable by making the engine able to hold small amounts of it, enough for several tens of hours of firing at least.

I'd write more, but I'm on mobile right now.:)

Edited by shynung
Link to comment
Share on other sites

Well in that case I would simply replace "model.mu" by "model" and "EnrichedUranium" into "UraniumNitride" (A CRP resource that can be accesed everywhere) and it should work with a tank of water and UraniumNitride on your vessel.

To prevent atmospheric usage you can simply set the atmpspheric curve very steep


atmosphereCurve
{
key = 0 8000
key = 0.001 0.001
key = 1 0.000001
}

THis will ensure you can only use it above the atmpshpere

Edited by FreeThinker
Link to comment
Share on other sites

Yeah, it would make it pretty much impossible to use anywhere there's an atmosphere. NSWR is meant to have the TWR of a 1st stage booster while having the Isp of a nuclear engine. Making it unable to be used in any atmosphere would baffle people who would put this engine as a landing engine.

Except maybe on Tylo. That is one heck of a piece of rock. This will probably be its future role.:D

Also, I'm planning the resource system to be balanced around Karbonite/Karborundrum and Near Future stuff, so being able to share resources with them is an added advantage. While EnrichedUranium indeed cannot be moved around, UraniumNitride isn't used much by the mods I plan to balance against. I'd have to, for example, create a new converter (or maybe an MM config) to convert EnrichedUranium into UraniumNitride.

BTW, changed 'model.mu' to 'model'. Still failed to load, error logs state 'cannot clone model'. It's in my repo if you want to fiddle with it.

Edited by shynung
Link to comment
Share on other sites

But it will mean that you will not be able to use it in places with an atmosphere where minor contamination does not matter, places like duna and eve.

An engine which can operate in an atmosphere needs an narrow neck, which is going to be a major problem with this engine due to extrme heat, for this reason alone, it should only be allowed to operate in vacuum

- - - Updated - - -

Except maybe on Tylo. That is one heck of a piece of rock. This will probably be its future role.:D

Yes, atmpsphere less moon and planets would be ideal, both for landing and take off.

- - - Updated - - -

While EnrichedUranium indeed cannot be moved around,

Well EnrichedUranium could be used as a fuel outside the engine if you appply the replace by intermediate resource trick. Simply put, your NSWController would collect Water and EnrichedUranium anywhere on the vessel and convert it to special temperary NuclearSaltWwater resource located on the engine which can then be used as a propellant by the engine. I use a similar trick to convert TAC Water into KSPI LqdWater for KSPI Thermal noozles which can use any propellant. This trick also prevents accidental life support water from beeing used for propulsion. A concern you should think about as well. You don't want to kill your players Kerbals by spending all water on a vessel, now do you? This also one of the main reason to create a specialed NuclearSaltWater resource, it prevent mixing with drinkable water to keep the Crew alive.

Edited by FreeThinker
Link to comment
Share on other sites

Well EnrichedUranium could be used as a fuel outside the engine if you appply the replace by intermediate resource trick. Simply put, your controller would collect Water and EnrichedUranium anywhere on the vessel and convert it to special temperary NuclearSaltWwater resource located on the engine which can then be used as a propellant by the engine. I use a similar trick to convert TAC Water into KSPI LqdWater inside KSPI Thermal noozles. This trick also prevents accidental life support water from beeing used for propulsion. A concern you should think about as well. You don't want to kill your players Kerbals by spending all water on a vessel, now do you?

Interesting. That would be a useful trick.

If only I understand how to actually do that. I might have to study KSPI for a while.

Also, I'm holding off on making the thing unusable in atmosphere. I put a comment near the atmo keys, just in case I change my mind later.

Which I probably will.

Edited by shynung
Link to comment
Share on other sites

Actually, yes, I intended it to be slightly overpowered. With a little twist: a single engine generates so much heat, even a quadruplet of large deployable radiators can barely keep it from exploding. So heat management, not cost or performance, is going to be the limitation.

You are correct, though, on the exhaust gases being radioactive, and the nuclear radiation generated by this thing thrusting. However, I plan to put this one on hold right now, until I learned some coding to prevent this thing firing at certain conditions - having another ship nearby not already docked in, for instance.

Despite that, I think we can just have this thing firing it atmosphere; the Kerbal people seem to have no problem firing off Porkjet's nuclear lightbulb engine right on the pad, so why not this one?

Actually, one of the blessings of the real NSWR is that its exhaust carries away much of its heat, acting as regenerative cooling. A few medium-sized radiators ought to do the trick for a real NSWR.

Link to comment
Share on other sites

Hmm, I've not seen a solution on here yet and I can't get at Github from here, but, if you want to reference the LV-N model from another directory, you'll need to use a MODEL node

So replace this:


mesh = Squad/Parts/Engine/liquidEngineLV-N/model.mu

with this:

 
MODEL
{
model = Squad/Parts/Engine/liquidEngineLV-N/model
scale = 1, 1, 1
}

Link to comment
Share on other sites

Hmm, I've not seen a solution on here yet and I can't get at Github from here, but, if you want to reference the LV-N model from another directory, you'll need to use a MODEL node

So replace this:


mesh = Squad/Parts/Engine/liquidEngineLV-N/model.mu

with this:

 
MODEL
{
model = Squad/Parts/Engine/liquidEngineLV-N/model
scale = 1, 1, 1
}

Thanks! That worked like a charm.

On another note, I think making a new fuel resource (NuclearSaltWater) might be somewhat more realistic. Atomic Rocket quote:

The fuel tanks are a bundle of pipes coated with a layer of boron carbide neutron damper. The damper prevents a chain reaction.

So what I'd be looking for now is an MM config to make the ISRU converter mix EnrichedUranium (or maybe Uraninite) with Water to make NuclearSaltWater, and an IFS config to make tanks carry this resource.

Also, my water-nuclearFuel ratio might be off-base. Advice in balancing is much appreciated.

Actually, one of the blessings of the real NSWR is that its exhaust carries away much of its heat, acting as regenerative cooling. A few medium-sized radiators ought to do the trick for a real NSWR.

Hmm. That may be right.

Looks like I'll be studying Zubrin's paper tonight.

Edited by shynung
Link to comment
Share on other sites

I would go with the Atomic Rocket advice on Uranium to Water Ratio. A bigger problem will be to determin what the correct DryMass to Fuel Mass ratio should be and how much space it requires. Notice I face a similar problem for the storage of UraniumNitride. If you would simply put them in a big container, they would go critical in a matter of seconds. Therefore it has to be stored in special containers which cause them to contain much less Fuel than their volume would suggest. A an indication, UraniumNitride require 10 times as much volume as could be stored in water. For NuclearSaltWater I would go for 50%/50% (so a 1000L tank would only contain 500 L of NuclearSaltWater and 500 for boron carbide plumbing )

Another advice I would give is to use square tanks, as this would be a logical form if you would create a " bundle of pipes coated with a layer of boron carbide"

Edited by FreeThinker
Link to comment
Share on other sites

Here's an ISRU file to start with although the input ratios may need to be tweaked a bit. Right now it's based off the MKS Uranite/Enriched Uranium conversion rate and adding water into the mix.

//ISRU NSWR Converter

@PART[iSRU]

{

MODULE

{

name = ModuleResourceConverter

ConverterName = NuclearSaltWater

StartActionName = Start Nuclear Saltwater

StopActionName = Stop Nuclear Saltwater

AutoShutdown = false

GeneratesHeat = false

UseSpecialistBonus = true

SpecialistEfficiencyFactor = 0.2

SpecialistBonusBase = 0.05

Specialty = Engineer //or scientist to make it a bit tougher

EfficiencyBonus = 1

INPUT_RESOURCE

{

ResourceName = Water

Ratio = 0.99915 //Change according to balance

FlowMode = STAGE_PRIORITY_FLOW

}

INPUT_RESOURCE

{

ResourceName = Uranite

Ratio = 0.00085 //Numbers based off MKS Enriched Uranium conversion rate

}

OUTPUT_RESOURCE

{

ResourceName = NuclearSaltWater

Ratio = 1

DumpExcess = false

}

}

}

Link to comment
Share on other sites

I would go with the Atomic Rocket advice on Uranium to Water Ratio. A bigger problem will be to determin what the correct DryMass to Fuel Mass ratio should be and how much space it requires. Notice I face a similar problem for the storage of UraniumNitride. If you would simply put them in a big container, they would go critical in a matter of seconds. Therefore it has to be stored in special containers which cause them to contain much less Fuel than their volume would suggest. A an indication, UraniumNitride require 10 times as much volume as could be stored in water. For NuclearSaltWater I would go for 50%/50% (so a 1000L tank would only contain 500 L of NuclearSaltWater and 500 for boron carbide plumbing )

Another advice I would give is to use square tanks, as this would be a logical form if you would create a " bundle of pipes coated with a layer of boron carbide"

Agreed. I think a 50% reduction in effective tank volume would be a good approximation to the boron carbide plumbing.

Square tanks? Maybe if I somehow get to make my own parts.:)

Here's an ISRU file to start with although the input ratios may need to be tweaked a bit. Right now it's based off the MKS Uranite/Enriched Uranium conversion rate and adding water into the mix.

//ISRU NSWR Converter

@PART[iSRU]

{

MODULE

{

name = ModuleResourceConverter

ConverterName = NuclearSaltWater

StartActionName = Start Nuclear Saltwater

StopActionName = Stop Nuclear Saltwater

AutoShutdown = false

GeneratesHeat = false

UseSpecialistBonus = true

SpecialistEfficiencyFactor = 0.2

SpecialistBonusBase = 0.05

Specialty = Engineer //or scientist to make it a bit tougher

EfficiencyBonus = 1

INPUT_RESOURCE

{

ResourceName = Water

Ratio = 0.99915 //Change according to balance

FlowMode = STAGE_PRIORITY_FLOW

}

INPUT_RESOURCE

{

ResourceName = Uranite

Ratio = 0.00085 //Numbers based off MKS Enriched Uranium conversion rate

}

OUTPUT_RESOURCE

{

ResourceName = NuclearSaltWater

Ratio = 1

DumpExcess = false

}

}

}

Thanks! I'll be sure to add that up.

Edited by shynung
Link to comment
Share on other sites

Square tanks? Maybe if I somehow get to make my own parts.:)

Notice, the standard RCS tank, could serve as a not so bad Plumbed tank as well:

FL_R1.PNG

I always wondered what the designer of this tank had in mind when created the pipes look, perhaps boron carbide pipes ;)

- - - Updated - - -

Agreed. I think a 50% reduction in effective tank volume would be a good approximation to the boron carbide plumbing.

A nice bonus of these specialised tanks is that they will help create balanced gameplay for the saltwaterreactor engine, as the vessel will not be light an nimble, and require additional rcs and reaction wheels to control. This also justifies giving them the true power they posses.

Another thing I think you should consider is to increase the minumum size. One fact of nuclear fysics is that you need a minimum amount of fissile material to make uranium go critical. This effectively means, you cannot create small atomic weapons or small nuclear engines. You need a minimum amount of uranium to be effective. For Salt Water Reactor, due to the low density of uranium this should be several magnitudes larger than 1.25m reactor. In realsity this would translate to engines with a diameter of at least 10m . For gameplay reasons, I would shrink this to a 3.75m engine. Your not going to build NSWE to send probes, it's for serious manned missions.

A realistic 3.75m model would have a mass of 11t, generate 4300 kN thrust with an ISP of 6728s. Eventhough this seems overpowered, if you couple this with its atmospheric limitations, the heavy specialised tanks and the high cost of the uranium, it becomes well rounded part.

Edited by FreeThinker
Link to comment
Share on other sites

Hmm, but that 2.5m RCS tank is too short. I don't know how to lengthen it. Right now I'm using Jumbo-64 tank models, but I have a problem:

PbQTPk9.png

The scaling was suboptimal; it was supposed to be the same size as the regular Jumbo-64 right above it. The NSWR is stuck on the bottom.

Tank config:

PART
{
name = NuclearSaltWaterTank
module = Part
author = shynung
MODEL
{
model = Squad/Parts/FuelTank/fuelTankJumbo-64/model
scale = 1, 1, 1
}
node_stack_top = 0.0, 3.75, 0.0, 0.0, 1.0, 0.0, 2
node_stack_bottom = 0.0, -3.75, 0.0, 0.0, -1.0, 0.0, 2
node_attach = 1.25, 0.0, 0.0, 1.0, 0.0, 0.0, 1
TechRequired = advFuelSystems
entryCost = 24200
cost = 5750
category = FuelTank
subcategory = 0
title = Nuclear Salt Water Tank
manufacturer = ShyTech Engineering
description = This fuel tank is actually a bundle of boron-carbide pipes, designed to store uranium-laced water while keeping it from going critical inside the tank.
attachRules = 1,1,1,1,0
mass = 4
dragModelType = default
maximum_drag = 0.2
minimum_drag = 0.3
angularDrag = 2
crashTolerance = 6
breakingForce = 200
breakingTorque = 200
maxTemp = 2000 // = 2900
bulkheadProfiles = size2, srf
RESOURCE
{
name = NuclearSaltWater
amount = 16000
maxAmount = 16000
}
}

I have the feeling the tank capacity is way off. I mean, 25 km/sec from a single tank?(the regular Jumbo-64 above is full.) I must have made a mistake somewhere.

Hmm. I like your idea of the engine specs. That might actually work.

Edited by shynung
Link to comment
Share on other sites

You'll need to add


rescaleFactor = 1

If you don't specify this line, it defaults to 1.25, meaning your whole model gets sized up 25%.

With regard to the massive dV value, keep in mind that right now the vast, vast majority of your vessels mass is fuel. As you add more payload mass, that value will drop. By how much, I couldn't say.

Link to comment
Share on other sites

You'll need to add


rescaleFactor = 1

If you don't specify this line, it defaults to 1.25, meaning your whole model gets sized up 25%.

With regard to the massive dV value, keep in mind that right now the vast, vast majority of your vessels mass is fuel. As you add more payload mass, that value will drop. By how much, I couldn't say.

Thanks.

Actually, the fuel tanks are supposed to have much less fuel than their standard brethren. 50% of internal volume is abstracted to be taken up by boron carbide neutron dampers.

Link to comment
Share on other sites

Thanks.

Actually, the fuel tanks are supposed to have much less fuel than their standard brethren. 50% of internal volume is abstracted to be taken up by boron carbide neutron dampers.

So, assuming the same density, that tank should have 3200 fuel. It has 16,000.

Link to comment
Share on other sites

Yep. I certainly derped on that one. Though, 3200 fuel was assuming the fuel has the same density as regular LiquidFuel; the NuclearSaltWater fuel have only 1/5 of the density.

Also, I'm planning to rescale everything to 3.75m. Specs on the OP. Need rebalancing on fuel tank capacity; right now, the tank is a Jumbo-64 upscaled by 150%.

Edited by shynung
Link to comment
Share on other sites

Nah, just messing with you.:D Thanks for the help, though, really appreciate it.

Nuclear reactions have a minimal limit in the form of critical mass. Get lower than this, and no nuclear reaction. So, I assumed that everything has to be big, and upscale stuff accordingly.

Not sure if it was too big, though. If you have any more suggestions, I'm all ears.

Edited by shynung
Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

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