klick_domain/values/
emission_influencing_values.rs

1use crate::units::*;
2
3#[derive(Debug, Clone)]
4#[cfg_attr(test, derive(Copy))]
5pub struct EmissionInfluencingValues {
6    pub population_equivalent: f64,
7    pub wastewater: Qubicmeters,
8    pub influent_average: AnnualAverageInfluent,
9    pub effluent_average: AnnualAverageEffluent,
10    pub energy_consumption: EnergyConsumption,
11    pub sewage_sludge_treatment: SewageSludgeTreatment,
12    pub side_stream_treatment: SideStreamTreatment,
13    pub operating_materials: OperatingMaterials,
14    pub emission_factors: EmissionFactors,
15    pub energy_emission_factors: EnergyEmissionFactors,
16}
17
18#[derive(Debug, Clone)]
19#[cfg_attr(test, derive(Copy))]
20pub struct AnnualAverageInfluent {
21    pub nitrogen: MilligramsPerLiter,
22    pub chemical_oxygen_demand: MilligramsPerLiter,
23    pub total_organic_carbohydrates: MilligramsPerLiter,
24}
25
26#[derive(Debug, Clone)]
27#[cfg_attr(test, derive(Copy))]
28pub struct AnnualAverageEffluent {
29    pub nitrogen: MilligramsPerLiter,
30    pub chemical_oxygen_demand: MilligramsPerLiter,
31}
32
33#[derive(Debug, Clone)]
34#[cfg_attr(test, derive(Copy))]
35pub struct EnergyConsumption {
36    pub sewage_gas_produced: Qubicmeters,
37    pub methane_fraction: Percent,
38    pub total_power_consumption: Kilowatthours,
39    pub on_site_power_generation: Kilowatthours,
40    pub emission_factor_electricity_mix: GramsPerKilowatthour,
41    pub heating_oil: Liters,
42    pub gas_supply: Qubicmeters,
43    pub purchase_of_biogas: bool,
44}
45
46#[derive(Debug, Clone)]
47#[cfg_attr(test, derive(Copy))]
48pub struct SideStreamTreatment {
49    pub total_nitrogen: Tons,
50    pub side_stream_cover_is_open: bool,
51}
52
53#[derive(Debug, Clone)]
54#[cfg_attr(test, derive(Copy))]
55pub struct SewageSludgeTreatment {
56    pub sludge_bags_are_open: bool,
57    pub sludge_bags_factor: Option<QubicmetersPerHour>,
58    pub sludge_storage_containers_are_open: bool,
59    pub sludge_storage_containers_factor: Option<Percent>,
60    pub sewage_sludge_for_disposal: Tons,
61    pub transport_distance: Kilometers,
62    pub digester_count: Option<u64>,
63}
64
65#[derive(Debug, Clone)]
66#[cfg_attr(test, derive(Copy))]
67pub struct OperatingMaterials {
68    pub fecl3: Tons,
69    pub feclso4: Tons,
70    pub caoh2: Tons,
71    pub synthetic_polymers: Tons,
72}
73
74#[derive(Debug, Clone, Copy, PartialEq)]
75pub struct EmissionFactors {
76    pub n2o_side_stream: Factor,
77    pub co2_fossil: Factor,
78}
79
80#[derive(Debug, Clone)]
81#[cfg_attr(test, derive(Copy))]
82pub struct EnergyEmissionFactors {
83    pub process_energy_savings: Percent,
84    pub fossil_energy_savings: Percent,
85    pub district_heating: Kilowatthours,
86    pub photovoltaic_energy_expansion: Kilowatthours,
87    pub estimated_self_photovoltaic_usage: Percent,
88    pub wind_energy_expansion: Kilowatthours,
89    pub estimated_self_wind_energy_usage: Percent,
90    pub water_energy_expansion: Kilowatthours,
91    pub estimated_self_water_energy_usage: Percent,
92}