fixes in the read_uvwp_complete_legacy
This commit is contained in:
parent
9fa7fedcda
commit
b74f4f0c05
|
|
@ -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;
|
||||
Loading…
Reference in New Issue