From 9fa7fedcda8e74e884a238e4c2faeb526a987830 Mon Sep 17 00:00:00 2001 From: Tiago Pestana Date: Fri, 25 Sep 2020 21:12:23 +0200 Subject: [PATCH] added file to read complete velocity field (legacy) --- matlab/read_uvwp_complete_legacy.m | 76 ++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 matlab/read_uvwp_complete_legacy.m diff --git a/matlab/read_uvwp_complete_legacy.m b/matlab/read_uvwp_complete_legacy.m new file mode 100644 index 0000000..f7a4afe --- /dev/null +++ b/matlab/read_uvwp_complete_legacy.m @@ -0,0 +1,76 @@ +function [u,v,w,p] = read_uvwp_complete_legacy(wkdir,fileid,nmyid,... + x_periodic,y_periodic,z_periodic,ghost) + +% '_' if no ghost cells +% 'g' if there are ghost cells but u dont want to read them +% 'G' if there are ghost cells and u want to read them + +% some default properties --> this can be added to a parser later +nparam = 10; +precision = 'float64'; +endian = 'a'; +resdir = [wkdir '/result']; + +% load the domain +fcurrent_domain = [wkdir 'current_domain.tmp']; +[a,b,c,d,e,f] = read_domain_legacy(fcurrent_domain); + +% load the grid +fcurrent_points = [wkdir 'current_points.tmp']; +[ xu,yu,zu,xv,yv,zv ,... + xw,yw,zw,xp,yp,zp ,... + nxu,nyu,nzu,nxv,nyv ,... + nzv,nxw,nyw,nzw,nxp ,... + nyp,nzp] = read_grid_legacy(fcurrent_domain,a,b,c,d,e,f,... + x_periodic,y_periodic,z_periodic); + +% load the proc-grid data: +fcurrent_proc_grid =[wkdir 'current_proc_grid.tmp']; +[ibegu,iendu,jbegu,jendu,kbegu,kendu,... + ibegv,iendv,jbegv,jendv,kbegv,kendv,... + ibegw,iendw,jbegw,jendw,kbegw,kendw,... + ibegp,iendp,jbegp,jendp,kbegp,kendp,... + nxprocs,nyprocs,nzprocs] = read_procgrid_legacy(fcurrent_proc_grid); + +for ifile=1:length(fileid) + ifield = fileid(ifile); + + % initialize zero arrays + u = zeros(nxu,nyu,nzu); + v = zeros(nxv,nyv,nzv); + w = zeros(nxw,nyw,nzw); + p = zeros(nxp,nyp,nzp); + + for myid = 0:nmyid-1 + file=[resdir 'uvwp_' sprintf('%04d',ifield) '.' sprintf('%04d',myid)]; + [~,~,~,~,param]=read3dp4_partial(file,nparam,precision,endian,... + 1,1,1,1,1,1,1,1,1,1,1,1,'i',ghost); + mycol_vec = floor(param(3)); + myrow_vec = floor(param(4)); + mypln_vec = floor(param(5)); + time=param(1); + + % the local array sizes for processor "myid,my_col,my_row,my_pln": + [ibu,ieu,jbu,jeu,kbu,keu,ibv,iev,jbv,jev,kbv,kev,... + ibw,iew,jbw,jew,kbw,kew,ibp,iep,jbp,jep,kbp,kep,... + nxlu,nylu,nzlu,nxlv,nylv,nzlv,nxlw,nylw,nzlw,... + nxlp,nylp,nzlp]=my_array_size(... + ibegu,iendu,jbegu,jendu,kbegu,kendu,... + ibegv,iendv,jbegv,jendv,kbegv,kendv,... + ibegw,iendw,jbegw,jendw,kbegw,kendw,... + ibegp,iendp,jbegp,jendp,kbegp,kendp,... + mycol_vec,myrow_vec,mypln_vec); + + [utmp,vtmp,wtmp,ptmp,param]=read3dp4_partial(... + file,nparam,precision,endian,nxlu,nylu,nzlu,... + nxlv,nylv,nzlv,nxlw,nylw,nzlw,nxlp,nylp,nzlp,'_',ghost); + + u(ibu:ieu,jbu:jeu,kbu:keu) = utmp; + v(ibv:iev,jbv:jev,kbv:kev) = vtmp; + w(ibw:iew,jbw:jew,kbw:kew) = wtmp; + p(ibp:iep,jbp:jep,kbp:kep) = ptmp; + clear utmp vtmp wtmp ptmp; + end +end + +end