IC2 nuclear power plant heat sink analysis [IC2] Industrial Age 2 (INDUSTRIAL CRAFT 2) Minecraft Game

This tutorial is set by the author to use the CC By-NC-SA protocol.

(Heating tablets) [https://www.mcmod.cn/item/290.html] series (number of water characters):

Heat Vent (Heat Vent)

The heat dissipation air outlet is a nuclear reactor accessory with heat dissipation capacity.

It can store 1,000 points of heat and emit 6 points of calories itself.

During normal work, durability will be displayed. If it exceeds the durability of its own calories, it will become 0 (disappear).

Reactor Heat Vent

The reactor heat sink is a nuclear reaction furnace accessory with heat dissipation capabilities.It can store 1,000 points of heat, absorb 5 points of calories itself, and emit 5 points of calories itself.

During normal work, durability will be displayed. If it exceeds the durability of its own calories, it will become 0 (disappear).

Although the performance is low, it is the only heat dissipation film with a sag of heat sake, MOX temperature control is used

Component Heat Vent (Component Heat Vent)

Component heat sink is a nuclear reactor accessory with heat dissipation capacity.

It does not store calories or absorb any heat, which will only emit 4 points of heat from surrounding components.

Advanced Heat Vent

Advanced heat sink is a nuclear reaction furnace accessory with heat dissipation capabilities.It can store 1,000 points of calories itself, absorb and distribute 12 points of heat each.

During normal work, durability will be displayed. If it exceeds the durability of its own calories, it will become 0 (disappear).

Overclocking heat sink

Overclocking radiator is a nuclear reactor accessory with heat dissipation capacity.

The fluid thermal nucleus is a single 40HU/T

The durability of itself is 1,000, the absorption of the nuclear reaction furnace itself 36 points/second, and emits 20 points of calories/second of itself. At the same time, the durability is 36/second, and the durability is 20/second.

In actual operation, there is no additional heat dissipation.

Because there is no help of other thermal exchange elements, the efficiency of overclocking heat dissipation tablets will be greater than the heat dissipation efficiency.This means that overclocking thermal emission exports will soon exceed the calorie limit.

Therefore, overclocking radiator tablets need to be surrounded by auxiliary heat sinks such as component heat sinks to work for a long time.During normal work, durability will be displayed. If it exceeds the durability of its own calories, it will become 0 (disappear).

But it is also based on this principle that we can make super high -efficiency MK5 fluid nuclear power!

(Heat Exchange) [https://www.mcmod.cn/item/290.html] series (water number):

Heat Exchange (Heat Exchange)

The thermal exchange module is a nuclear reactor accessory that can exchange heat.It can store 2500 points of heat, pass 12 calories to other adjacent components, and pass 4 points of heat to the nuclear reaction furnace itself.

It will display durability when working normally.

Reactor Heat Exchange

The reactor thermal exchanger is a nuclear reactor accessory that can exchange heat in the nuclear reaction furnace itself.It can store 5,000 points itself, and will not exchange heat with other adjacent components. It will only pass 72 points of calories to the nuclear reaction furnace itself.

During normal work, durability will be displayed. If it exceeds the durability of its own calories, it will become 0 (disappear).

Component Heat Exchange (Component Heat Exchange)

The component heat exchange module is a nuclear reactor accessory that can exchange heat with the surrounding components.It can store 5,000 points itself, will not exchange heat with the nuclear reaction furnace itself, and only pass 36 points of calories to other adjacent components.

It will show durability when working normally. If it exceeds the durability of its own calories, it will become 0 (disappear).

Advanced Heat Exchange high -level heat exchange module is a nuclear reactor accessory that can exchange heat.It can store 10,000 heat points itself, exchange 24 points of heat to other adjacent components, and exchange 8 points of heat with nuclear reactors.

During normal work, durability will be displayed. If it exceeds the durability of its own calories, it will become 0 (disappear).

3. Analysis

Open the source code of IC2, find the core logic of the reactor: IC2.CORE.BLOCK.REACTOR.Tilentity.TilentityNucleACTRICTric, view the function UpdateEntityServerver

Protected void UpdateEntityServer () {

Super.UpdateEntityServer ();

If (this.UpDateticker ++ % This.gettickrate () == 0) {{

If (! This.WorldOCHUNERCHUNKEXIST (this.xcoord, this.ycoord, this.zcoord, 2)) {

This.output = 0.0F;

} Else {

/**

Have nothing to do with

*/

This.dropallunfittingstuff ();

This.output = 0.0F;

This.maxheat = 10000; // maximum calories

This.HEM = 1.0F; //

This.processChambers (); // Treatment of the original heat dissipation logic

If (this.fluidCoolReactor) {// Thermal nuclear power HU output logic

/**

*/

}

This.emitheatbuffer = 0;

If (this.calculateheateffects ()) {// Calculateheateffects Calculate the heat effect, whether it is evaporated, fire, magma or JJBOOM

Return;

} This.setActive (this.heat> = 1000 || This.output> 0.0F);

This.markdirty ();

}

((NetworkManager) ic2.network.get ()). UPDATETILEENTIELD (this, "output");

}

}

Go to procesSchambers

int size = this.getReactorsize ();

For (int pass = 0; pass <2; ++ pass) {// This pass is a waste operation

For (int y = 0; y <6; ++ y) {

For (int x = 0; x

// Traversing all the effective cabins

Itemstack stack = this.Reactorslot.get (x, y);

If (Stack! = Null && Stack.getItem () Instanceof IreactorComponent) {

IReactorComponent Comp = (IReactorComponent) stack.getItem ();

Comp.processChamber (this, Stack, X, Y, PASS == 0); // Perform the cabin logic (fuel rod, heat sink, heat exchanger, cooling unit, neutron reflector, etc.)

}

}

}

}

Find the core logic of the reactor and radiator:

Heatswitch is a heat exchange, Vent is a radiator.

The radiator constructor is: Public ItemRaCCTORVENT (InternaLNAME InternaLNAME, INT heat storage, INT component itself heat dissipation, INT is the reactor heat dissipation); obviously the registration data is consistent with the encyclopedia.

ProcessChamber of itemReactorvent:

Public Void ProcessChamber (IReactor Reactor, Itemstack Youstack, Int X, Int Y, Boolean Heatrun) {

If (heatrun) {

Int Rheat;

If (this.Reactorvent> 0) {// reactor the heat dissipation, directly subtract the reactor's head

Rheat = reactor.getheat ();

Int ReactORDRAIN = RHEAT; if (RHEAT> this.Reactorvent) {

Reactordain = this.Reactorvent;

}

Rheat -= Reactordrain;

If (this.alterheat (reactor, youstack, x, y, reactordrain)> 0) {{

Return;

}

Reactor.Setheat (Rheat);

}

RHEAT = this.alterheat (reactor, youstack, x, y, -This.setvent); // Alterheat is the logic of calculating the durability of the heat sink. This logic will store its own calories and subtract SelfHe.The durability of the heat sink

If (RHEAT <= 0) {

Reactor.adDemitheat (Rheat + this.Selfvent); // The component itself will output how much HU will be output to the fluid reactor

}

}

}

It can be seen in the source code that the heat sink will absorb the heat from the reactor, and then release the heat (is it similar to the CPU? Absorb the calories from the CPU, and then release it to the air).The size of the component is the heating rate of the component

Here we can get two definitions:

Reactor calories

That is, the calories of the reactor UI, 0-10000 by default, JJBOOM will be JJBOOM if the upper limit

Component heat

It is reflected in the durability of the heat dissipation element. The more heat in the component, the lower the component durability. Until the component is burned, the component burning will cause the component's original reaction heets.

Heading tablets, reactor hedging tablets, high -end heat sinks, overclocking radiator are all instance objects of ItemRaCCTORVENT, so their logic is consistent

For the flow of heat dissipation, we can understand:

Thermal rod heat -> passed to the reactor-> heat sink absorbing the heat on the reactor-> Existing its own heat tank->

|-> Pass directly to the heat-absorbing component (the component that can accept the calories in the surrounding area is divided into calories, such as the surrounding components cannot be absorbed and throw it back to the reactor)-> Existing its own heat groove->The reactor will not increase the temperature of the reactor)

Note: Component heat sinks do not provide calorie storage

The heat sink, the high -end heat sink only provides its own heat dissipation, so it does not help directly to reduce the temperature of the reactor

The reactor heat sink and overclocking radiator provide reactor heat dissipation, but the self -heat dissipation performance of the overclocking heat sink is lower than the absorbing reactor heat. Therefore, as described by the encyclopedia, the heatstakes will be finally melted. ThereforeUsing component heat sinks, this heat method requires component heat sinks next to the overclocking heat sink, and all sides need to be used. Such 4 component heat sinks provide 16 points of heat dissipation, just to smooth the heat sink of overclocking heat sinks.Go to the heat exchanger, and then give it to the heat sink/high -end heat sink to heat the heat. Component heat sink: exchange 4 points of heat with surrounding components and release it

We can get such a conclusion. On the one hand, we must have sufficient ability to guide the heat from the stack (reactor the heat dissipation). On the other hand, we must have enough ability to distribute the heat from the component.

According to this principle, you can find a better design solution, at least soon you can explore a crazy swing on the edge of the fried edge, and it is just not fried.

7 4X, each heating 96, power generation 60, 7 power generation 420, heating 672. Among them, 27 superclocking heat dissipation tablets are used. Theoretically, 972 piles of shell heat dissipation, but the actual 27 overclocking component heat dissipation is only the heat dissipation is only the heat dissipation of the heat540, not enough to resist the fever of the Hexin 672, so the component heat sink is supplemented.

Observation can be known that components divert 28 * 4 in total 112 points of heat, not counting the total component of the exchange at 652, and the last heat exchange is the key. Without this componentThe reactor will definitely explode.

From this, we can also see that the EU nuclear power that rely on the heat dissipation tablets can actually touch the ceiling soon. The most extreme reactor is less than 1,000. The most difficult is the component heat dissipation.One difficult thing.

4. Hot Exchange Analysis

The heat exchanger is an component from the component and or the reactor to absorb or release the heat to other components/reactors

The source code is located: itemReactorheatswitch.class

Public Void ProcessChamber (IReactor Reactor, Itemstack Youstack, Int X, Int Y, Boolean Heatrun) {

If (heatrun) {

Int myhead = 0;

ArrayList headacceptors = new arrayList ();;);;);;);;);;);;);;);;);;);;);;);;);;);;);;;);;);;);;);;);;);;);;;);;;);;;);;;);;;);;;);;;);;;) of

If (This.switchSide> 0) {{

// If you can exchange calories with surrounding components

// SwitchSide is the maximum speed to exchange calories with the surrounding components

This.CheckheatacCeptor (Reactor, X -1, Y, Heatacceptors);

This.CheckheatacCeptor (Reactor, X + 1, Y, Heatacceptors);

This.Checkheatacceptor (Reactor, X, Y -1, HeatAcceptors);

This.CheckheatacCeptor (Reactor, X, Y + 1, Heatacceptors);

}

Int add;

If (this.switchSide> 0) {for (Iterator I $ = headacCethPTors.iterator (); i $ .hasnext (); myheat += add) {

// It can be seen here that the heat exchange rate is the maximum SwitchSide per second, instead of the surrounding components that can be exchanged by so much heat, such as a component heat exchanger, which can pass the maximum 36 points of heat to the surrounding components.Second, then it can pass the maximum 36 to each component

ItemReactorheatswitch.iteMStackCoord Stackcoord = (itemReactorheatswitch.itemstackCoord) I $ .next (); // The heat exchanger itself itself

IReactorComponent Heatable = (IReactorComponent) stackcoord.stack.getITEM (); // The surrounding components

Double Mymed = (Double) this.getCurrenTheat (Reactor, Youstack, X, Y) * 100D /(Double) this.Getmaxheat (reactor, youRSTACK, X, y); the heat switch device itself deposit itself Calories

DOUBLEMed = (Double) HeattcurrenTheat (Reactor, StackCoord.stack, StackCoord.x, StackCoord.y) * 100.0d / (Double) Heatable.GetMaxheat (Rea CTOR, StackCoord.stack, Stackcoord.x, Stackcoord.y);// The proportion of thermal amount of components around

add = (int) ((Double) headable.getMaxheat (Reactor, Stackcoord.stack, Stackcoord.x, Stackcoord.y) / 100.0D * (Heatabled / 2.0D)); // (not greater than 1.5 ValueDivide the maximum heat of the surrounding components, which means that the heat transfer rate is changed. As the surrounding components and their own heat storage, it changes)

If (add> this.switchSide) {{

Add = this.switchSide; // No more than

}

If (Heatablemed + Mymed / 2.0d <1.0d) {// The peripheral component or heat exchanger has a lot of calories, the heat dissipation rate is large, reaching half of the maximum rate of ADD = this.switchSide / 2;

}

If (Heatabled + Mymed / 2.0d <0.75D) {

Add = this.switchSide / 4;

}

If (Heatablemed + Mymed / 2.0d <0.5D) {

Add = this.switchSide / 8;

}

If (Heatablemed + Mymed /2.0d <0.25d) {// There is no heat, the heat transfer rate is only 1

Add = 1;

}

If (Double) math.round (headabled * 10.0d) / 10.0d> (Double) math.round (mymed * 10.0d) / 10.0d) {// The surrounding element is higher than itself, the heat exchanger is fromSurrounding heat

Add- = 2 * add;

} Else if (Double) math.round (headableMed * 10.0d) / 10.0d == (double) math.round (mymed * 10.0d) / 10.0d) {// The temperature is equal, not moving

Add = 0;

}

Myheat -= add; // In the case of default, it is the heat exchanger to heat up the surrounding components

Add = headable.alterheat (reactor, stackcoord.stack, stackcoord.x, stackcoord.y, add); // The surrounding element absorbs ADD.

}

If (this.switchReactor> 0) {{

/**

** The logic of this piece is similar, but the object that exchanges the heat is the reactor itself

**/

}

This.alterheat (reactor, youstack, x, y, myheat); // In the end

}

}

According to analysis, the heat exchanger itself is used as a heat cache. It can throw the heat out when its own temperature is high, or you can suck in the heat when the temperature of the surrounding components/reactor is high

It can be used to pass the heat to the components that can heat the heat, such as the reactor radiator and the advanced radiator as a bridge to supplement the overclocking heat sink, or to act as a buffer on some reactors that walk on the dangerous edge, so that the reactor can be fully fulfilled.The cycle runs, such as 420. The heat exchanger does not even change the position. It is extremely metaphysics. It should be tested.

5. How to set the highest output of the hot output nuclear power?

HU power generation logic is as follows (originally in the core logic of the reactor above)

this.processFLUIDSSLots ();

int Huotput = (int) (huoutputmodifier * (float) this.emitheatbuffer); // The hot output of itself multiplied by a coefficient and a coefficient

Int outputroom = this.outputtank.getCapAcity () - This.outputtank.getfluidamount (); // The consumption of the coolant must also be kept up, otherwise it will accumulate heat.

if (outputroom> 0) {{

FLUIDSTACK DRAINCOLANT;

If (huotput

DrainCooland = this.inputtank.Drain (huotput, false); // 1MB of the coolant corresponds to 1HU, so the maximum output is 8kHu, and it cannot be replaced by the reactor fluid input interface.

} Else {

DrainCooland = this.inputtank.Drain (outputroom, false);

}

If (Draincoland! = NULL) {

This.emitheat = drainCooland.amount;

Huotput- = This.inputtank.Drain (Draincoolant.amount, TRUE) .amount; // Cooling liquid must be sufficient and the output heat cannot be greater than the size of the coolant slot size.

This.outputtank.fill (New FluidStack (blocksitems.getFLUID (internalName.fluidhotCoolant), Draincoolant.amount), TRUE);} else {

This.emitheat = 0;

}

} Else {

This.emitheat = 0;

}

This.addheat (huotput /2); // Half of the remaining heat is added to the reactor. If the reactor is not enough to heat the heat and it is not processed, just wait for BOOM, it is strictly forbidden to burn!

The logic of the previous texts has been mentioned that the HU output depends only on the component of all heat sinks and a coefficient mentioned here.

The thermal exchange device does not provide any HU output, especially do not use the reactor the heat exchanger!

Don't use any 30K, 60K, 180K, 360K cooling unit.

6. I have Luv/ZPM. I want to continue using nuclear power generation. What can I do?

(GT power generation x2, gtnh integration package X5, overall X10, so the output reaches LUV/ZPM)

As mentioned earlier, the regular heat dissipation tablet cannot be used to power generation. At this time, you must invite the ultimate weapon!

Strong cold! Use the powerful reactor heat dissipation capacity and oversized durability of various cooling units, and cooperate with various automated MOD + vacuum freezer/reactor redstone automatic injection, which can achieve much higher output than the original!

By working for a single cooling unit for a period of time, you can get a low -durable cooling unit. By drawing a low -durable cooling unit and filling in the new one to ensure that the cooling unit will not be exhausted.

As mentioned earlier, the fuel rod can directly release the heat to the adjacent heat -deposited heat component, so as long as the cooling unit is placed with a fuel rod, as long as you can ensure that there must be a cooling unit on the side of each fuel rod, it is better.Of course, for insurance, it is best to stack a reactor heat sink in response to the instantaneous heating of the cooling unit, and to handle the durability of each unit before putting it in the cooling unit to ensure that the cooling time point is staggered.

Take a look at it casually:

5400EU/T, then multiply at 5, 27000, LUV properly.