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
% 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);
......
......@@ -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);
......
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