From c6085829b02f76c6bbce485e2666037a16f833bb Mon Sep 17 00:00:00 2001 From: Olivier Sauter <olivier.sauter@epfl.ch> Date: Thu, 11 Oct 2001 20:59:47 +0000 Subject: [PATCH] add symmetric z box option git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@1848 d63d8f72-b253-0410-a779-e742ad2e26cf --- JET/geteqdskJET.m | 21 ++++++++++++--------- JET/psirz.m | 13 ++++++++++++- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/JET/geteqdskJET.m b/JET/geteqdskJET.m index 5585659f..58df56e2 100644 --- a/JET/geteqdskJET.m +++ b/JET/geteqdskJET.m @@ -11,6 +11,8 @@ function [efitdata]=geteqdskJET(shot,time,nrg,nzg,savedir,deltaz,efitlab,uid,seq % shot : shot number % time : single time slice of analysis % nrg, nzg: nb of R and Z points for R,Z grid +% if nzg<0 force symmetric box aorund z=deltaz +% % OPTIONAL % savedir: directory to save eqdsk file (default: './') % deltaz: shift equilibrium vertically @@ -111,7 +113,7 @@ R0=efitdata.R0.data(index_efit); rmag=efitdata.rmag.data(index_efit); zmag=efitdata.zmag.data(index_efit); if deltaz==-99 - deltaz=-efitdata.zmag; + deltaz=-zmag; end faxs=efitdata.faxs.data(index_efit); fbnd=efitdata.fbnd.data(index_efit); @@ -131,11 +133,12 @@ bttm=efitdata.bttm.data(index_efit); btnm=efitdata.btnm.data(index_efit); xli=efitdata.xli.data(index_efit); -[R,Z,psinrz]=psirz(shot,time,nrg,nzg,efitlab,uid,seqd,ncont,efitdata.sspr,efitdata.sspi); +[R,Z,psinrz]=psirz(shot,time,nrg,nzg,efitlab,uid,seqd,ncont,efitdata.sspr,efitdata.sspi,deltaz); +nzg=abs(nzg); % define file name s = sprintf('%.6f',time); -fname=sprintf('%s/JET_EQDSK_%st%s',savedir,num2str(shot),s); +fname=sprintf('%s/EQDSK.%st%s',savedir,num2str(shot),s); fid=fopen(fname,'w'); % 1st eqdsk line: 48 characters for file description and then, 3, nr, nz @@ -150,10 +153,10 @@ end fprintf(fid,'%s%4d%4d%4d\n',ss,3,nrg,nzg); % 2nd line: rboxlen, zboxlen, r0, rboxlft, zboxmid -rmin=min(R); -rmax=max(R); -zmin=min(Z); -zmax=max(Z); +rmin=min(R) +rmax=max(R) +zmin=min(Z) +zmax=max(Z) fprintf(fid,'%16.9e%16.9e%16.9e%16.9e%16.9e\n',rmax-rmin,zmax-zmin,R0,rmin,0.5*(zmin+zmax)+deltaz); % 3rd line: rmag, zmag, psimag, psiedge, B0 @@ -206,8 +209,8 @@ fprintf(fid,'%16.9e%16.9e%16.9e%16.9e%16.9e\n',[Rbnd Zbnd+deltaz]'); if mod(2*npts,5) ~= 0 fprintf(fid,'\n'); end -rdel=2*(R(2)-R(1)); -zdel=2*(Z(2)-Z(1)); +rdel=+0.8*(R(2)-R(1)); +zdel=+0.8*(Z(2)-Z(1)); fprintf(fid,'%16.9e%16.9e%16.9e%16.9e%16.9e\n',min(Rbnd)-rdel,min(Zbnd)+deltaz-zdel, ... max(Rbnd)+rdel,min(Zbnd)+deltaz-zdel,max(Rbnd)+rdel,max(Zbnd)+deltaz+zdel, ... min(Rbnd)-rdel,max(Zbnd)+deltaz+zdel,min(Rbnd)-rdel,min(Zbnd)+deltaz-zdel); diff --git a/JET/psirz.m b/JET/psirz.m index dc3296a0..ffab4a72 100644 --- a/JET/psirz.m +++ b/JET/psirz.m @@ -13,9 +13,11 @@ function [r,z,psinrz,sspr,sspi]=psirz(shot,time,nrg,nzg,efitlab,uid,seqd,varargi % time : time de l'analyse % nrg, nzg: nb de points de la grille en r (resp. en z) sur laquelle on fait la % reconstruction des surfaces de flux. +% if nzg is negative, make symmetric box around zero % varargin{1}: plot option: 0: do not plot contours, >0 plot contour with varargin{1} nb of contours (60 is good) % varargin{2}: sspr from ppf/efit/sspr, structure containing sspr.data and sspr.t % varargin{3}: sspi from ppf/efit/sspi, structure containing sspi.data and sspi.t +% varargin{4}: deltaz % % facultatifs : % efitlab : efit ou eftm (efitlab=efit par defaut) @@ -58,6 +60,11 @@ else end sspis=sspi.data; tpefit=sspi.t; +if nargin>=11 & ~isempty(varargin{4}) + deltaz=varargin{4}; +else + deltaz=0; +end [x,ind]=min(abs(time-tpefit)); sspr_t=ssprs(:,ind); @@ -81,7 +88,11 @@ zmin=zmin+1e-4; zmax=zmax-1e-4; r=linspace(rmin,rmax,nrg); -z=linspace(zmin,zmax,nzg); +z=linspace(zmin,zmax,abs(nzg)); +if nzg<0 + zlim=max(abs(zmin-deltaz),abs(zmax+deltaz)); + z=linspace(-zlim-deltaz,zlim-deltaz,abs(nzg)); +end % mapflux contruit la carte de flux psin sur (r,z) psinrz=mapflux(cij,0.01*ri,0.01*zi,r,z); -- GitLab