九韶内核 1.0.0.0
|
本教程提供使用网格剖分,三维边界层的详细配置方法。
通过在流体靠近物体表面的区域内更密集地划分网格,以更好地捕捉流体速度剖面的变化,以及流体粘性效应的影响。
输入:选定的表面网格(三角形/四边形/混合网格);输出:边界层网格(棱柱/六面体)。
以一个简单的 box 的 cad 模型为例,其面编号如下图所示,该模型将用于本教程中。
以下是最基本的 Json 配置,更多复杂配置请看复杂 Json 模板。
类 | 键 | 是否必需 | 取值范围 | 默认值 | 备注 |
---|---|---|---|---|---|
BoundaryLayer | EntityType | 是 | [Face, Edge] | — | |
BoundaryLayer | EFPairs/SelectedEntities | 是 | — | ||
BoundaryLayer-Basic | GrowthRate | 是 | "Constant"、"Variable" [1.0,2.0] | — | 增长率不变:"Constant",其值为固定值,即每层的固定增长率 增长率变化:"Variable",其值为数组,即每层的变化增长率 |
BoundaryLayer-Basic | InitLayerHeight | 是 | Absolute:[eps,MaxSize] Aspect:[eps,1] | — | 绝对模式:"Absolute",初始层高恒定不变 Aspect模式:"Aspect",初始层高为乘以局部表面网格长度的因子 |
BoundaryLayer-Basic | NLayers | 是 | [1,inf] | — | |
BoundaryLayer-Basic | ProblematicAreasTreatment | 是 | STOP、COLLAPSE、EXCLUDE | — | 问题区域处理方式: STOP:没有按照预计参数进行时,停止生成 COLLAPSE:允许某些局部区域的折叠,从而导致边界层生成时的交叉、接近或质量问题 EXCLUDE:允许排除某些局部区域,导致交叉,接近或质量问题的边界层的生成 |
通过该基本 Json 模板,结果如下图所示:
在某个 solid 内,从 solid 的一些边界 face 向 solid 内部生长的边界层。
"EntityType": "Face",表示从 face 向 solid 生成 3d 边界层。 指定从 XX face 向 XX solid 生长。该示例表示,从 face(tag=1,2,3,4,5,6)向 solid(tag=1)生长。注意:face 应该是 solid 的边界边。
初始层高分为 Absolute 模式和 Aspect 模式。Absolute 模式表示:每个节点高度固定不变(相对于 Aspect 模式来说),即不会随着局部表面网格尺寸不同而不同,值为初始层的高度;Aspect 模式表示:每个节点高度可能会变,通过乘以局部表面网格尺寸来定义第一层高度,值为局部表面网格长度的因子。
现在将初始层高设置为 Aspect 模式,由于表面网格尺寸设置为 1,所以此时第一层高度为 1 * 0.1 = 0.1,理论上和上述绝对模式高度设置 0.1 的结果是非常相似的,事实也如此,如下图所示:
常量增长率,每一层的生长速率因子相同(下一层比上一层)。
变量增长率,从第二层开始,每一层增长率独立(注意,第一层增长率恒为 0,且与层数匹配)。
NLayers:需要生成边界层的层数。
如果由于局部几何特征而无法生长层,或者因为没有足够的空间来生长所要求的所有层,所采用的方法。
1.当边界层的生成没有按照预计参数进行时(遇到问题时),停止生成。
2.允许某些局部区域的折叠来克服交叉、接近或质量问题。
3.允许排除某些局部区域来克服交叉、接近或质量问题。
类 | 键 | 是否必需 | 取值范围 | 默认值 | 备注 |
---|---|---|---|---|---|
BoundaryLayer-Basic | AdditionalOuterLayers | 否 | [0, inf] | 0 | 额外层数,使得最后一层边界层与附近的单元尺寸匹配 |
BoundaryLayer-Basic | LastAspect | 否 | [eps, 1] | 0 | 额外层数非零值激活,最后一层宽高比 |
BoundaryLayer-Basic | FailureRetainValidLayers | 否 | true、false | false | 仅当为"STOP"激活时才有效,表示是否失败时保留有效边界层 |
BoundaryLayer-Basic | MaxNumberOfConsecutiveCollapsedLayers | 否 | true, [1,inf] false | false | 仅当为"COLLAPSE"激活时才有效,表示最大连续折叠层数 |
BoundaryLayer-SideTreatment | AutoConnectAngleLimit | 否 | true、false | false | 表示是否激活将边界层自动与临近面网格连接 |
BoundaryLayer-SideTreatment | ConnectLimitAngle | 否 | [0,90] | 60 | 边界层与临近面网格之间的最大允许角度 |
BoundaryLayer-VectorTreatment | SmoothTopCapShellMesh | 否 | true、false | true | 允许矢量从其原始法线位置移动;否则以正交方式生长 |
BoundaryLayer-VectorTreatment | SmoothVectors | 否 | True, [0,180] false | [true,90] | 与初始位置的最大允许角度偏差 |
BoundaryLayer-GrowthControls | MaxTopFacetEquiarealSkewness | 否 | true, [1,0] false | false | 顶部三角形面网格最大等面积扭曲度,如果激活,当顶部三角形面网格最大等面积扭曲度超过设定阈值时,将停止边界层生长 |
BoundaryLayer-GrowthControls | MaxTopFacetWarping | 否 | true,[inf,0] false | false | 顶部四边形面网格最大翘曲值,如果激活,当顶部四边形面网格最大翘曲值超过设定阈值时,将停止边界层生长 |
BoundaryLayer-GrowthControls | MaxLayerAspect | 否 | true,[eps,inf] false | false | 最大宽高比 |
BoundaryLayer-GrowthControls | MaxAllowedAspectProceed | 否 | true,"LocalCollapse"、"ConstantHeight" false | false | 当达到允许的最大层宽高比时,ConstantHeight-达到阈值后保持恒定高度;LocalCollapse-达到阈值后局部坍缩层(需要激活"COLLAPSE") |
通过该复杂 Json 模板,结果如下图所示:
AdditionalOuterLayers:额外添加的边界层数量,使得最后一层边界层与附近的三角形单元尺寸匹配,如果最后一层边界层尺寸大于附近的三角形单元尺寸,即使设置该参数,也会默认为 0。
LastAspect:最后一层高宽比,当 AdditionalOuterLayers 不为 0 时才能设置该参数。
激活该功能,边界层自动与临近面网格连接,且面网格自动重建(与体网格连接区域的面网格,在大小、节点位置与体网格表面一致;非连接区域面网格类型保持不变,且临近边界层外层的面网格会局部重建),且需指定边界层与临近面网格之间的最大允许角度,以便进行调整和连接。
注:投影面暂时不能为四边形类型。
如下图所示,修改 FSPairs ,仅设置面 6,此时面 6 与临近面 1、2、3 和 4 之间的连接角度为 0 度,当激活该选项时,边界层将与这些面连接,且这些面会自动重建。
若不激活该功能,边界层将不与临近面网格连接。
对于该案例,如果不激活该选项,可能会导致生成失败。
如果激活该选项,允许矢量从其原始法线位置移动;如果不激活,则层以正交方式生长。 允许这个操作可以生成更多层,因为网格在封闭区域“打开”得更多,但是可能导致质量较差(较少正交)的网格。
如果激活该选项,则用户指定与原始正常位置的最大允许角度偏差,允许这个操作可以生成更多层,因为网格在封闭区域“打开”得更多,但是可能导致质量较差(较少正交)的网格。
当边界层从非平坦起始表面生长时,顶部面网格可能出现严重扭曲的单元,导致后续生成的四面体质量不佳。
若启用 MaxTopFacetEquiareaSkewness 选项,当顶部三角形面网格单元扭曲度超过设定阈值时,将停止边界层生长。通常建议启用该选项并将阈值设置为 0.95 以上。
若启用 MaxTopFacetWarping 选项,当顶部四边形面网格单元翘曲值超过设定阈值时,将停止边界层生长。
在表面单元长度较小的区域使用绝对模式生长边界层时,有时会出现边界层过度生长的情况,这些层可能会变得异常高。通过指定最大层高宽比(层单元高度/层单元基底宽度),可确保层高保持在合理范围内。
当边界层高宽比达到该限值时:
点击这里example05可获得三维边界层详细 JSON 示例完整源码,大家根据学习需要自行下载。