[ReactorCraft] ReC Mechanics Thread

RavynousHunter

New Member
Jul 29, 2019
2,784
-3
1
NOTE: I respectfully ask any and all posters to this thread to NOT turn this into a "recommended builds" thread. The aim of this thread is to discuss and discern the mechanics behind ReactorCraft, NOT to give people pre-made designs from which to build.

FURTHER NOTE: I am NOT Reika nor am I posting this in any official capacity with relation to his mods. Anything I post here is not to be construed as coming from The Man Himself, merely what I have, personally, gathered and discovered during my work with ReactorCraft.

ReactorCraft is a powerful mod, one which lends itself well to a certain...creative spirit that is, at times, lacking in other nuclear-based mods out there. The mechanics are, however, somewhat murky and poorly-understood by many, myself included. Herein, I wish to discuss what I, personally, have found out about the mod during my time spent tinkering with it.

Kinds of Reactors
As of this writing, there are five kinds of reactors in ReactorCraft:
  1. The pebble bed reactor, also known as the High-Temperature Gas Reactor (HTGR). Uses uranium-doped graphite fuel pellets to heat carbon dioxide gas, which is fed into heat exchangers to create steam to run turbines.
  2. The standard fission reactor. Uses either enriched uranium (U-235) fuel pellets or plutonium fuel to heat water/ammonia boilers directly by bombarding them with neutrons to produce heat. Generates more power than an HTGR, but also has greater risks including meltdown, explosion, as well as requiring disposal of radioactive waste products to keep the reactor running efficiently.
  3. The Liquid Metal Fast Breeder Reactor (LMFBR). Uses special breeder fuel pellets produced from a mixture of standard U-235 fuel and depleted uranium (U-238) fuel pellets to produce plutonium fuel pellets for use in a standard fission reactor. Heats molten sodium which must be fed into one or more heat exchangers to generate usable steam. Produces more neutrons than standard fission reactors, but also has a greater risk (due to increased temperature) of failure. Waste must be handled like normal and plutonium pellets require special handling to avoid exposing yourself to radiation.
  4. The Liquid Fluoride Thorium Reactor (LFTR). Uses molten thorium fuel salts to heat boilers. Produces less waste, on average, than a regular fission reactor, but requires both heat and neutron flux (usually in the form of a regular fission core) to get the reaction started. The upside to this is that it can both directly heat boilers, and the hot LiFBe fuel can be put thru heat exchangers to not only complete the thermodynamic cycle of the fuel itself, increasing its longevity, but also generating extra power. However, the setup required to run this reactor is more involved than the others and can be difficult to get working. The LFTR also has the bonus of having reactivity being (generally speaking) inversely proportional to temperature, making it very difficult to melt down and, even when a meltdown state is reached, all that is triggered is a fuel dump, which is far less destructive and dangerous than a traditional meltdown.
  5. The Tokamak fusion reactor. Using deuterium-tritium plasma contained by both toroid magnets and a central poloidal magnet, the tokamak releases neutrons that can be captured by neutron absorbers, which creates heat that can be transferred, by contact, to surrounding boilers. Properly fed and maintained, this reactor can produce a titanic amount of power.
Neutrons
Neutrons are the main carriers of heat for all but the HTG reactor. In general, the more neutrons you make, the more heat you get, for better or for worse. There are six kinds of neutrons in ReactorCraft:
  1. Fission. The kind you're most likely to encounter, fission neutrons come, as one might guess, from standard fission reactors. These kinds of neutrons can trigger fission in anything they hit, dealing damage to living entities and irradiating fluids they touch. These kinds of neutrons can be absorbed by the LFTR to initiate fission in the thorium fuel salts.
  2. Breeder. The kind emitted by the LMFBR, as the name suggests. These have an 80% chance to be absorbed by regular boilers, and a 90% chance to be absorbed by sodium boilers. They can also trigger fission in anything they hit, much like the above kind. These are the only kinds of neutrons that can trigger uranium-to-plutonimum conversion.
  3. Waste. Neutrons generated by nuclear waste. On their own, they're largely useless, but have a 40% chance to trigger fission in things they touch, which can be useful, in certain instances. Like the others, these neutrons are damaging to living organisms.
  4. Decay. Caused by the radioactive decay of reactor fuel (either U-235 or Pu-239). Damaging, but can trigger fission. They also appear to have a 90% chance to be absorbed by sodium boilers.
  5. Thorium. Created by the LFTR, these are fission-type neutrons that can irradiate liquids, deal damage, and trigger fission in things they hit. These neutrons have an 80% chance to be absorbed by a boiler.
  6. Fusion. These kinds of neutrons, made by the tokamak, are somewhat special. As the name implies, they are not fission-type neutrons and, thus, cannot trigger fission. They, like other neutrons, are damaging and capable of irradiating liquids, but are not stopped by water.

The Steam Boiler
The humble steam boiler is the basis for all power generation in ReactorCraft. Its method of action is quite simple: heat a fluid inside to the point it becomes a gas, pump said gas into a turbine to make it turn and, thus, generate usable power. The boiler can accept two kinds of working fluid: plain water and ammonia. Water is the most plentiful and easy to come by of the two, it is also the safest to work with. Ammonia requires more effort to collect, requiring that you process ammonium nitrate and quicklime (the latter of which can be made renewable with chicken eggs and a blast furnace) to make the fluid. It also has the danger of detonating at a far lower temperature than water. However, with these risks and the requirement that you recollect the spent steam and process it back into usable fluid (at a slight loss) come with the boon of generating more power (200% for traditional turbines, or 150% for high-pressure turbines) per unit of steam than water.

  • To boil either water or ammonia, the boiler must not only be working at 100 Celsius, but its temperature must be at least 50 Celsius above the ambient temperature.
  • Ammonia detonation occurs at 650 Celsius; this means you've got to run a very tight ship with your reactor to keep it from blowing up. Ammonia detonations also have a nasty habit of blasting your steam lines, as well, so be careful.
  • Water boilers will blow up, as well, when they overheat. The maximum temperature for a boiler appears to be 2,000 Celsius. On the upside, all you'll lose is your boilers and some of your reactor, should that happen, as only ammonia detonations cascade along steam lines.
  • 200mb of working fluid, once boiled, will produce 1 m^3 of usable steam.
Also, a handy note: with WAILA installed, or with an angular transducer, the steam boiler can be a useful tool for determining the ambient temperature of a given area at a given elevation and time of day. Simply place it down and look at either readout to see what the ambient temperature is around you.

More to come as I find it! Feel free to add anything you think I might've missed and/or gotten buggered up. Again, all this is just my own, personal interpretation of both my experiences and what I've gleaned from looking into ReC's guts. Also, once more, I ask that this not become a "recommended builds" thread. I want people to use this as a springboard from which they can come up with their own designs, not just ape what they see someone else post.

[EDIT 12 August 2016 1430EDT; Some corrections, courtesy of Reika. I derped and misinterpreted some of what I was reading.]
 
Last edited:

Reika

RotaryCraft Dev
FTB Mod Dev
Sep 3, 2013
5,079
5,331
550
Toronto, Canada
sites.google.com
Some corrections and clarifications:

  • One of the main appeals of the thorium reactor not stated here is its strong negative void coefficient, i.e. its reactivity and neutron emission drops sharply with temperature over a certain value (this same curve is what makes it need to be kickstarted by heat from another core type). This ultimately makes a meltdown nearly impossible.
  • Another important note for the thorium reactor is that even if you do manage to overheat it enough, all you will accomplish is a fuel dump, which spills the fluid and some radiation, but far less than a traditional meltdown, and without blowing apart the surrounding structure on top of it.
  • A breeder reactor, by contrast, has a positive void coefficient. The hotter it gets, the faster it reacts. This is exactly the same sort of mechanic as a chemical explosion, and the end result is often the same.
  • Boilers do not capture fusion neutrons.
  • Decay neutrons are not from waste, but from natural decay of U235 and Pu239. They are the "random" neutrons emitted by fission and breeder cores.
  • Fusion neutrons are the only type not affected by water.
  • Ammonia generates either 200% or 150% power, depending on whether you are using the LP or HP turbines respectively.

Also, not all fluids and/or reactor types can be used with boilers directly, which is where the heat exchanger comes in.


Also, I will say right now: I have no problem whatsoever with people posting the underlying mathematical formulae for ReactorCraft. For example, the reactivity of a thorium core, as a function of temperature, is as follows:

Code:
  private double getNeutronInteractionChance() {
     return ReikaMathLibrary.cosInterpolation(this.getMinTemperature(), this.getMaxTemperature(), temperature);
   }

   private double getNeutronChance() {
     return 25-20*Math.sqrt((temperature-this.getMinTemperature())/(double)(this.getMaxTemperature()-this.getMinTemperature()));
   }

  public static double cosInterpolation(double min, double max, double val) {
     if (!isValueInsideBoundsIncl(min, max, val))
       return 0;
     double size = (max-min)/2D;
     double mid = min+size;
     if (val == mid) {
       return 1;
     }
     else {
       return 0.5+0.5*Math.cos(Math.toRadians((val-mid)/size*180));
     }
   }
VR1IYHH.png
 
Last edited:

RavynousHunter

New Member
Jul 29, 2019
2,784
-3
1
Aah, I misread a few things, it would seem. I'll update the OP to reflect that. I got the decay of waste and the decay of fuel mixed up, lol.

[ETA]

Also, if I'm reading that correctly (assuming the horizontal axis is temperature), then the ideal operating temp for the LFTR hovers around the 800C range, yes?
 
Last edited:
  • Like
Reactions: RealKC

RavynousHunter

New Member
Jul 29, 2019
2,784
-3
1
Let's add some more info, shall we?

The Neutron Reflector
A near-critical part of any efficient fission reactor design, the neutron reflector does exactly what it says on the tin: reflects neutrons. Why's this important? Well, reflecting neutrons sends them back to where they came from, along the exact same path. This means that they can hit boilers and also fission-based fuel cores, triggering yet more fission, creating more heat and giving you more energy and also making your fuel go further. The downside is that, as I said before, more fission equals more heat, and if you get too hot, you'll either hit a fuel dump (with thorium) or straight up meltdown...or, if you're truly unlucky and using ammonia, create a large, maybe radioactive (if any waste is dumped during the cataclysmic explosion) crater where your pretty reactor used to be. Thus, you should use them with caution; I typically only run them one layer deep, to prevent such occurrences.

  • Chance of neutron reflection = 25% (rand.nextInt(4) == 0)
 
Last edited:

RavynousHunter

New Member
Jul 29, 2019
2,784
-3
1
Turbines
Turbines are how you get power out of your reactor. At their most basic, they use the energy of steam flowing over part of them to create rotational energy that can be captured and used for whatever purposes you may desire. In times (long) past, there was only one kind of turbine: the...well, turbine, which needs a steam grate beneath the small end to function. Now, however, there is also the more powerful (and more steam-and-resource-hungry) high-pressure turbine. Both of these turbines consume lubricant as they work and will not function without it! The stats are as follows

Regular Turbine
  1. Maximum number of stages: 5
  2. Lubricant consumption level: 20 (not exactly sure what this means, but best guess is either 20mB per tick or 20mB per second)
  3. Maximum output*: 32,768 Nm @ 65,536 rad/s (2,147,483,648 Watts) (NOTE: Double the wattage if you're using ammonia steam instead of water steam.)
  4. Can be damaged if collided with by either blocks or (most) entities. Damaged turbines will operate much less efficiently. Formula for damaged efficiency is: 1 / (damage + 1), if damage > 0. This means that a turbine that's been damaged once will generate half power, damage it again and it'll only generate a third, again will generate a quarter, and so on until the turbine becomes non-functional.
  5. Turbine efficiency is also dependent on the number of stages the turbine has: 1 stage = 2.5%, 2 stages = 10%, 3 stages = 25%, 4 stages = 50%, 5 stages = 100%.
  6. Steam can be collected from above the final (largest) stage of the turbine. When building housing for your turbine (which is highly recommended, I prefer some kind of glass), if you're concerned about recollecting steam (for example, if you're using ammonia), I suggest building a funnel-shape portion in the housing with only one escape route for the steam, making collection easier as, in my experience, steam can sometimes go to either side of the end of the turbine.
High-Pressure Turbine
  1. Maximum number of stages: 7
  2. Lubricant consumption level: 100
  3. Maximum output: 65,536 Nm @ 131,072 rad/s (8,589,934,592 Watts) (NOTE: Increase wattage by 50% if you're using ammonia.)
  4. Maximum stored steam: 3,250 m^3 (What this means, I'm not entirely sure, but it might be a good idea to have at least this amount of steam in your lines before connecting them to the turbine to help it run more smoothly.)
  5. Unlike the regular turbine, the big boy (as I call it) cannot be damaged simply by walking into it. HOWEVER, I must stress that you not break any part of the turbine while it is in operation. If you need to move it, cut off the steam supply and let it stop spinning first, otherwise, the turbine will explosively fail, sending its blocks flying everywhere.
  6. Efficiency depends on number of stages you give the turbine: 1 stage = 1.25%, 2 stages = 2.5%, 3 stages = 7.5%, 4 stages = 12.5%, 5 stages = 25%, 6 stages = 50%, 7 stages = 100%.
  7. Low-pressure fluid is, for lack of a better term, dripped from the bottom of the turbine at the large end. Placing either BuildCraft tanks or RotaryCraft reservoirs beneath it will capture this low-pressure fluid, allowing you to gather it and re-pressurize it for use. This actually makes reclaiming ammonia-based steam a bit easier, since the point of escape is well-defined.
  8. A blueprint (though somewhat inaccurate account of requisite steel/tungsten resources) can be found here, in case you don't want to go running to your manual every time you want to build one of these things.
  9. IMPORTANT NOTE: This turbine cannot be run off steam from an HTGR. Its not that an HTGR, or series of them, can't generate enough steam to operate one, its that this is specifically disabled by ReactorCraft as a point of balance.
Also of note is the turbine generator (blueprint here), which can turn the power from a turbine into either RF or EU. The ratio of Watts to RF is 520:1 (as in, 520 watts = 1 RF/t), meaning a normal turbine running at maximum capacity (with water) can generate on the order of 4,129,776 RF/t. Note that, to function, the generator needs to be placed right on the end of the turbine, with no blocks in between. They do not function when used in conjunction with turbine flywheels.

Lastly, there's the turbine flywheel. A multiblock structure that, like the turbine generator, is placed on the end of a turbine, typically a normal one. The purpose of the flywheel is to stabilize a turbines occasionally erratic output, which can be quite useful when converting that energy into ElectriCraft power for storage in batteries as a means by which one can reduce tick lag due to frequent energy net updates. The flywheel isn't useful with a high-pressure turbine since running it at capacity keeps the output almost totally stable.

* - This is the absolute maximum a normal turbine can achieve. Typical results vary in the mid-900MW range, or roughly 1.8 million RF/t.
 
Last edited:
  • Like
Reactions: RealKC
Z

Zimbul

Guest
I'm not sure your numbers for a regular turbine on water are accurate. As that is the only thing I'm able to run atm and they don't produce anywhere near what you stated. I'm pretty sure I'm running them at max because I can run 3 of them simultaneously at this level. Running on water based steam, I'm seeing a max of ~950MW per turbine, with the turbine generator just over 1.8MRF. Your numbers might be accurate for ammonia, I haven't gotten to the point that I can test that out yet. Not sure yet if I can run more turbines off this reactor or not. I built a 4th and had some speed consistency issues, but I just turned my 4th one on again to test and the steam in the pipes seems to be staying around 1200 m^3 still.

One thing I'm trying to rap my head around with turbines still is how I can actually effectively make use of that power. Powering the rest of my base with RF off a turbine generator is easy enough. But powering rotarycraft machines is a lot more difficult. There doesn't seem to be the equivalent of an electric grid motor which I would think would make sense (you know every house hold power tool you own basically hehe). You have the induction generators and motors in electricraft, but these are a pain to use really as far as I can figure out. They seem to divide the power up among all the motors connected to a line, making them a pain to configure if your still building your system, every time you need to add another motor or add another turbine, you have to reconfigure the gearing on all the ones previously put in place. I suspect resistors may be the answer to this dilemma, but I haven't had a chance to play with them yet. I would use magnetostatic engines but I'm honestly surprised they are still in the game. Reika seems to hate them, I wonder why he hasn't completely removed them lol. They just aren't worth the effort of setting up a liquid nitrogen production to cool them just to make wiring easier to run and less laggy. Electricraft could really use with at least one basic on demand motor rather than only on supply shaft power.

Speaking of laggy, I really wish there were an option to disable all the animations in rotarycraft lol. I know the animations are only part of the problem though, part of it is all the block updates and such. I've got a pretty beefy computer but rotarycraft murders my performance. MC is already a pretty poor performer anyway, rotarycraft takes it from 50-60 fps to 20-25 when I'm in my rotarycraft "workshop". If I'm around the reactor and the turbines and have all 3 running it's more like 15 :( I'm hoping to upgrade the reactor and be able to move to a HP turbine soon, so there aren't so many of them, although I need at least 2 so that I can produce RF and shaft power for RC machines without getting involved with the overly expensive magnetostatics. Not likely to be able to make a reactor that big any time soon. I'm just barely getting a basic fission reactor to work reliably lol. Still to much unknown technical data for me to make a real informed design. I don't really feel like having to run a reactor in creative for a week just to see if it blows up or not. I play minecraft in sprints, if it takes me weeks of testing a build to be able to use it without blowing up the server, then yeah not likely to use it.

One bit of technical data I really would like to know is water to steam conversion rates. Is it more important about the pressure of the water (or ammonia), or the amount? Right now with my fission reactor I'm using 11 maxed out aqueous accumulators to provide the water. With 6 fuel cores and 11 steam boilers, the accumulators seem to keep up. The pressure will occasionally drop as low as 640, but have never seen it lower. Most of the time it averages around 730. I experimented some with a rotarycraft pump and with it have a 1 tick operation time, it definitely moves water faster than a maxed aqueous accumulator, but it does so at a lower pressure. It only maintains a max of around 640, where as the aqueous accumulator maintains around 860 if nothing is draining it. Perhaps with the faster water supply the pump will see less drop in pressure if used on a reactor? Of course even if it is better, using an array of those just means that much more lag around the rotarycraft area, since the pump actually removes a water source block causing water flow updates where as the accumulator just creates the water without removing the source blocks, much less laggy solution. Kind of sad when usage of a well designed mod is hampered by lag it creates :(

Ample water supply is one of my primary concerns in trying to move to a bigger reactor. I haven't even looked at molten sodium for a breeder yet... the narrow temperature range of those things worries me lol. If I'm understanding it right, it has to be at least 300c but explodes at 600c. I wouldn't want to build one of those at my base, and it's bad enough trying to transport rotary power around the base with the reactor at the base, if it's off in another dimension I can hang that up completely. Then I'd be forced to convert to RF and use the expensive mag engines. Either that or hoof it back and forth with batteries / coils.. not going to be doing that lol. Maybe there is another solution to getting the power across dimensions or large distances that I'm missing?

Another bit of technical data is figuring out how much steam I'm actually producing. The only way I can think of doing it is putting enough steam grates on a pipe to empty the line and see what it reads in the pipe before the first grate with an angular transducer. I haven't looked in the code yet, but I imagine the steam production rate is based on the temperature of the cores and such.
 
Last edited:

Reika

RotaryCraft Dev
FTB Mod Dev
Sep 3, 2013
5,079
5,331
550
Toronto, Canada
sites.google.com
More clarifications/corrections:

  • rand.nextInt(N) returns from zero to N-1 (this is why you can get an "N must be positive" crash), meaning .nextInt(4) is actually a 25% chance.
  • Though the LP turbine's max power on water is coded to 2GW, in practice, it averages around 950MW, as you cannot get enough steam in fast enough to increase it further. Multiple grates might be able to accomplish this, but that is unlikely.
  • The HP turbine has a substantially increased (~8x) steam draw and needs a large buffer of steam at all times to operate properly. This is to ensure that only the biggest reactors can run them.
  • The HP turbine's HTGR lockout is proportion based; a turbine can tell what the reactor type(s) it is receiving from, and in what proportion. Anything over 50%(?) HTGR is disallowed for the HP turbine.
  • Turbine lubricant consumption rate is also a function of mod difficulty (RC config).
  • It is more correct to say N watts = M RF/t. Power is energy over time. Otherwise it is like saying 10 m/s = 3 km or 2 miles, or a flow rate of 12 kg/s = 25 pounds.
  • The turbine flywheel is only useful for the LP turbine, and only if you are using ElectriCraft, as it was created specifically for the purpose of reducing wire network update lag.
  • It has been said before, but do not let steam accumulate or flow in excessive numbers. It is not likely to crash or corrupt your world, but it will wreck your performance and cause serious render errors.
  • Turbine generators and flywheels cannot be combined, but there is no reason to want to do so.
  • LP turbines can be damaged by all entities unless they are marked as "ethereal" (wisps, ball lightning) or are impossible to prevent spawning of (TF fireflies). Even small mobs like bats and birds will destroy them.


Speaking of laggy, I really wish there were an option to disable all the animations in rotarycraft lol.
Right at the very top!
https://sites.google.com/site/reikasminecraft/things-not-to-say
 
  • Like
Reactions: Wilron and RealKC
Z

Zimbul

Guest

Lol, nice in all my searching of reactorcraft on google, this is the first time I've seen that page.

But, I didn't say it was lagging the server, and I use the term laggy loosely. More correct would be to just say poor framerate. My computer != my server, so when I talk about my computers performance being effected, I'm not talking about server performance. The server performs just fine. Animations do effect frame rate on a the client side, which is why optifine has an option to disable them (not sure if optifine's animation disable works on rotarycrafts animations or not, they might be different types of animations, a render instead of an animation or something. I've never coded for Minecraft mods so don't know the technicalities of it), but I get other bugs with optifine making it unusable for me. And I did note that I know it's not purely animations effecting peformance. It is probably a small bit of overhead as you say on your page there, but it is still overhead. A lot of small numbers eventually make a big number.

I should also note, all steam blocks are being captured by condensers and stuffed into my me system for now. So I don't think excessive steam is a cause for any of my performance issues.
 

RavynousHunter

New Member
Jul 29, 2019
2,784
-3
1
Regarding the LP turbine output: I did state that the rating was the maximum output, not typical. In my experience, aye, they tend to rate in the 900MW range.
 

Reika

RotaryCraft Dev
FTB Mod Dev
Sep 3, 2013
5,079
5,331
550
Toronto, Canada
sites.google.com
But, I didn't say it was lagging the server, and I use the term laggy loosely. More correct would be to just say poor framerate. My computer != my server, so when I talk about my computers performance being effected, I'm not talking about server performance. The server performs just fine. Animations do effect frame rate on a the client side
Go back and actually read it.
 
  • Like
Reactions: Zandorum
Z

Zimbul

Guest
RavynousHunter said:
Regarding the LP turbine output: I did state that the rating was the maximum output, not typical. In my experience, aye, they tend to rate in the 900MW range.

Aye, you did say maximum, sorry I didn't realize you were pulling the maximum numbers from the code (at least I'm assuming that is where you got them since they don't seem to be obtainable under regular conditions in game). I'd suggest if you are intending for this post to be helpful to people seeking general information about the mod and don't know anything about it, you note the effective maximum as well. That way someone doesn't come in and read it and then ask why they can't get 4.1 mil rf/t out of their water steam powered turbine.


Go back and actually read it.

I'm starting to understand why you have a bad rep with some packs and minecraft communities. I started interacting with you giving you the benefit of doubt, I have not been offensive or rude to you in the least bit and have even complimented you, yet you still come back with brash answers. I really hope if you work as a developer as your primary job you don't treat your colleagues or any potential users you may interact with in the manner you do on the web for people who are simply trying to enjoy your mod in a game. If you were one of the developers that I'm in charge of, you wouldn't be for long treating people like that. I don't care if you are the best developer in the world, that is no reason to be brash to people who are being polite and civil themselves. I get that you get asked the same questions or have to cover the same topic multiple times, welcome to the world of IT. It's going to happen, and it's going to keep happening, there really is nothing that can be done to stop it. But no, you went through the effort to pick one specific thing that was posted as a tangent in a post, to respond to and didn't even bother to add anything constructive in regards to the actual topic of the post.

On the other hand if it's that you just can't stand to see something said about your mods that is in the slightest bit negative, well there isn't much I can say about that. Maybe you are still young and haven't learned to take critique without getting defensive yet, or maybe you are old and you never did, I don't know but that is a lesson I learned long ago in my early days of development. There are always going to be negative things said about your work no matter how good it is overall, you just have to let those things go and remember all the positive things that people have said instead. If however you see the same negative thing being said over and over, it might be a clue to look into a solution for it. Even if the negative thing is wrong in it's subject, the root cause of the statement is still there and could be worth looking at. In other words, if people have complained about the animations dropping their frame rates enough that you have it at the top of your don't say this list, even if the animations aren't the cause of the reduced frame rates, perhaps you should investigate what is and address it? Maybe it can't be addressed because it's a limitation of minecraft, if so that's fine, but tell people that rather than just being brash and dismissing their problem.

Alas, I don't have time to sit here and fully teach another developer descent etiquette. As I said before your code is fairly clean and well structured. I haven't read every line of it, but from what I have looked at I think you are a good developer, you just seem to have poor people skills.
 

Scottly318

New Member
Jul 29, 2019
797
0
0
I don't see reika as being out of line. What he posted in his things not to say are the exact things you're saying. I will admit to not being a developer. However had you read that page throughly you would have realized he put thought into his argument. He was not rude imo because clearly you only skimmed it. Consider that even single player minecraft is done as a server (note that every time you quit a straight single player game it says "disconnecting from server"). So I feel he's covered your points
 
Z

Zimbul

Guest
I don't see reika as being out of line. What he posted in his things not to say are the exact things you're saying. I will admit to not being a developer. However had you read that page throughly you would have realized he put thought into his argument. He was not rude imo because clearly you only skimmed it. Consider that even single player minecraft is done as a server (note that every time you quit a straight single player game it says "disconnecting from server"). So I feel he's covered your points

Anytime a developer basically says RTFM (read the f*ing manual), that is poor developer etiquette and considered rude. It really extends to all of IT not just developers. As much as I agree with the sentiment in many cases, I'll never tell a user or another colleague that, and I'd never allow a developer under me to do it either, because of it's rudeness. With the exception that the person is being rude or obstinate after continued attempts of civility, then I might allow a RTFM type comment to fly.

Point in fact I did read it, not just skim it:

  1. Animations and other rendering effects can never lag a server, as they exist purely on the clientside of the game, and thus cannot have any effect on the server's tick rate. Arguing otherwise is like saying that what texturepack your client uses affects the memory usage of the server.
  2. For a given render, (properly coded) animation is no more intensive than a static model. In more technical terms, the OpenGL transforms or texture UV selection used to create animations are run regardless of the animation state; for example, on a RotaryCraft machine, the animated parts of the model are always being rotated, just by zero degrees if the machine is not animating. Additionally, such code is extremely fast, and accounts for a minimal amount of overhead. As a result, shutting down the animations would have a negligible performance impact.

The first party clearly talks about a server vs client, and I merely pointed out that I wasn't talking about lag on my server. It's a legitimate point, since his page specifically talks about client vs server as well. And as for the second part, it specifically says that it accounts for minimal overhead and shutting down animations would have a "negligible" performance impact, to which my reply was "A lot of small numbers eventually make a big number." And that stands true, it's a systemic problem with many developers these days. Standard desktop computers have gotten so much memory and hard drive space that a lot of developers have gotten lazy about letting small memory leaks or less optimized methods continue to be used because their effects are "negligible". When enough of those negligible effects accumulate, you get something that actually has an impact. I've been a developer for a very long time, so I can be a little anal at times about efficiency hehe. I was coding in the days when we actually had to worry about trivial things these days like the length of your variable names just to cut down on program size :)
 

RavynousHunter

New Member
Jul 29, 2019
2,784
-3
1
@Zimbul, aye I may note that in a few minutes when I'm done with dinner, mostly posting this to answer the animation question.

If I'm interpreting Reika's post correctly, any choke point that might be coming from Reika's mods, esp. Rotary/ReactorCraft, are on the part of either Minecraft's rendering engine or OpenGL, two things over which Reika has little, if any, control. Any optimizations he'd make, on his mods' end, would receive negligible gains for the amount of effort he'd have to put in. Unless you had a chunk from bedrock to build height filled with turbines, you'd likely only notice 1 or 2 FPS, at the very most. Trust me, homie, a lot has changed since the old days and a lot of the rendering code is well out of a modder's control.

TL;DR: Don't blame Reika, blame Mojang and/or OpenGL.
 

RavynousHunter

New Member
Jul 29, 2019
2,784
-3
1
The High-Temperature Gas Reactor (HTGR)
The HTGR (aka: the pebble-bed reactor) uses uranium-doped graphite fuel pellets in close proximity to one another to heat a gas, in this case carbon dioxide (CO2), which is used to heat water in a heat exchanger to generate steam and, thus, operate a turbine. It is, in my opinion, a fine starting point for entering into the world of ReactorCraft: low-risk, but decent reward and fair infrastructure requirement to keep the reactor operating at peak efficiency. As the reactor uses an inert gas (CO2) as its heat conductor, it is safe from explosion hazard: any temperature high enough to detonate the CO2 would see the cores melting long, long before that point is reached. Also, when overheated, the cores simply turn into lava. While this can be a pain as the cores do take some investment to make, to say nothing of the fuel, it is not nearly as bad as what can happen at the next stage, fission reactors, with the risk of radioactive contamination from both expelled fuel/waste and corium, steam boiler explosions, and so on. They also take less building for the reactor itself, which is good for the space-conscious.

The reactor uses TRISO fuel pellets to create heat. These pellets are made in the blast furnace using 4 graphite (itself made by putting coal dust into a friction-heated furnace) and uranium dust; you can automate this process by using RotaryCraft's crafting patterns, as there's a toggle in the top-left of their interface to set it up for blast furnace recipes. Simply input the recipe (you'll need one graphite and one uranium dust, first) and pop the pattern into the slot between the 3x3 grid and the outputs in the blast furnace's GUI. Running any operating part of this process at one-tick operational levels (for grinders, etc) is excessive and not really necessary unless you plan to make (and, thus, fuel) a lot of reactors. That said, if you have the production to spare, it can't hurt to run them as quickly as you can in case you end up expanding later on.

The HTGR does not produce neutron flux, only heat. This is another point of safety, as neutron flux can irradiate blocks and fluids, making the surrounding areas hazardous without protection.

The HTGR uses carbon dioxide as its heat transfer medium. As this is a gas, you must either use a non-RoC method of fluid storage (I, personally, use a bedrockium drum from Extra Utilities) or you must cover your reservoirs with glass panels to prevent the gas from escaping. The HTGR uses a complete thermodynamic cycle with no (apparent) loss of operating gas during the heat exchanging process. This means that once you build a sufficient supply of CO2 to fill your carbon dioxide heat exchangers, with some left in the tank as a precaution, you don't need to produce any more CO2 unless you plan on, again, building more reactors. To get hot carbon dioxide, your reactor needs to be running at a minimum temperature of 800 Celsius. Any lower, and you won't get any hot CO2. CO2 is acquired from gas collectors placed on top of furnaces, these furnaces need to be using either wood or coal as fuel to process items, a process which produces 10mB of CO2 per cycle (how long this cycle takes is currently unknown). You need to use gas ducts to transfer CO2 (as well as uranium hexafluoride, which I'll cover later in another post) if you decide to go with ReC's native fluid transport system, however, any fluid pipe from any mod (my preference is for the ultimate mechanical pipes from Mekanism) will also work, so use whichever solution you deem best or most appropriate.

Hot CO2 needs to be fed into the top of one or more heat exchangers to generate steam that you can use to run your turbine. Regular (cold) CO2 comes out one of the horizontal sides. Heat exchanger mechanics will be covered later, but suffice to say that it plays a part in two other reactor varieties (LMFBR and the LFTR), in addition to being critical for the duty cycle of the HTGR.

The HTGR seems to have a reactivity curve depending on the size of the reactor. More pebble-bed reactor cores will not necessarily equal better results, as too many will reduce the fission chance of the structure, just the same with too few. It seems that the fission chance tops out at between 24 and 35 pebble-bed reactor core blocks, inclusive. In short, you're better served by making multiple smaller, discrete HTGRs than trying to build one monolothic HTGR.
 

Reika

RotaryCraft Dev
FTB Mod Dev
Sep 3, 2013
5,079
5,331
550
Toronto, Canada
sites.google.com
And as for the second part, it specifically says that it accounts for minimal overhead and shutting down animations would have a "negligible" performance impact, to which my reply was "A lot of small numbers eventually make a big number." And that stands true, it's a systemic problem with many developers these days. Standard desktop computers have gotten so much memory and hard drive space that a lot of developers have gotten lazy about letting small memory leaks or less optimized methods continue to be used because their effects are "negligible". When enough of those negligible effects accumulate, you get something that actually has an impact.
Go on stacking hairs trying to reach the sun. I will not be waiting for you.
 
Z

Zimbul

Guest
So I upgraded my reactor to ammonia last night. Got tired of the short supply of ammonium from my nether quarry so I set up a rftools dimension with a single flat biome made entirely of ammonium :p Now I have over 5 million of it lol. Got to find a calcite dimlet so that I can make a dimension that has both, but I've got like 50k buckets of ammonia stored now so I'm probably ok.

I will say Pressurizers work really fast. I was worried about how many I'd need to keep up, but two pressurizers running at 1 Mrads each are way faster than the steam my reactor puts out now. I'd wager one pressurizer is enough for most small reactor set ups.

Do you think it's a fair testing method that I'm determining my entire steam production by putting a steam grate at the end of my steam line with a condenser directly above it to immediately condense it, then using the transducer to measure the steam in the pipe there? If so on ammonia I'm producing around 100 - 110 m^3 of steam where as with water I was only producing around 10 - 13, in the same reactor. All I did was switch to ammonia. It did in fact bump output up, now each turbine generator is 3.6 to 3.8 mil rf/t. Is there anything in MC that I can build to actually use a significant portion of this RF lol? I upgraded quarries with fortune iii and such since I have the excess power now. A couple of 30k rf/t rf tools dimensions. I think my entire base is using maybe 1 to 1.5 million rf/t now. And that is really only because I caved and set up some liquid nitrogen production to run magnetostatic engines. It is just much easier to handle the energy transport and usage using those. Can pump the RF through tesseracts to other dimensions, or through the ME network even. Can't do that with rotary power or electrical power from electricraft (at least not in a way that I could get to work). Also the electrical system in electricraft is still just weird to me. The RF battery is really nice though. A nice backup to power my base when I've got the reactor down doing work to it lol :)

If I'm reading my steam output correctly, I think I might have enough to run a HP turbine now, but possibly not a 7x one. It depends on if it's steam requirement goes up per segment, or if it has a base steam requirement is for the entire turbine and additional segments just consume resources and don't increase steam requirements. I'll have to dig in the code again to find a concrete answer on that, but I've got enough resources to waste testing it in game now at least lol. Looked last night and was up to like 800k iron ore.. if I process that I think I've got enough iron to make steel and tungsten to make a few HP turbines :p
 

RavynousHunter

New Member
Jul 29, 2019
2,784
-3
1
The Heat Exchanger
Part of the thermodynamic cycle of several reactors (HTGR, LFTR, and LMFBR), the heat exchanger is something you're going to want to learn to work with before getting into those three types of reactors. In essence, the heat exchanger takes in a hot fluid (hot CO2, molten sodium, or LiFBe fuel) and, using a relatively small amount of power (that of a single steam engine), forces it through the machine, allowing it to transfer the heat into surrounding boiler blocks. In practice, you'll want a semi-circle of boilers surrounding all but one of your exchangers' horizontal sides. Doing this, it heats (and hopefully boils) the working fluid inside the boilers to produce steam and create power as well as completing the thermodynamic cycle of the reactor's fluid/gas.

  • Requires the power of a single steam engine to operate, which is fed in thru the bottom. Putting any extra power (be it torque, speed, or both) appears to have zero effect on how quickly heat is transferred.
  • Input hot reactor fluid/gas into the top of the machine, and pull cold fluid/gas out of any horizontal side (this is why you want to keep at least one of those sides open). Output is done automatically, meaning you don't need servos or anything if you're not using RoC piping.
  • Appears to exchange the heat of 100mB of fluid/gas every cycle; this means that, to handle a decent-sized reactor, you'll need multiple exchangers working in tandem. In my personal experience, my HTGR (running w/ 24 pebble-bed reactor cores) operates just fine with 8 heat exchangers working thru the hot CO2.
  • Another helpful tip: if you're running multiple exchangers for a single reactor, try to arrange them in such a way so that the boilers come into contact with one another. In my experience, this helps heat transfer and may be useful in not only getting more steam, but ensuring that my entire setup doesn't blow up or melt from excessive temperatures.
 
  • Like
Reactions: RealKC and Reika

RavynousHunter

New Member
Jul 29, 2019
2,784
-3
1
The Uranium Enrichment Process
Before breaking into anything beyond a simple HTGR, you'll need to enrich uranium. This means that you can't just shove raw uranium ingots into your fission fuel cores: they've only got a tiny portion of the naturally fissile U-235 isotope in them, so just stacking them up in a fuel core would be useless. There are two steps to the enrichment process: dissolving uranium ingots (I believe anything Ore-Dicted as ingotUranium will work) in a high-strength acid, and then centrifuging the resulting solution to separate out depleted uranium (U-238) and enriched uranium (U-235).

For the uranium processor, you require the following:
  • Fluorite of any colour. Different colours don't yield any special results, so use whatever you've got available.
  • Water. This dissolves the fluorite, producing hydrofluoric acid (HF).
  • Uranium ingots. These are dissolved by the HF to produce uranium hexafluoride (UF6).
The processor requires no power to operate, only a steady supply of raw materials. There is one note to take away for the processor, however: Project E time watches don't appear to work with them; I'll need to do more work to see if the same holds true for ChromatiCraft tile accelerators. The only way to get more UF6 faster is to use multiple processors in tandem. The uranium processor makes 1,000mB (1 bucket) of UF6 per output step, consuming a total of 250mB of water and hydrofluoric acid, and (I think) one fluorite and one uranium ingot.

The processor also has a special, as of yet undocumented, feature: it is used in the creation of LiFBe, the base for the creation of LiFBe fuel, which is used in thorium reactors. To get LiFBe, you must give the processor ReC lithium (itself collected from the ReC fluid extractor, a feature which will be discussed later) and ReC emerald dust, which you get by putting emeralds thru a grinder.

Once you've got the UF6, you'll need an isotope centrifuge to force the U-238 and U-235 isotopes apart into usable piles of dust. The isotope centrifuge's notes are as follows:
  • Takes in UF6 from the top. Products (both U-235 and U-238 dust) are pulled from any horizontal side. Power is input from the bottom.
  • Requires 262,144 rad/s to operate, but has no minimum torque requirement, meaning speed can be maximized and torque can be brought to 1 Nm. There is a maximum operating speed, however, capped at 67,108,864 rad/s, or the equivalent of one gas turbine running through a 1,024:1 speed gearing. The only thing that can handle these speeds are either bedrock gearboxes (and shafts) or CVTs. This appears to have the machine operate at 1 operation every 8 ticks (10 operations every 4 seconds).
  • Chance to produce enriched uranium dust: 9%
  • Chance to produce depleted uranium dust: 91%
  • UF6 consumed per operation: 50mB (may depend on difficulty)
As you can see, getting enough U-235 to fuel a good-sized reactor is somewhat difficult and resource-intensive. Fluorite, being non-renewable, must be mined up, preferably by some kind of tunnel bore or a RoC boring machine. It is recommended, where possible, to mine your fluorite using silk touch so you can process it in an extractor to get every possible bit of fluorite you can out of the deal. This also has the advantage of only giving you one colour of fluorite, which can simplify storage and transport.

As with many things in Rotary/ReactorCraft, there's only really two ways to increase your production of U-235: make more centrifuges, or run your centrifuges faster. If you've a constant, high-volume supply of jet fuel coming in, I recommend a mixture of the two: running two or more centrifuges at maximum speed will yield more U-235 than you can realistically use unless you build either very large (and/or very inefficient) reactors, or a lot of smaller ones. Also, be careful when handling UF6, as it is highly corrosive and only certain ReactorCraft pipes can handle it, in addition to fluid pipes from other mods (my go-to being Mekanism's pipes). If you decide to store your UF6 to process it in one large batch, either use a non-RoC tank (TE portable tank, Mekanism dynamic tank, etc) or cover your reservoirs. The UF6 can escape, as it is a gas.

One final note: don't just void your U-238 (depleted uranium) dust. If you ever decide to make a breeder reactor, you'll need it. Plus, it can be used to make radiation-shielding fabrics (to make hazmat suit pieces) as well as, if memory serves, neutron absorbers, which are critical for fusion reactors.
 
Last edited:
  • Like
Reactions: RealKC and Reika

RavynousHunter

New Member
Jul 29, 2019
2,784
-3
1
The Fluid Extractor
I'm kind of skipping ahead a little, but this machine is useful for two kinds of reactors (LFTR and fusion), so its place in the hierarchy of ReactorCraft machinery is somewhat murky. What this does is, basically, extracts two desirable fluids from its surroundings, depending on context: lithium and heavy water. Lithium can be used in the creation of LiFBe, as mentioned earlier, and used in thorium reactors. Heavy water, also known as deuterium monoxide (D2O), contains deuterium, which is one half of the fuel required to run a tokamak.

The requirements to pull lithium are thus:
  • Only works in the Overworld or the Nether.
  • Must be at Y=10 in the Overworld or Y=31 in the Nether.
  • Must have three horizontal sides covered by either lava source blocks or flowing lava (the final side is to extract the lithium for use).
  • The block underneath the machine must be either lava source or flowing lava.
  • Generally speaking, you'll get more lithium from skimming in the Nether than you will in the Overworld.

The requirements to pull heavy water are:
  • Must be in an ocean biome (I believe Deep Ocean biomes also work).
  • Must be below Y=45.
  • Must have at least 16 blocks of water directly above it.
  • Must have water touching three horizontal sides (the final side is for extracting D2O).
  • Produces a flat 200mB of D2O per operation.
General machine requirements are:
  • Power input is through the top only in case of lithium, if extracting D2O, power can also be input through the bottom.
  • Requires 65,536 Watts of power and at least 512 Nm of torque.
  • Duration of operation (in ticks) = 20 - 2 * log2( speed ); To reach one-tick operational speed, you must input at least 1,024 rad/s. (Real amount is ~724 rad/s, but must be rounded up to nearest power of two.) This machine cannot perform multiple operations per tick, so any speed over this is wasted.
  • Total one-tick power requirements: 512 Nm @ 1,024 rad/s (524,288 Watts); This is the equivalent output of two performance engines junctioned together, or a single hydrokinetic engine going through a 32:1 speed gearing.
 
Last edited:
  • Like
Reactions: RealKC