美文网首页
2020-05-21wall stack

2020-05-21wall stack

作者: 锅炉工的自我修养 | 来源:发表于2020-05-21 19:36 被阅读0次

通过fortran 源码查找

    1. 定位 b2plot.F
case('erosion')
          description='Gross erosion'
          nz=ntargsp
          call wall_copy(erosion,1.0_R8,nz,texttargsp)
  • ntargsp:
    1. 定位 wall_copy
 subroutine wall_copy(src,scale,nz,texttmp)
      use b2mod_types
      use b2mod_wall
      use b2mod_b2plot
      use b2mod_b2plot_values
      implicit none
      integer nz
      real (kind=R8) ::
     *   src(1:nwall,0:nz-1),scale
      character*(*) texttmp(0:nz-1)
c      write(*,*) 'Copying wall array: nwall, nz = ',nwall,nz
      if(iwwrk .eq. wklng) call dropwallstackbottom()
      iwwrk=iwwrk+1
      wall_stack(1:nbnd,0:nz-1,iwwrk)=src(1:nbnd,0:nz-1)*scale
      values(14)=minval(wall_stack(1:nbnd,0:nz-1,iwwrk))
      values(15)=maxval(wall_stack(1:nbnd,0:nz-1,iwwrk))
      textwwk(0:nz-1,iwwrk)=texttmp(0:nz-1)
      nwdim(1,iwwrk)=nbnd
      nwdim(2,iwwrk)=nz
c      write(*,*) src(1,0)*scale,wall_stack(1,0,iwwrk)
      return
      end subroutine wall_copy
    1. 定位 dropwallstackbottom
subroutine dropwallstackbottom()
      use b2mod_types
      use b2mod_b2plot
      implicit none
cxpb
      integer i, iw, is

      write(*,*) 'Too many data values on wall stack'
cxpb
      write(*,*) 'Dropping the bottom element!'
      do i = 2,iwwrk
        nwdim(1,i-1) = nwdim(1,i)
        nwdim(2,i-1) = nwdim(2,i)
        do is = 0,nwdim(2,i)-1
          do iw = 1,nwdim(1,i)
            wall_stack(iw,is,i-1) = wall_stack(iw,is,i) 
          end do
          textwwk(is,i-1) = textwwk(is,i)
        end do
        wall_label(i-1) = wall_label(i)
      end do
      iwwrk = iwwrk-1
cxpb
      return
      end

从源码寻找行不通


fort.44可能的数据

image.png
image.png
image.png
    %% initial the data dimension - 1
% wld.wldnek = zeros(nlim+nsts-1,nstra+1);
% wld.wldnep = zeros(nlim+nsts-1,nstra+1);
% wld.wldna  = zeros(nlim+nsts,natm,nstra+1);
% wld.ewlda  = zeros(nlim+nsts-1,natm,nstra+1);
% wld.wldnm  = zeros(nlim+nsts-1,nmol,nstra+1);
% wld.ewldm  = zeros(nlim+nsts-1,nmol,nstra+1);
% read_ft44_rfield(fid,ver,'ewlda',nlim+nsts);
    
% wld.wldnek(:,1)  = read_ft44_rfield_m(fid,ver,'wldnek',nlim+nsts-1);
% wld.wldnep(:,1)  = read_ft44_rfield_m(fid,ver,'wldnep',nlim+nsts-1);
% wld.wldna(:,:,1) = read_ft44_rfield_m(fid,ver,'wldna',[nlim+nsts-1,natm]);
% wld.ewlda(:,:,1) = read_ft44_rfield_m(fid,ver,'ewlda',[nlim+nsts-1,natm]);
% wld.wldnm(:,:,1) = read_ft44_rfield_m(fid,ver,'wldnm',[nlim+nsts-1,nmol]);
% wld.ewldm(:,:,1) = read_ft44_rfield_m(fid,ver,'ewldm',[nlim+nsts-1,nmol]);
    %% 4*188=752 every element two point *2 ,and occur 2 times
% wld.poly = read_ft44_rfield(fid,ver,'wall_geometry',[4,nlim]);
% 
% wld.wldra  = read_ft44_rfield_m(fid,ver,'wldra',[nlim+nsts-1,natm]);
% wld.wldrm  = read_ft44_rfield_m(fid,ver,'wldrm',[nlim+nsts-1,nmol]);

if (nstra > 1)
    for i = 2:nstra+1
%         wld.wldnek(:,i)  = read_ft44_rfield_mn(fid,ver,'wldnek',nlim+nsts-1);
%         wld.wldnep(:,i)  = read_ft44_rfield_mn(fid,ver,'wldnep',nlim+nsts-1);
%         wld.wldna(:,:,i) = read_ft44_rfield_mn(fid,ver,'wldna',[nlim+nsts-1,natm]);
%         wld.ewlda(:,:,i) = read_ft44_rfield_mn(fid,ver,'ewlda',[nlim+nsts-1,natm]);
%         wld.wldnm(:,:,i) = read_ft44_rfield_mn(fid,ver,'wldnm',[nlim+nsts-1,nmol]);
%         wld.ewldm(:,:,i) = read_ft44_rfield_mn(fid,ver,'ewldm',[nlim+nsts-1,nmol]);
    end
end

    %% (NLIM+NSTS)*SPEISE
% wld.wldpp   = zeros(nlim+nsts,nfla,nstra+1);
% wld.wldpa   = zeros(nlim+nsts,natm,nstra+1);
% wld.wldpm   = zeros(nlim+nsts,nmol,nstra+1);
% wld.wldpeb  = zeros(nlim+nsts,nstra+1);
% wld.wldspt  = zeros(nlim+nsts,nstra+1);

% wld.wldpp(:,:,1) = read_ft44_rfield_m(fid,ver,'wldpp',[nlim+nsts-1,nfla]);
% wld.wldpa(:,:,1) = read_ft44_rfield_m(fid,ver,'wldpa',[nlim+nsts-1,natm]);
% wld.wldpm(:,:,1) = read_ft44_rfield_m(fid,ver,'wldpm',[nlim+nsts-1,nmol]);
% wld.wldpeb(:,1)  = read_ft44_rfield_m(fid,ver,'wldpeb',nlim+nsts-1);
% wld.wldspt(:,1)  = read_ft44_rfield_m(fid,ver,'wldspt',nlim+nsts-1);

if (nstra > 1)
    for i = 2:nstra+1
%         wld.wldpp(:,:,i) = read_ft44_rfield_mn(fid,ver,'wldpp',[nlim+nsts-1,nfla]);
%         wld.wldpa(:,:,i) = read_ft44_rfield_mn(fid,ver,'wldpa',[nlim+nsts-1,natm]);
%         wld.wldpm(:,:,i) = read_ft44_rfield_mn(fid,ver,'wldpm',[nlim+nsts-1,nmol]);
%         wld.wldpeb(:,i)  = read_ft44_rfield_mn(fid,ver,'wldpeb',nlim+nsts-1);
%         wld.wldspt(:,i)  = read_ft44_rfield_mn(fid,ver,'wldspt',nlim+nsts-1);   
    end
end

wld.isrftype = read_ft44_ifield_m(fid,ver,'isrftype',nlim+nsts);

if nlwrmsh
    
    wld.wlarea  = read_ft44_rfield(fid,ver,'wlarea',nlim+nsts);
%     %% find the pump location index 
%     wld.wlabsrp = zeros(natm+nmol+nion+nfla,nlim+nsts);
% %     read_ft44_rfield_t(fid,ver,'wlabsrp',[natm,nlim+nsts]);
%     wld.wlabsrp(1:natm,:) = read_ft44_rfield_t(fid,ver,'wlabsrp',[natm,nlim+nsts]);
% %     line = fgetl(fid)
%     ns = natm;
%     wld.wlabsrp(ns+1:ns+nmol,:) = read_ft44_rfield_t(fid,ver,'wlabsrp',[nmol,nlim+nsts]);
% %     line = fgetl(fid)
%     ns = natm+nmol;
%     wld.wlabsrp(ns+1:ns+nion,:) = read_ft44_rfield_t(fid,ver,'wlabsrp',[nion,nlim+nsts]);
% %     line = fgetl(fid)
%     ns = natm+nmol+nion;
%     wld.wlabsrp(ns+1:ns+nfla,:) = read_ft44_rfield_t(fid,ver,'wlabsrp',[nfla,nlim+nsts]);
    %%
     %% find the pump location index 
    wld.wlpump = zeros(natm+nmol+nion+nfla,nlim+nsts);
%     read_ft44_rfield_t(fid,ver,'wlabsrp',[natm,nlim+nsts]);
    wld.wlpump(1:natm,:) = read_ft44_rfield_t(fid,ver,'wlpump(A)',[natm,nlim+nsts]);
%     line = fgetl(fid)
    ns = natm;
    wld.wlpump(ns+1:ns+nmol,:) = read_ft44_rfield_t(fid,ver,'wlpump(M)',[nmol,nlim+nsts]);
%     line = fgetl(fid)
    ns = natm+nmol;
    wld.wlpump(ns+1:ns+nion,:) = read_ft44_rfield_t(fid,ver,'wlpump(I)',[nion,nlim+nsts]);
%     line = fgetl(fid)
%     ns = natm+nmol+nion;
%     wld.wlpump(ns+1:ns+nfla,:) = read_ft44_rfield_t(fid,ver,'wlpump(P)',[nfla,nlim+nsts]);
    
    %% radiation rate
    neut.eneutrad = read_ft44_rfield(fid,ver,'eneutrad',[nx,ny,natm]);
%     field = read_rfield_m(fid,'wlpump_res(A)',[natm,ncl]);
%     ftell(fid)
%     tt=fgetl(fid);
%    tt= read_ft44_ifield(fid,nsts+1);
%     tt=fgetl(fid);
%     [ind,typ,srf,start,end] = read_ft44_ifield_mn(fid,ver,'eirdiag')
%     [ind,typ,srf,instart,inend]= read_ft44_ifield_mn(fid,ver,'eirdiag',nsts);
%     wld.eirdiag_nds_ind   = ind;
%     wld.eirdiag_nds_typ   = typ;
%     wld.eirdiag_nds_srf   = srf;
%     wld.eirdiag_nds_start = instart;
%     wld.eirdiag_nds_end   = inend;
    
%     ncl = wld.eirdiag_nds_ind(nsts+1);
    
%     wld.sarea_res  = read_ft44_rfield(fid,ver,'sarea_res',ncl);
%     wld.wldna_res  = read_ft44_rfield(fid,ver,'wldna_res',[natm,ncl]);
%     wld.wldnm_res  = read_ft44_rfield(fid,ver,'wldnm_res',[nmol,ncl]);
%     wld.ewlda_res = read_ft44_rfield(fid,ver,'ewlda_res',[natm,ncl]);
%     wld.ewldm_res = read_ft44_rfield(fid,ver,'ewldm_res',[nmol,ncl]);
%     wld.ewldea_res = read_ft44_rfield(fid,ver,'ewldea_res',[natm,ncl]);
%     wld.ewldem_res = read_ft44_rfield(fid,ver,'ewldem_res',[nmol,ncl]);
%     wld.ewldrp_res = read_ft44_rfield(fid,ver,'ewldrp_res',ncl);
%     wld.wldspt_res = read_ft44_rfield(fid,ver,'wldspt_res',ncl);
%     wld.wldspta_res = read_ft44_rfield(fid,ver,'wldspta_res',[natm,ncl]);
%     wld.wldsptm_res = read_ft44_rfield(fid,ver,'wldsptm_res',[nmol,ncl]);
    %% PUMP
%     wld.wlpump_resa = read_ft44_rfield_t(fid,ver,'wlpump_res(A)',[natm,ncl]);
%     wld.wlpump_resm = read_ft44_rfield_t(fid,ver,'wlpump_res(M)',[natm,ncl]);
%     wld.wlpump_resi = read_ft44_rfield_t(fid,ver,'wlpump_res(I)',[natm,ncl]);
%     wld.wlpump_resp = read_ft44_rfield_t(fid,ver,'wlpump_res(P)',[natm,ncl]);

通过定位靶板所在的下标,就可找到对应的溅射信息


获得 b2wall.nc

    1. 根据manual 添加开关(这个开关是3.0.7版本有的,2019.3月份版本没有这个开关)

可能这个功能还没有完全放开

'b2stbr_wall_netcdf  '1' 

未出现 ‘b2time.nc’

    1. 添加搭配使用的开关
'b2mndr_stim'     '0.0'

依然没有b2wall.nc

image.png

image.png

b2plot 导出

-1. eprt (可行)

echo "phy pdena 'pdena_eir.last10' eprt" | b2plot
    1. wprt (可行)
echo "phy ei 'ei_wall.last10' wprt" | b2plot
  • deposit, depo_ml 为空
  • erel 化学溅射因子,有值全为空
  • sput/2 无值
  • sputchem 多个值,为零
  • qrad 零
  • vap pressure nan

测试管理输出的开关

相关文章

网友评论

      本文标题:2020-05-21wall stack

      本文链接:https://www.haomeiwen.com/subject/ahyzohtx.html