libICEpost.src.engineModel.EngineModel.SparkIgnitionEngine ========================================================== .. py:module:: libICEpost.src.engineModel.EngineModel.SparkIgnitionEngine .. autoapi-nested-parse:: @author: Last update: DD/MM/YYYY Classes ------- .. autoapisummary:: libICEpost.src.engineModel.EngineModel.SparkIgnitionEngine.SparkIgnitionEngine Module Contents --------------- .. py:class:: SparkIgnitionEngine(*, time: libICEpost.src.engineModel.EngineTime.EngineTime.EngineTime, geometry: libICEpost.src.engineModel.EngineGeometry.EngineGeometry.EngineGeometry, thermophysicalProperties: dict | libICEpost.src.base.dataStructures.Dictionary.Dictionary, combustionProperties: dict | libICEpost.src.base.dataStructures.Dictionary.Dictionary, dataDict: dict = None, functionObjects: Iterable[Callable] = None, **submodels) Bases: :py:obj:`libICEpost.src.engineModel.EngineModel.EngineModel.EngineModel` Simple spark-ignition engine model with single-zone modeling. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Attributes: .. py:attribute:: Types Types for each main model .. py:attribute:: CombustionModel :type: libICEpost.src.thermophysicalModels.thermoModels.CombustionModel.PremixedCombustion.PremixedCombustion The combustion model .. py:attribute:: _fuel :type: libICEpost.Database.chemistry.specie.Mixtures.Mixture The current in-cylinder fuel mixture composition .. py:method:: fromDictionary(dictionary: libICEpost.src.base.dataStructures.Dictionary.Dictionary) -> libICEpost.src.engineModel.EngineModel.EngineModel.EngineModel :classmethod: Construct from dictionary like: { EngineTime: str Name of the EngineTime model to use Dict: dict Dictionary containing the data specific of the selected SngineTime model (e.g., if engineTime is 'SparkIgnitionTime', then this dictionary must be named 'SparkIgnitionTimeDict'). See at the helper for function 'fromDictionary' of the specific EngineTime model selected. EngineGeometry: str Name of the EngineGeometry model to use Dict: dict Dictionary with data required from engineGeometry. See at the helper for function 'fromDictionary' of the specific EngineGeometry model selected. thermoPhysicalProperties: dict Dictionary with types and data for thermophysical modeling of mixtures { ThermoType: dict { Thermo: str EquationOfState: str } Dict: dict Dict: dict } combustionProperties: dict Dictionaries for data required for mixture preparation and combustion modeling. { injectionModels: dict { TODO }, air: Mixture (default: database.chemistry.specie.Mixtures.dryAir) The air mixture composition initialMixture: dict { : { premixedFuel: dict (optional) { mixture: Mixture, phi: float, } } }, PremixedCombustionDict: dict Dictionary with data required from PremixedCombustion combustion model See at the helper for function 'fromDictionary' of the specific CombustionModel model selected. } } .. py:method:: _constructThemodynamicModels(combustionProperties: dict | libICEpost.src.base.dataStructures.Dictionary.Dictionary) -> libICEpost.src.engineModel.EngineModel.EngineModel.EngineModel Construct the thermodynamic models of the system, setting their initial mixture composition. Here setting everything to air, to be overwritten in sub-classes. :param combustionProperties: the combustion properties :type combustionProperties: dict|Dictionary :returns: self :rtype: EngineModel .. py:method:: _constructCombustionModel(combustionProperties: dict | libICEpost.src.base.dataStructures.Dictionary.Dictionary) Appending fuel and air to combustionModelDict :param combustionProperties: the combustion properties :type combustionProperties: dict|Dictionary :returns: self :rtype: EngineModel .. py:method:: _preprocessThermoModelInput(inputDict: dict, zone: str) -> dict Set also mixture composition based on xb. NOTE: xb field must be already loaded. :param inputDict: The input dictionary :type inputDict: dict :param zone: zone name :type zone: str :returns: processed input parameters for ThermoModel constructor :rtype: dict