-
Notifications
You must be signed in to change notification settings - Fork 0
xiaxilin/Q1D
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Quasi-1D Nozzle Suite Executables: q1d, g1d_grid, q1da q1d_grid : grid generator q1d : primal solver q1da : dual solver... not fully hooked up for shocked cases Written in Fortran 9X/0X by Joe Derlaga Checked with Valgrind to ensure no memory leaks This code is under development! The implicit path is still in testing... The lack of nondimensionalization is causing matrix structure problems and needs to be resolved! Adjoint code to follow! This directory includes a suite of codes to study the Quasi-1D Nozzle problem. The heart of the suite, q1d, is a FVM code with multistep Runge-Kutta explicit and Euler implicit solvers. Currently the RK scheme uses global time stepping while the implicit scheme uses local time stepping. The code defaults to a first order mode, but second order is reach via MUSCL extrapolation of primitive variables. A variety of flux schemes and variable limiters are available: Flux schemes: Central Difference ( unstable, included for rigor! ) Cent. Diff + JST Damping Roe's FDS van Leer FVS, currently the only implicit LHS formulation Steger-Warming FVS AUSM AUSM+ HLLC ( to be added! ) AUFS ( to be added! ) Variable limiters: OSPRE van Albada van Leer Sweby minmod superbee Due to the modularity of the code, it is a simple matter to add additional flux schemes or variable limiters The code requires that the number of interior cells, N, be specified, however, two additional cells, cell(0) and cell(N+1), are ghost cells, while the interior domain is contained by cell(1,N). Since there are N interior cells, there are N+1 faces. Hopefully the below diagram explains this: DOMAIN: inflow | interior | outflow ----------------------------------------- CELLS: 0 | 1 | ...... | N | N+1 ----------------------------------------- FACES: 1 2 N N+1 Where appropriate, the code will loop over faces, such as when it is calculating fluxes, or over cells, such as when the explicit iteration is being performed. To build, execute the following (insert appropriate compiler and options): prompt% ./bootstrap prompt% ./configure FC=gfortran FCFLAGS="-O2" prompt% make If you have run complex_transformation_spike.rb from the main directory, complexified versions of each source file will exist alongside the standard versions. This is done to provide a complex differentiation for the adjoint code. Once you've set up a grid by running ./q1d_grid, set up the q1d.nml input file, and execute ./q1d Files: q1d.nml == input file q1d.grd == grid file q1d.rst == restart file q1d.hst == convergence history file q1d_lines.dat == tecplot XY formatted data file q1d_exact_soln.dat == tecplot XY formatted file with exact solution, DE, & TE q1d_entropy.dat == tecplot XY entropy and entropy adjoint vars q1d_cells.tec == tecplot cell-centered color plot file, FIXME: doesn't exist Example unit-tests will be added. Coding standard: 80 column line limit for readability No tabs, only spaces for indentation, run untabify in emacs No trailing whitespace Remember that Fortran ignores capitalization so ql, qL, Ql, and QL all refer to the same variable. Therefore, use CAPS sparingly, i.e., where differentiating between 1, l, I, L are important, and where it helps readability. Additionally, no one wants to be yelled at while reading code.
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published