📄 pdc1.h
字号:
#include <stdio.h>#include <math.h>#include <unistd.h>#include <stdlib.h>#ifndef MPI_1D#include <time.h>#endif#ifdef MPI_1D#include "mpi.h" /* MPI Include file */#endif#define TWOPI 6.28318530717959#define PI 3.141592653589793323846#define EPS0 8.854e-12 /* (F/m)*/#define NperTORR 8.3221e20#define ECHARGE 1.602e-19 /* electron mass */#define EMASS 9.110e-31 /* electron charge */#define NSMAX 4#define HISTMAX 4096 /* upper bound on histories */#define HISTMAX2 256 #define max_loss 2000 /* maximum particle loss per cycle *//* #define R2 1 */ /* turns on volume weighting */#ifndef DBL_MIN#define DBL_MIN 1E-200#endif#ifndef max#define max(x, y) (((x) > (y)) ? (x) : (y))#endif#ifndef min#define min(x, y) (((x) < (y)) ? (x) : (y))#endif#ifndef True#define True 1#endif#ifndef False#define False 0#endif#define SWAP(a, b) tempr=(a); (a)=(b); (b)=tempr#define ARGON_LK 1#define ARGON 2/*******************************************************************/float nc2p, height, r0, r1, area0, reactor_vol, rhoback, backgrnd_i, dde, epsilon, extr, extl, extc, w0, dcbias, acbias, dc_ramp, ac_ramp, theta0, q_0, q_1, q_2, q_3, I_rf, E_z, I_z, mu_e, i_conv, sigma, oldsigma, dr, dt, df, me_e, vrscale, vscale, rhon, ptopn, dntod, entoe, gas_den, pressure, T_gas, nu_iz, nu_el, nu_ex, selsmax, elsengy0, elsengy1, alpha0, alpha1, alpha2, alpha3, alpha4, seec[NSMAX], iwall[NSMAX], qm[NSMAX], charge[NSMAX], Escale[NSMAX], q_ratio[NSMAX], mass[NSMAX], wc[NSMAX], intoi[NSMAX], a_scale[NSMAX], v0[NSMAX][2], vt[NSMAX][2], vc[NSMAX][2], v0_th[NSMAX], vt_th[NSMAX], v0_z[NSMAX], vt_z[NSMAX], vr_l[NSMAX], vr_u[NSMAX], vt_l[NSMAX], vt_u[NSMAX], vz_l[NSMAX], vz_u[NSMAX], emin[NSMAX], de[NSMAX], emin_mid[NSMAX], de_mid[NSMAX], dtheta[NSMAX], rs_mid[NSMAX], rf_mid[NSMAX], risetime, enter[NSMAX][2], ke_sp[NSMAX];int nsp, nc, ng, ntri, ncolls, ionspecies, secondary, cycle, ftt, max_ft, ecollisional, icollisional, hist_hi, thist_hi, freq_hi, vel_dist_accum, nfft, nsmoothing, ramped, reflux, min_np, rescale_on, gas, it[NSMAX], k_count[NSMAX], nbin[NSMAX], nbin_mid[NSMAX], nvrbin[NSMAX], nvtbin[NSMAX], nvzbin[NSMAX], sp_k[NSMAX], n_lost[NSMAX], np[NSMAX], inject[NSMAX], maxnp[NSMAX], lost_index[NSMAX][max_loss];float dcbias2, dc_ramp2, acbias2, ac_ramp2, f02, theta02, w02, risetime2;int ramped2;char src, **rate_title;double atime, Trf; float **r, **v_r, **v_theta, **v_z, **angular_mtm, **sp_n, **sp_n_k, **sp_n_0, **sp_n_mcc, *rho, *rho_unfilt, *efield, *phi, *efield2, *phi2, *vol, *r_array, *t_array, *f_array, **np_hist, **np_hist2, **phi_hist, *sigma_hist, *ese_hist, *ke_tot, *te_hist, **kes_hist, *cur_hist, *com_cur_hist, **com_phi_hist, *Ez_hist, *cur_fft, *phi_fft, *z_fft, *Iz_hist, *Iz_hist2, *mu_hist, *mu_hist2, *mu_hist3, *pow_fft, **sheath, **esheath, **jdote, **jzdotez, *nu_iz_hist, *nu_el_hist, *nu_ex_hist, *mphi_fft, *Local_t_array, *iontemp, *r_grid, *dr_n, **rate_show, **fe, **ftheta, **fe_mid, **fe_mid_show, **e_array, **th_array, **emid_array, **mccrate, **j_r, **jr_unfilt, **j_z, **jr_prof, **jz_prof, **mu_prof, **ke_r, **ker_r, **ket_r, **kez_r, **ke_avg, **ker_avg, **ket_avg, **kez_avg, *com_power_hist, *avg_pow_hist, *pow_hist, *e_sum, *e_ave, **flux, *phi_sum, *phi_ave, **den_sum, **den_ave, **density, *rho_ave, *rho_sum, *Pel, *Pcx, *Pie, *Pel_show, *Pcx_show, *Pie_show;/* velocity distribution function */float ***vr_dist, ***vth_dist, ***vz_dist, **vr_array, **vth_array, **vz_array;/* Typing the function calls */float frand(void), J_0(float);float maxwellian(void), maxwellian_flux(void); float distribution(int, int), distribution_flux(int,int);void maxwellv(float *, float *, float *, float);void history(void), start(void), wall(int), move(int), gather(int), fields(void);void mccdiag_init(void), (*mccptr)(int);float (*sigmaMptr)(float), (*sigmaTptr)(float), (*mueFacPtr)(void);void init_rho(void), field_init(void);void argonmcc(int), argonmccLK(int);float asigma1(float), asigma1a(float), asigma1b(float), asigma2(float), asigma3(float), asigma4(float), asigma5(float), asigmaT(float);float LK_asigma1(float), LK_asigma1a(float), LK_asigma1b(float), LK_asigma2(float), LK_asigma3(float), LK_asigma4(float), LK_asigmaT(float);int unif_grid(int, int), const_vol_grid(int,int), linear_grid(int, int), split_grid(int, int);int (*j_pointer)(int,int);float mue_factor(void), mue_factorLK(void);void swap (float v[], int, int);/*-------- LEEHJ ---------*/float *sp_ex, **AA, **A, *prod, *r_grid2, *x_array, *t_array2, **st_nex, **st_I_lhs, *intensity_lhs, *I_ave_lhs, *I_ave_lhs_show, *L_array, **st_I_rhs, *intensity_rhs, *I_ave_rhs, *I_ave_rhs_show, *ex_ave, *ex_ave_show, I_factor, k0, tau, xmin, xmax, Cx, *ng_array, *sp_exm, **st_nexm, *exm_ave, *exm_ave_show, lambda0, A_ki, delta_nu, *eden_ave, Dr, vg_therm, **C_hist, *prodm;float *emission_coeff, *radiation_flux, F_factor, **ex_rate_show, *vol2, **ex_mccrate, *error, *error_sum, *t_array3, *tot_intensity, **E_prod;int ex_count, sp_k_ex, lineshape, xbin, interval2, hist_hi2, calc_flag, unif, nc_RT, nc_ratio, RT_flag, it_rate, hist_hi3;char Lineshape;void start_rad(), excited_evolution();#define LORENTZIAN 1#define DOPPLER 2#define VOIGT 3#define N_norm 1e18float (*k_function)(float);float (*GE)(int, float);float lorentz(float), doppler(float), voigt(float);float asigma6(float), asigma7(float);void newvel(float, float, float *, float *, float *, int), newvelLK(float, float, float *, float *, float *, int);/* MPI variables */#ifdef MPI_1D#define ROOT 0 /* CPU which dumps, and restores data */float iwall_tot[NSMAX]; /* total wall current */int np_tot[NSMAX], /* total number of particles */ num_procs, my_rank, *counts, *displs;float **r_tot, **vr_tot, **vtheta_tot, **vz_tot, **sp_n_tot; /* total densities */ double startwtime, endwtime, time0; /* For time info. */#elseclock_t startwtime, endwtime, time0; /* For time info. */#endif float els_loss, cx_loss, en_loss, e_lost[NSMAX];int ecolsp, icolsp, ionsp;float eion, eexc, e_me, e_miz;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -