Oil Cracking Unit

From GT New Horizons
Revision as of 01:52, 28 December 2023 by Meowracle (talk | contribs) (Some tedious maths.)


Introduction

The Gregtech Oil Cracking Unit is a multi-block that thermally cracks heavy hydrocarbons into lighter fractions. Unlike cracking with a chemical reactor, which cracks with 80% efficiency, an Oil Cracking Unit will quickly crack with 100% efficiency.

How to Build

An Oil Cracking Unit is a hollow 5x3x3 (WxHxD) structure that requires:

-1 Controller block; front, centered along one of the 5 block wide sides
-1 Maintenance Hatch; anywhere
-1 Energy hatch; anywhere
-1 Input Bus/Hatch for the hydrocarbon to be cracked; any left/right side (1x3x3) ring casings. This must be on the ring opposite of the ring with the cracked hydrocarbon output hatch
-1 Output Hatch for the cracked hydrocarbon; any left/right side (1x3x3) ring casings. This must be on the ring opposite of the ring with the hydrocarbon input hatch.
-1 Input Hatch for Steam/Hydrogen input; any middle ring (1x3x3) casings
-2 Sets of 8x Cupronickel Coil Blocks, forming a hollow ring on each immediate side of the controller
-Clean Stainless Steel Machine Casings everywhere else

Note that the Oil Cracking Unit, like many other multiblocks, can share walls with other Oil Cracking Units, or technically with anything that uses the same parts.

Maximizing Output Calculation and Conclusion

This section is the challenging part of mathematical theory! Here, we will use the language of linear algebra to calculate the best output method, providing a theoretical basis for petrochemical production lines. If you wish to skip the theoretical part, please read through non-maths part and then move to the calculator section below.

We know that each type of desulfurized fuel can be cracked and distilled into chemicals and two other types of fuels. Therefore, after one cracking and distillation, the fuel is not entirely consumed, and we need to calculate the cracking of the remaining fuel by using linear algebra.

The initial approach, which is to maximize the output of the target product from each type of oil shown on NEI, might not be the best combination of cracking. We will represent the proportions of the three types of fuel cracking each other using matrices up to the third order. By using matrix multiplication iteratively and summing infinitely, we can calculate the real maximum output. If heavy fuel is distilled into toluene, the matrix becomes of the second order (the target product should not be toluene). If light fuel is stirred to generate diesel for electricity, the matrix degenerates to a scalar.

This article is only a theoretical calculation, valuable for reference, with lots of detailed elements not considered. Please still try to design your own petrochemical line that suits your own save.

The following mathematical theory may be too hard to comprehend. With the general principle understood, it's suggested to directly use the calculator below if you're not into complicated maths.

Variable Definitions and Interpretations

First, let's define each variable:

: The ratio of the final product from cracking and distillation per barrel of crude oil under a specific combination of cracking methods.

: The crude oil distillation ratio.

: The cracking matrix for the three types of fuel under a specific combination, where each element represents the proportion of one fuel type converting to another. Each ROW correspond to a part of a single recipe in NEI.

Note that in the new version, when using steam cracking distillation, each element of A must be multiplied by a factor of 1.2.

: The yield rate of the target product from each type of fuel under a specific cracking combination.

Here, κ is a scalar, while δ and α are column vectors up to three dimensions. Note that we generally use the row vector of δ^T.

If the definitions seem to be not clear enough, just download the calculator.

Calculation Formula

Now, let's give the specific calculation formula. After inputting a certain amount (a large amount) of a type of crude oil, the first cracking and distillation are performed:

The conversion ratio of the target product in this instance is , and the remaining fuel ratio is

In the second instance, the remaining fuel undergoes further cracking and distillation.

The conversion ratio of the target product up to this point is , and now the remaining fuel ratio is

This process can be repeated many times, theoretically infinitely, leading to

Taking n to infinity, we get

The infinite sum is similar to a geometric series, and using Taylor's theorem for multivariate functions, we can obtain

(Note: The negative exponent represents the matrix inversion operation.)


Thus, the formula simplifies to

We need to maximize κ under all conditions that meet the constraints (such as not using hydrogen cracking or heavy cracking, etc.). Please note, the type of oil might affect the outcome, but we have not encountered this situation yet.


You can also modify the matrix to get results under different constraints.


For example, when stirring to make diesel but not directly distilling heavy fuel, the fuel cracking matrix A changes. This situation might occur when using heavy oil for electricity generation and cracking heavy fuel to obtain petrochemical by-products in the early to mid-stages. In such cases, the light fuel output in the matrix should be set to zero, and the heavy fuel should be reduced by 0.2 times the light fuel output. Similarly, in δ (crude oil distillation), the light fuel output and 0.2 times the light fuel output in heavy fuel should be removed.

For example, in the matrix of the example, if this operation is performed, then:

(in old version without buffs on OCU)

As light fuel does not produce any chemical products, we can eliminate the second row and second column, making it a second-order matrix and completely ignoring light fuel in subsequent calculations (as it's no longer present). But this doesn't really matter.

Calculator

Well, there's a calculator which was mainly contributed by core.exe: GTNHPetroOptim

It needs Python to run. Feel free to manipulate the parameters in the code and derived the result you want by yourself.