美文网首页
BOUT++ 网格产生阅读

BOUT++ 网格产生阅读

作者: 锅炉工的自我修养 | 来源:发表于2020-10-11 20:26 被阅读0次

创建case

    1. 创建sf2.5-- 调查内外不对称性
    • done
    1. 运行sd10-- 选取相同的辐射case
    • done
    1. 运行sf1.5-- Argon 在较低的注入速率实现脱靶
    • crash
    1. 运行sd16-- 获得合适的辐射case
    • done

网格

  • 1.找到源文件
    • hyponotoad.pro
    • hypnotoad_version.pro
    • tools/tokamak/gridgen/hypnotoad_version.pro

2. Hands-on exercises: transport code

generate the grid file

    1. EFIT 生成网格
    • 通过hypnotoad将 gfile转化为nc-file
    • 网格分辨率:NX=2^{n}+4(径向),NY=2^{n}(极向)
    1. 从实验获得的p-file获得剖面信息
    • 通过pfile2Grid.pro读取p-file
    • 通过prof_fit.pro拟合并smooth剖面
    • Ni2Gridall_im.pro将数据写入nc-file
      image.png

获取输运系数的一种方式

基于实验测量的内边界等离子体剖面,有效粒子热输运可以从输运方程获得(不考虑漂移)with sources from inner radial boundary


geometry used in the simulation

    1. 导入文件
    1. 显示文件的基本信息

稳态解剖面

    1. 如何绘图?
    1. 含时的问题
    1. 上游剖面(温度+密度)
    • 在边界线内部,我们固定等离子体密度和温度剖面为实验剖面使用计算的输运系数
    • 在SOL,我们计算通过鞘层边界条件使用输运方程,通过扩展台基区输运系数到SOL

Generate grid-file for Bout++

    1. IDL
    • 通过hypnotoad读取gfile
      • EFIT
    • 网格分辨率:
      • (2^{n}+4) \times 2^{n}(径向,极向)

Important

阅读源码ee

TOKAMAK GRIDS FOR BOUT++

磁平衡装换

    1. 该code可以被用来作为一个外部的生成GS-磁平衡的工具,用它生成为bout++使用的网格输入文件
    • elite/elite2pdb 从EFIT 格式装换
    • 该程序输出一个中间的PDB文件,然后交互IDL,装换为BOUT++的输入信息
      • all/pdb2bout.pro
pdb2bout, "intermediate_file.pdb",output="grid.pdb" [,/smooth]

Grid generation

从EFIT 的磁平衡生成网格,提供内BOUT++使用

  • gridgen/ Grid generation codes
  • gridgen/doc Manual for grid generation

hypnotoad is a graphical interface in IDL to these routines:

IDL> hypnotoad

Equilibrium generation

  • 产生近似的磁平衡
    • shifted_circle/ generate shifted circle equilibria

limiter???????


Intermediate PDB file format

  • 存储 GS-平衡

必须的文件

    1. Scalar quantities
    • nx:surface number
    • ny: number of pointer per flux-surface
    1. 1D arrays (nx)
    • psi: psi on each flux surface
    • mu0p: Mu0*pressure
    • mu0pprime
    • f
    • ffprime
    • qsafe: safety factor
    1. 2D arrays (nx by ny)
    • Rxy: Major radius of each point
    • Zxy: Height of each point
    1. Optional quantities

If these are not present they can be inferred from other quantities or entered manually.

  • Bpxy: Poloidal field
  • Btxy: Toroidal field
  • Brxy: B field in R direction
  • Bzxy: B field in Z direction
  • Ni: density
  • Te: electron temperature
  • Ti: Ion temperature

Tokamak grid generator in IDL

B.D.Dudson

1. Introduction

    1. 磁场线对齐网格对于tokamak模拟是很重要的,有如下特点
    • IDL 环境
    • 自动调整设置,网格生成可自定义,但是输入的最小数目非常小(网格数和psi变化)。PSI变化要求符合边界
    • 可以操作一个任意数目XP的位型,可以应付奇怪的位型

对于更加复杂的网格生成器,例如CARRE 网格生成器for B2, UEDGE 也可以生成使用与BOUT++的输入。


Using the Hypnotoad(飞向未来的催眠蛤蟆)

    1. 调用
IDL> hypnotoad

出现如图的图形界面


image.png
    1. load the equ(import equ)

Read G-EQDSK


image.png
    1. Read boundary

不尝试识别边界


image.png
  • 一旦你获得磁平衡和边界,输入径向和极向格数
  • 归一化PSI (0 磁轴,1=innermost separatrix)
  • 自定义重新分配
    1. Generate mesh (create_grid.pro)
    • 定位初始XP,选择哪个是内部的点,已经对应的psi值

    • 约束决定对应的偏滤器靶板以及芯部边界

    • 常数psi到达靶板靶板

    • 下图为下左偏滤器区域的网格。

      image.png
    • 网格并不会总是从左下开始,网格从内X点开始(\psi=1)顺时针产生网格,对于UDN网格从右上开始产生

    • 如果需要,可以再次产生网格

"Strict boundaries",决定格点是否超过边界。如果关闭偏滤器腿会在边界停止,但是径向网格允许穿过边界

  • 如果觉得合适,可以点击“Output mesh”产生网格。
    image.png

尽管网格生成是自动,一些网格需要用户交互

  • 检查equ是否合适
  • 电流和压强剖面是否合理
  • 不合适会出现数值问题,产生的结果也是不正确的

    1. 计算压强梯度的公式


      image.png
  • h_{\theta}通过格点几何距离计算,
  • B_{\zeta}f(\psi)
  • B_{\theta}\psi衍生出

create_mesh.pro using DCTs

计算的压强与压强的对比
image.png
image.png
image.png

使用网格生成器

    1. create_grid 获取2D的\psi,产生的沿着流表面的正交网格
  • psi_inner,归一化的\psi在最内边界
    • scalar:用作芯部和PF区域
    • array[0]:芯部的内归一化\psi
    • array[1..n_xpoint]:内\psi for 每一个PF区域
  • psi_outer:最外边界归一化磁通
    • scalar: 芯部和PF区域
    • array[0..n_xpoint-1]:每一SOL区域的最外边界磁通
  • nrad:径向格点数
    • scalar:总的径向网格数,自动分区
    • array[0]:芯部的径向径向格点
    • array[1..(n_xpoint-1)]:边界间的径向格点(从芯部到边界)
    • array[n_xpoint]: 最后一个边界外的径向格点
  • npol:极向格点数
    • scalar: 中的格点数.基于极向arc长度分割极向区域
    • array[0..(3*n_xpoint-1)]:
  • rad_peaking
  • pol_peaking

4. DCT

image.png

5. 寻找关键点

  • OP
  • XP

6. 区域划分


7. separatrices

  • 计算经过XP的等高线
  • 闭合一个XP,近似改变\psi
    image.png
    image.png

reading the source code

种下一棵树最好的时间是10年前,其次就是当下。

project:tokamak_grids

README

    1. 代码产生tokamak问题的输入文件

grid generation

pyGridGen

README

    1. BOUT++ python 预处理 module

本module包含的文件夹产生一个workflow,为BOUT++产生输入网格文件。改脚本是IDL脚本的延伸翻译 in ../gridgen,功能与../gridgen/test.pro类似


dependencie:

../../../tools/pylib (include in PYTHONPATH)
matplotlib/pylab
numpy
scipy
sys
bunch   https://pypi.python.org/pypi/bunch
mayavi2/mlab
itertools
cPickle
netCDF4
time
copy
ode.lsode  http://web.engr.illinois.edu/~mrgates2/ode/

*Initial development on a MacOS X using Enthought Canopy 1.1 python installation. 
Most packages should be there by default except maybe mayavi2, ode.lsode and bunch.

    1. 执行:python workflow.py
    1. anlyse_equil.py fllows the IDL algorithm step by step, Analyse_equil_2.py 小修,Analyse_equil_3.py 目前最有效。

workflow.py(main function)

基本流程

    1. grid

相关文章

  • BOUT++ 网格产生阅读

    创建case 创建sf2.5-- 调查内外不对称性 done 运行sd10-- 选取相同的辐射case done ...

  • [转]meshgrid用法

    详细解释:help meshgridmeshgrid用于从数组a和b产生网格。生成的网格矩阵A和B大小是相同的。它...

  • 2020-06-14carre学习

    1996R. Marchand (CPC) Abstract 自动产生曲线准正交网格的计算代码 平衡产生考虑str...

  • 12月9日4D分享

    A:行销安排与网格看管出现问题 M:由于场次安排多,而且有住户数的要求,沟通不及时,产生误会,生气 B:网格经理家...

  • 套利系统1.0进度

    之前采用传统网格策略在价格区间内分层级挂单,然后产生对冲单进行套利。可是一个价格只能进行一次对冲套利,当一套网格策...

  • 云计算、雾计算、边缘计算到底是怎么回事?

    物联网产生了前所未有的大量数据,进而对网络结构产生巨大的压力。这些年,各种“计算”层出不迭,网格计算、云计算、雾计...

  • CSS Grid Auto

    关键词:隐式轨道 / 隐式网格 / 自动布局算法 隐式网格 隐式网格是指当网格项目确认在显式网格之外时所创建的网格...

  • 平面设计中的网格系统

    头脑发热了,买了一本《平面设计中的网格系统》 我真觉得自己买错了书,并不是我希望了解得网格系统,粗略的阅读完毕,大...

  • GridLayout网格布局

    网格术语 网格线(Grid Lines)网格线组成了网格,他是网格的水平和垂直的分界线。一个网格线存在行或列的两侧...

  • 铜沛

    铜沛网格 铜沛网格

网友评论

      本文标题:BOUT++ 网格产生阅读

      本文链接:https://www.haomeiwen.com/subject/kqjduktx.html