72 lines
2.2 KiB
Matlab
72 lines
2.2 KiB
Matlab
function [u,v,w,p] = read_uvwp_complete_legacy(wkdir,ifield,nmyid,...
|
|
x_periodic,y_periodic,z_periodic,...
|
|
ighost,varargin)
|
|
|
|
|
|
par = inputParser;
|
|
addParameter(par,'resdir',[wkdir 'result/']);
|
|
|
|
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
|
|
[ 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(fpoints,a,b,c,d,e,f,...
|
|
x_periodic,y_periodic,z_periodic);
|
|
|
|
% 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
|
|
|
|
fuvwp=[resdir 'uvwp_' sprintf('%04d',ifield) '.' sprintf('%05d',myid)];
|
|
|
|
[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);
|
|
|
|
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;
|
|
|
|
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;
|
|
|
|
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; |