CSPIC
CSPIC (Canonical Symplectic Particle-in-Cell) 是基于GAPS项目的PIC程序,其理论基于正则辛PIC算法
目标
实现MPI、OpenMP并行化的正则辛PIC算法。
现阶段已经实现
MPI并行化的正则辛PIC算法,周期性边条件,外场可以在运行时设定。目前粒子种类为1种,多种粒子的还在实现中。
算法理论
具体正则辛PIC算法的理论本质就是写出Maxwell-Vlasov系统在离散的正则坐标(A,Y,x,p)下的Hamiltonian,然后利用正则Euler辛方法去构造正则辛PIC算法。我们也可以写出不同形式和空间阶数的Hamiltonian,并用其它正则辛方法去构造辛PIC算法,但是结果多数为隐格式而不适合大规模计算。目前这一领域还有待研究。
程序实现
该程序利用Lua作为输入,HDF5文件格式为输出,并用MPI作并行化处理。
与变分辛PIC算法的关系
当变分辛PIC算法针对场的空间离散也用简单的空间差分,时间也是简单的向前差分,则可以容易证明变分辛PIC算法(VSPIC)与此正则辛PIC算法(cspic)之间就只相差一个特定的可逆非退化并与时间步l无关的坐标变换F,如果忽略实现时由于浮点数精度造成的舍入误差,并且变分辛算法也使用由该坐标变换F从正则辛算法得来的初条件,则二者可以得到在相同坐标变换F意义下完全相同的结果。即:
该等价性也可以通过数值上验证。以下是两者在满足上述变换相等的初条件下得到电场空间随时间演化数值上的相对误差,可以看出这两种算法在数值上就只有舍入误差的差别。
不过当演化时间变长,则由于舍入误差会累积(如超过1e14时间步),或者引发了一些初值敏感的非线性效应,可能会造成结果上有不可估量差别。
算例
算例还有待完善,目前比较成熟的有Landau damping
