Source code for RCAIDE.Framework.Analyses.Emissions.Emission_Index_CRN_Method
# RCAIDE/Framework/Analyses/Emissions/Emission_Index_CRN_Method.py
#
# Created: Jul 2024, M. Clarke
# ----------------------------------------------------------------------------------------------------------------------
# IMPORT
# ----------------------------------------------------------------------------------------------------------------------
from RCAIDE.Framework.Core import Data
from RCAIDE.Framework.Analyses import Process
from RCAIDE.Library.Methods.Emissions.Chemical_Reactor_Network_Method import *
from RCAIDE.Framework.Analyses.Emissions import Emissions
import numpy as np
# ----------------------------------------------------------------------------------------------------------------------
# Correlation_Buildup
# ----------------------------------------------------------------------------------------------------------------------
[docs]
class Emission_Index_CRN_Method(Emissions):
"""
Emissions Index Chemical Reactor Network Method
"""
def __defaults__(self):
"""
This sets the default values and methods for the analysis.
Assumptions:
None
Source:
None
"""
# conditions table, used for surrogate model training
self.training = Data()
self.training.pressure = np.linspace(10,30, 5) *1E6
self.training.temperature = np.linspace(700, 900, 5)
self.training.air_mass_flowrate = np.linspace(10, 60, 5)
self.training.fuel_to_air_ratio = np.linspace(0.01, 0.05, 5)
# surrogoate models
self.surrogates = Data()
# build the evaluation process
compute = Process()
compute.emissions = None
self.process = Process()
self.process.compute = compute
return
[docs]
def initialize(self):
"""
This function defines the analysis of the combustor emisisons with the CRN method.
If a surrogate is selected, a function to train the data is executed, followed by
the surrogate definition. Consequently, the emissions of different species is
retrieved from the surrogate Emission Indexes.
If the surrogate is not required, the Emission Index is computed directly from the
CRN method.
Assumptions:
None
Source:
None
"""
use_surrogate = self.settings.use_surrogate
# If we are using the surrogate
if use_surrogate == True:
# sample training data
train_CRN_EI_surrogates(self)
# build surrogate
build_CRN_EI_surrogates(self)
# build the evaluation process
compute = self.process.compute
if use_surrogate == True:
compute.emissions = evaluate_CRN_emission_indices_surrogate
else:
compute.emissions = evaluate_CRN_emission_indices_no_surrogate
return
[docs]
def evaluate(self,segment):
"""The default evaluate function.
Assumptions:
None
Source:
N/A
Inputs:
None
Outputs:
results <RCAIDE data class>
Properties Used:
self.settings
self.vehicle
"""
settings = self.settings
vehicle = self.vehicle
results = self.process.compute(segment,settings,vehicle)
return results