How to compile, run, debug the read_uvw files --------------------------------------------------- This code reads the fields from /common/rmoser/www/html/data/channels/fields/re950_uvw /common/rmoser/www/html/data/channels/fields/re550_uvw /common/rmoser/www/html/data/channels/fields/re180_uvw The re950_uvw fields need to be concantated before being read in. All three sets of fields are stored in u,v,w format, so no postprocessing is needed to get the velocity fields. The re180_uvw fields should be downloaded for debugging purposes (it takes much less memory and time to read it) compiling --------- 1. ifort is being used as the compiler. The OPTS and FOPTS variables may need to be changed according to the fortran compiler being used. Try not using no options if compiler options is a problem. 2. set the directory in which you stored the field by going to io.f90 and setting inpdir accordingly. So if the file path is "/directory/vel.00" then set inpdir="/directory/" (the complete path, w.r.t. root, along with the backslash at the end) 3. compile by typing make running -------- The following environment variables need to be set before reading the files in: 1. export F_UFMTENDIAN=big 2. export TMPDIR=/scratch (or whatever scratch directory you have. Scratch is usually mounted on a fast i/o drive, but it could be on any drive with enough memory i.e. ~15G for the Retau=950 fields) 3. Enter the filename of the field as vel.00 if the file path is /directory/vel.00 debugging --------- The code outputs statistics in stats.dat, which has the self-explanatory format y, U, , , the file stats.dat.small contains statistics calculated from the Re=180 field, and can be used for debugging and validating the run. Note that the velocity has been normalized with respect to the centerline mean velocity. The bulk Reynolds number Re is also based on the centerline velocity. A method to calculate the viscosity and wall shear stress is outlined in compute.f90 in the subroutine stats, and the results are outputted to stdout. Format of the velocity field ---------------------------------------------- The velocity fields are stored in x-z planes in the form time, Re, alpha, beta, a0, mx, my, mz do j = 1,my uxz(1:mx,1:mz,j), vxz(1:mx,1:mz,j), wxz(1:mx,1:mz,j) enddo Here my is the number of planes, mx, mz are the number of fourier modes in the x and z directions, alpha=2*pi/Lx, beta=2*pi/Lz are defined by the channel box dimensions Lx, Lz. Channel half-width h=1 is assumed here. a0 is something I don't know about. uxz(2*i+1,k+1,j),uxz(2*i+2,k+1,j) store the real and imaginary parts of fourier modes (i,k), i=0,...mx/2-1 k=0,mz/2-1 uxz(2*i+1,mz+k+1,j),uxz(2*i+2,mz+k+1) stores the real and imaginary parts of fourier noes (i,k), i=0,...mx/2-1, k = -mz/2,...-1 same is true for v and w fields An example of the ordering of the xz fields in fourier space can be seen in the subroutine stats (compute.f90). Wavenumbers kx(i), kz(i) get assigned in get_indices (data.f90)