| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README | 2019-04-04 | 6.4 kB | |
| capsule_spokes.f90 | 2019-04-04 | 12.7 kB | |
| build | 2018-09-19 | 395 Bytes | |
| Totals: 3 Items | 19.5 kB | 0 | |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
program capsule_spokes
! Description:
!
! This utility is intended to complement the POLAR_INTERP scheme by defining
! body points along capsule heat shield (or aft body) spokes at which the
! NEQAIR radiation solver is intended to be run. POLAR_INTERP turns the
! radiative heat fluxes at those body points into a structured surface data-
! set by interpolating nonlinearly across spokes in the azimuthal direction
! after regularizing the spoke point counts. This in turn may be interp-
! olated to a desired mesh (SURFACE_INTERP) or contour-plotted directly.
! [The same scheme is also applicable to mass loss data gathered with
! material ablation solver FIAT in place of NEQAIR.]
!
! Assumptions:
!
! > The capsule geometry smooth outer mold line is axisymmetric.
! > The analysis is to be at nonzero angle of attack (NOT axisymmetric).
! > The supplied portion of a generatrix consists of the points desired
! along the vertical symmetry plane slice. It is expected to be confined
! to either the forebody or to the aft body--not both, in order to avoid
! complications involving duplicate end points common to all spokes.
! > Further spokes are defined simply by rotating this generatrix.
! > The first spoke (input generatrix fragment) should be at the 12 o'clock
! position, with the centerline point first (as for POLAR_INTERP).
! > The spokes may proceed either clockwise or anticlockwise (" " ").
! Angles 0 through +180 degrees in the one-line file mentioned below
! produce the right-hand half of a whole body or forebody surface.
! > If the generatrix represents the aft body (only), the outputs will
! start with the centerline point. I.e., the input order along the
! generatrix may be reversed if necessary. Positive angles produce the
! right hand half as for the forebody.
! > The spokes are traditionally NOT uniformly spaced. Therefore, an
! angular distribution defining the further spokes is read as input.
!
! Inputs:
!
! A few prompts suffice for file names and padded mesh dimensions.
!
! The generatrix should look something like this (read to EOF):
!
! x1 z1 [0.] or x1 0. z1 ! 2 or 3 columns;
! x2 z2 [0.] x2 0. z2 ! if 3 columns, the column with smallest
! x3 z3 [0.] x3 0. z3 ! data range is suppressed and the other
! : : [ :] : : : ! two are treated as x and y.
!
! If the first point is not at y = 0, it is reversed in place to make the
! first point the centerline point. If the resulting first point is still
! not at y = 0, this is a fatal error because the spokes produced here are
! supposed to have a common center point (that is suppressed in all but the
! first spoke to avoid unnecessary NEQAIR runs; POLAR_INTERP handles the
! suppressed points).
!
! The angular spoke coordinates should appear in a one-line file something
! like this (read as reals):
!
! 0 5 10 15 25 35 ... 155 165 170 175 180
!
! See assumptions above for the meaning of positive angles here, in degrees.
!
! Output Format:
!
! Achieving compatibility with the PREPARE_NEQAIR_DATA scheme that will
! probably be employed prior to the POLAR_INTERP step is a little awkward.
! The solution is to number the points of all spokes from 1 through N where
! N is the total number of points from all spokes. The main output of
! 'x y z' coordinates produced here then serves as the body point list
! expected by PREPARE_NEQAIR_DATA. Then NEQAIR results will appear in
! directories /LINE-1, /LINE-2, ..., /LINE-N.
!
! Using the command "grep Total LINE-*/neqair.out > total.txt" (say) will
! produce a total.txt file that starts like this:
!
! LINE-1/neqair.out:Total radiative heating ... = 2.468401 W/cm2
! LINE-11/neqair.out:Total radiative heating ... = 3.170634 W/cm2
! LINE-12/...
! ...
! LINE-19/...
! LINE-2/...
! LINE-20/...
!
! In order to obtain the desired order, LINE-1, LINE-2, ..., another utility
! by the present author, named SORT_ROWS, can be used with 'LINE-' as the
! prefix prompted for. This will order the heat fluxes to match the list
! of body point coordinates (for all spokes) written here. Then some other
! utility such as COLUMNEDIT (same author) can append the heat fluxes to the
! table of coordinates.
!
! This program also writes the POLAR_INTERP-type header that needs to be
! inserted at the top of the combined "x y z f" table after the function
! data (NEQAIR or maybe FIAT) have been appended to the body point coords.
! generated here. The file names are hard-coded as 'header.dat' and
! 'body-points.dat'.
!
! The gyrations between running NEQAIR and running POLAR_INTERP may easily
! be scripted.
!
! Advantage is taken of POLAR_INTERP's option to avoid repeating NEQAIR runs
! at the origin of all spokes.
!
! History:
!
! 08/09/2017 D.A.Saunders Initial design.
! 08/18/2017 " " Initial coding and testing after a hiatus.
! 08/22/2017 " " Diagnostics on input data are now written.
! Subroutine RVERSE has 3 arguments, not 2!
! 04/04/2019 " " Application to a forebody with a 3-column
! generatrix uncovered glitches that should
! have been found with more thorough testing.
! For the forebody/right-half case, positive
! input angles actually produced spokes on the
! left half. Positive input angles need to be
! negated to produce the spokes on the right
! half for both forebody and aft body. If
! negative angles are input, they are still
! negated and should produce left-half spokes.
!
! Author: David Saunders, AMA, Inc. at NASA Ames Research Center, CA
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!