sampling¶
Module for sampling thermochemical data and global metrics
- class pymars.sampling.InputIgnition(kind: str, temperature: float, pressure: float, end_time: float = 0.0, max_steps: int = 10000, equivalence_ratio: float = 0.0, fuel: Dict = {}, oxidizer: Dict = {}, reactants: Dict = {}, composition_type: str = 'mole')¶
Holds input parameters for a single autoignition case.
- class pymars.sampling.InputLaminarFlame(temperature: float, pressure: float, width: float = 0.1, equivalence_ratio: float = 0.0, fuel: Dict = {}, oxidizer: Dict = {}, reactants: Dict = {}, composition_type: str = 'mole')¶
Holds input parameters for single laminar flame simulation.
Freely-propagating laminar flames are inherently constant pressure.
- class pymars.sampling.InputPSR(temperature: float, pressure: float, equivalence_ratio: float = 0.0, fuel: Dict = {}, oxidizer: Dict = {}, reactants: Dict = {}, composition_type: str = 'mole')¶
Holds input parameters for a single perfectly stirred reactor (PSR) case.
PSR cases are modeled as adiabatic and constant-pressure.
temperatureis the inlet temperature.
- pymars.sampling.calculate_error(metrics_original, metrics_test)¶
Calculates error of global metrics between test and original model.
- Parameters:
metrics_original (numpy.ndarray) – Metrics serving as basis of error calculation
metrics_test (numpy.ndarray) – Metrics for which error is being calculated with respect to
metrics_original
- Returns:
error – Maximum error over all metrics
- Return type:
- pymars.sampling.flame_sample_worker(flamesim_tuple)¶
Worker for multiprocessing of laminar flame cases with data sampling.
- pymars.sampling.flame_worker(flamesim_tuple)¶
Worker for multiprocessing of laminar flame speed only cases.
- pymars.sampling.ignition_sample_worker(sim_tuple)¶
Worker for multiprocessing of autoignition cases with data sampling.
Runs, processes, and cleans up the case entirely within the worker, returning only the (picklable) metric and sampled data – mirroring
flame_sample_worker. The intermediate HDF5 file written byrun_caseis read byprocess_resultsand removed bycleanhere, so the live (unpicklable) reactor never needs to cross the process boundary.
- pymars.sampling.ignition_worker(sim_tuple)¶
Worker for multiprocessing of ignition delay only cases.
- pymars.sampling.parse_flame_inputs(model, conditions, phase_name='')¶
Parses input for laminar flame simulations, raising an error on any errors.
- Parameters:
- Returns:
List of validated objects with laminar flame input parameters
- Return type:
- pymars.sampling.parse_ignition_inputs(model, conditions, phase_name='')¶
Parses input for autoignition simulations, raising an error on any errors.
- Parameters:
- Returns:
List of validated objects with autoignition input parameters
- Return type:
- pymars.sampling.parse_psr_inputs(model, conditions, phase_name='')¶
Parses input for PSR simulations, raising an error on any errors.
- pymars.sampling.psr_sample_worker(sim_tuple)¶
Worker for multiprocessing of PSR cases with data sampling.
Runs, processes, and samples the case entirely within the worker (the PSR solver writes no intermediate file), returning the (picklable) metric vector and sampled data.
- pymars.sampling.psr_worker(sim_tuple)¶
Worker for multiprocessing of PSR metric-only cases.
- pymars.sampling.read_metrics(ignition_conditions, psr_conditions=[], flame_conditions=[])¶
Reads in stored already-sampled metrics.
- Parameters:
ignition_conditions (list of InputIgnition) – List of autoignition initial conditions.
psr_conditions (list of InputPSR, optional) – List of PSR simulation conditions.
flame_conditions (list of InputLaminarFlame, optional) – List of laminar flame simulation conditions.
- Returns:
Combined metrics for the model (ignition delays followed by flame speeds), used for evaluating error
- Return type:
- pymars.sampling.sample(model, ignition_conditions, psr_conditions=[], flame_conditions=[], phase_name='', num_threads=1, path='', min_flame_speed=None)¶
Samples thermochemical data and generates metrics for various phenomena.
Supports autoignition delay, PSR, and laminar flame speed metrics.
- Parameters:
model (str) – Filename for Cantera model for performing simulations
ignition_conditions (list of InputIgnition) – List of autoignition initial conditions.
psr_conditions (list of InputPSR, optional) – List of PSR simulation conditions.
flame_conditions (list of InputLaminarFlame, optional) – List of laminar flame simulation conditions.
phase_name (str, optional) – Optional name for phase to load from YAML file (e.g., ‘gas’).
num_threads (int) – Number of CPU threads to use for performing simulations in parallel. Optional; default = 1, in which the multiprocessing module is not used. If 0, then use the available number of cores minus one. Otherwise, use the specified number of threads.
path (str, optional) – Optional path for writing files
- Returns:
Metrics, and sampled data
- Return type:
- pymars.sampling.sample_metrics(model, ignition_conditions, psr_conditions=[], flame_conditions=[], phase_name='', num_threads=1, path='', reuse_saved=False, min_flame_speed=None)¶
Evaluates metrics used for determining error of reduced model
Supports autoignition delay, laminar flame speed, and PSR temperature response curve metrics.
- Parameters:
model (str) – Filename for Cantera model for performing simulations
ignition_conditions (list of InputIgnition) – List of autoignition initial conditions.
psr_conditions (list of InputPSR, optional) – List of PSR simulation conditions.
flame_conditions (list of InputLaminarFlame, optional) – List of laminar flame simulation conditions.
phase_name (str, optional) – Optional name for phase to load from YAML file (e.g., ‘gas’).
num_threads (int, optional) – Number of CPU threads to use for performing simulations in parallel. Optional; default = 1, in which the multiprocessing module is not used. If 0, then use the available number of cores minus one. Otherwise, use the specified number of threads.
path (str, optional) – Optional path for writing files
reuse_saved (bool, optional) – Flag to reuse saved output
- Returns:
Combined metrics for the model (ignition delays, PSR temperature response curve, flame speeds), used for evaluating error
- Return type: