FLASH 模拟程序学习笔记(1)

FLASH 简介

!!! 这个不是大家熟知的动画flash哈~~

FLASH是一个芝加哥大学开发的高性能辐射流体模拟程序,用来模拟等离子体中发生的物理过程。可以在FLASH的主页去申请。申请时需要填写下自己的研究背景,以获得代码的许可。这个程序是用Fortran语言开发的,但是具有良好的数据结构,进行大型的模拟计算还是非常容易入手的。使用FLASH请致谢:

The software used in this work was in part developed by the DOE NNSA-ASC OASCR Flash Center at the University of Chicago.

FLASH提供了非常详细的说明文档,以及许多例子程序:

  • 说明文档: ihsbabc@126.com
  • HEDP模拟
  • 流体/磁流体模拟

FLASH的计算能力包括(从FLASH主页上翻译过来的):

  • 物理求解器:

    • 流体力学
    • 磁流体力学
    • 状态方程
    • 辐射转移
    • 扩散和热传导
    • 激光能量沉积
    • 不透明度
    • 粒子处理
    • 核烧蚀
    • 引力
    • 宇宙学
    • 磁阻/电阻
    • 原初化学
  • 基本结构:

    • Driver:
      – Split
      – Unsplit
    • Grid:
      – Uniform Grid(均匀网格)
      – AMR(自适应网格,PARAMESH)
      – AMR(Chombo)
    • GridParticles:
      – 拉格朗日框架
    • GridSolvers:
      – MultiGrid
      – Multipole
      – Barnes-Hut Tree
      – PFFT
      – Direct Solvers for Uniform Grid
    • IO:
      – HDF5
      – PnetCDF
    • MultiSpecies
    • RuntimeParameters
    • Monitor:
      – Hooks for TAU
      – MPI定时器

FLASH的安装

安装系统要求:

最基本的当然需要一个linux计算机(具有多核的服务器最好啦):

  • F90(Fortran 90)编译器(如GNU的gfortran)
  • C编译器 (如GNU的gcc,Intel的icc等)
  • MPI库(openmpi或者MPICH)
  • HDF5(如果要使用FLASH并行IO的能力)
  • NetCDF库(并行IO需要)
  • chombo库(AMR网格计算需要,安装可参考网址
  • HYPRE库(扩散求解器需要,安装可参考网址)
  • IDL语言(ITT Visual Information Solutions,可选,分析结果时可以用FLASH提供的IDL工具fidlr3.0)
  • GNU make编译工具gmake
  • Python语言(方便进行结果分析)

安装及测试:

FLASH在所有需要的库装上后,就可以直接编译运行。具体步骤如下:
- 从FLASH官网获得程序(FLASHX.Y.tar,X.Y为版本号,如4.2)

tar -xvf FLASHX.Y.tar

  • 安装上述需要的库(最好都装上)
  • 进入解压的文件夹FLASHX.Y,设置安装的库的路径,位置如下:

cd sites/Prototypes/Linux
vim Makefile.h

修改MPI_PATH, HYPRE_PATH, ZLIB_PATH, NCMPI_PATH等。
如果操作系统为其他,则选择相应的sites下的操作系统的Makefile.h。也可以定制自己的系统的配置文件,参考用户说明手册

  • 返回FLASH程序的主目录,运行(python脚本setup所在的目录):

./setup Sedov -auto

如果没有安装HDF5库,可以使用下列命令,无输出测试:

./setup Sedov -auto +noio

  • 此命令会生成一个object文件夹,进入次文件夹,编译:

cd object
make (如果有多核,为加快编译速度,可以使用make -j 10)

  • 正常情况下,程序应该能够正常执行了, 使用如下命令执行:

mpirun -np 8 flashX

X代表版本号X.Y中的X,如版本号为4.2,则X为4.

有的并行计算机如集群采用一些集群管理软件,如pbs,可以按相应的方法进行提交。对于一些集群,执行命令可能类似于下列命令:

mpiexec.hydra -n 8 -f nodesfile flashX

  • 正常情况下,可能输出下列结果:

    • sedov.log: log文件,记录运行时参数,如运行时间,编译时间等
    • sedov.dat: 积分物理量随时间的值,如总质量、总能量、总角动量等
    • sedov_hdf5_chk_000*:每隔一定时间记录一次的断点文件,可以用来进行重新计算。
    • sedov_hdf5_plt_000*:一些关键物理量如温度、密度、压强等的信息,用来进行可视化分析

    到此,如果这些输出都正常了,说明FLASH基本就装成功了。


评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值