Thickness constraints can be applied in a number of ways. Most simply, when using FFD control, relative thickness constraints are applied to the FFD points themselves via the axial.ctrl file. These constraints are expressed as a factor of the initial distance between corresponding pairs of FFD points on the lower and upper surfaces of a section. These are approximate however since they are applied to the FFD points and not the surface, and they are only relative to the initial geometry; one cannot specify a given t/c requirement. For more accurate the specific constraints, additional nonlinear constraints are available and described below. The below constraints are calculated on the actual surface, not the FFD, so they are more accurate.
The minimum relative thickness, t/c, can be specified at given x/c location(s) for a given sections. For example, if a given t/c is required at the fore and aft spar locations. This constraint is activated with jtstrm%thk_cnstrnt = .true. and takes a file tcon.dat, the structure of which is described below.
The tcon.dat file contains four columns. The first is the constraint number. The second contains the spanwise location normalized with the span (span is determined as the max y coordinate of the FFD points) at which the constraint is applied. The third is the normalized chordwise location at the specified span station at which to apply the thickness constraint. The last column is the lower t/c bound. For the example above, there are 30 constraints total (only 13 are shown), with four constraints at 11.1887% of the span, and at 15%, 90%, and 99.5% of the chord.
This constraint is designed for a single wing, i.e. all FFDs are "stacked" on each other. For example, if there was a tail, the given spanwise location would occur one on each surface and the code could not distinguish between the two.
The "span Loc y/b" should not be set to 0.0 or 1.0 to prevent extraction errors. If the thickness is required at the root and tip, values such as 0.01 and 0.99 should be used instead.
This constraint sets the lower bound for the maximum t/c constraint at different sections. I.e., the maximum t/c is constrained to a minimum value, but its x/c location on the section is free to change. It is calculated by calculating the thickness at a number of chordwise locations along a section and then using a KS function to take the maximum.
It is activated with jtstrm%rangethk_cnstrnt = .true. and the input file tconr.dat. The structure of the tconr.dat file is shown below.
The "chord-sweep range bounds" are the starting and ending location on each station that the thickness is calculated over with which to calculate the maximum. The "chord-sweep increments" is the number of x/c stations on each section between the "chord-sweep range bounds" at which to calculate the thickness to use in the calculation of the maximum. The final table contains the constraint number in the first column. The second column is the span station, y/b, at which to take the section, and the final column is the lower t/c bound. Note that this function uses KS functions to calculate the maximum, so it is a bit conservative, i.e. the actual t/c_max will be a bit smaller than the value specified in this table.
See limitations for the above thickness constraint at a given location. The same limitations apply.