libICEpost.src.engineModel.EngineModel.SparkIgnitionEngine

@author: <N. Surname> <e-mail> Last update: DD/MM/YYYY

Classes

SparkIgnitionEngine

Simple spark-ignition engine model with single-zone modeling.

Module Contents

class libICEpost.src.engineModel.EngineModel.SparkIgnitionEngine.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)[source]

Bases: libICEpost.src.engineModel.EngineModel.EngineModel.EngineModel

Simple spark-ignition engine model with single-zone modeling.


Attributes:

Types

Types for each main model

CombustionModel: libICEpost.src.thermophysicalModels.thermoModels.CombustionModel.PremixedCombustion.PremixedCombustion

The combustion model

_fuel: libICEpost.Database.chemistry.specie.Mixtures.Mixture

The current in-cylinder fuel mixture composition

classmethod fromDictionary(dictionary: libICEpost.src.base.dataStructures.Dictionary.Dictionary) libICEpost.src.engineModel.EngineModel.EngineModel.EngineModel[source]

Construct from dictionary like: {

EngineTime: str

Name of the EngineTime model to use

<EngineTime>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

<EngineGeometry>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

} <Thermo>Dict: dict <EquationOfState>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 {

<zoneName>: {

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.

}

}

_constructThemodynamicModels(combustionProperties: dict | libICEpost.src.base.dataStructures.Dictionary.Dictionary) libICEpost.src.engineModel.EngineModel.EngineModel.EngineModel[source]

Construct the thermodynamic models of the system, setting their initial mixture composition. Here setting everything to air, to be overwritten in sub-classes.

Parameters:

combustionProperties (dict|Dictionary) – the combustion properties

Returns:

self

Return type:

EngineModel

_constructCombustionModel(combustionProperties: dict | libICEpost.src.base.dataStructures.Dictionary.Dictionary)[source]

Appending fuel and air to combustionModelDict

Parameters:

combustionProperties (dict|Dictionary) – the combustion properties

Returns:

self

Return type:

EngineModel

_preprocessThermoModelInput(inputDict: dict, zone: str) dict[source]

Set also mixture composition based on xb.

NOTE: xb field must be already loaded.

Parameters:
  • inputDict (dict) – The input dictionary

  • zone (str) – zone name

Returns:

processed input parameters for ThermoModel constructor

Return type:

dict