pg_scale

Module Contents

Classes

ScaleFromPrandtlGlauert

Scale the Prandtl-Glauert transformed forces to get the physical forces

ScaleToPrandtlGlauert

Scale the wind frame coordinates to get the Prandtl-Glauert transformed

class pg_scale.ScaleFromPrandtlGlauert

Bases: csdl.CustomExplicitOperation

Scale the Prandtl-Glauert transformed forces to get the physical forces Prandtl-Glauert transformed geometry.

The inverse Prandtl-Glauert transformation for forces is defined as below:

F_x_wind = F_x_pg/B^4 F_y_wind = F_y_pg/B^3 F_z_wind = F_z_pg/B^3

where B = sqrt(1 - M^2).

Parameters
sec_forces_pg[nx-1, ny-1, 3]numpy array

Force vectors on each panel (lattice) in PG domain.

Mfloat

Freestream Mach number.

Returns
sec_forces_w_frame[nx-1, ny-1, 3]numpy array

Force vectors on each panel (lattice) in wind frame.

compute(inputs, outputs)
compute_partials(inputs, partials)
define()
initialize()
class pg_scale.ScaleToPrandtlGlauert

Bases: csdl.CustomExplicitOperation

Scale the wind frame coordinates to get the Prandtl-Glauert transformed geometry.

The Prandtl glauert transformation is defined as below:

Coordinates x_pg = x_wind y_pg = B*y_wind z_pg = B*z_wind

Normals n_x_pg = B*n_x_wind n_y_pg = n_y_wind n_z_pg = n_z_wind

Perturbation velocities v_x_pg = B^2*v_x_wind v_y_pg = B*v_y_wind v_z_pg = B*v_z_wind

where B = sqrt(1 - M^2). Note: The freestream velocity remains untransformed and therefore is not included in this component.

Parameters
def_mesh_w_frame[nx, ny, 3]numpy array

Array defining the nodal coordinates of the lifting surface in aero frame.

bound_vecs_w_frame[num_eval_points, 3]numpy array

The vectors representing the bound vortices for each panel in the problem. This array contains points for all lifting surfaces in the problem.

coll_pts_w_frame[num_eval_points, 3]numpy array

The xyz coordinates of the collocation points used in the VLM analysis. This array contains points for all lifting surfaces in the problem.

force_pts_w_frame[num_eval_points, 3]numpy array

The xyz coordinates of the force points used in the VLM analysis. We evaluate the velocity of the air at these points to get the sectional forces acting on the panel. This includes both the freestream and the induced velocity acting at these points. This array contains points for all lifting surfaces in the problem.

normals_w_frame[nx-1, ny-1, 3]numpy array

The normal vector for each panel in aero frame, computed as the cross of the two diagonals from the mesh points.

rotational_velocities_w_frame[num_eval_points, 3]numpy array

The rotated freestream velocities at each evaluation point for all lifting surfaces. This array contains points for all lifting surfaces in the problem.

Mfloat

Freestream Mach number.

Returns
def_mesh_pg[nx, ny, 3]numpy array

Array defining the nodal coordinates of the lifting surface in PG frame.

bound_vecs_pg[num_eval_points, 3]numpy array

Bound points in PG frame.

coll_pts_pg[num_eval_points, 3]numpy array

Collocation points in PG frame.

force_pts_pg[num_eval_points, 3]numpy array

Force points in PG frame.

normals_pg[nx-1, ny-1, 3]numpy array

The normal vector for each panel in PG frame.

rotational_velocities_pg[num_eval_points, 3]numpy array

Velocity component at collocation points due to rotational velocity in PG frame.

compute(inputs, outputs)
compute_partials(inputs, partials)
define()
initialize()