gemseo / problems / sobieski

core_aerodynamics module

SSBJ Aerodynamics computation

class gemseo.problems.sobieski.core_aerodynamics.SobieskiAerodynamics(sobieski_base)[source]

Bases: object

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

Constructor

DTYPE_COMPLEX = 'complex128'
DTYPE_DOUBLE = 'float64'
PRESSURE_GRADIENT_LIMIT = 1.04
blackbox_aerodynamics(x_shared, y_12, y_32, x_2, true_cstr=False)[source]

This function calculates drag and lift to drag ratio of A/C.

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_12 (numpy array) –

    shared variables coming from blackbox_structure:

    • y_12[0]: total aircraft weight

    • y_12[1]: wing twist

  • y_32 (numpy array) –

    shared variables coming from blackbox_propulsion:

    • y_32[0]: engine scale factor

  • x_2 (numpy array) –

    aero. design variable:

    • x_2[0]: friction coeff

  • true_cstr – Default value = False)

Returns

y_2, y_21, y_23, y_24, g_2

  • y_2: aero. analysis outputs

    • y_2[0]: lift

    • y_2[1]: drag

    • y_2[2]: lift/drag ratio

  • y_21: shared variable for blackbox_structure (lift)

  • y_23: shared variable for blackbox_propulsion (drag)

  • y_24: shared variable for BlackBoxMission (lift/drag ratio)

  • g_2: aero constraint (pressure gradient)

Return type

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

compute_adim_coeff(force, sref, mach, altitude)[source]

Compute adim. force coeff from force (lift or drag)

Parameters
  • force (float) – Force

  • sref (float) – reference surface

  • mach (float) – Mach number

  • altitude (float) – altitude

Returns

force coefficient: Cl or Cd according to input force

Return type

float

compute_cd(x_shared, lift_coeff, fo1, fo2)[source]

Computation of total drag coefficient

Parameters
  • x_shared (numpy array) – global design variables

  • lift_coeff (numpy array) – lift coefficient

  • fo1 (numpy array) – coefficient for engine size

  • fo2 (numpy array) – coefficient for twist influence on drag

Returns

drag_coefficient : drag coefficient

Return type

numpy array

compute_cd_min(x_shared, fo1)[source]

Computation of a 2D minimum drag coefficient

Parameters
  • x_shared (numpy array) – global design variables

  • fo1 (numpy array) – coefficient for engine size

Returns

CDmin : drag coefficient

Return type

numpy array

compute_cl(x_shared, y_12)[source]

Computation of lift coefficient

Parameters
  • x_shared (numpy array) – global design variables

  • y_12 (numpy array) – coupling variable from weight analysis

Returns

lift coefficient Cl

Return type

numpy array

compute_dadimcf_dcf(x_2)[source]

Computation of a derivative of adim friction coeff of polynomial wrt friction coeff

Parameters

x_2 (numpy array) – local design variables

Returns

derivative of adim friction coeff of polynomial wrt friction coeff

Return type

numpy array

compute_dadimesf_desf(y_32)[source]

Computation of a derivative of adim ESF of polynomial wrt ESF

Parameters

y_32 (numpy array) – coupling variable from propulsion analysis

Returns

derivative of adim ESF of polynomial wrt ESF

Return type

numpy array

compute_dadimtaper_dtaper(x_shared)[source]

Computation of a derivative of adim taper-ratio of polynomial wrt taper-ratio

Parameters

x_shared (numpy array) – global design variables

Returns

derivative of adim taper-ratio of polynomial wrt taper-ratio

Return type

numpy array

compute_dadimtwist_dtwist(y_12)[source]

Computation of a derivative of adim twist of polynomial wrt twist

Parameters

y_12 (numpy array) – coupling variable from weight analysis

Returns

derivative of adim twist of polynomial wrt twist

Return type

numpy array

compute_dcd_dmach(x_shared, y_12, fo2)[source]

Computation of derivative of drag coefficient wrt Mach

Parameters
  • x_shared (numpy array) – global design variables

  • y_12 (numpy array) – coupling variable from weight analysis

  • fo2 (numpy array) – coefficient for twist influence on drag

Returns

dcd_dmach

Return type

numpy array

compute_dcd_dsref(x_shared, y_12, fo2)[source]

Computation of derivative of drag coefficient wrt sweep

Parameters
  • x_shared (numpy array) – global design variables

  • y_12 (numpy array) – lift coefficient

  • fo2 (numpy array) – coefficient for twist influence on drag

Returns

dCd/dsweep

Return type

numpy array

compute_dcd_dsweep(x_shared, lift_coeff, fo2)[source]

Computation of derivative of drag coefficient wrt sweep

Parameters
  • x_shared (numpy array) – global design variables

  • lift_coeff (numpy array) – lift coefficient

  • fo2 (numpy array) – coefficient for twist influence on drag

Returns

dCd/dsweep

Return type

numpy array

static compute_dcdmin_dsweep(x_shared)[source]

Computation of derivative of 2D minimum drag coefficient wrt sweep

Parameters

x_shared (numpy array) – global design variables

Returns

dCDmin_dsweep

Return type

numpy array

compute_dcl_dh(x_shared, y_12)[source]

Computation of derivative of lift coefficient wrt altitude

Parameters
  • x_shared (numpy array) – global design variables

  • y_12 (numpy array) – coupling variable from weight analysis

Returns

derivative of lift coefficient wrt altitude

Return type

numpy array

compute_dcl_dmach(x_shared, y_12)[source]

Computation of derivative of lift coefficient wrt reference surface

Parameters
  • x_shared (numpy array) – global design variables

  • y_12 (numpy array) – coupling variable from weight analysis

Returns

derivative of lift coefficient wrt reference surface

Return type

numpy array

compute_dcl_dsref(x_shared, y_12)[source]

Computation of derivative of lift coefficient wrt Mach number

Parameters
  • x_shared (numpy array) – global design variables

  • y_12 (numpy array) – coupling variable from weight analysis

Returns

derivative of lift coefficient wrt Mach number

Return type

numpy array

static compute_dk_aero_dmach(x_shared)[source]

Computation of a derivative of k_aero wrt Mach

Parameters

x_shared (numpy array) – global design variables

Returns

dk_aero_dmach

Return type

numpy array

static compute_dk_aero_dsweep(x_shared)[source]

Computation of a derivative of k_aero wrt sweep

Parameters

x_shared (numpy array) – global design variables

Returns

dk_aero_dsweep

Return type

numpy array

compute_drag(drag_coeff, x_shared)[source]

Computation of drag from drag coefficient

Parameters
  • drag_coeff (numpy array) – lift coefficient

  • x_shared (numpy array) – global design variables

Returns

drag as a force

Return type

numpy array

compute_drho_dh_dv_dh(mach, altitude)[source]

Compute derivative of velocity and density wrt altitude

Parameters
  • mach (float) – Mach number

  • altitude (float) – altitude

Returns

drho_dh, dv_dh

Return type

float

compute_drhov2_dh(x_shared)[source]

Computation of derivative of rhoV**2 wrt altitude

Parameters

x_shared (numpy array) – global design variables

Returns

drhov2_dh (derivative of rhoV**2 wrt altitude)

Return type

numpy array

compute_drhov2_dmach(x_shared)[source]

Computation of derivative of rhoV**2 wrt Mach

Parameters

x_shared (numpy array) – global design variables

Returns

drhov2_dmach (derivative of rhoV**2 wrt Mach)

Return type

numpy array

compute_dv_dmach(altitude)[source]

Computation of derivative of velocity wrt Mach

Parameters

altitude (numpy array) – altitude

Returns

drhov2_dmach (derivative of rhoV**2 wrt Mach)

Return type

numpy array

compute_force(adim_coeff, sref, mach, altitude)[source]

Compute force (lift or drag) from adim coeff

Parameters
  • adim_coeff (float) – force coefficient

  • sref (float) – reference surface

  • mach (float) – Mach number

  • altitude (float) – altitude

Returns

force: lift or drag

Return type

float

compute_k_aero(x_shared)[source]

Computation of a induced drag coefficient (related to lift)

Parameters

x_shared (numpy array) – global design variables

Returns

k_aero

Return type

numpy array

compute_rho_v(mach, altitude)[source]

From given Mach number and altitude, compute velocity and density

Parameters
  • mach (float) – Mach number

  • altitude (float) – altitude

Returns

rho, velocity : density and velocity

Return type

float

compute_rhov2(x_shared)[source]

Computation of rho * velocity * velocity (2*dynamic pressure)

Parameters

x_shared (numpy array) – global design variables

Returns

rho * velocity * velocity

Return type

numpy array

derive_blackbox_aerodynamics(x_shared, y_12, y_32, x_2)[source]

This function calculates drag and lift to drag ratio of A/C.

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_12 (numpy array) –

    shared variables coming from blackbox_structure:

    • y_12[0]: total aircraft weight

    • y_12[1]: wing twist

  • y_32 (numpy array) –

    shared variables coming from blackbox_propulsion:

    • y_32[0]: engine scale factor

  • x_2 (numpy array) –

    aero. design variable:

    • x_2[0]: friction coeff

Returns

jacobian matrix of partial derivatives

Return type

dict(dict(ndarray))