Closed mabijkerk closed 1 month ago
I have reviewed this issue, here are my findings:
The attribute ccs_capture_rate is only embedded in nodes that have a 'counterpart' in the molecule graph (
Except for the node: energy_power_supercritical_waste_mix, here it is set to 0.0. I think this is legacy and should be removed)
For nodes that have ccs capture, in the node summary a dedicated row is given in the website of the engine (see screenshot, example is energy_hydrogen_biomass_gasification_ccs)
When I add this attribute to a node that does not have a counterpart in the molecule graph, no dedicated row is given.
When I remove both the ccs_capture_rate and the free_co2_factor, no change in the calculation of the model occurs.
This is due to the fact that the shares are hardcoded in the molecule graph (see screenshot)
There are multiple ways we can bring more clarity, here are 2 options that I have in mind:
Depending on the route we take, the shares in the molecule graph should be changed to the value we show in the node summary in the engine website. This way one value is consistently used throughout the model. Next to this, the ccs_capture_rate of energy_power_supercritical_waste_mix should be deleted. I have removed this attribute in the branch ATR-CCS-rate
@mabijkerk What do you think?
Thanks for looking into this @kaskranenburgQ. I still have to investigate your comments further, but one thing I stumbled upon is that the ccs_capture_rate
is used in the ETEngine method inherited_captured_bio_emission
. I'm therefore not sure if we can simply remove it.
# Public: Calculates all captured CO2 emissions which result from energy used by this node.
#
# Note that this does not mean that the node captures the CO2 itself; for that, use
# `captured_bio_emissions`). Rather, CO2 is captured on the node OR somewhere to the right
# (supply-side) of the node.
#
# For example:
# [A] <- [B] <- [C] <- [D]
#
# If `[C]` has a `ccs_capture_rate` value, carbon capture occurs on node `[C]`. Calling
# `inherited_captured_bio_emissions` on `[A]` will continually recurse to the right until it
# finds the `ccs_capture_rate` on `[C]`, and then propages the value (accounting for shares
# and conversions) to the left.
#
# Returns a numeric in kg.
def inherited_captured_bio_emissions
fetch(:captured_bio_emissions) do
case ccs_capture_rate
when nil
inputs.sum do |input|
input.edges.sum { |edge| captured_bio_emissions_from_supplier(edge) }
end
when 0.0
0.0
else
captured_bio_emissions
end
end
end
In that case, it seems the ccs_capture_rate is an important factor in the co2 calculations.
inherited_captured_bio_emissions is directly used in the calculation of the variable primary_co2_emission.
As of now, ATR can only be produced using natural gas, so adding the ccs_capture_rate to this node will not change any calculations as of yet.
This is because the attribute inherited_captured_bio_emissions only accounts emissions emitted by bio carriers.
If we were to add in a production route from green gas to ATR production in the future, we would need this attribute on the ATR node however.
Therefore, adding it to the ATR is the best way to proceed in my opinion.
@mabijkerk Do you agree?
Therefore, adding it to the ATR is the best way to proceed in my opinion.
I agree! Can you pick this up on the hydrogen branch?
I agree! Can you pick this up on the hydrogen branch? I see that this is already done on this branch. I think we can close this issue.
This issue has had no activity for 60 days and will be closed in 7 days. Removing the "Stale" label or posting a comment will prevent it from being closed automatically. You can also add the "Pinned" label to ensure it isn't marked as stale in the future.
There are three hydrogen production technologies for which CCS is available: the SMR, the ATR and biomass gasification. The ATR only has the attribute
free_co2_factor
, while SMR and biomass gasification both also haveccs_capture_rate
.SMR:
Biomass gasification
ATR
The
free_co2_factor
is used to determine which part of emissions of a node should not be counted i.e., they are 'free', because they are captured. The question is where theccs_capture_rate
is used for and whether it should be added for the ATR as well.