diff --git a/matlab/read_uvwp_complete_legacy.m b/matlab/read_uvwp_complete_legacy.m index f7a4afe..a80667e 100644 --- a/matlab/read_uvwp_complete_legacy.m +++ b/matlab/read_uvwp_complete_legacy.m @@ -1,76 +1,72 @@ -function [u,v,w,p] = read_uvwp_complete_legacy(wkdir,fileid,nmyid,... - x_periodic,y_periodic,z_periodic,ghost) +function [u,v,w,p] = read_uvwp_complete_legacy(wkdir,ifield,nmyid,... + x_periodic,y_periodic,z_periodic,... + ighost,varargin) -% '_' 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']; +par = inputParser; +addParameter(par,'resdir',[wkdir 'result/']); -% load the domain -fcurrent_domain = [wkdir 'current_domain.tmp']; -[a,b,c,d,e,f] = read_domain_legacy(fcurrent_domain); +parse(par,varargin{:}); +keepghost = 0; % see ToDo +resdir = par.Results.resdir; + +% tmp files with simulation parameters +fdomain = [wkdir 'current_domain.tmp']; +fproc = [wkdir 'current_proc_grid.tmp']; +fpoints = [wkdir 'current_points.tmp']; + +% read domain +[a,b,c,d,e,f] = read_domain_legacy(fdomain); % 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,... + nyp,nzp] = read_grid_legacy(fpoints,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); +% initialize zero arrays +u = zeros(nxu,nyu,nzu); +v = zeros(nxv,nyv,nzv); +w = zeros(nxw,nyw,nzw); +p = zeros(nxp,nyp,nzp); -for ifile=1:length(fileid) - ifield = fileid(ifile); +for myid = 0:nmyid-1 - % initialize zero arrays - u = zeros(nxu,nyu,nzu); - v = zeros(nxv,nyv,nzv); - w = zeros(nxw,nyw,nzw); - p = zeros(nxp,nyp,nzp); + fuvwp=[resdir 'uvwp_' sprintf('%04d',ifield) '.' sprintf('%05d',myid)]; - 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); + [utmp,ibu,jbu,kbu,nxul,nyul,nzul,... + vtmp,ibv,jbv,kbv,nxvl,nyvl,nzvl,... + wtmp,ibw,jbw,kbw,nxwl,nywl,nzwl,... + ptmp,ibp,jbp,kbp,nxpl,nypl,nzpl,~] = ... + read_uvwp_chunk_legacy(fuvwp,fproc,ighost,'ghost',keepghost); - % 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); + ieu = ibu+nxul-1; iev = ibv+nxvl-1; iew = ibw+nxwl-1; iep = ibp+nxpl-1; + jeu = jbu+nyul-1; jev = jbv+nyvl-1; jew = jbw+nywl-1; jep = jbp+nypl-1; + keu = kbu+nzul-1; kev = kbv+nzvl-1; kew = kbw+nzwl-1; kep = kbp+nzpl-1; - [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; - 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 + +%------------------------------------------------------------------------------- +% ToDo! +%------------------------------------------------------------------------------- +% addParameter(par,'nparam',10); +% addParameter(par,'precision','float64'); +% addParameter(par,'endian','a'); +% addParameter(par,'reclen',4); +% nparam = par.Results.nparam; +% precision = par.Results.precision; +% endian = par.Results.endian; +% reclen = par.Results.reclen; + +% addParameter(par,'keepghost',0); % for now we can only read the full field + % no ghosts.. +% keepghost = par.Results.keepghost; \ No newline at end of file