diff --git a/crpptbx/AUG/AUG_innerouterwall.data b/crpptbx/AUG/AUG_innerouterwall.data new file mode 100644 index 0000000000000000000000000000000000000000..d2fdf0b12cba6a6b9328307dff1654639979ef71 --- /dev/null +++ b/crpptbx/AUG/AUG_innerouterwall.data @@ -0,0 +1,115 @@ +% RR ZZ (through tdic augvessel(28215)) +2.521000 0.000000 +2.505910 0.210064 +2.460960 0.415815 +2.387070 0.613032 +2.285760 0.797666 +2.159100 0.965927 +2.009700 1.114360 +1.840610 1.239920 +1.840680 1.239890 +1.705260 1.302920 +1.558120 1.328610 +1.409360 1.315190 +1.269190 1.263590 +1.147240 1.177340 +1.051880 1.062380 +0.989661 0.926584 +0.964858 0.779291 +0.964798 0.778768 +0.957132 0.519238 +0.952534 0.259636 +0.951000 0.000003 +0.952534 -0.259635 +0.957132 -0.519237 +0.964798 -0.778767 +0.964858 -0.779291 +0.989661 -0.926584 +1.051880 -1.062380 +1.147240 -1.177340 +1.269190 -1.263590 +1.409360 -1.315190 +1.558120 -1.328610 +1.705260 -1.302920 +1.840680 -1.239890 +1.840610 -1.239920 +2.009700 -1.114360 +2.159100 -0.965927 +2.285760 -0.797666 +2.387070 -0.613032 +2.460960 -0.415815 +2.505910 -0.210063 +2.521000 0.000000 +% RR ZZ (by clicking on plot) +2.201873 0.069525 +2.204467 0.159907 +2.191499 0.274623 +2.165562 0.368482 +2.137032 0.441483 +2.105908 0.504056 +2.150000 0.552723 +1.971037 0.865585 +1.867291 0.935110 +1.779107 1.074160 +1.504179 1.185400 +1.408213 1.171495 +1.366715 1.174971 +1.327810 1.108922 +1.335591 1.088065 +1.288905 1.022016 +1.247406 0.962920 +1.208501 0.893395 +1.185159 0.813441 +1.167003 0.761298 +1.146254 0.702202 +1.122911 0.632677 +1.112536 0.563152 +1.094380 0.500579 +1.081412 0.438007 +1.068444 0.368482 +1.058069 0.298957 +1.055476 0.232908 +1.047695 0.159907 +1.045101 0.100811 +1.047695 0.020857 +1.045101 -0.045191 +1.047695 -0.114716 +1.047695 -0.184241 +1.058069 -0.243337 +1.065850 -0.312862 +1.071037 -0.378911 +1.086599 -0.451912 +1.096974 -0.504056 +1.112536 -0.577057 +1.073631 -0.636153 +1.078818 -0.663963 +1.138473 -0.650058 +1.187752 -0.726535 +1.250000 -0.820394 +1.262968 -0.848204 +1.275937 -0.869061 +1.294092 -0.924681 +1.288905 -0.969873 +1.283718 -1.004635 +1.237032 -1.119351 +1.281124 -1.122827 +1.327810 -1.060255 +1.460086 -1.063731 +1.460086 -1.060255 +1.558646 -1.168019 +1.574207 -1.223638 +1.600144 -1.227115 +1.636455 -0.997683 +1.644236 -0.959444 +1.675360 -0.907300 +1.709078 -0.862109 +1.747983 -0.830823 +1.991787 -0.552723 +1.989193 -0.517961 +2.028098 -0.458864 +2.067003 -0.403244 +2.100720 -0.337196 +2.147406 -0.232908 +2.170749 -0.159907 +2.191499 -0.045191 +2.201873 0.069525 diff --git a/crpptbx/AUG/AUG_innerwall.data b/crpptbx/AUG/AUG_innerwall.data new file mode 100644 index 0000000000000000000000000000000000000000..663bc7e6a73d967484623c4409ff0edd0ea43eda --- /dev/null +++ b/crpptbx/AUG/AUG_innerwall.data @@ -0,0 +1,72 @@ +% RR ZZ (by clicking on plot) +1.460086 -1.060255 +1.558646 -1.168019 +1.574207 -1.223638 +1.600144 -1.227115 +1.636455 -0.997683 +1.644236 -0.959444 +1.675360 -0.907300 +1.709078 -0.862109 +1.747983 -0.830823 +1.991787 -0.552723 +1.989193 -0.517961 +2.028098 -0.458864 +2.067003 -0.403244 +2.100720 -0.337196 +2.147406 -0.232908 +2.170749 -0.159907 +2.191499 -0.045191 +2.201873 0.069525 +2.204467 0.159907 +2.191499 0.274623 +2.165562 0.368482 +2.137032 0.441483 +2.105908 0.504056 +2.150000 0.552723 +1.971037 0.865585 +1.867291 0.935110 +1.779107 1.074160 +1.504179 1.185400 +1.408213 1.171495 +1.366715 1.174971 +1.327810 1.108922 +1.335591 1.088065 +1.288905 1.022016 +1.247406 0.962920 +1.208501 0.893395 +1.185159 0.813441 +1.167003 0.761298 +1.146254 0.702202 +1.122911 0.632677 +1.112536 0.563152 +1.094380 0.500579 +1.081412 0.438007 +1.068444 0.368482 +1.058069 0.298957 +1.055476 0.232908 +1.047695 0.159907 +1.045101 0.100811 +1.047695 0.020857 +1.045101 -0.045191 +1.047695 -0.114716 +1.047695 -0.184241 +1.058069 -0.243337 +1.065850 -0.312862 +1.071037 -0.378911 +1.086599 -0.451912 +1.096974 -0.504056 +1.112536 -0.577057 +1.073631 -0.636153 +1.078818 -0.663963 +1.138473 -0.650058 +1.187752 -0.726535 +1.250000 -0.820394 +1.262968 -0.848204 +1.275937 -0.869061 +1.294092 -0.924681 +1.288905 -0.969873 +1.283718 -1.004635 +1.237032 -1.119351 +1.281124 -1.122827 +1.327810 -1.060255 +1.460086 -1.063731 diff --git a/crpptbx/AUG/AUG_outerwall.data b/crpptbx/AUG/AUG_outerwall.data new file mode 100644 index 0000000000000000000000000000000000000000..e6f06860b2650bf4ed6d6048c81fc7b0e2b305f2 --- /dev/null +++ b/crpptbx/AUG/AUG_outerwall.data @@ -0,0 +1,42 @@ +% RR ZZ (through tdic augvessel(28215)) +2.521000 0.000000 +2.505910 0.210064 +2.460960 0.415815 +2.387070 0.613032 +2.285760 0.797666 +2.159100 0.965927 +2.009700 1.114360 +1.840610 1.239920 +1.840680 1.239890 +1.705260 1.302920 +1.558120 1.328610 +1.409360 1.315190 +1.269190 1.263590 +1.147240 1.177340 +1.051880 1.062380 +0.989661 0.926584 +0.964858 0.779291 +0.964798 0.778768 +0.957132 0.519238 +0.952534 0.259636 +0.951000 0.000003 +0.952534 -0.259635 +0.957132 -0.519237 +0.964798 -0.778767 +0.964858 -0.779291 +0.989661 -0.926584 +1.051880 -1.062380 +1.147240 -1.177340 +1.269190 -1.263590 +1.409360 -1.315190 +1.558120 -1.328610 +1.705260 -1.302920 +1.840680 -1.239890 +1.840610 -1.239920 +2.009700 -1.114360 +2.159100 -0.965927 +2.285760 -0.797666 +2.387070 -0.613032 +2.460960 -0.415815 +2.505910 -0.210063 +2.521000 0.000000 diff --git a/crpptbx/AUG/geteqdskAUG.m b/crpptbx/AUG/geteqdskAUG.m index 3ae8968f4a953968bfe21ddfbdf33b05ef25cd68..63042989642a57545d5f8c8f66735f116d705bc6 100644 --- a/crpptbx/AUG/geteqdskAUG.m +++ b/crpptbx/AUG/geteqdskAUG.m @@ -1,5 +1,9 @@ -function [eqdskAUG]=geteqdskAUG(shot,time,NR,NZ,savedir,deltaz,varargin); +function [eqdskAUG, equil_all_t, equil_t_index]=geteqdskAUG(shot,time,NR,NZ,savedir,deltaz,varargin); % +% [eqdskAUG, equil_all_t, equil_t_index]=geteqdskAUG(shot,time,NR,NZ,savedir,deltaz,varargin); +% +% you can then do: +% writeeqdsk('fname',eqdskAUG,13); % @@ -22,9 +26,11 @@ else end equil=gdat(shot,'equil_cliste'); - [zz it]=min(abs(equil.t-time_eff)); +equil_all_t = equil; +equil_t_index = it; + eqdsk.cocos=13; eqdsk.nr = size(equil.Rmesh,1); eqdsk.nz = size(equil.Zmesh,1); @@ -57,7 +63,7 @@ eqdsk.b0 = b0.data(itb0); eqdsk.r0 = 1.65; fedge=eqdsk.r0.*eqdsk.b0; F2 = psisign.*2.*F2_05 + fedge.^2; -eqdsk.F = sqrt(F2); +eqdsk.F = sqrt(F2)*sign(eqdsk.b0); rmag=gdat(shot,'rmag'); [zz itrmag]=min(abs(rmag.t-time_eff)); @@ -70,6 +76,7 @@ figure contour(eqdsk.rmesh,eqdsk.zmesh,eqdsk.psi',100) hold [hh1 hh2]=contour(eqdsk.rmesh,eqdsk.zmesh,eqdsk.psi',[eqdsk.psiedge eqdsk.psiedge],'k'); +axis equal ij=1; ij_prev = 0; nbhh1(ij)=hh1(2,ij_prev+1); @@ -87,10 +94,16 @@ end % assume LCFS with most points [zzz irz]=max(nbhh1); eqdsk.nbbound = nbhh1(irz); -eqdsk.rplas = Rbnd{irz}; -eqdsk.zplas = Zbnd{irz}; -eqdsk.nblim=5; -eqdsk.rlim=[eqdsk.rmesh(1) eqdsk.rmesh(end) eqdsk.rmesh(end) eqdsk.rmesh(1) eqdsk.rmesh(1)]; -eqdsk.zlim=[eqdsk.zmesh(1) eqdsk.zmesh(1) eqdsk.zmesh(end) eqdsk.zmesh(end) eqdsk.zmesh(1)]; +eqdsk.rplas = Rbnd{irz}'; +eqdsk.zplas = Zbnd{irz}'; +plot(eqdsk.rplas,eqdsk.zplas,'k-') + +[aget]=which('geteqdskAUG'); +[path1,name2,ext3]=fileparts(aget); +eval(['load ' fullfile(path1,'AUG_innerouterwall.data')]) +eqdsk.nblim=size(AUG_innerouterwall,1); +eqdsk.rlim=AUG_innerouterwall(:,1); +eqdsk.zlim=AUG_innerouterwall(:,2); +plot(eqdsk.rlim,eqdsk.zlim,'k-') eqdskAUG = eqdsk; diff --git a/crpptbx/AUG/loadAUGdata.m b/crpptbx/AUG/loadAUGdata.m index 02b0903670a9d4f733949f560702f8413c22144f..90e6df14a059fde0587ec6490ed15c4e0ae3c3eb 100644 --- a/crpptbx/AUG/loadAUGdata.m +++ b/crpptbx/AUG/loadAUGdata.m @@ -124,6 +124,12 @@ if size(data_type_eff,1)==1 if ~isempty(strmatch(data_type_eff_noext,[{'deltalow'} {'deltal'} {'triangbot'} {'triangl'} {'trianglow'}],'exact')) data_type_eff_noext='deltabot'; end + if ~isempty(strmatch(data_type_eff_noext,[{'qrho_FPP'}],'exact')) + data_type_eff_noext='qrho_fpp'; + end + if ~isempty(strmatch(data_type_eff_noext,[{'equil_FPP'}],'exact')) + data_type_eff_noext='equil_fpp'; + end if ~isempty(strmatch(data_type_eff_noext,[{'Rmag'}],'exact')) data_type_eff_noext='rmag'; end @@ -152,9 +158,9 @@ else end % all keywords and corresponding case to run below -AUGkeywrdall=[{'Ip'} {'b0'} {'zmag'} {'rmag'} {'rgeo'} {'zgeo'} {'rcont'} {'zcont'} {'vol'} {'qrho'} {'qrho_cliste'} {'q95'} {'kappa'} ... +AUGkeywrdall=[{'Ip'} {'b0'} {'zmag'} {'rmag'} {'rgeo'} {'zgeo'} {'rcont'} {'zcont'} {'vol'} {'qrho'} {'qrho_fpp'} {'q95'} {'kappa'} ... {'delta'} {'deltatop'} {'deltabot'} {'neint'} ... - {'ne'} {'te'} {'nerho'} {'terho'} {'equil'} {'equil_cliste'} ... + {'ne'} {'te'} {'nerho'} {'terho'} {'equil'} {'equil_fpp'} ... {'sxr'} {'sxR'} {'sxb'} {'ece'} {'eced'} {'Halpha'}]; AUGsig.iip=strmatch('Ip',AUGkeywrdall,'exact'); AUGsig.ib0=strmatch('b0',AUGkeywrdall,'exact'); @@ -166,9 +172,9 @@ AUGsig.ircont=strmatch('rcont',AUGkeywrdall,'exact'); AUGsig.izcont=strmatch('zcont',AUGkeywrdall,'exact'); AUGsig.ivol=strmatch('vol',AUGkeywrdall,'exact'); AUGsig.iqrho=strmatch('qrho',AUGkeywrdall,'exact'); -AUGsig.iqrho_cliste=strmatch('qrho_cliste',AUGkeywrdall,'exact'); +AUGsig.iqrho_fpp=strmatch('qrho_fpp',AUGkeywrdall,'exact'); AUGsig.iequil=strmatch('equil',AUGkeywrdall,'exact'); -AUGsig.iequil_cliste=strmatch('equil_cliste',AUGkeywrdall,'exact'); +AUGsig.iequil_fpp=strmatch('equil_fpp',AUGkeywrdall,'exact'); AUGsig.iq95=strmatch('q95',AUGkeywrdall,'exact'); AUGsig.ikappa=strmatch('kappa',AUGkeywrdall,'exact'); AUGsig.idelta=strmatch('delta',AUGkeywrdall,'exact'); @@ -191,9 +197,9 @@ AUGsig.iHalpha=strmatch('Halpha',AUGkeywrdall,'exact'); AUGkeywrdcase=cell(size(AUGkeywrdall)); AUGkeywrdcase(:)={'simplereaddata'}; AUGkeywrdcase(AUGsig.iqrho)=AUGkeywrdall(AUGsig.iqrho); % special as efit q on psi -AUGkeywrdcase(AUGsig.iqrho_cliste)=AUGkeywrdall(AUGsig.iqrho_cliste); % special as efit q on psi +AUGkeywrdcase(AUGsig.iqrho_fpp)=AUGkeywrdall(AUGsig.iqrho_fpp); % special as efit q on psi AUGkeywrdcase(AUGsig.iequil)=AUGkeywrdall(AUGsig.iequil); % special as efit q on psi -AUGkeywrdcase(AUGsig.iequil_cliste)=AUGkeywrdall(AUGsig.iequil_cliste); % special as efit q on psi +AUGkeywrdcase(AUGsig.iequil_fpp)=AUGkeywrdall(AUGsig.iequil_fpp); % special as efit q on psi %AUGkeywrdcase(AUGsig.idelta)=AUGkeywrdall(AUGsig.idelta); % special as average of triu and tril AUGkeywrdcase(AUGsig.ine)=AUGkeywrdall(AUGsig.ine); % special as adds error bars AUGkeywrdcase(AUGsig.ite)=AUGkeywrdall(AUGsig.ite); % idem @@ -505,11 +511,11 @@ switch AUGkeywrdcase{index} trace.dimunits{1} = a.area.name ; trace.dimunits{2} = a.time_aug.unit; - case {'equil', 'equil_cliste', 'qrho', 'qrho_cliste'} + case {'equil', 'equil_fpp', 'qrho', 'qrho_fpp'} shotfile_exp_eff = AUGexplocation{index}; - if strcmp(AUGkeywrdcase{index},'equil') || strcmp(AUGkeywrdcase{index},'qrho') + if strcmp(AUGkeywrdcase{index},'equil_fpp') || strcmp(AUGkeywrdcase{index},'qrho_fpp') DIAG = 'FPP'; else DIAG = 'EQI'; @@ -579,8 +585,12 @@ switch AUGkeywrdcase{index} end equil.x = equil.rhopolnorm; % - [equil_time,e]=rdaAUG_eff(shot,DIAG,'time',shotfile_exp); + [equil_Rcoil,e]=rdaAUG_eff(shot,DIAG,'Rcl',shotfile_exp); + equil.Rcoils=equil_Rcoil.value; + [equil_Zcoil,e]=rdaAUG_eff(shot,DIAG,'Zcl',shotfile_exp); + equil.Zcoils=equil_Zcoil.value; % get time values + [equil_time,e]=rdaAUG_eff(shot,DIAG,'time',shotfile_exp); equil.t = equil_time.value(1:NTIME); % [IpiPSI,e]=rdaAUG_eff(shot,DIAG,'IpiPSI',shotfile_exp);