运行环境
系统: Ubuntu16.04
Neper: version-3.5.0
学习记录一
该学习记录主要针对Neper
的晶粒建模过程, 用于在Abaqus
中进行细管尺度上的研究.
-
初始化文件
调用模块前, 可以使用选项–rcfile指定另一个初始化文件.
当调用Neper的模块时, Neper在初始化文件中查找’neper module_name’的出现.
找不到初始化文件, 或者找不到’neper module_name’, 则neper将考虑命令行参数.
初始化参数仅使用最后指定的值
1
2该处为禁用读取初始化文件
NEPER="neper --rcfile none" -
模块
模块名称: -T, -M, -V
模块参数: 包括所需的输入数据和选项
输入数据(不是文件名)和选项以
-
开头可以按任意顺序选项提供选项, 每个选项后跟一个参数
可以分别提供参数值
0
或1
来禁止和启用逻辑选项 -
参数分隔符
,
分隔符组合了相同类型的参数, 可以相互独立的进行处理:
分隔符用于组合相关参数, 即不同类型的参数, 这些参数不能进行独立的处理::
用于模块-T(以及模块-M中的一点), 用于将参数值分配给多尺度曲面细分的不同比例, 优先于,
和:
分隔符
学习记录二
-
细分模块
-T
(镶嵌模块)模块
-T
以二维或三维方式生成有界空间域的曲面细分
和多尺度曲面细分
, 域必须是凸的, 且细分模块可以使曲面细分规则化, 从而实现更高质量的网格划分,还可以为曲面细胞生成晶体去向
.在该模块下, 输出文件以标量格式
.tess
或者栅格格式描述曲面细分, 还有.tesr
两者都是模块-M
的输入文件.- 输入数据
1
2
3
4
5
6
7
8
9
10
11
12
13#-n 指定曲面细分的单元格数
neper -n integaer/char_string [Input data]
-id 指定曲面细分的标识符, 它定义了随机数生成器用来计算初始种子位置的种子
-dim 指定曲面细分的尺寸, 即维度
-domain char_string
"cube(size_x, size_y, size_z)" 3D立方体
"square(size_x, size_y)" 2D矩形
#-loadtess 指定加载文件
neper -loadtess file_name [Input data]
从文件加载镶嵌
#-loadtesr 指定加载文件
neper -loadtesr file_name [Input data]
从文件加载栅格镶嵌形态选项
1
2
3
4
5-morpho char_string
'voronoi' 用于标准的Poisson-Voronoi镶嵌
'graingrowth/gg' 晶粒成长统计特性
tesr 用于栅格镶嵌细胞
-morphooptilogvar char_string 在优化过程中记录变量, 即种子属性晶向选项
1
2
3
4
5-ori 指定晶体取向分布的类型
neper -ori char_string
'random' 3D空间中随机分布
'uniform' 3D空间中均匀分布(晶体对称性必须使用-oricrysym进行规范)
'equal' 对于等效父单元格之一的方向转换选项
1
2
3
4
5
6
7
8
9-transform char_string(...) [标量镶嵌] 用于尺度上的缩放
neper -transform char_string()
'scale(x_fact,y_fact,z_fact)' 分别沿方向x、y和z缩放镶嵌, 对于2D空间, z_fact可以省略
'rotate(axis_x,axis_y,axis_z,angle)' 用于围绕中心和轴/角度对进行旋转
'translate(dist_x,dist_y,dist_z)' 沿着三个方向进行平移
'cut(primitive1,primitive2,...)' 用于切割一系列几何基元
-sort char_string 对镶嵌单元格进行排序(通常是为了便于数据后处理)
neper -sort char_string
'提供用于排序的数学表达式作为参数's正则化选项
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17-regularization logical 使镶嵌正则化,即去除小边,间接去除小面. 对于3D, 可以使得平面变为非平面
neper -regularization logical
这由选项-fmax、-sel和-mloop控制
使用正则化可以使模块-M获得更高质量的mesh
'Possible values: 0 or 1'
-fmax real 指定允许的最大平坦面误差(以度表示)
neper -fmax real
flatness容差是面上两个位置的法线之间的最大角
'Possible values: 0 to 180. Default value: 20.'
-sel or -rsel real 指定绝对或相对小边(最大)长度
neper -sel or -rsel real
-rsel 定义为相对的平均细胞尺寸
对于3D中的单位体积单元, 默认-rsel 1的长度为0.25; 对于2D中的单位面积单元, 则为0.125
该值还能够避免使用默认网格化参数进行网格化, 还可以基于每个单元格指定值
-mloop integer 指定正则化循环的最大数量
neper -mloop integer
在每个循环期间, 在每个循环中,小边依次从最短到最大, 当达到最大循环数或在循环期间没有删除边时, 正则化停止. 默认值: 2.输出选项
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17-o file_name 指定输出文件名
neper -o file_name
-format char_string 指定输出文件的格式
neper -format char_string
'tess' Neper
'geo' Gmsh
...
对于栅格镶嵌:
'tesr' Neper
'vtk' Kitware
Possible values: tess, geo, ply, stl(:bycell), obj, 3dec, fe, tesr, vtk, ori. Default value: tess.
-oridescriptor char_string 指定.tess, .tesr和.ori files中使用的方向描述符
neper -oridescriptor char_strin
It can be Euler angles in Bunge, Kocks or Roe convention (e, ek, er).
-oriformat char_string 指定.ori输出文件的格式
neper -oriformat char_string
Default value: plain.后处理选项
1
2
3
4
5
6
7
8
9
10
11
12
13#第一个选项适用于曲面细分或栅格镶嵌的单元格和种子,与其尺寸无关
-statcell char_string 提供有关镶嵌单元格的统计信息
neper -statcell char_string
-statseed char_string 提供有关镶嵌种子的统计信息
...
#对于曲面细分,还可以基于实体获取统计信息
-statver char_string 提供有关镶嵌顶点的统计信息
...
#对于曲面细分,还可以获得基于体素的统计数据
#最后,可以获得特定点集的统计数据,该选项适用于曲面细分
-statpoint char_string 提供点的统计信息
neper -statpoint char_string
必须使用-loadpoint加载这些点调试选项
1
2
3
4-checktess file_name
neper -checktess file_name
检查镶嵌文件. 将file名称作为参数提供
如果镶嵌文件无法使用, 请使用此选项-loadtess或在其他模块中加载- 输出文件
镶嵌
1
2
3Neper tessellation file: .tess 它包含镶嵌的标量说明
Neper raster tessellation file: .tesr 它包含镶嵌的栅格描述
Orientation file: .ori 它包含镶嵌单元的晶体方向, 使用由选项-oridescriptor指定的描述符,将方向写入连续的行统计
为细胞、种子、顶点、边、面、多面体和点提供统计, 它们按每行一个实体进行格式化
1
2
3
4每一行都包含指定给相应的-stat选项的数据
镶嵌单元统计文件,.stcell
镶嵌种子统计文件,.stseed
点统计文件,.stpoint镶嵌优化日志文件
1
2
3
4提供日志文件的时间,变量,统计分布和目标函数值
这些文件包含为相应的-morphooptilog选项指定的数据
时间文件,.logtime
变量,即种子属性,文件,.logvarExample
-
网格划分模块
-M
模块
-M
是用于对标量和栅格镶嵌进行网格划分的模块, 有两种网格划分策略可用.-
参数
前提
1
2
3
4指定Gmsh二进制文件的路径(用于划分为三角形和四面体单元)
neper -gmsh path_name
指定临时目录的路径(由Gmsh使用)
neper -tmp path_name输入数据
在正常使用中, 输入数据是镶嵌文件
.tess
, 栅格镶嵌文件tesr
和网格文件.msh
.也可以从文件加载结果网格(使用选项-o不会覆盖文件). 如果该文件包含的尺寸小于镶嵌的尺寸的网格,则使用这些网格,并且仅生成高维的网格
网格选项
1
2
3
4
5
6
7
8在四面体'tet'和六面体'hex'之间指定单元的类型, 可以使用2D对应的''tri'和'quad', 它们是等效的.
neper -elttype char_string
指定单元的绝对或相对特征长度
neper -cl or -rcl real
rcl是相对于平均单元大小, 默认'-rcl 1', 平均每个cell有约100单元网格(2D中为64个)
-dim char_string 指定网格尺寸, 默认情况下,它等于输入数据维度('inputdim')
根据选项-meshqualexpr的指定,指定网格质量O的最小目标值
neper -meshqualmin real
-
指定2D网格算法
neper -mesh2dalgo char_string
The available values are mead (MeshAdapt), dela (Delaunay) and fron (Frontal).
# Possible values: mead, dela, fron. Default value: mead,dela,fron.
指定3D网格算法
neper -mesh3dalgo char_string
# 每种算法的格式均为“ mesh:opti”,其中mesh和opti表示网格划分和网格优化算法
# The available values of opti are ‘gmsh’ (Gmsh), ‘netg’ (Netgen) and ‘gmne’ (Gmsh + Netgen).
# Possible values: netg:none, netg:gmsh, netg:netg, netg:gmne. Default value: netg:gmsh,netg:netg,netg:gmne.
# 指定界面网格的类型
neper -interface char_string
# 提供'continuous'和'‘discontinuous'网格
# Default value: continuous.
1
2
3
4
5
6
> 网格转换选项
```shell
# 将网格按照三个轴向的方向进行缩放
neper -scale real:real:real
> 网格划分选项
>
> 使用libScotch库可实现网格划分
>
> 网格划分的原理是创建相同大小的分区,同时最小化它们之间的界面
> 输出选项
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
指定输出文件名
neper -o file_name
指定输出文件的格式
neper -format char_string
'msh' Gmsh
'vtk' VTK
'inp' Abaqus
'geof' Zset
'fepx' FEpX
指定要提供的节点集
neper -nset char_string
指定要提供的节点集,包括:faces,edges,vertices的所有的域的面,边和顶点以及所有面和边实体的面体和边体.
指定提供的单元表面网格
neper -faset char_string
指定提供的单元集合
neper -elset char_string
> 后处理选项
1
2
3
4
5
6
7
8
9
10
提供节点的统计信息
neper -statnode char_string
提供0D单元的统计信息
neper -statelt0d char_string
提供1D,2D,3D单元的统计信息, 代码同上相似, -statelt<>
提供0D单元集的统计信息
neper -statelset0d char_string
提供点的统计信息
neper -statpoint char_string
这些点必须使用选项-loadpoint加载