open-ptc

Catalogue
  1. 1. 源代码:
  2. 2. 软件组成
    1. 2.1. 网格生成工具mesh_creater
    2. 2.2. ptc计算程序
  3. 3. 依赖的环境
  4. 4. 编译程序

总体介绍
PTC code 是Particle Tracer Code for Energetic Particles in Tokamak的简称,是基于托卡马克几何的三维非圆截面,包含全轨道和导心漂移轨道的混合测试粒子程序。PTC code 采用读取 gfile (eqdsk) 平衡磁场,追踪粒子,模拟托卡马克位形电磁场扰动引起的高能粒子损失。

源代码:

https://gitee.com/openfusion/open-ptc

软件组成

PTC软件目前主要有三个部分:

  1. 网格生成工具:mesh_creater
  2. ptc计算程序:ptc
  3. 基本的数据处理工具

在登录集群后,通过命令 module load ptc,可以将ptc软件需要的环境变量设置好。

网格生成工具mesh_creater

mesh_creater利用托卡马克平衡文件 gfile (eqdsk)文件和网格配置文件 mesh.cfg 构造 ptc 程序所需要输入的网格文件 mesh.h5。
运行命令:mesh_creater <mesh.cfg>,其中gfile为托卡马克标准的平衡文件,mesh.cfg为配置网格参数的配置文件。网格参数配置文件典型例子如下:

/* mesh config input file */
mesh=
{
nr=101; //
ntheta0=3;
ntheta1=300;
nphi=8;
nr_i=0; //1, dl in guass space; 0 dl in uniform space.
mesh_refine=1;
nr_cpu=1;
nphi_cpu=1;
ntheta_cpu=4; //
}
其中主要的参数为 nr (小半径方向格点数量),ntheta_cpu(极向密度参数,一般取3-6)。
在正确运行完mesh_creater后,将得到4个hdf5格式的数据文件,分别是

  • mesh.h5 //芯部网格文件;
  • meshall.h5 //芯部+边界到壁面的网格文件;
  • poin.h5 //等离子体芯部的磁面信;
  • vertex.h5 //等离子体芯部,磁面上的网格顶点数据。

其中目前最常用到的文件为mesh.h5(芯部网格文件),ptc采用三角形网格描述极向截面。

ptc计算程序

运行ptc计算程序,需要准备上最少三个文件,

  1. 第一个是刚刚在产生网格时已经用的gfile,
  2. 利用上一步 网格生成工具mesh_creater所生成的网格文件。
  3. 还有一个ptc物理参数的设置文件input.cfg。
    第一个文件和第二个文件在一般情况下应该匹配(即生成网格所需要的gfile和运行ptc所需要的gfile相同)。
    将上述三个文件放在一个文件夹中,分别以gfile, mesh.h5 和input.cfg命名,得到ptc的输入配置文件夹。
    以ptc包中所带的例子 (data文件夹中,放有多个ptc输入数据)为例:
    运行ptc的命令为: 
    ptc -c data/one_particle_test

依赖的环境

PTC所需要的编译环境及所依赖的一些软件包,ptc核心代码采用c++语言编写,并行计算目前主要采用mpi方式,目前需要依赖的库有:mpi,gsl,hdf5,libconfig,petsc。

ptc目前有两个部分,

1:网格生成程序 mesh_main,网格构造程序,读取tokamak平衡文件(eqdsk文件)构造三角形网格(mesh.h5文件)。
这个模块位于ptc目录的equ下面。
编译该模块需要一些第三方的软件包支持:

  • cgal (cgal/4.11 经过测试)
  • hdf5(hdf5-1.8.20经过测试)
  • gsl(gsl2.4 经过测试)
  • libconfig(libconfig/1.5 经过测试)

在psc工作站上的配置(10.8.128.160: 2022)

(Currently Loaded Modulefiles:

  1. cmake.3.13.0 4) cgal/4.11-forptc_Release 7) libconfig/1.5
  2. intel/2018 5) gsl/2.4_static
  3. impi/intel.mpi.2018_intel 6) hdf5/hdf5_parallel-1.8.20)

2:ptc ptc的主程序,用来计算粒子运动,位于目录triangle_pic下面

在团队集群上,可以通过ptc/mymodule 脚本来设置ptc编译环境:

source ptc/mymodule

不同的机器,所需要的环境稍有区别,比如我们组里的集群SC_Cluster上可以用预先设置的脚本

1
source ptc/mymodule_scc_new

设置好相关的环境变量。

编译程序

进入ptc/trangle_pic目录,运行make命令进行编译,如果没有错误的话,
得到两个可执行文件:

1
2
mesh/mesh_creater
triangle_pic/ptc