Skip to content
Snippets Groups Projects
Commit c6085829 authored by Olivier Sauter's avatar Olivier Sauter
Browse files

add symmetric z box option

git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@1848 d63d8f72-b253-0410-a779-e742ad2e26cf
parent 702dae64
No related branches found
No related tags found
No related merge requests found
...@@ -11,6 +11,8 @@ function [efitdata]=geteqdskJET(shot,time,nrg,nzg,savedir,deltaz,efitlab,uid,seq ...@@ -11,6 +11,8 @@ function [efitdata]=geteqdskJET(shot,time,nrg,nzg,savedir,deltaz,efitlab,uid,seq
% shot : shot number % shot : shot number
% time : single time slice of analysis % time : single time slice of analysis
% nrg, nzg: nb of R and Z points for R,Z grid % nrg, nzg: nb of R and Z points for R,Z grid
% if nzg<0 force symmetric box aorund z=deltaz
%
% OPTIONAL % OPTIONAL
% savedir: directory to save eqdsk file (default: './') % savedir: directory to save eqdsk file (default: './')
% deltaz: shift equilibrium vertically % deltaz: shift equilibrium vertically
...@@ -111,7 +113,7 @@ R0=efitdata.R0.data(index_efit); ...@@ -111,7 +113,7 @@ R0=efitdata.R0.data(index_efit);
rmag=efitdata.rmag.data(index_efit); rmag=efitdata.rmag.data(index_efit);
zmag=efitdata.zmag.data(index_efit); zmag=efitdata.zmag.data(index_efit);
if deltaz==-99 if deltaz==-99
deltaz=-efitdata.zmag; deltaz=-zmag;
end end
faxs=efitdata.faxs.data(index_efit); faxs=efitdata.faxs.data(index_efit);
fbnd=efitdata.fbnd.data(index_efit); fbnd=efitdata.fbnd.data(index_efit);
...@@ -131,11 +133,12 @@ bttm=efitdata.bttm.data(index_efit); ...@@ -131,11 +133,12 @@ bttm=efitdata.bttm.data(index_efit);
btnm=efitdata.btnm.data(index_efit); btnm=efitdata.btnm.data(index_efit);
xli=efitdata.xli.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 % define file name
s = sprintf('%.6f',time); 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'); fid=fopen(fname,'w');
% 1st eqdsk line: 48 characters for file description and then, 3, nr, nz % 1st eqdsk line: 48 characters for file description and then, 3, nr, nz
...@@ -150,10 +153,10 @@ end ...@@ -150,10 +153,10 @@ end
fprintf(fid,'%s%4d%4d%4d\n',ss,3,nrg,nzg); fprintf(fid,'%s%4d%4d%4d\n',ss,3,nrg,nzg);
% 2nd line: rboxlen, zboxlen, r0, rboxlft, zboxmid % 2nd line: rboxlen, zboxlen, r0, rboxlft, zboxmid
rmin=min(R); rmin=min(R)
rmax=max(R); rmax=max(R)
zmin=min(Z); zmin=min(Z)
zmax=max(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); 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 % 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]'); ...@@ -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 if mod(2*npts,5) ~= 0
fprintf(fid,'\n'); fprintf(fid,'\n');
end end
rdel=2*(R(2)-R(1)); rdel=+0.8*(R(2)-R(1));
zdel=2*(Z(2)-Z(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, ... 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, ... 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); min(Rbnd)-rdel,max(Zbnd)+deltaz+zdel,min(Rbnd)-rdel,min(Zbnd)+deltaz-zdel);
......
...@@ -13,9 +13,11 @@ function [r,z,psinrz,sspr,sspi]=psirz(shot,time,nrg,nzg,efitlab,uid,seqd,varargi ...@@ -13,9 +13,11 @@ function [r,z,psinrz,sspr,sspi]=psirz(shot,time,nrg,nzg,efitlab,uid,seqd,varargi
% time : time de l'analyse % time : time de l'analyse
% nrg, nzg: nb de points de la grille en r (resp. en z) sur laquelle on fait la % nrg, nzg: nb de points de la grille en r (resp. en z) sur laquelle on fait la
% reconstruction des surfaces de flux. % 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{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{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{3}: sspi from ppf/efit/sspi, structure containing sspi.data and sspi.t
% varargin{4}: deltaz
% %
% facultatifs : % facultatifs :
% efitlab : efit ou eftm (efitlab=efit par defaut) % efitlab : efit ou eftm (efitlab=efit par defaut)
...@@ -58,6 +60,11 @@ else ...@@ -58,6 +60,11 @@ else
end end
sspis=sspi.data; sspis=sspi.data;
tpefit=sspi.t; tpefit=sspi.t;
if nargin>=11 & ~isempty(varargin{4})
deltaz=varargin{4};
else
deltaz=0;
end
[x,ind]=min(abs(time-tpefit)); [x,ind]=min(abs(time-tpefit));
sspr_t=ssprs(:,ind); sspr_t=ssprs(:,ind);
...@@ -81,7 +88,11 @@ zmin=zmin+1e-4; ...@@ -81,7 +88,11 @@ zmin=zmin+1e-4;
zmax=zmax-1e-4; zmax=zmax-1e-4;
r=linspace(rmin,rmax,nrg); 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) % mapflux contruit la carte de flux psin sur (r,z)
psinrz=mapflux(cij,0.01*ri,0.01*zi,r,z); psinrz=mapflux(cij,0.01*ri,0.01*zi,r,z);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment