赞

2回答

0收藏

[ZDP/CPCC] 脉冲放电氨制氢气相反应结果与加了表面反应的结果相同

计算软件交流 计算软件交流 3100 人阅读 | 2 人回复 | 2024-05-31

想问老师们,为什么我计算出来的气相反应数据与加了表面反应后计算出来的数据是一样的呀?改变了温度,也没有变化,采用的是纳秒脉冲放电
分享到:

回答|共 2 个

工坊君

发表于 2024-6-11 17:00:58 | 显示全部楼层

可用的信息太少了,最好能提供详细设置和计算结果。

hylyl

发表于 2026-9-12 10:31:50 | 显示全部楼层


program no_catalysis_initial   !结构语句 定义开头项目名称

use ZDPlasKin                  !声明语句 调用ZDPlasKin

Implicit None                  !取消IN规则(ijklmn开头为整型,其他为实型)
!------------------------------------------------------------------------------------------------------------------------------------
!参数配置
!------------------------------------------------------------------------------------------------------------------------------------
!
!输入初始参数值,气压,温度,气体密度
double precision, parameter:: gas_pressure    =101325.0,         &       !压力(Pa),1atm=101325Pa, 1bar=1E5 Pa, 100torr=13332.2 Pa  
                              gas_temperature =300.0d0,          &       !气体温度(K)
                              K_B_const       =1.38065d-23,      &       !玻尔兹曼常数(J/K)
                              R_const         =8.31446,          &       !摩尔气体常数 J/(mol*K)
                              N_A_const       =6.02214d23,       &       !阿伏伽德罗常数 (1/mol)
                              e_const         =1.60218d-19,      &       !元电荷(C)
                              gas_density     =1.0d-6*gas_pressure/K_B_CONST/gas_temperature,     & !总的中性气体密度(cm-3),理想气体状态方程 p=nKT,n=N/V 总粒子数/体积
                              density_ini_N2  =gas_density*0.98, &       !N2占总气体体积密度的比例  98%
                              density_ini_NH3 =gas_density*0.02, &       !NH3占总气体体积密度的比例 2%
                              elec_density    =1.0d13                    !电子密度(cm-3)

!输入初始参数值,其他物理参数
double precision, parameter:: gap_length      =4.5d0,                 &   !放电间隙 (cm)
                              pi              =3.1415926,             &   
                              freq            =3.0d3,                 &   !放电频率 (Hz) 20kHz
                              pulse_width     =2.0d-7,                &   !脉冲宽度 200ns,1ns=1.0d-9s
                              omiga           =2*pi*freq/gas_density, &   !约化角频率(cm3/s)
                              power_max       =1.59d6,                &   !最大功率密度(W/cm3)
                              gama            =0.08,                  &   !功率分布因子
                              power_min       =1.8                        !最小功率密度(W/cm3),体积10cm3


!变量参数定义
double precision          :: density_old(species_max),                &   !所有物种密度
                             species_rate(species_max),               &   !所有物种的反应速率
                             reaction_rate(reactions_max)                 !所有化学反应的反应速率

double precision          :: time, tau,dtime, EN, power,                  &   !时间,时间步,约化场强, 功率密度
                             all_neutral ,all_species ,               &   !总的中性粒子密度,总的物种密度
                             Oxgma, mu_e, Ne                              !电导率,电子迁移率,电子密度(cm-3)

!时间迭代参数
double precision, parameter::dtime_min       =1.0d-10,                &   !最小时间步
                             time_end        =1.38d-1 ,                 & !结束时间
                             t_on=1.0d-7, t_off=1.0d-7 ,              &   !脉冲上升、下降时间
                             t0=7.0d-2 ,  t1=6.79d-2                      !开始时的余辉时间分为两段

integer                    :: pulse
integer,parameter          :: pulse_max=18                                !最大脉冲数的设置 ,半个脉冲周期的放电次数N_MD=9                                 
  

!------------------------------------------------------------------------------------------------------------------------------------
!输出项目名称并在屏幕上显示
!
write(*,'(99(1pe14.5))') gas_density, power_min                           !输出数据,进行计算测试
write(*,'(/,A)') 'no catalysis_initial'

!------------------------------------------------------------------------------------------------------------------------------------
!软件初始化,初始密度和气体温度等参数
!
call ZDPlasKin_init()
call ZDPlasKin_set_density('N2',density_ini_N2)                           !初始N2密度
call ZDPlasKin_set_density('NH3',density_ini_NH3)                         !初始NH3密度
call ZDPlasKin_set_density('e',elec_density,LDENS_CONST=.false.)          !初始电子密度(false为随时间变化,true为不随时间变化)

call ZDPlasKin_set_conditions(GAS_TEMPERATURE=gas_temperature)            !气体温度
call ZDPlasKin_set_config(QTPLASKIN_SAVE=.true.)                          !计算结果的可视化输出

!====================================================================================================================================
! 屏显输出——测试用
write(*,'(99A14)')'time', 'power', 'EN', 'Oxgma', 'density_e'             !屏幕测试输出

!时间步迭代//time integration
!====================================================================================================================================

time=0.0d0                                              !设置时间初始值
dtime = dtime_min                                       !设置时间步

!------------------------------------------------------------------------------------------------------------------------------------
do pulse=1, pulse_max                                   !脉冲循环计算  

do while(time .lt. pulse*time_end)
     
      tau = time-(pulse-1)*time_end                    !当前周期内相对时
      
      if (tau < t0 - 1.0d-6) then
          dtime = 1.0d-6
      else
          dtime = dtime_min
      end if
      
      !边界截断,防止步长跨过周期终点
      if (time + dtime > pulse*time_end) dtime = pulse*time_end-time
      
      
      if (tau .lt. t0)  then
          power = power_min                              !等待阶段,基底功率power_min
      
      else if (tau .lt. t0 + t_on)  then
          !上升沿:从power_min线性上升至power_max
          power = power_min + (power_max - power_min)/t_on * (tau-t0)
      
      else if (tau .lt. t0 + t_on + t_off)  then
          !下降沿:从power_max线性回落至power_min
          power = power_max - (power_max-power_min)/t_off * (tau - (t0+t_on))
      
      else
          power = power_min                              !脉冲结束,维持基底功率power_min
      end if
         
!------------------------------------------------------------------------------------------------------------------------------------
!利用功率密度计算约化场强

call ZDPlasKin_get_conditions(ELEC_MOBILITY_N=mu_e)                    !调用电子迁移率
call ZDPlasKin_get_density_total(ALL_NEUTRAL=all_neutral)              !调用中性气体总密度

Oxgma = e_const* density(species_electrons)*mu_e/all_neutral           !计算电导率,需要除以中性气体总密度
EN    = (power/Oxgma)**0.5/all_neutral*1.0d17                          !计算约化场强,1Td=1.0d-17v*cm2
call ZDPlasKin_set_conditions(REDUCED_FIELD=EN)                        !设置约化场强


call ZDPlasKin_timestep(time,dtime)                                    !调用时间积分
     time=time + dtime                                                 !时间不断进行递增



write(*,'(99(1pe14.5))') time, power, EN,  Oxgma, density(1)

   
    end do   !结束时间循环
end do       !结束脉冲循环


!------------------------------------------------------------------------------------------------------------------------------------
write(*,'(/,A,$)') 'PRESS ENTER TO EXIT ...'
  read(*,*)

end program no_catalysis_initia
------------------------------------------------------------
这是主代码,为什么出现下面这个错误
   7.00000E-02   1.80000E+00   3.10212E-01   3.12558E-04   1.00000E+13
   7.00000E-02   1.80000E+00   3.10212E-01   3.12558E-04   1.00000E+13
   7.00000E-02   1.80000E+00   3.10212E-01   3.12558E-04   1.00000E+13
   7.00000E-02   1.80000E+00   3.10212E-01   3.12558E-04   1.00000E+13
   7.00000E-02   1.80000E+00   3.10212E-01   3.12558E-04   1.00000E+13
   7.00000E-02   1.80000E+00   3.10212E-01   3.12558E-04   1.00000E+13
   7.00000E-02   1.59169E+03   9.22470E+00   3.12558E-04   1.00000E+13
   7.00000E-02   3.18169E+03   1.23937E+01   3.46126E-04   1.00000E+13
   7.00000E-02   4.77169E+03   1.42957E+01   3.90153E-04   1.00000E+13
   7.00000E-02   6.36169E+03   1.59258E+01   4.19129E-04   1.00000E+13
   7.00000E-02   7.95168E+03   1.72153E+01   4.48338E-04   1.00000E+13

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

84 积分
2 主题