2.6. Section

2.6.1. Class: BasicSection

BasicSection is the parent class that contains information of one curve.

The 3D curve coordinates x, y, z are transformed from a unit 2D curve. The 2D curve coordinates are either xx, yy (an open curve) or xx, yu, yl (a closed curve). A unit 2D curve means it chord length is 1, i.e., xx[0]=0, xx[-1]=1.

The 2D-to-3D transformation is defined by:

  • the 3D location of the leading point (xLE, yLE, zLE);

  • the chord length chord, i.e., \(|| \mathbf{x}_\text{LE} - \mathbf{x}_\text{TE} || = \text{chord}\);

  • the twist angle twist (deg) defining the curve rotation about Z-axis (right hand rule);

  • a flag lTwistAroundLE specifies the rotation center being LE or TE;

  • an optional float specified_thickness that specifies the maximum relative thickness of the closed curve.

The 2D-to-3D transformation is applied when calling BasicSection.section().

 1sec = BasicSection(thick=None, chord=2.0, twist=-3.0, lTwistAroundLE=False)
 2
 3sec.xx = np.linspace(0, 1, 101)
 4sec.yy = np.sin(np.pi*sex.xx)
 5
 6sec.xLE = 1.0
 7sec.yLE = 0.0
 8sec.zLE = 1.0
 9
10sec.section(flip_x=False, projection=True)

2.6.2. Class: OpenSection

OpenSection is a child class of BasicSection, which uses CST method for constructing the unit 2D open curve. The OpenSection.section() automatically construct the 2D curve and transform it to the 3D curve.

1sec = OpenSection(thick=None, chord=2.0, twist=-3.0, lTwistAroundLE=False)
2
3sec.section(cst=cst, nn=1001, flip_x=False, projection=True)

Several additional attributes are available:

  • the CST coefficients of the curve cst;

  • the refinement CST coefficients refine.

2.6.3. Class: Section

Section is a child class of BasicSection, which uses CST method for constructing the unit 2D airfoil, i.e., a closed curve. The Section.section() automatically construct the 2D airfoil and transform it to the 3D curve.

1sec = Section(thick=None, chord=2.0, twist=-3.0, tail=0.01, lTwistAroundLE=False)
2
3sec.section(cst_u=cst_u, cst_l=cst_l, nn=1001, flip_x=False, projection=True)

Several additional attributes are available:

  • a float tail specifies the airfoil tail thickness;

  • the airfoil leading edge radius RLE;

  • the airfoil trailing edge angle te_angle (deg);

  • the slope of the mean camber line at trailing edge te_slope, i.e., \(dy/dx\);

  • the CST coefficients of the upper and lower surface cst_u, cst_l;

  • the refinement CST coefficients refine_u, refine_l.

2.6.4. Class: RoundTipSection

RoundTipSection is a child class of BasicSection. The unit 2D closed curve is a combination of a base shape (Figure 2.6.1) and a CST airfoil. This class is suitable for round trailing edge foils, blades, or plates.

../../_images/base_shape.jpg

Figure 2.6.1 Base shape function

1sec = RoundTipSection(xLE, yLE, zLE, chord, thick, twist, tail,
2            cst_u, cst_l,
3            base_le_ratio, base_te_ratio, base_abs_thick,
4            base_le_radius, base_te_radius,
5            aLE=0.0, aTE=0.0, i_split=None, nn=501, lTwistAroundLE=False)
6
7sec.section(flip_x=False, projection=True)

Compared with Section, several additional parameters are needed:

  • relative leading edge radius of the base shape base_le_radius;

  • relative trailing edge radius of the base shape base_te_radius;

  • actual thickness of the base shape base_abs_thick;

  • ratio of the leading edge and trailing edge region base_le_ratio, base_te_ratio;

  • angle aLE (deg) of the slope at leading edge, i.e., \(dy/dx\);

  • angle aLE (deg) of the slope at leading edge, i.e., \(dy/dx\);

2.6.5. Fitting blade with RoundTipSection

Given a blade (round tips at both ends), you also can use RoundTipSection for fitting. Compared with the direct use of CST fitting (Figure 2.1.6), RoundTipSection is more suitable for thin plate.

../../_images/fitting_blade_RoundTipSection.jpg

Figure 2.6.2 Fitting blade with RoundTipSection

1xx, y_base_shape = RoundTipSection.base_shape()
2dy_base_shape = RoundTipSection.base_camber()
3
4yu_cst = yu_ref - (  y_base_shape - dy_base_shape)
5yl_cst = yl_ref - (- y_base_shape - dy_base_shape)
6
7cst_u, cst_l = cst_foil_fit(xx, yu_cst, xx, yl_cst, n_cst=7, xn1=0.1, xn2=0.1)