= 用户手册 == 基本介绍 ISSDE是并行程序,在Linux平台编译运行。 == 程序安装 === 安装需求 * gcc-7.5.0 * openmpi-4.1.1 * gsl函数库 * Eigen函数库 === gcc-7.5.0安装 {{{ sudo apt install gcc-7.5.0 }}} === openmpi-4.1.1安装 * 在openmpi官网下载[https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.1.tar.gz 安装包] * 解压,编译,安装 {{{ tar -zxvf openmpi-4.1.1 cd openmpi-4.1.1 ./configure --prefix=/opt/openmpi-4.1.1 --enable-mpi-cxx --enable-mpi-cxx-seek --enable-debug make make install }}} === openmpi-4.1.1配置 {{{ vim ~/.bashrc }}} * 将以下内容添加到.bashrc结尾 {{{ export PATH=$PATH:/opt/openmpi-4.1.1/bin export C_PATH=$C_PATH:/opt/openmpi-4.1.1/include export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/openmpi-4.1.1/lib export LIBRARY_PATH=/$LIBRARY_PATH:/opt/openmpi-4.1.1/lib export INCLUDE=$INCLUDE:/opt/openmpi-4.1.1/include }}} * 更新配置 {{{ source ~/.bashrc }}} === gsl函数库安装配置 * 在gsl官网下载[https://mirror.ibcp.fr/pub/gnu/gsl/gsl-latest.tar.gz 安装包] * 解压,编译,安装 {{{ tar -zxvf gsl-lastest.tar.gz make make install }}} === Eigen函数库安装配置 * 在Eigen函数库官网下载[https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz 安装包] * 解压,移动到lib目录下 {{{ tar -zxvf eigen-3.4.0.tar.gz }}} == ISSDE程序编译,运行,函数及参数设置 === ISSDE程序获取 联系本人获取 {{{ Email:yifeng.zheng@ipp.ac.cn }}} === 程序编译 {{{ cd src make }}} === 程序运行 {{{ cd bin mpirun -np 4 ./a.out }}} === 程序文件夹 * bin 二进制文件 * src 源程序文件 * include 头文件和输入文件 * lib 库文件 * configure 配置文件 === 源程序函数构成 * 主函数 stochastic_process_uniform_field_mpi.cpp * 输入接口函数 read_data.cpp * 牛顿法函数 newton_raphason_general.cpp * 龙格库塔函数 runge_kutta_general.cpp * 额外函数集合 ext_fun.cpp === 参数设置 * 主要参数开关 {{{ int store_size=10; //数据储存步长 int DATA_NUBEAM=2; //0 单粒子, 1 多粒子束, 2 由NUBEAM生成的源分布 int CO_CTR_TANG_PERP=2; //束编号 int A0BEAM=0; //0 束1,1 束2 int CLOCKWISE=1; //纵向磁场方向 1 逆时针 ,-1 顺时针 int CHECKPOINT=0; //checkpoint开关 1 使用checkpoint处数据, 0 使用初始设定数据 int RIP=0; //波纹场设置 0 无波纹, 1 解析波纹场, 2 EAST工程波纹场, 3 鱼尾波纹场(DEVICE=4), 4 BEST 3.6m半径波纹场工程数据(DEVICE=5), 5 CFETR 7.2m半径波纹场工程数据 (DEVICE=4) int NORMALIZATION=1; //归一化开关 int SPLITTING=1; //分裂法开关 int DEVICE=7; //装置参数, 0 EAST放电#93910, 1 BEST 3.3m半径 Q=1情况, 2 BEST 3.3m半径 Q=5情况, 3 BEST 3.3m大半径NBI Q=1情况, 4 CFETR稳态alpha粒子分布, 5 BEST 3.6m alpha粒子 Q=1情况, 6 BEST 3.6m半径 Q=5情况, 7 EAST放电#101735 int ICRF=1; //当DEVICE=7, 不同少子浓度下ICRF加热NBI, 0 只有NBI, 1 1% H, 2 5% H and 3 10% H int COLLISION=0; //0 无碰撞, 1 和电子碰撞, 2 和D离子碰撞, 3与T离子的碰撞, 4 和电子以及D的碰撞, 5 和电子以及T的碰撞, 6 和离子D以及T的碰撞, 7 同时包含对电子以及所有类型离子的碰撞ions. int BC=1; //0 最外层闭合磁面边界, 1 第一壁边界 int MHD=1; //0 没有MHD, 1 含有MHD扰动场 int MHD_OVERLAP=0; //0 MHD没有重叠,1 MHD的(2,1)和(3,2)重叠 }}} * 主要输出文件 {{{ v_para_dis_NBI_1_ICRF_EAST_mhd_one_particle_D_Limiter_g_nor_mi_e_i_t_f_mpi.txt; //粒子平行方向速度分布 v_perp_dis_NBI_1_ICRF_EAST_mhd_one_particle_D_Limiter_g_nor_mi_e_i_t_f_mpi.txt; //粒子垂直方向速度分布 v_x_dis_NBI_1_ICRF_EAST_mhd_one_particle_D_Limiter_g_nor_mi_e_i_t_f_mpi.txt; //粒子x方向速度分布 v_y_dis_NBI_1_ICRF_EAST_mhd_one_particle_D_Limiter_g_nor_mi_e_i_t_f_mpi.txt; //粒子y方向速度分布 v_z_dis_NBI_1_ICRF_EAST_mhd_one_particle_D_Limiter_g_nor_mi_e_i_t_f_mpi.txt; //粒子z方向速度分布 x_dis_NBI_1_ICRF_EAST_mhd_one_particle_D_Limiter_g_nor_mi_e_i_t_f_mpi.txt; //粒子x方向位置分布 y_dis_NBI_1_ICRF_EAST_mhd_one_particle_D_Limiter_g_nor_mi_e_i_t_f_mpi.txt; //粒子y方向位置分布 z_dis_NBI_1_ICRF_EAST_mhd_one_particle_D_Limiter_g_nor_mi_e_i_t_f_mpi.txt; //粒子z方向位置分布 }}} === 结果示例 * ISSDE程序计算结果与FP方程解析解的一致性 [[Image(htdocs:slowing_down_velocity_no_field_e_i_benckmark.png,50%,align=middle)]] * ISSDE程序结果与物理结果的一致性 [[Image(htdocs:slowing_down_thermal_e_e_maxwellian.png,50%,align=middle)]] * 分裂法与随机Runge-Kutta方法长期稳定性的对比 [[Image(htdocs:relative_energy_error_of_splitting_method.png,50%,align=middle)]] * 快离子轨迹与PTC程序轨迹的对比 [[Image(htdocs:Fig.1.png,50%,align=middle)]] * EAST中快离子损失图 [[Image(htdocs:heat_NBI_H001_new_rip_3d_limiter_10ms.png,50%,align=middle)]]