Version 8 (modified by 18 months ago) ( diff ) | ,
---|
用户手册
基本介绍
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官网下载安装包
- 解压,编译,安装
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官网下载安装包
- 解压,编译,安装
tar -zxvf gsl-lastest.tar.gz make make install
Eigen函数库安装配置
- 在Eigen函数库官网下载安装包
- 解压,移动到lib目录下
tar -zxvf eigen-3.4.0.tar.gz
ISSDE程序编译,运行,函数及参数设置
ISSDE程序获取
git clone https://github.com/tingkefengren/ES1d.git
程序编译
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方程解析解的一致性
Note:
See TracWiki
for help on using the wiki.