Skip to content

Commit

Permalink
finish fischer tropsch recipes
Browse files Browse the repository at this point in the history
  • Loading branch information
planetme committed Dec 21, 2024
1 parent 7b906b7 commit d747d97
Show file tree
Hide file tree
Showing 10 changed files with 229 additions and 54 deletions.
3 changes: 2 additions & 1 deletion groovy/globals/Petrochemistry.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,8 @@ class Petrochemistry {
ethane : new Crackable('ethane').withTraits(SteamCrackable),
propane : new Crackable('propane').withTraits(SteamCrackable),
butane : new Crackable('butane').withTraits(SteamCrackable),
light_cycle_oil : new Crackable('light_cycle_oil').withTraits(HydroCrackable).tap { hydrogen_consumed = 1130; gas_produced = 1290 }
light_cycle_oil : new Crackable('light_cycle_oil').withTraits(HydroCrackable).tap { hydrogen_consumed = 1130; gas_produced = 1290 },
synthetic_wax : new Crackable('synthetic_wax').withTraits(HydroCrackable).tap { hydrogen_consumed = 4930; gas_produced = 230},
]

public static oils = [
Expand Down
2 changes: 1 addition & 1 deletion groovy/material/SuSyMaterials.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,7 @@ class SuSyMaterials {
public static Material GaseousIronIIIChloride;
public static Material GaseousTitaniumTetrachloride;
public static Material GaseousAluminiumChloride;
public static Material DirtyMolecularSieve;
public static Material CarbonatedMolecularSieve;
public static Material OligomericBisphenolSolution;
public static Material GraniteTailingSlurry;
public static Material SphaleriteByproductSlurry;
Expand Down
2 changes: 1 addition & 1 deletion groovy/material/UnknownCompositionMaterials.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -1196,7 +1196,7 @@ public class UnknownCompositionMaterials {

AcidicWastewater.setFormula('(H2O)(?)', true);

DirtyMolecularSieve = new Material.Builder(4234, SuSyUtility.susyId('dirty_molecular_sieve'))
CarbonatedMolecularSieve = new Material.Builder(4234, SuSyUtility.susyId('carbonated_molecular_sieve'))
.dust()
.color(0x737373)
.iconSet(DULL)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,21 +58,32 @@ SIFTER.recipeBuilder()
.inputs(ore('dustMolecularSieve'))
.fluidInputs(fluid('air') * 12000)
.fluidOutputs(fluid('decarburized_air') * 12000)
.outputs(metaitem('dustDirtyMolecularSieve'))
.outputs(metaitem('dustCarbonatedMolecularSieve'))
.duration(4)
.EUt(Globals.voltAmps[3])
.buildAndRegister()

//VACUUM REHEATING FOR REGENERATION
VACUUM_CHAMBER.recipeBuilder()
.inputs(ore('dustDirtyMolecularSieve'))
.circuitMeta(1)
.inputs(ore('dustCarbonatedMolecularSieve'))
.notConsumable(metaitem('springKanthal'))
.outputs(metaitem('dustMolecularSieve'))
.fluidOutputs(fluid('carbon_dioxide') * 20)
.duration(4)
.EUt(Globals.voltAmps[1])
.buildAndRegister()

VACUUM_CHAMBER.recipeBuilder()
.circuitMeta(2)
.inputs(ore('dustCarbonatedMolecularSieve') * 36)
.notConsumable(metaitem('springKanthal'))
.outputs(metaitem('dustMolecularSieve') * 36)
.fluidOutputs(fluid('carbon_dioxide') * 1280)
.duration(10)
.EUt(Globals.voltAmps[1])
.buildAndRegister()

HEAT_EXCHANGER.recipeBuilder()
.fluidInputs(fluid('chilly_waste_gaseous_nitrogen') * 640)
.fluidInputs(fluid('hp_decarburized_air') * 1000)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
FBR = recipemap('fixed_bed_reactor')

FBR.recipeBuilder()
.notConsumable(ore('catalystBedSupportedNickel'))
.fluidInputs(fluid('naphthalene') * 1000)
.fluidInputs(fluid('hydrogen') * 4000)
.fluidOutputs(fluid('tetralin') * 1000)
.duration(40)
.EUt(Globals.voltAmps[2])
.buildAndRegister()


Original file line number Diff line number Diff line change
Expand Up @@ -5,82 +5,227 @@ ELECTROMAGNETIC_SEPARATOR = recipemap('electromagnetic_separator')
PSA = recipemap('pressure_swing_adsorption')
PYROLYSE = recipemap('pyrolyse_oven')
BCR = recipemap('bubble_column_reactor')
FLBR = recipemap('fluidized_bed_reactor')
SIFTER = recipemap('sifter')
SIEVE_DT = recipemap('sieve_distillation')
CENTRIFUGE = recipemap('centrifuge')
HIGH_PRESSURE_DISTILLATION_TOWER = recipemap('high_pressure_cryogenic_distillation')

// Syngas production and refining

// Methane reforming

REACTION_FURNACE.recipeBuilder()
.fluidInputs(fluid('hot_hp_methane') * 1000)
.fluidInputs(fluid('dense_steam') * 1000)
.circuitMeta(1)
.fluidInputs(fluid('hot_hp_methane') * 700)
.fluidInputs(fluid('dense_steam') * 600)
.fluidInputs(fluid('carbon_dioxide') * 400)
.notConsumable(ore('catalystBedSupportedNickel'))
.fluidOutputs(fluid('raw_hydrogen_rich_syngas') * 7000)
.duration(160)
.fluidOutputs(fluid('raw_hydrogen_rich_syngas') * 5000)
.duration(10)
.EUt(Globals.voltAmps[2])
.buildAndRegister()

REACTION_FURNACE.recipeBuilder()
.fluidInputs(fluid('hot_hp_natural_gas') * 1500)
.fluidInputs(fluid('dense_steam') * 1000)
.circuitMeta(2)
.fluidInputs(fluid('hot_hp_methane') * 900)
.fluidInputs(fluid('dense_steam') * 600)
.fluidInputs(fluid('carbon_dioxide') * 660)
.notConsumable(ore('catalystBedSupportedNickel'))
.fluidOutputs(fluid('raw_hydrogen_rich_syngas') * 7000)
.duration(160)
.fluidOutputs(fluid('raw_monoxide_rich_syngas') * 6360)
.duration(10)
.EUt(Globals.voltAmps[2])
.buildAndRegister()

REACTION_FURNACE.recipeBuilder()
.circuitMeta(1)
.fluidInputs(fluid('hot_hp_natural_gas') * 1400)
.fluidInputs(fluid('dense_steam') * 1920)
.fluidInputs(fluid('carbon_dioxide') * 880)
.notConsumable(ore('catalystBedSupportedNickel'))
.fluidOutputs(fluid('raw_hydrogen_rich_syngas') * 13610)
.duration(20)
.EUt(Globals.voltAmps[2])
.buildAndRegister()

REACTION_FURNACE.recipeBuilder()
.circuitMeta(2)
.fluidInputs(fluid('hot_hp_natural_gas') * 2310)
.fluidInputs(fluid('dense_steam') * 3350)
.fluidInputs(fluid('carbon_dioxide') * 2080)
.notConsumable(ore('catalystBedSupportedNickel'))
.fluidOutputs(fluid('raw_monoxide_rich_syngas') * 18020)
.duration(30)
.EUt(Globals.voltAmps[2])
.buildAndRegister()

// Purification

SIFTER.recipeBuilder()
.inputs(ore('dustMolecularSieve'))
.inputs(ore('dustMolecularSieve') * 36)
.fluidInputs(fluid('raw_hydrogen_rich_syngas') * 12000)
.fluidOutputs(fluid('hydrogen_rich_syngas') * 12000)
.outputs(metaitem('dustMethaneMolecularSieve'))
.fluidOutputs(fluid('hydrogen_rich_syngas') * 11280)
.outputs(metaitem('dustCarbonatedMolecularSieve') * 36)
.duration(4)
.EUt(Globals.voltAmps[2])
.buildAndRegister()

// WGSR
SIFTER.recipeBuilder()
.inputs(ore('dustMolecularSieve') * 36)
.fluidInputs(fluid('raw_monoxide_rich_syngas') * 12000)
.fluidOutputs(fluid('monoxide_rich_syngas') * 11280)
.outputs(metaitem('dustCarbonatedMolecularSieve') * 36)
.duration(4)
.EUt(Globals.voltAmps[2])
.buildAndRegister()

REACTION_FURNACE.recipeBuilder()
.fluidInputs(fluid('hydrocarbon_syngas') * 7000)
.fluidInputs(fluid('dense_steam') * 1000)
.notConsumable(ore('catalystBedLtsCatalyst'))
.fluidOutputs(fluid('syngas') * 9000)
.duration(320)
// Syngas utilization

// LT Fischer Tropsch

BCR.recipeBuilder()
.fluidInputs(fluid('monoxide_rich_syngas') * 11360)
.notConsumable(ore('dustLtftCatalyst'))
.fluidOutputs(fluid('raw_lt_syncrude') * 1000)
.duration(20)
.EUt(120)
.buildAndRegister()

CENTRIFUGE.recipeBuilder()
.fluidInputs(fluid('raw_lt_syncrude') * 2000)
.fluidInputs(fluid('distilled_water') * 70)
.fluidOutputs(fluid('lt_syncrude') * 1930)
.fluidOutputs(fluid('oxygenate_solution') * 140)
.duration(40)
.EUt(30)
.buildAndRegister()

REACTION_FURNACE.recipeBuilder()
.fluidInputs(fluid('syngas') * 7000)
.fluidInputs(fluid('dense_steam') * 1000)
.notConsumable(metaitem('dustHtsCatalyst'))
.fluidOutputs(fluid('syngas') * 9000)
.duration(160)
SIEVE_DT.recipeBuilder()
.fluidInputs(fluid('lt_syncrude') * 1930)
.fluidOutputs(fluid('synthetic_wax') * 80)
.fluidOutputs(fluid('heavy_gas_oil') * 20)
.fluidOutputs(fluid('light_gas_oil') * 80)
.fluidOutputs(fluid('naphtha') * 260)
.fluidOutputs(fluid('lt_light_gases') * 1490)
.duration(40)
.EUt(120)
.buildAndRegister()

// Purification
HIGH_PRESSURE_DISTILLATION_TOWER.recipeBuilder()
.fluidInputs(fluid('lt_light_gases') * 1490)
.fluidOutputs(fluid('butane') * 40)
.fluidOutputs(fluid('butene') * 50)
.fluidOutputs(fluid('propane') * 70)
.fluidOutputs(fluid('propene') * 50)
.fluidOutputs(fluid('ethane') * 80)
.fluidOutputs(fluid('ethylene') * 10)
.fluidOutputs(fluid('methane') * 320)
.fluidOutputs(fluid('hydrogen') * 870)
.duration(40)
.EUt(120)
.buildAndRegister()

PSA.recipeBuilder()
.fluidInputs(fluid('reformed_syngas') * 9000)
.notConsumable(metaitem('dustMolecularSieve') * 5)
.fluidOutputs(fluid('hydrogen') * 8000)
.fluidOutputs(fluid('carbon_dioxide') * 1000)
.duration(160)
// HT Fischer Tropsch

FLBR.recipeBuilder()
.fluidInputs(fluid('monoxide_rich_syngas') * 41700)
.notConsumable(ore('dustHtftCatalyst'))
.fluidOutputs(fluid('ht_syncrude') * 5000)

This comment has been minimized.

Copy link
@trainvoi

trainvoi Dec 21, 2024

Collaborator

should this be raw_ht_syncrude?

.duration(20)
.EUt(120)
.buildAndRegister()

PSA.recipeBuilder()
.fluidInputs(fluid('syngas') * 7000)
.notConsumable(metaitem('dustMolecularSieve') * 5)
.fluidOutputs(fluid('hydrogen') * 6000)
.fluidOutputs(fluid('carbon_monoxide') * 1000)
.duration(160)
CENTRIFUGE.recipeBuilder()
.fluidInputs(fluid('raw_ht_syncrude') * 5000)
.fluidInputs(fluid('distilled_water') * 90)
.fluidOutputs(fluid('ht_syncrude') * 4910)
.fluidOutputs(fluid('oxygenate_solution') * 180)
.duration(20)
.EUt(30)
.buildAndRegister()

SIEVE_DT.recipeBuilder()
.fluidInputs(fluid('ht_syncrude') * 4910)
.fluidOutputs(fluid('synthetic_wax') * 10)
.fluidOutputs(fluid('heavy_gas_oil') * 10)
.fluidOutputs(fluid('light_gas_oil') * 45)
.fluidOutputs(fluid('naphtha') * 365)
.fluidOutputs(fluid('ht_light_gases') * 4480)
.duration(20)
.EUt(120)
.buildAndRegister()

// Syngas utilization
HIGH_PRESSURE_DISTILLATION_TOWER.recipeBuilder()
.fluidInputs(fluid('ht_light_gases') * 4480)
.fluidOutputs(fluid('butane') * 170)
.fluidOutputs(fluid('butene') * 180)
.fluidOutputs(fluid('propane') * 270)
.fluidOutputs(fluid('propene') * 280)
.fluidOutputs(fluid('ethane') * 220)
.fluidOutputs(fluid('ethylene') * 240)
.fluidOutputs(fluid('methane') * 620)
.fluidOutputs(fluid('hydrogen') * 2500)
.duration(20)
.EUt(120)
.buildAndRegister()

// Product treatment

// LTFT
DT.recipeBuilder()
.fluidInputs(fluid('oxygenate_solution') * 2000)
.fluidOutputs(fluid('water') * 1000)
.fluidOutputs(fluid('oxygenate') * 1000)
.duration(10)
.EUt(120)
.buildAndRegister()

BCR.recipeBuilder()
// Hydrogen separation

// WGSR

REACTION_FURNACE.recipeBuilder()
.fluidInputs(fluid('hydrogen_rich_syngas') * 6000)
.fluidInputs(fluid('dense_steam') * 1000)
.notConsumable(ore('catalystBedLtsCatalyst'))
.fluidOutputs(fluid('reformed_syngas') * 8000)
.duration(100)
.EUt(30)
.buildAndRegister()

REACTION_FURNACE.recipeBuilder()
.fluidInputs(fluid('hydrogen_rich_syngas') * 6000)
.fluidInputs(fluid('dense_steam') * 1000)
.notConsumable(metaitem('dustHtsCatalyst'))
.fluidOutputs(fluid('reformed_hydrogen_rich_syngas') * 8000)
.duration(40)
.EUt(120)
.buildAndRegister()

// Separation

PSA.recipeBuilder()
.fluidInputs(fluid('reformed_hydrogen_rich_syngas') * 8000)
.notConsumable(metaitem('dustMolecularSieve') * 5)
.fluidOutputs(fluid('hydrogen') * 7000)
.fluidOutputs(fluid('carbon_dioxide') * 1000)
.duration(160)
.EUt(120)
.buildAndRegister()

PSA.recipeBuilder()
.fluidInputs(fluid('hydrogen_rich_syngas') * 6000)
.notConsumable(metaitem('dustMolecularSieve') * 5)
.fluidOutputs(fluid('hydrogen') * 5000)
.fluidOutputs(fluid('carbon_monoxide') * 1000)
.duration(160)
.EUt(120)
.buildAndRegister()

PSA.recipeBuilder()
.fluidInputs(fluid('monoxide_rich_syngas') * 5000)
.notConsumable(metaitem('dustMolecularSieve') * 5)
.fluidOutputs(fluid('carbon_monoxide') * 4000)
.fluidOutputs(fluid('hydrogen') * 1000)
.duration(160)
.EUt(120)
.buildAndRegister()
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ MIXER = recipemap('mixer')
FLUID_HEATER = recipemap('fluid_heater')
BCR = recipemap('bubble_column_reactor')
DT = recipemap('distillation_tower')
HIGH_PRESSURE_DISTILLATION_TOWER = recipemap('high_pressure_cryogenic_distillation')

// Water removal

Expand Down Expand Up @@ -55,7 +56,7 @@ DT.recipeBuilder()
.EUt(Globals.voltAmps[1] * 2)
.buildAndRegister()

DT.recipeBuilder()
HIGH_PRESSURE_DISTILLATION_TOWER.recipeBuilder()
.fluidInputs(fluid('liquid_natural_gas') * 20)
.fluidOutputs(fluid('butane') * 64)
.fluidOutputs(fluid('propane') * 128)
Expand Down
Loading

0 comments on commit d747d97

Please sign in to comment.