fastga_he.models.propulsion.components.source.pemfc.components.perf_pemfc_polarization_curve module
- class fastga_he.models.propulsion.components.source.pemfc.components.perf_pemfc_polarization_curve.PerformancesPEMFCStackPolarizationCurveEmpirical(**kwargs)[source]
Bases:
ExplicitComponentComputation of the PEMFC polarization curve. This model is based on Aerostack Ultralight 200W PEMFC. Details can be found in [Hoo18].
Store some bound methods so we can detect runtime overrides.
- compute(inputs, outputs, discrete_inputs=None, discrete_outputs=None)[source]
Compute outputs given inputs. The model is assumed to be in an unscaled state.
An inherited component may choose to either override this function or to define a compute_primal function.
- Parameters:
inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].
outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].
discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.
discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.
- compute_partials(inputs, partials, discrete_inputs=None)[source]
Compute sub-jacobian parts. The model is assumed to be in an unscaled state.
- Parameters:
inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].
partials (Jacobian) – Sub-jac components written to partials[output_name, input_name]..
discrete_inputs (dict or None) – If not None, dict containing discrete input values.
- class fastga_he.models.propulsion.components.source.pemfc.components.perf_pemfc_polarization_curve.PerformancesPEMFCStackPolarizationCurveAnalytical(**kwargs)[source]
Bases:
ExplicitComponentComputation of the single layer voltage of the PEMFC.This model is based on analytical i-v curve equation. Details can be found in [Jus21] and [OhayreCCP16]. The hydrogen oxidation reaction is assumed to produce liquid water following [BL05].
Store some bound methods so we can detect runtime overrides.
- setup_partials()[source]
Declare partials.
This is meant to be overridden by component classes. All partials should be declared here since this is called after all size/shape information is known for all variables.
- compute(inputs, outputs, discrete_inputs=None, discrete_outputs=None)[source]
Compute outputs given inputs. The model is assumed to be in an unscaled state.
An inherited component may choose to either override this function or to define a compute_primal function.
- Parameters:
inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].
outputs (Vector) – Unscaled, dimensional output variables read via outputs[key].
discrete_inputs (dict-like or None) – If not None, dict-like object containing discrete input values.
discrete_outputs (dict-like or None) – If not None, dict-like object containing discrete output values.
- compute_partials(inputs, partials, discrete_inputs=None)[source]
Compute sub-jacobian parts. The model is assumed to be in an unscaled state.
- Parameters:
inputs (Vector) – Unscaled, dimensional input variables read via inputs[key].
partials (Jacobian) – Sub-jac components written to partials[output_name, input_name]..
discrete_inputs (dict or None) – If not None, dict containing discrete input values.