/tg/ Station 13 - Modules - TypesDefine Details

code/__DEFINES/atmospherics/atmos_core.dm

MOLESAmount of total moles in said gas mixture
ARCHIVEArchived version of MOLES
GAS_METAAll gas related variables
META_GAS_SPECIFIC_HEATGas specific heat per mole
META_GAS_NAMEName of the gas
META_GAS_MOLES_VISIBLEAmount of moles required of the gas to be visible
META_GAS_OVERLAYOverlay path of the gas, also setup the alpha based on the amount
META_GAS_DANGERLet the air alarm know if the gas is dangerous
META_GAS_IDId of the gas for quick access
META_GAS_FUSION_POWERPower of the gas when used in the current iteration of fusion
META_GAS_DESCShort description of the gas.
R_IDEAL_GAS_EQUATIONkPaL/(Kmol)
ONE_ATMOSPHEREkPa
TCMB-270.3degC
T0C0degC
T20C20degC
COLD_ROOM_TEMP-14C - Temperature used for kitchen cold room, medical freezer, etc.
MINIMUM_HEAT_CAPACITYI feel the need to document what happens here. Basically this is used catch rounding errors, and make gas go away in small portions. People have raised it to higher levels in the past, do not do this. Consider this number a soft limit If you're making gasmixtures that have unexpected behavior related to this value, you're doing something wrong.
MINIMUM_MOLE_COUNTMinimum mole count of a gas
MOLAR_ACCURACYMolar accuracy to round to
GAS_TYPE_COUNTTypes of gases (based on gaslist_cache)
MAXIMUM_ERROR_GAS_REMOVALMaximum error caused by QUANTIZE when removing gas (roughly, in reality around 2 * MOLAR_ACCURACY less)
MOLES_GAS_VISIBLEMoles in a standard cell after which gases are visible
FACTOR_GAS_VISIBLE_MAXmoles_visible * FACTOR_GAS_VISIBLE_MAX = Moles after which gas is at maximum visibility
MOLES_GAS_VISIBLE_STEPMole step for alpha updates. This means alpha can update at 0.25, 0.5, 0.75 and so on
TOTAL_VISIBLE_STATESThe total visible states
NO_REACTIONThe gas mixture is not reacting
REACTINGThe gas mixture is reacting
STOP_REACTIONSThe gas mixture is able to stop all reactions
FUSION_INSTABILITY_ENDOTHERMALITYMaximum instability before the reaction goes endothermic
FUSION_MAXIMUM_TEMPERATUREMaximum reachable fusion temperature
EXCITED_GROUP_BREAKDOWN_CYCLESSome further context on breakdown. Unlike dismantle, the breakdown ticker doesn't reset itself when a tile is added This is because we cannot expect maps to have small spaces, so we need to even ourselves out often We do this to avoid equalizing a large space in one tick, with some significant amount of say heat diff This way large areas don't suddenly all become cold at once, it acts more like a wave
EXCITED_GROUP_DISMANTLE_CYCLESnumber of FULL air controller ticks before an excited group dismantles and removes its turfs from active
MINIMUM_AIR_RATIO_TO_SUSPENDRatio of air that must move to/from a tile to reset group processing
MINIMUM_AIR_RATIO_TO_MOVEMinimum ratio of air that must move to/from a tile
MINIMUM_AIR_TO_SUSPENDMinimum amount of air that has to move before a group processing can be suspended (Round about 10)
MINIMUM_MOLES_DELTA_TO_MOVEEither this must be active (round about 0.1) //Might need to raise this a tad to better support space leaks. we'll see
MINIMUM_TEMPERATURE_TO_MOVEor this (or both, obviously)
MINIMUM_TEMPERATURE_DELTA_TO_SUSPENDMinimum temperature difference before group processing is suspended
MINIMUM_TEMPERATURE_DELTA_TO_CONSIDERMinimum temperature difference before the gas temperatures are just set to be equal
MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTIONMinimum temperature to continue superconduction once started
MINIMUM_TEMPERATURE_START_SUPERCONDUCTIONMinimum temperature to start doing superconduction calculations
WINDOW_HEAT_TRANSFER_COEFFICIENTa hack for now
HEAT_CAPACITY_VACUUMa hack to help make vacuums "cold", sacrificing realism for gameplay
FIRE_MINIMUM_TEMPERATURE_TO_SPREADMinimum temperature for fire to move to the next turf (150 °C or 433 K)
FIRE_MINIMUM_TEMPERATURE_TO_EXISTMinimum temperature for fire to exist on a turf (100 °C or 373 K)
FIRE_SPREAD_RADIOSITY_SCALEMultiplier for the temperature shared to other turfs
FIRE_GROWTH_RATEHelper for small fires to grow
COLD_FIRE_SPREAD_RADIOSITY_SCALEMultiplier for the temperature shared to other turfs
MOLES_CELLSTANDARDmoles in a 2.5 m^3 cell at 101.325 Pa and 20 degC (103 or so)
M_CELL_WITH_RATIOcompared against for superconductivity
O2STANDARDpercentage of oxygen in a normal mixture of air
N2STANDARDsame but for nitrogen
MOLES_O2STANDARDO2 standard value (21%)
MOLES_N2STANDARDN2 standard value (79%)
CELL_VOLUMEliters in a cell
O2_ANESTHETICO2 value for anesthetic canister
N2O_ANESTHETICN2O value for anesthetic canister
ATMOS_PASS_PROCask can_atmos_pass()
ATMOS_PASS_DENSITYjust check density
NORMAL_TURFNormal non-active turf
MAKE_ACTIVESet the turf to be activated on the next calculation
KILL_EXCITEDDisable excited group
ATMOS_PRESSURE_APPROXIMATION_ITERATIONSHow many maximum iterations do we allow the Newton-Raphson approximation for gas pressure to do.
ATMOS_PRESSURE_ERROR_TOLERANCEWe deal with big numbers and a lot of math, things are bound to get imprecise. Take this traveller.

Define Details

ARCHIVE

Archived version of MOLES

ATMOS_PASS_DENSITY

just check density

ATMOS_PASS_PROC

ask can_atmos_pass()

ATMOS_PRESSURE_APPROXIMATION_ITERATIONS

How many maximum iterations do we allow the Newton-Raphson approximation for gas pressure to do.

ATMOS_PRESSURE_ERROR_TOLERANCE

We deal with big numbers and a lot of math, things are bound to get imprecise. Take this traveller.

CELL_VOLUME

liters in a cell

COLD_FIRE_SPREAD_RADIOSITY_SCALE

Multiplier for the temperature shared to other turfs

COLD_ROOM_TEMP

-14C - Temperature used for kitchen cold room, medical freezer, etc.

EXCITED_GROUP_BREAKDOWN_CYCLES

Some further context on breakdown. Unlike dismantle, the breakdown ticker doesn't reset itself when a tile is added This is because we cannot expect maps to have small spaces, so we need to even ourselves out often We do this to avoid equalizing a large space in one tick, with some significant amount of say heat diff This way large areas don't suddenly all become cold at once, it acts more like a wave

Because of this and the behavior of share(), the breakdown cycles value can be tweaked directly to effect how fast we want gas to move number of FULL air controller ticks before an excited group breaks down (averages gas contents across turfs)

EXCITED_GROUP_DISMANTLE_CYCLES

number of FULL air controller ticks before an excited group dismantles and removes its turfs from active

FACTOR_GAS_VISIBLE_MAX

moles_visible * FACTOR_GAS_VISIBLE_MAX = Moles after which gas is at maximum visibility

FIRE_GROWTH_RATE

Helper for small fires to grow

FIRE_MINIMUM_TEMPERATURE_TO_EXIST

Minimum temperature for fire to exist on a turf (100 °C or 373 K)

FIRE_MINIMUM_TEMPERATURE_TO_SPREAD

Minimum temperature for fire to move to the next turf (150 °C or 433 K)

FIRE_SPREAD_RADIOSITY_SCALE

Multiplier for the temperature shared to other turfs

FUSION_INSTABILITY_ENDOTHERMALITY

Maximum instability before the reaction goes endothermic

FUSION_MAXIMUM_TEMPERATURE

Maximum reachable fusion temperature

GAS_META

All gas related variables

GAS_TYPE_COUNT

Types of gases (based on gaslist_cache)

HEAT_CAPACITY_VACUUM

a hack to help make vacuums "cold", sacrificing realism for gameplay

KILL_EXCITED

Disable excited group

MAKE_ACTIVE

Set the turf to be activated on the next calculation

MAXIMUM_ERROR_GAS_REMOVAL

Maximum error caused by QUANTIZE when removing gas (roughly, in reality around 2 * MOLAR_ACCURACY less)

META_GAS_DANGER

Let the air alarm know if the gas is dangerous

META_GAS_DESC

Short description of the gas.

META_GAS_FUSION_POWER

Power of the gas when used in the current iteration of fusion

META_GAS_ID

Id of the gas for quick access

META_GAS_MOLES_VISIBLE

Amount of moles required of the gas to be visible

META_GAS_NAME

Name of the gas

META_GAS_OVERLAY

Overlay path of the gas, also setup the alpha based on the amount

META_GAS_SPECIFIC_HEAT

Gas specific heat per mole

MINIMUM_AIR_RATIO_TO_MOVE

Minimum ratio of air that must move to/from a tile

MINIMUM_AIR_RATIO_TO_SUSPEND

Ratio of air that must move to/from a tile to reset group processing

MINIMUM_AIR_TO_SUSPEND

Minimum amount of air that has to move before a group processing can be suspended (Round about 10)

MINIMUM_HEAT_CAPACITY

I feel the need to document what happens here. Basically this is used catch rounding errors, and make gas go away in small portions. People have raised it to higher levels in the past, do not do this. Consider this number a soft limit If you're making gasmixtures that have unexpected behavior related to this value, you're doing something wrong.

On an unrelated note this may cause a bug that creates negative gas, related to round(). When it has a second arg it will round up. So for instance round(0.5, 1) == 1. I've hardcoded a fix for this into share, by forcing the garbage collect. Any other attempts to fix it just killed atmos. I leave this to a greater man then I The minimum heat capacity of a gas

MINIMUM_MOLES_DELTA_TO_MOVE

Either this must be active (round about 0.1) //Might need to raise this a tad to better support space leaks. we'll see

MINIMUM_MOLE_COUNT

Minimum mole count of a gas

MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER

Minimum temperature difference before the gas temperatures are just set to be equal

MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND

Minimum temperature difference before group processing is suspended

MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION

Minimum temperature to continue superconduction once started

MINIMUM_TEMPERATURE_START_SUPERCONDUCTION

Minimum temperature to start doing superconduction calculations

MINIMUM_TEMPERATURE_TO_MOVE

or this (or both, obviously)

MOLAR_ACCURACY

Molar accuracy to round to

MOLES

Amount of total moles in said gas mixture

MOLES_CELLSTANDARD

moles in a 2.5 m^3 cell at 101.325 Pa and 20 degC (103 or so)

MOLES_GAS_VISIBLE

Moles in a standard cell after which gases are visible

MOLES_GAS_VISIBLE_STEP

Mole step for alpha updates. This means alpha can update at 0.25, 0.5, 0.75 and so on

MOLES_N2STANDARD

N2 standard value (79%)

MOLES_O2STANDARD

O2 standard value (21%)

M_CELL_WITH_RATIO

compared against for superconductivity

N2O_ANESTHETIC

N2O value for anesthetic canister

N2STANDARD

same but for nitrogen

NORMAL_TURF

Normal non-active turf

NO_REACTION

The gas mixture is not reacting

O2STANDARD

percentage of oxygen in a normal mixture of air

O2_ANESTHETIC

O2 value for anesthetic canister

ONE_ATMOSPHERE

kPa

REACTING

The gas mixture is reacting

R_IDEAL_GAS_EQUATION

kPaL/(Kmol)

STOP_REACTIONS

The gas mixture is able to stop all reactions

T0C

0degC

T20C

20degC

TCMB

-270.3degC

TOTAL_VISIBLE_STATES

The total visible states

WINDOW_HEAT_TRANSFER_COEFFICIENT

a hack for now