gemseo / problems / sobieski

core_propulsion module

SSBJ Propulsion computations

Classes:

SobieskiPropulsion(sobieski_base)

Class defining propulsion analysis for Sobieski problem and related method to the propulsion problem such as disciplines computation, constraints, reference optimum.

class gemseo.problems.sobieski.core_propulsion.SobieskiPropulsion(sobieski_base)[source]

Bases: object

Class defining propulsion analysis for Sobieski problem and related method to the propulsion problem such as disciplines computation, constraints, reference optimum.

Constructor.

Attributes:

DTYPE_COMPLEX

DTYPE_DOUBLE

ESF_LOWER_LIMIT

ESF_UPPER_LIMIT

TEMPERATURE_LIMIT

Methods:

blackbox_propulsion(x_shared, y_23, x_3[, ...])

This function calculates fuel comsumption, engine weight and engine scale factor.

compute_dengineweight_dvar(esf, desf_dx)

Computes derivative of engine weight wrt to a variable(drag or throttle)

compute_desf_ddrag(adim_throttle)

Compute derivative of ESF wrt aero drag.

compute_desf_dthrottle(drag, adim_throttle)

Compute derivative of ESF wrt aero drag.

compute_dim_throttle(adim_throttle)

Compute a dimensioned value of throttle from adim value.

compute_dsfc_dh(x_shared, adim_throttle)

Compute derivative of sfc constraint wrt altitude.

compute_dsfc_dmach(x_shared, adim_throttle)

Compute derivative of sfc constraint wrt Mach number.

compute_dsfc_dthrottle(x_shared, adim_throttle)

Compute derivative of sfc constraint wrt throttle.

compute_dthrcons_dh(x_shared, adim_throttle)

Compute derivative of throttle constraint wrt altitude.

compute_dthrconst_dmach(x_shared, adim_throttle)

Compute derivative of throttle constraint wrt Mach number.

compute_dthrconst_dthrottle(x_shared)

Compute derivative of throttle constraint wrt throttle.

compute_engine_weight(esf)

Compute engine weight.

compute_esf(drag, adim_throttle)

Compute engine scale factor.

compute_sfc(x_shared, adim_throttle)

Compute Specific Fuel Consumption (SFC) from global design variables (M, h,) and local design variable (throttle) by polynomial function.

compute_temp(x_shared, x_3)

Compute engine temperature.

compute_throttle_constraint(x_shared, ...)

Compute throttle constraint (M, h,) and local design variable (throttle) by polynomial function.

compute_throttle_ua(x_shared)

Compute throttle upper limit from global design variables (M, h,)

derive_blackbox_propulsion(x_shared, y_23, x_3)

Compute jacobian matrix of propulsion analysis.

DTYPE_COMPLEX = 'complex128'
DTYPE_DOUBLE = 'float64'
ESF_LOWER_LIMIT = 0.5
ESF_UPPER_LIMIT = 1.5
TEMPERATURE_LIMIT = 1.02
blackbox_propulsion(x_shared, y_23, x_3, true_cstr=False)[source]

This function calculates fuel comsumption, engine weight and engine scale factor.

Parameters
  • x_shared (numpy array) –

    shared design variable vector:

    • x_shared[0]: thickness/chord ratio

    • x_shared[1]: altitude

    • x_shared[2]: Mach

    • x_shared[3]: aspect ratio

    • x_shared[4]: wing sweep

    • x_shared[5]: wing surface area

  • y_23 (numpy array) – shared variables coming from blackbox_aerodynamics (drag)

  • x_3 (numpy array) – power/propulsion design variable (throttle setting)

  • true_cstr

    Default value = False)

    By default it is set to False.

Returns

y_3, y_34, y_31, y_32, g_3:

  • y_3: output variables for propulsion analysis

    • y_3[0]: SFC

    • y_3[1]: engine weight

    • y_3[2]: engine scale factor

  • y_34: shared variable for BlackBoxMission (SFC)

  • y_31: shared variable for blackbox_structure (engine weight)

  • y_32: shared variable for blackbox_aerodynamics (esf)

  • g_3: propulsion constraints

    • g_3[0]: engine scale factor constraint

    • g_3[1]: engine temperature

    • g_3[2]: throttle setting constraint

Return type

numpy array, numpy array, numpy array, numpy array, numpy array

compute_dengineweight_dvar(esf, desf_dx)[source]

Computes derivative of engine weight wrt to a variable(drag or throttle)

Parameters
  • esf (float) – ESF

  • desf_dx (numpy array) – partial derivative of ESF wrt to input variable

Returns

derivative of engine weight wrt a variable (drag or throttle)

Return type

numpy array

compute_desf_ddrag(adim_throttle)[source]

Compute derivative of ESF wrt aero drag.

Parameters

adim_throttle (numpy array) – local design variables

Returns

derivative of ESF wrt drag

Return type

numpy array

compute_desf_dthrottle(drag, adim_throttle)[source]

Compute derivative of ESF wrt aero drag.

Parameters
  • drag (numpy array) – coupling design variables

  • adim_throttle (numpy array) – local design variables

Returns

derivative of ESF wrt drag

Return type

numpy array

compute_dim_throttle(adim_throttle)[source]

Compute a dimensioned value of throttle from adim value.

Parameters

adim_throttle (numpy array) – local design vector

Returns

throttle

Return type

numpy array

compute_dsfc_dh(x_shared, adim_throttle)[source]

Compute derivative of sfc constraint wrt altitude.

Parameters
  • x_shared (numpy array) – global design vector

  • adim_throttle (numpy array) – local design vector

Returns

dsfc_dh

Return type

numpy array

compute_dsfc_dmach(x_shared, adim_throttle)[source]

Compute derivative of sfc constraint wrt Mach number.

Parameters
  • x_shared (numpy array) – global design vector

  • adim_throttle (numpy array) – local design vector

Returns

dsfc_dmach

Return type

numpy array

compute_dsfc_dthrottle(x_shared, adim_throttle)[source]

Compute derivative of sfc constraint wrt throttle.

Parameters
  • x_shared (numpy array) – global design vector

  • adim_throttle (numpy array) – local design vector

Returns

dsfc_dthrottle

Return type

numpy array

compute_dthrcons_dh(x_shared, adim_throttle)[source]

Compute derivative of throttle constraint wrt altitude.

Parameters
  • x_shared (numpy array) – global design vector

  • adim_throttle (numpy array) – local design vector

Returns

dthrottle_constraint_dh

Return type

numpy array

compute_dthrconst_dmach(x_shared, adim_throttle)[source]

Compute derivative of throttle constraint wrt Mach number.

Parameters
  • x_shared (numpy array) – global design vector

  • adim_throttle (numpy array) – local design vector

Returns

dthrottle_constraint_dmach

Return type

numpy array

compute_dthrconst_dthrottle(x_shared)[source]

Compute derivative of throttle constraint wrt throttle.

Parameters

x_shared (numpy array) – global design vector

Returns

dthrottle_constraint_dthrottle

Return type

numpy array

compute_engine_weight(esf)[source]

Compute engine weight.

Parameters

esf – engine scale factor

Returns

engine weight

Return type

numpy array

compute_esf(drag, adim_throttle)[source]

Compute engine scale factor.

Parameters
  • drag (float) – drag

  • adim_throttle (float) – throttle (not dimensioned)

Returns

Engine Scale Factor

Return type

numpy array

compute_sfc(x_shared, adim_throttle)[source]

Compute Specific Fuel Consumption (SFC) from global design variables (M, h,) and local design variable (throttle) by polynomial function.

Parameters
  • x_shared (numpy array) – global design vector

  • adim_throttle (numpy array) – local design vector

Returns

sfc

Return type

numpy array

compute_temp(x_shared, x_3)[source]

Compute engine temperature.

Parameters
  • x_3 (numpy array) – local design vector

  • x_shared (numpy array) – global design vector

Returns

engine temperature

Return type

numpy array

compute_throttle_constraint(x_shared, adim_throttle)[source]

Compute throttle constraint (M, h,) and local design variable (throttle) by polynomial function.

Parameters
  • x_shared (numpy array) – global design vector

  • adim_throttle (numpy array) – local design vector

Returns

throttle constraint as throttle / throttle_ua - 1.0

Return type

numpy array

compute_throttle_ua(x_shared)[source]

Compute throttle upper limit from global design variables (M, h,)

Parameters

x_shared (numpy array) – global design vector

Returns

throttle_uA

Return type

numpy array

derive_blackbox_propulsion(x_shared, y_23, x_3, true_cstr=False)[source]

Compute jacobian matrix of propulsion analysis.

Parameters
  • x_shared (numpy array) –

    shared design variable vector:

    • x_shared[0]: thickness/chord ratio

    • x_shared[1]: altitude

    • x_shared[2]: Mach

    • x_shared[3]: aspect ratio

    • x_shared[4]: wing sweep

    • x_shared[5]: wing surface area

  • y_23 (numpy array) – shared variables coming from blackbox_aerodynamics (drag)

  • x_3 (numpy array) – power/propulsion design variable (throttle setting)

  • true_cstr

    Default value = False)

    By default it is set to False.

Returns

jacobian : Jacobian matrix

Return type

dict(dict(ndarray))