Proteus Two-Dimensional Navier-Stokes Computer Code-Version 2.0
Total Page:16
File Type:pdf, Size:1020Kb
NASA Technical Memorandum 106339 . .?/i_'7 Proteus Two-Dimensional Navier-Stokes Computer Code-Version 2.0 Volume 3-Programmer's Reference Charles E. Towne, John R. Schwab, and Trong T. Bui Lewis Research Center Cleveland, Ohio N94-15867 (NAqA-TM-I06339) PROTEUS TWO-UIMENSInNAL NAVIER-STOKES COMPUTER CODE, VERSION 2.0. VOLUME unclas 3: PROGRAMMCR, S REFERENCE (NASA) 26o p October 1993 G3/34 0191167 NASA CONTENTS SUMMARY ................................................................. 3 1.0 INTRODUCTION .......................................................... 5 2.0 PROGRAM STRUCTURE ................................................... 7 2.1 FLOW CHART ........................................................ 7 2.2 SUBPROGRAM CALLING TREE ......................................... 10 2.3 PROGRAMMING CONVENTIONS AND NOTES ........................... 14 2.3.1 Computer & Language .............................................. 14 2.3.2 Fortran Variables .................................................. 15 3.0 COMMON BLOCKS ...................................................... 19 3.1 COMMON BLOCK SUMMARY ......................................... 19 3.2 COMMON VARIABLES LISTED ALPHABETICALLY ........................ 19 3.3 COMMON VARIABLES LISTED SYMBOLICALLY .......................... 38 4.0 PROTEUS SUBPROGRAMS ................................................ 49 4.1 SUBPROGRAM SUMMARY ............................................ 49 4.2 SUBPROGRAM DETAILS ........... : .................................. 51 Subroutine ADI ....................................................... 53 Subroutine AVISC 1 .................................................... 54 Subroutine AVISC2 .................................................... 57 Subroutine BCDENS ................................................... 60 Subroutine BCELIM ................................................... 63 Subroutine BCF ....................................................... 64 Subroutine BCFLIN .................................................... 69 Subroutine BCGEN .................................................... 71 Subroutine BCGRAD .................................................. 73 Subroutine BCMET .................................................... 74 Subroutine BCPRES .................................................... 75 Subroutine BCQ ....................................................... 82 Subroutine BCSET ..................................................... 85 Subroutine BCTEMP ................................................... 87 Subroutine BCUVEL ................................................... 93 Subroutine BCVDIR .................................................... 97 Subroutine BCWEL .................................................. 106 Subroutine BC'_WEL .................................................. 110 Subroutine BLIN 1 .................................................... 114 Subroutine BLIN2 .................................................... 116 Subroutine BLKOUT .................................................. 117 Subroutine BLK2 ..................................................... 118 Subroutine BLK2P .................................................... 120 Subroutine BLK3 ..................................................... 122 Subroutine BLK3P .................................................... 124 Subroutine BLK4 ..................................................... 126 Subroutine BLK4P .................................................... 127 Subroutine BLK5 ........ ............................................. 128 Subroutine BLKSP .................................................... 129 BLOCK DATA ...................................................... 130 Subroutine BLOUT1 .................................................. 132 Subroutine BLOUT2 .................................................. 135 Proteus 2-D Programmer's Reference Contents I Subroutine BVUP ..................................................... 137 Subroutine COEFC ................................................... 139 Subroutine COEFE ..................... : .............................. 143 Subroutine COEFS 1 ................................................... 151 Subroutine COEFS2 ................................................... 155 Subroutine COEFX ................................................... 158 Subroutine COEFY ................................................... 165 Subroutine COEFZ .................................................... 173 Subroutine CONV .................................................... 178 Subroutine CUBIC .................................................... 180 Subroutine EQSTAT .................................................. 182 Subroutine EXEC ..................................................... 184 Subroutine EXECT ................................................... 188 Subroutine FILTER ................................................... 190 Subroutine FTEMP ................................................... 192 Subroutine GEOM .................................................... 195 Subroutine INIT ...................................................... 198 Subroutine INITC .................................................... 199 Subroutine INPUT .................................................... 204 Function ISAMAX .................................................... 206 Function ISAMIN .................................................... 208 Function ISRCHEQ ................................................... 209 Subroutine KEINIT ................................................... 211 MAIN Program ...................................................... 213 Subroutine METS ..................................................... 216 Subroutine OUTPUT .................................................. 218 Subroutine OUTW .................................................... 220 Subroutine PAK ...................................................... 223 Subroutine PERIOD ................................................... 225 Subroutine PLOT ..................................................... 227 Subroutine PRODCT .................................................. 230 Subroutine PRTHST .................................................. 232 Subroutine PRTOUT .................................................. 233 Subroutine RESID .................................................... 234 Subroutine REST ..................................................... 237 Subroutine ROBTS .................................................... 240 Function SASUM ..................................................... 242 Subroutine SGEFA .................................................... 243 Subroutine SGESL .................................................... 244 Function SNRM2 ..................................................... 245 Subroutine TBC ...................................................... 247 Subroutine TIMSTP ................................................... 249 Subroutine TREMAIN ................................................. 253 Subroutine TURBBL .................................................. 254 Subroutine TURBCH .................................................. 257 Subroutine UPDATE .................................................. 259 Subroutine UPDTKE .................................................. 261 Subroutine VORTEX .................................................. 263 Subroutine YPLUSN .................................................. 264 REFERENCES ............................................................. 265 2 Contents Proteus 2-D Programmer's Reference PROTEUSTWO-DIMENSIONAL NAVIER-STOKESCOMPUTER CODE - VERSION 2.0 Volume 3 - Programmer's Reference Charles E. Towne, John R. Schwab, Trong T. Bui National Aeronautics and Space Administration Lewis Research Center Cleveland, Ohio SUMMARY A computer code called Proteus has been developed to solve the two-dimensional planar or axisymmetric, Reynolds-averaged, unsteady compressible Navier-Stokes equations in strong conservation law form. The objective in this effort has been to develop a code for aerospace propulsion applications that is easy to use and easy to modify. Code readability, modularity, and documentation have been emphasized. The governing equations are written in Cartesian coordinates and transformed into generalized nonorthogonal body-fitted coordinates. They are solved by marching in time using a fuUy-coupled alternating-direction-implicit solution procedure with generalized first- or second-order time differencing. The boundary conditions are also treated irrfplicitly, and may be steady or unsteady. Spatially periodic " boundary conditions are also available. All terms, including the diffusion terms, are hnearized using second-order Taylor series expansions. Turbulence is modeled using either an algebraic or two-equation eddy viscosity model. The program contains many operating options. The governing equations may be solved for two- dimensional planar flow, or axisymmetric flow with or _ithout swirl. The thin-layer or Euler equations may be solved as subsets of the Navier-Stokes equations. The energy equation may be eliminated by the assumption of constant total enthalpy. Explicit and implicit artificial viscosity may be used to damp pre- and post-shock oscillations in supersonic flow and to minimize odd-even decoupling caused by central spatial differencing of the convective terms in high Reynolds number flow. Several time step options are available for convergence acceleration, including a locally variable