开源有限元分析软件-Elmer FEM 开发教程 (3)理解和创建模拟输入文件 (.sif 文件)

3.1 引言

在本章中,我们将深入探讨 Elmer FEM 模拟的核心组成部分:模拟输入文件,通常称为 .sif 文件。这些文件是 ElmerSolver 的输入,用于定义要解决的物理问题,包括几何体(通过网格)、材料属性、边界条件和求解器设置。掌握 .sif 文件的创建和编辑是进行 Elmer FEM 模拟的关键技能,也是二次开发的基础,因为它允许开发者自定义和扩展现有模型。本章将介绍 .sif 文件的结构、用途,并通过一个简单的热传导示例展示如何创建和运行模拟。无论是初学者还是经验丰富的开发者,理解 .sif 文件都是迈向高级开发的重要一步。

3.2 什么是 .sif 文件?

.sif 文件(Solver Input File)是一个文本格式的输入文件,用于配置 ElmerSolver 以运行特定的有限元模拟。它包含了模拟所需的所有信息,包括:

  • 网格文件:定义几何体和网格结构。
  • 物理模型:指定要解决的物理方程(如热传导、流体动力学)。
  • 材料属性:定义材料的物理特性(如热导率、密度)。
  • 边界条件:设置边界上的物理约束(如固定温度、热通量)。
  • 求解器参数:控制求解过程的设置(如迭代次数、收敛容差)。

.sif 文件的结构类似于 INI 文件,由多个部分组成,每个部分通过关键字(如 HeaderSimulationSolver 等)定义,并包含键值对来设置参数。.sif 文件的灵活性使其成为 Elmer FEM 的核心,允许用户通过简单的文本编辑实现复杂的模拟设置。

3.3 .sif 文件的结构

一个典型的 .sif 文件包含以下主要部分,每个部分以 End 关键字结束:

部分描述
Header指定网格文件和检查点文件(用于恢复模拟)。
Simulation定义全局模拟设置,如坐标系、时间步长、输出文件等。
Solver配置求解器,包括物理方程、求解器模块和参数(如迭代次数、容差)。
Material定义材料属性,如热导率、密度、弹性模量等。
Body将材料和其他属性分配给网格中的体(几何区域)。
Boundary定义边界条件,如固定值、热通量或力。
Initial Condition为时间相关问题设置初始条件(可选)。
Equation指定哪些求解器应用于特定体(可选)。
Component定义多物理场耦合的组件(可选)。

以下是一个简化的 .sif 文件结构示例:

Header
  Mesh DB "mesh_name" "mesh_name"
End

Simulation
  Coordinate System = Cartesian 2D/3D
  Output File = "output_name"
  Post File = "post_name"
End

Solver 1
  Procedure = "ModuleName" "SolverName"
  Executive Solver = Logical True
  [其他求解器参数]
End

Material 1
  Name = "MaterialName"
  [材料属性,如 Heat Conductivity]
End

Body 1
  Material = 1
  [其他体属性]
End

Boundary 1
  Name = "BoundaryName"
  [边界条件,如 Temperature、Heat Flux]
End

[更多边界定义]

[其他部分,如 Initial Condition]

注意事项

  • 每个部分必须以 End 关键字结束。
  • 参数名称对大小写敏感。
  • 网格文件必须与 Header 部分中的 Mesh DB 名称匹配。

3.4 示例:热传导问题

为了更好地理解 .sif 文件的实际应用,我们将通过一个简单的二维热传导问题进行演示。假设我们有一个矩形区域,设置如下:

  • 左侧边界温度固定为 100°C。
  • 右侧边界温度固定为 0°C。
  • 上下边界为绝热(无热通量)。
  • 材料为均匀材料,热导率为 1.0(任意单位)。
  • 模拟目标是求解稳态温度分布。

以下是对应的 .sif 文件:

Header
  Mesh DB "heat_mesh" "heat_mesh"
End

Simulation
  Coordinate System = Cartesian 2D
  Output File = Results
  Post File = heat.post
End

Solver 1
  Procedure = "HeatSolve" "HeatSolver"
  Executive Solver = Logical True
  Steady State Max Iterations = 200
  Steady State Tolerance = 1.0e-6
End

Material 1
  Name = "Material 1"
  Heat Conductivity = 1.0
End

Body 1
  Material = 1
End

Boundary 1
  Name = "Left"
  Temperature = 100
End

Boundary 2
  Name = "Right"
  Temperature = 0
End

Boundary 3
  Name = "Top"
  Heat Flux = 0
End

Boundary 4
  Name = "Bottom"
  Heat Flux = 0
End

部分解释

  • Header:指定网格文件为 heat_mesh,假设该网格文件已通过 ElmerGrid 或 Gmsh 生成。
  • Simulation:设置二维笛卡尔坐标系,输出文件为 Results,后处理文件为 heat.post
  • Solver 1:使用 HeatSolve 模块中的 HeatSolver 求解热传导方程。Executive Solver = Logical True 表示这是主求解器。Steady State Max IterationsSteady State Tolerance 控制稳态求解的迭代次数和收敛容差。
  • Material 1:定义一个名为 Material 1 的材料,热导率为 1.0。
  • Body 1:将 Material 1 分配给整个网格体(假设网格只有一个体)。
  • Boundary 1-4:定义边界条件。Boundary 1Boundary 2 设置固定温度,Boundary 3Boundary 4 设置零热通量(绝热)。

3.5 运行模拟

要运行此模拟,请按照以下步骤操作:

  1. 确保网格文件 heat_mesh 已存在(后续章节将介绍如何生成网格)。
  2. 将上述内容保存为 heat.sif 文件。
  3. 在命令行中运行 ElmerSolver:
    ElmerSolver heat.sif
    
    这将读取 heat.sif 文件,执行模拟,并生成指定的输出文件(Resultsheat.post)。

运行输出

  • ElmerSolver 将在控制台显示模拟进度,包括迭代次数和收敛信息。
  • 如果模拟成功,输出文件将包含温度分布等结果。

3.6 可视化结果

模拟完成后,可以使用以下工具可视化结果:

  • ParaView(推荐):一个功能强大的开源可视化工具,适合处理 Elmer 的 .vtu 文件。
    • 打开 heat.post.vtu 文件(假设 Post File 设置为 heat.post)。
    • 使用颜色映射查看温度分布,或添加其他可视化选项(如等高线)。
  • ElmerPost:Elmer 自带的可视化工具,但功能有限,已停止开发。

ParaView 使用步骤

  1. 下载并安装 ParaView
  2. 打开 heat.post.vtu 文件。
  3. 选择“温度”字段,应用颜色映射以查看温度分布。

3.7 二次开发的意义

对于二次开发,.sif 文件是至关重要的接口,因为它定义了 ElmerSolver 如何处理物理问题。通过修改 .sif 文件,您可以:

  • 调整参数:更改材料属性、边界条件或求解器设置以测试不同场景。
  • 集成自定义求解器:在 Solver 部分引用自定义模块(将在后续章节介绍)。
  • 自动化模拟:结合脚本(如 Python)生成 .sif 文件以运行参数化研究。

例如,您可以在 .sif 文件中添加自定义材料模型或边界条件,这需要编写 Fortran 代码并在 Procedure 关键字中引用。后续章节将深入探讨这些高级技术。

3.8 注意事项

  • 网格文件:确保 Header 部分中的网格文件存在且格式正确。网格生成将在后续章节详细介绍。
  • 语法正确性.sif 文件对大小写敏感,参数名称和值必须匹配 Elmer 的预期格式。
  • 调试:如果模拟失败,检查控制台输出以识别问题,如网格错误或收敛失败。
  • 文档参考:查阅 Elmer Models Manual 获取更多求解器参数和关键字。

3.9 总结

本章介绍了 .sif 文件的基本概念、结构和使用方法,并通过一个简单的热传导示例展示了如何创建和运行模拟。.sif 文件是 Elmer FEM 的核心,连接网格、物理模型和求解器,为二次开发提供了灵活的接口。通过掌握 .sif 文件的编辑,您可以轻松运行标准模拟,并为后续的自定义求解器开发奠定基础。下一章将探讨网格生成和处理,为创建 .sif 文件所需的网格文件做好准备。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值