Fluids —— MicroSolvers DOP

Houdini流体模拟节点功能详解
本文详细介绍了Houdini中一系列用于流体模拟的节点功能,包括重复执行子步、切换解算器、交换几何体属性等。涵盖了粒子处理、场操作、无散度投射、粘性应用等多个方面,还涉及模拟燃烧、添加细节等特殊效果,为Houdini流体模拟提供了全面的节点使用指南。

目录

Gas SubStep —— 重复执行对应的子步

Switch Solver —— 切换解算器

Gas Attribute Swap —— 交换、复制或移动几何体属性

Gas Intermittent Solve —— 固定时间间隔计算子解算器

Gas External Forces —— 计算外部力并更新速度或速度场

Gas Particle Separate —— 通过调整相邻位置来分离粒子

Gas Match Field —— 构建指定场以匹配参考场的尺寸和精度

Gas Seed Volume —— 在新区域生成粒子

Gas Linear Combination —— 合并多个场或属性

Gas Resize Field —— 调整场的尺寸

Gas Synchronize Fields —— 同步场的变换

Gas Particle to SDF —— 将粒子转化为SDF场

Gas Particle to Field —— 复制粒子点属性到指定场

Gas Reinitialize SDF —— 保留零表面并重初始化SDF场

Gas Buid Collision Mask —— 根据碰撞对象构建碰撞场

Gas SDF to Fog  —— 将SDF场转化为Fog场

Gas Limit  —— 限制场的值

Gas Enforce Boundary —— 对场强制边界条件

Gas Project Non Divergent Variational —— 无散度投射(可变)

 Gas Project Non Divergent Adaptive —— 无散度投射(自适应)

Gas Viscosity —— 将粘性应用到速度场

Gas Adaptive Viscosity —— 将粘性应用到速度场(自适应)

Gas Feedback —— 计算并应用反馈力到碰撞体

Gas Extrapolate —— 沿SDF外推场的值

Gas Seed Markers —— 在surface边界周围生成标记粒子

Gas Seed Fluid Particles —— 创建、删除、或补种粒子

Gas Integrator —— 将力应用于粒子以调整速度和位置

Gas Particle Move to Iso —— 将粒子移动到指定的SDF等值面上

Gas Limit Particles  —— 将粒子限制在box内

Gas Particle Count  —— 计算每体素的粒子数量

Gas Stick On Collision —— 在碰撞上粘连

 Gas Advect —— 通过速度场来驱动场或几何体

Gas Advect Field —— 通过速度场来驱动场

Gas Disturb —— 对速度场应用扰乱以添加细节

Gas Turbulence —— 对速度场应用湍流

Gas Shred —— 对速度场应用撕碎力

Gas Vortex Confinement —— 对速度场应用涡流约束

Gas Local Sharpen —— 自适应锐化场

Gas Combustion —— 模拟燃烧


Gas SubStep —— 重复执行对应的子步

        该节点为microsolver,用于构建更大流体解算;Fluid Solver/Smoke Solver DOP可在主solver前或后添加microsolver,以扩展或调整模拟;该节点将对输入的solver,从左到右依次执行,并重复执行子步;

  • 以Geometry判断要执行的子步数,如FLIP Solver;
    • 假定pscale=1、v={1,0,0},则一帧运动0.0417米,如0.0417 > CFL Condition,则就执行2个子步;
  • 以vel判断要执行的子步数,如Smoke Solver;
    • 假定voxel size=0.1、vel={1,0,0},则一帧运动0.0417米,0.417个体素,如0.417 > CFL Condition,则就执行2个子步;

Switch Solver —— 切换解算器

        此节点可让对象被多个解算器中的一个解算,由switch value数据确定;不像Blend Solver或Multiple Solver,仅使用一个子解算器;

  • 如使用merge合并多个子解算器,相当于直接连接多个子解算器;
  • 启用Value Enables All,则切换为启用或禁用(类似Enable Solver DOP);

Gas Attribute Swap —— 交换、复制或移动几何体属性

        常用于复制属性,在执行一些破坏性操作之前;

Gas Intermittent Solve —— 固定时间间隔计算子解算器

        以规定时间间隔计算附加的子解算器,确保以不同的速率进行操作,或独立于子步的速率进行操作;

Gas External Forces —— 计算外部力并更新速度或速度场

        在速度场内,对每个点计算外部力,然后更新速度场;每个体素的mass被指定为1,以用于力计算;torque被忽略;在粒子系统内,对每个点计算外部力;

  • 更新Geometry的速度;
  • 更新vel场;

Gas Particle Separate —— 通过调整相邻位置来分离粒子

        当粒子靠的太近时,通常是使用力将其分开;不幸,FLIP Solver在移除divergence时,力会被抵消;此节点通过直接调整粒子位置,使其分离;也确保没有能量被添加到系统;

Gas Match Field —— 构建指定场以匹配参考场的尺寸和精度

        此节点会创建、调整尺寸、重采样,以匹配参考场的精度和大小;对于创建中间结果,但又不想显式地附加;如想移除该中间场,可设置为0;

注,由于匹配导致尺寸或精度改变,则数据会重置为0;

Gas Seed Volume —— 在新区域生成粒子

        在新体积区域,创建flip粒子;可被用于填充新空间(当体积运动时形成的空间);可在较大流体区域模拟移动的小片区域;

Gas Linear Combination —— 合并多个场或属性

        使用简单的方式,以快速合并多个场或属性;

coef_1 * val_1 OP coef_2 * val_2 OP coef_3 * val_3 + constant* totalcoefficient

Gas Resize Field —— 调整场的尺寸

        调整场的边界框,使其最接近匹配size、center(保持相同的体素尺寸和体素对齐);可追踪移动的流体;

参考场再与设置的尺寸计算,在与源场计算;

Gas Synchronize Fields —— 同步场的变换

        此节点匹配参考场的sizecenter;仅与参考场具有相同的体素量,才可变换;

  • 精度、size 相同,直接匹配center、size;

  • 精度、size 不相同,匹配center、size后,精度不变、体素量已变化;

Gas Particle to SDF —— 将粒子转化为SDF场

        从粒子系统构建SDF场,粒子pscale属性用于描述半径球;

  • Bandwidth,体素倍数的距离,超过此距离的体素均为此值;
  • Use Max Speed,使用粒子的最大速度去扩展bandwidth,需v属性;有用于对快速运动的流体增加外推;

Gas Particle to Field —— 复制粒子点属性到指定场

        复制粒子的点属性到指定场,粒子需pscale属性;

Gas Reinitialize SDF —— 保留零表面并重初始化SDF场

        在各种操作下(如advection),SDF可能扭曲且不再表示到表面的实际距离;此节点会恢复SDF的“到表面距离”的特性,同时保留表面的零等容线;

Gas Buid Collision Mask —— 根据碰撞对象构建碰撞场

        可根据碰撞对象构建碰撞场,表示碰撞体与流体场重叠处;生成内负外正的有符号距离场;还生成碰撞速度场(存储碰撞体点的速度);

### Simscape Fluids 使用教程及相关文档 Simscape Fluids 是 MATLAB Simulink 中的一个工具包,用于建模和仿真流体动力学系统。其前身是 SimHydraulics[^3],现在已扩展支持更广泛的流体应用领域。 #### 1. 官方资源与入门指南 MathWorks 提供了详细的官方文档来帮助用户快速上手 Simscape Fluids。以下是几个重要的参考资料: - **产品页面**: 可通过链接访问 Simscape Fluids 的概述、功能列表及其与其他 Simscape 工具的关系。 - **Getting Started Guide**: 这是一个面向初学者的指导手册,涵盖了安装、基本操作以及如何构建简单的液压模型[^1]。 #### 2. 模块库结构 Simscape Fluids 的模块主要分布在 SIMULINK 浏览器中的 `Simscape_Foundation` 和 `Simscape_Fluids` 文件夹下。具体来说: - **Legacy Isothermal Library**: 包含传统的等温流动元件,例如阀门、泵和管道[^2]。 - **Thermal Liquid Library**: 支持热效应分析,适用于需要考虑温度变化的应用场景。 #### 3. 阀门控制实例解析 以三位置阀为例,该组件的行为可以通过输入信号动态调整。当输入信号超过设定阈值(通常为标称信号的50%),推杆会经历一系列预定义阶段完成伸展动作[^4]。这些阶段包括延迟期 (`tde`)、加速期 (`tae`) 和匀速运动期 (`tve`)。同样地,在收回过程中也会重复类似的逻辑,只是方向相反。 #### 4. 单作用气缸案例研究 另一个典型例子涉及带三通阀的单作用气缸设计。此设置利用两个阀门执行器配合一个三通换向阀实现精确的方向切换。初始状态下,气体通道 A 被导向至储液罐;一旦接收到高于临界值 (如12单位) 的外部指令后,内部核心件位移重新分配各端口连通关系从而推动负载前进[^5]。 ```matlab % 创建一个新的Simulink模型并加载必要的库 new_system('MyFluidModel'); add_block('simscape/Fluids/Foundation Hydraulics','MyFluidModel/Hydraulic Components'); % 添加特定部件比如Pressure Source, Chamber etc. add_block('simscape/Fluids/Legacy Isothermal Library/Pumps and Motors/Constant Pressure Source',... 'MyFluidModel/PressureSource'); ``` 上述脚本展示了如何程序化创建包含基础液压组件的新项目框架。 #### 5. 性能优化建议 为了提高仿真的效率和准确性,请注意以下几点: - 合理选择求解算法,默认推荐使用变步长ODE solver。 - 对复杂网络适当简化或者分层处理减少计算负担。 - 利用参数估计工具校准实际物理特性匹配理论假设条件下的表现差异。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值