Download Latest Version geomlib.tar.gz (58.3 kB)
Email in envelope

Get an email when there's a new version of CFD Utilities

Home / POLAR_INTERP
Name Modified Size InfoDownloads / Week
Parent folder
README 2018-08-24 8.4 kB
polar_interp.f90 2018-08-23 28.4 kB
build 2018-08-23 430 Bytes
Totals: 3 Items   37.2 kB 0
POLAR_INTERP Description:

   From surface data representing "spokes" of a symmetric body ordered by
   azimuthal angle, interpolate a single-patch surface grid (and optional
   function data) with specified dimensions. The method can apply to a body
   with off-center nose as well.  The interpolated grid has uniform spacing
   (at least in the initial implementation).

   The intent is to pad coarse input data via nonlinear interpolation in
   the two surface directions using a 1-D spline method, by taking advantage
   of the spoke structure, so that methods appropriate for high-resolution
   data can then be applied.  The initial application is to (expensive)
   radiation calculations on a coarse polar grid that need to be interp-
   olated to a dense CFD mesh.  Direct use of SURFACE_INTERP produces
   faceting because the data cells are so big and the method is a one-cell
   method.

   The azimuthal interpolations are performed versus clock angle, and the
   angles of the data spokes are deduced from the given (x,y,z) coord-
   inates.

   Originally, only half the body was treated but this version has the
   option to treat a full body. In the full body case, the first spoke is
   replicated automatically, and periodic interpolations are employed in
   the azimuthal direction.  In the half body case, the second and second-
   last spokes are reflected automatically so that the interpolations match
   what would be obtained if the missing half body were present (by
   reflection) explicitly.  If the first and/or last spokes do not appear
   to be on the center line, the dataset is still interpolated to a
   structured surface mesh with no symmetry assumptions.

   A few prompts control the run (or a short control file on standard
   input).

   This version provides for replicating the center point as makes sense
   for expensive radiative heating data: one spoke may be indicated as
   containing the center location as its first point; unless 0 is entered
   to suppress this option, each other spoke then has that point inserted
   by this program as its new first point.  Standard input entries:

      xxx.dat             ! Input dataset name
      ni nj               ! Output surface grid dimensions
      yyy.dat             ! Output Tecplot ASCII dataset
      1                   ! Spoke containing center point, or 0

Coordinate System:

   Ox is assumed to be parallel to the symmetry axis, and right handedness
   is assumed.  Oz is "up".

Input Data Format:

   For historical NEQAIR reasons, the input format is PLOT3D-like (header
   records at the top), but in "point" rather than "block" order, with at
   least one spoke beginning with the center point that is assumed to be
   common to all spokes (see above option to replicate this point).  The
   first spoke should be at the 12 o'clock position (with the nose point
   first).  The following spokes may proceed either clockwise or anticlock-
   wise.

   11 3                [Number of spokes and number of functions per spoke]
   15                  [Number of points on spoke 1]
   15                  [  "   "   "   "   "   "   2]
   :
   :
   9                   [  "   "   "   "   "   "  11]
   x y z f1 f2 f3      [Coordinates and functions for point 1 of spoke 1]
   x y z f1 f2 f3
   : : : : : : :
   : : : : : : :
   x y z f1 f2 f3      [  "   "   "   "   "   "   "   "   " 9  "   "  11]

Output Data Format:

   Single-zone Tecplot ASCII dataset, BLOCK order, suited to SURFACE_INTERP
   for likely interpolation to a CFD grid to go with output from BLAYER for
   CBAERO anchoring purposes.

Option (1) To Help Generate Target Spokes:

   Constructing spokes on an "ellipsled" slender-body vehicle prompted this
   option to read surface grid patch indices in the spoked form above, with
   x and y replaced by i and j, and no z or function data.  The output is
   then in the above spoked form (x, y, z only) as needed to define body
   points for radiative heating calculations.  No interpolations are done.

   Alternative Input Data Format (to help prepare the normal input data):

      13  ! # spokes
      18  ! # points on spoke 1:nspokes
      17
      17
      :
      :
      8
      1  1 ! (i,j) defining apex point 1 of spoke 1
      8  1
      16 1
      :  :
      :  :
      8  3
      16 3
      :  :
      :  :
      8  65
      17 65
      :  :
      :  :
      137 65

   If the first token on every line of the dataset prompted for initially
   is an integer (no decimal point), this retrofitted option is assumed,
   and a new prompt for the single-patch surface grid to which the indices
   refer is issued so that indices can be converted to (x,y,z) coordinates.
   This surface grid should be in PLOT3D form, ASCII or unformatted.

   Option (2) To Help Generate Target Spokes:

   For the axisymmetric case, this option expects a form of the generatrix
   as the input dataset entered as the first control input. This should be
   suited to NEQAIR calculations: fairly coarse towards the shoulder where
   tangent-slab results are less appropriate and where use of option (1)
   above via every nth CFD-type surface grid point in the spoke direction
   puts too many points. The input ni and nj for the second prompt should
   be the number of points in this generatrix-type dataset (the "12'oclock"
   spoke, including the center point) and the number of spokes produced from
   this input spoke and nj - 1 evenly-spaced rotations of it about the nose
   point in the anticlockwise direction.  (The repeated nose point from the
   rotated spokes is suppressed in the output dataset, the name of which is
   prompted for. As with Option (1) above, this dataset matches the normal
   input form with header indices but without any function data.)

   The input dataset in this case looks like this:

   x  y  ! Nose coordinates
   x  y  ! Further points along the generatrix at the 12 o'clock position
   x  y  ! y is likely to be 0. on all lines
   x  y
   :  :
   x  y

   Option (2) is detected by the decimal point(s) expected on line 1, so
   don't enter 0  0 (integers) there.

History:

   08/29/08  D.A.S.     Initial implementation as part of an alternative
                        to giving NEQAIR a (coarse) surface triangulation.
                        Preserving some structure and padding should allow
                        fewer coarse surface points than the unstructured
                        approach to putting points where they're needed.

   10/06/08  "      "   Added the option to replicate the first (center)
                        point of one spoke as the first point for all other
                        spokes, as makes sense for radiative heating data.

   05/19/09  "      "   Retrofitted an option to read indices defining the
                        spoked data points needed to set up body point
                        coordinates for radiative heating calculations.
                        A PLOT3D-type surface grid must accompany the input
                        data file if it apparently contains (i,j) indices
                        that define the spokes rather than (x,y,z,f) data.
                        Only a single-patch grid appears necessary, as
                        produced by HEAT_SHIELD (but with y and z swapped
                        to be compatible with DPLR).

   06/15/12  "      "   Jeff Brown had wind tunnel data on both halves of
                        an inflatable decelerator, prompting the option to
                        handle more than just half-body datasets.  The
                        spoke order may be clockwise or anticlockwise but
                        spoke 1 should be at 12 o'clock for half and whole
                        body cases.  (Parts of bodies may still be OK no
                        matter where they start, with no symmetry assump-
                        tions made.)

   06/18/12  "      "   The full-body case can use LCSFIT's cyclic option,
                        at least for the geometry.

   08/22/18   "     "   Belated addition of a simple second way of generat-
                        ing target spoke coordinates via rotation of a
                        generatrix-like spoke 1, for axisymmetric cases.

Author:  David Saunders, ELORET Corporation/NASA Ames Research Center, CA
                         (later with ERC, Inc. and AMA, Inc. at NASA ARC)
Source: README, updated 2018-08-24