Fluids —— Fluids SOP

Simscape Battery电池建模实战:从单体到Pack的物理结构仿真指南 电池系统仿真在现代工程中扮演着关键角色,从电芯特性分析到整包热管理,都需要精确而高效的建模手段。传统手写方程和信号流建模方式在应对复杂电池拓扑时显得笨重且难以复用,而基于物理结构的建模理念则能大幅提升开发效率。Simscape Battery作为Simscape家族的一员,通过电气、热、流体等多物理域协同,将电芯、模组、Pack和BMS控制逻辑有机整合。其表格驱动模型、等效电路模型以及自动化的Pack装配能力,为工程师提供了从测试数据到系统验证的完整通路。无论是进行SOC/SOH算法开发、低温加热策略验证, 阅读详情

目录

FLIP Source —— 为FLIP模拟创建对应的VDB

FLIP Compress —— 压缩流体以节省内存

Particle Fluid Mask —— 从流体生成volume遮罩

Particle Fluid Surface —— 包裹粒子以生成mesh

Whitewater Source —— 白水发射源

Whitewater Solver —— 白水解算器

Setup

Emission 

Forces 

Foam 

Whitewater Post-Process —— 为渲染做处理


FLIP Source —— 为FLIP模拟创建对应的VDB

        将输入的几何体转化为volume,以用于控制模拟,如对FLIP注入液体,在Smoke解算内充作sink;此节点与Volume Source DOP节点一起使用,以影响模拟;包括常用的初始化预设:

  • Source FLIP,生成surface场,及对应粒子;
  • Sink,生成sink(fog)场;
  • Sink FLIP,生成sink(SDF)场;
  • Collision,生成collision场;
  • Pump,生成pump场;
  • Expand,生成divergence场;

FLIP Compress —— 压缩流体以节省内存

        通常在缓存前,压缩流体;压缩一般会有损失,由于指定深度以下的粒子会被删除,但如Whitewater Source SOP和Particle Fluid Surface SOP节点,会检测输入的压缩流体,并重新生成缺失的数据;

通常输入为:FLIP解算的粒子,surface,vel等;

压缩的主要方法:

  • 剔除指定深度的粒子,并分块pack粒子;
    • pack可节省内存,当打包和解包都要花时间,内存足够可不勾选;
  • Volume bandwidth限制,及转化为VDB;
  • 使用16-bit储存;

Particle Fluid Mask —— 从流体生成volume遮罩

        根据指定条件,生成volume遮罩;还可连入一个或多个Ocean Spectrum,其生成的遮罩mask还可与之前产生的遮罩mask进行合并操作;

Particle Fluid Surface —— 包裹粒子以生成mesh

        可从particle fluid simulation或vellum fluid simulation,生成surface;其实主要具有pscale属性的点,均可使用;

Tips

  • Compressed Fluid Surface,对Transfer Attributes,Subtract Collision Volumes,及Closed Boundaries(关闭)是最快的;
  • 但粒子来源于Fluid Compress或Pack Points时,确保在读取粒子时开启Delay Load Geometry(指定需要时才加载,以节省加载时间);
  • 对非常缓慢流动的粘性流体,默认设置可能会出现闪烁,可尝试如下设置:
    • 关闭Reseed Particles,避免引入新粒子;
    • 使用Average Position模式时,开启Limit Refinement并设置为0,或使用Spherical模式;另外可能还需使用Filtering面板下的Dilate、Smooth、Erode参数来平滑;
    • 设置Adaptivity为0;
  • 如粒子来源于Fluid Compress,此节点会使用surface、vel,来填充缺失的数据;

Method

  • Average Position(vdb from particle fluid),从粒子的平均位置创建更平滑的surface,比Spherical模式慢;
  • Spherical(vdb from particle),简单的从每个粒子创建surface,通常需要在平滑处理,但快;有用于创建非真实有趣的外观;

Filtering

        通常需要通过过滤,来平滑surface(特别是Spherical模式);Dilate、Erode可将附近粒子融合在一起,封闭孔洞;

Regions

        Flattening可压平surface边,以匹配周围海洋的surface;

Whitewater Source —— 白水发射源

        此节点会生成emit场(被whitewater solver使用),以发射粒子;与以前基于粒子的不同,新系统与规模无关;可直接控制白水的物理量,无需考虑粒子数;先低精度测试,然后在提高精度,不必关心白水量显著变化;

注,期待第一个端口的surface、vel场输入;依据使用的发射源,粒子和pressure场也可能被要求;默认是输出emit、surface、vel场,也可只输出emit;

Whitewater Solver —— 白水解算器

        模拟白水粒子,用于增强外观(通过添加动态foam、spray、bubble),这些粒子被流体运动影响且互相交互;

        需要emit,vel,surface,容器,碰撞体;vel场即可是VDB也可是volume,surface如不是VDB(sparse)需关闭Maximum Half-Width;

Setup

Emission 

Forces 

Foam 

Whitewater Post-Process —— 为渲染做处理

        可基于age、depth、distance,重新定义pscale、density属性;也可压平边缘,以平滑过渡;可输出粒子,fog volume,mesh形式;

Blender-FLIP-Fluids:FLIP Fluids是功能强大的液体模拟插件,使您能够在Blender(免费和开源3D创建套件)中全部创建高质量的流体效果。 FLIP液体 是一个工具,可帮助您设置,运行和渲染液体模拟效果。 我们定制的流体引擎基于流行的FLIP仿真技术,该技术也可以在其他专业工具中找到,例如Houdini,Phoenix FD,Bifrost和Mantaflow。 FLIP Fluids引擎已经持续开发了四年多,主要致力于将模拟器作为附件紧密集成到Blender中。 感觉就像是本机的Blender工具! 凭借我们在提供高质量软件和出色的客户支持方面的声誉,FLIP Fluids附加组件是Blender市场上最畅销的产品之一。 5000+销量,五星级,物超所值 没有订阅,包括所有将来的更新 有什么问题吗? 不要犹豫,在或在上询问! 获取FLIP Fluids插件 您可以通过上的产品页面购买FLIP Fluids插件。 购买许可证可以使您获得完整的FLIP Fluids功能集和内容,工具支持,并有助于确保插件的持续开发。 自B 立即下载

相关推荐

AMP架构下的核间通信:RPMSG与共享内存原理详解

本文以RK3568等异构多核硬件为例,深入浅出解析了AMP架构下核间通信的核心逻辑,阐明RPMSG并非替代共享内存,而是以共享内存为数据载体、硬件信箱为中断通知工具、VirtIO为数据管理规则,构建的标准化高层协议与框架,为开发者提供简洁API,实现不同操作系统核心间高效通信。

qq_61335271的博客 2049

【Houdini】fluid particle surface 节点

需要在Regions中打开subtract from collision volumes。第三个输入端口可以在表面重建前减去部分。

beidou111的博客 2028

Welch 方法详解:一种经典而实用的功率谱密度估计方法

在信号处理领域,谱分析是用于分析信号频率内容的强大工具。Welch方法是现代谱分析中一种广泛使用的功率谱密度估计技术,由Peter D. Welch在1967年提出。它通过对信号进行分段、加窗和平均化处理,提供了一种平滑且稳定的频谱估计方法。Welch方法通过将信号分成多个重叠的段,每段应用窗函数,然后计算每段的周期图,最后对所有周期图进行平均化,得到平滑的功率谱密度估计。welch_psd函数接收信号x、采样频率fs、每段的样本数N、重叠样本数overlap和窗函数类型window。

DuHz的博客 7042

Fluids —— Whitewater (SOP)

白水;

NapoleonCoder的博客 1394

Conformal LEC逻辑等价性检查介绍和参考脚本

分为三个产品:Conformal L、Conformal XL、Conformal GXL。L是功能性检查,XL支持复杂数据通路的综合和APR优化,GXL支持定制的stdcell和定制memory的检查。Cadence Conformal Equivalence Checker,就是常说的LEC,可以用来验证RTL、门级网表、甚至spice网表的逻辑等价性。do文件是conformal的脚本文件,可以由综合工具(RTL Compiler/Genus)自己产生(write_do_lec),也可以手写。

NanDigits的博客 7246

机器人动力学与控制学习笔记(一)————机器人控制概述

一、概述 1、机器人控制的目的 对自由运动机器人来说,控制的目的是要控制机器人手端的位置和姿态(以后统一简称为位姿),即所谓位置控制问题。这时希望机器人手端所达到的位置称为期望位置或期望轨迹。期望轨迹可以在机器人任务空间中给出,也可以通过逆运动学关系转化为机器人关节空间中的期望轨迹。期望轨迹通常有两种形式:一种是一个固定位置(即固定点),另一种是一条随时间连续变化的轨迹。自由运动机器人位置控制的目的,是要使机器人手端从任意起始位置出发都能到达期望轨迹。当期望轨迹是固定点时的位置控制称为定...

冰与火的青春的博客 6879

Fluids —— FLIP DOP

FLIP DOP;

NapoleonCoder的博客 2047

华为昇腾服务器npu中安装paddle,pytorch等环境,训练代码迁移适配等问题记录

参考文档:https://github.com/PaddlePaddle/PaddleCustomDevice/blob/develop/backends/npu/README_cn.md

qq_29220369的博客 4112

houdini笔记——流体(简单流体制作流程与使用节点用法)

流程 1、建立一个发射流体的物体; 2、创建flipsource节点; 3、创建dopnetwork; 4、创建flipobject (文件)、flipsolver(结算期)、gravity force(重力); 5、创建volumesource节点,将创建发射源导入; (flipobject 与 flipsource相同的属性可以进行关联,flipobject中,可以创建一个voxel size...

Big_Ant_Fox的博客 6716

Vue2 - 详细实现网页 “开启录音并生成音频文件,上传到服务器效果“,浏览器录制外部音频调用麦克风并传到后端,兼容全部浏览器、支持 PC 网页或手机 H5 网页、可本地播放试听(详细示例运行代码)

vue,nuxt,uniapp,网页网站,麦克风,网页录音,MediaRecorder,浏览器录音,移动端h5网页,手机端录音,web网页录音,recorder-core官方文档,Recorder,非https怎么本地录音,录音报错失败,录音后怎么播放音频,如何获取录音mp3文件,解决一直不提示麦克风权限,小白详细教程,实时录音,调用浏览器麦克风录音,浏览器不兼容,wav,mp3,vue怎么实现网页录音呢,vue2网页录音并上传到服务器,web如何实现录制音频,vue网页录音,音频录制播放和上传服务器,vu

🏆 前端领域优质创作者 6003

新政下的绿电直连项目经济性分析:模式创新与价值重构

随着全球气候治理与低碳转型进程不断加速,绿电直连作为新能源就近消纳的创新模式,正成为破解新能源消纳瓶颈、规避碳关税壁垒的核心路径。2025年9月,国家发展改革委、国家能源局发布《关于完善价格机制促进新能源发电就近消纳的通知》(1192号文),为绿电直连项目的经济性分析与效益测算提供了明确的政策依据。本文将基于新政框架,深入解析绿电直连项目的经济性影响因素、盈利模式与优化路径,并结合案例与量化模型,为项目投资决策提供系统参考。

getusushu的博客 137

Fluids —— FLIP SOP

FLIP SOP 节点;

NapoleonCoder的博客 1784

RK3568平台开发系列讲解(中断及异常篇)中断下半部:中断线程化

以前用 work 来线程化地处理中断,一个 worker 线程只能由一个 CPU 执行, 多个中断的 work 都由同一个 worker 线程来处理,在单 CPU 系统中也只能忍着 了。少数中断不能线程化,典型的例子是时钟中断,有些流氓进程不主动让出处理器,内核只能依靠周期性的时钟中断夺回处理器的控制权,时钟中断是调度器的脉搏。中断处理线程是优先级为50、调度策略是SCHED_FIFO的实时内核线程,名称是“irq/”后面跟着Linux中断号,线程处理函数是。,说明是线程化的中断,那么唤醒中断处理线程。

内核笔记 435

Fluids —— DOP and SOP workflows

DOP与SOP工作流;

NapoleonCoder的博客 1036

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Vellum —— Vellum Solver

vellum解算器;

NapoleonCoder的博客 2958

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Fluids —— Fluid-object collisions

流体碰撞;

NapoleonCoder的博客 653

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Fluids —— 案例

案例及技巧;

NapoleonCoder的博客 1427

Fluids —— Boundary conditions

流体边界条件;

NapoleonCoder的博客 817

Fluids —— Fluid sourcing

Fluid sourcing;

NapoleonCoder的博客 742

Fluids —— Guided ocean waves

引导海浪;

NapoleonCoder的博客 494

Fluids —— Minimal fluid setups

创建SOP流体设置;

NapoleonCoder的博客 567

Fluids —— Viscosity: honey

粘性;

NapoleonCoder的博客 651

Fluids —— Up-ressing simulations

低精度驱动高精度;

NapoleonCoder的博客 532

Fluids —— Moving domains and waterlines

运动的域和水面;

NapoleonCoder的博客 540

Fluids —— Narrow band and variable density

Narrow band与不一的密度;

NapoleonCoder的博客 604

三维动画制作全流程:从零打造医学检测设备可视化方案

三维动画作为现代可视化技术的核心手段,其原理在于通过计算机图形学构建虚拟三维空间,模拟真实世界的物体、材质与运动。这项技术的核心价值在于能够将抽象概念、复杂结构及动态流程进行直观、生动的视觉化呈现,极大提升了信息传递的效率与准确性。在工程实践领域,三维动画广泛应用于产品设计展示、工作原理演示、操作流程培训及市场营销等多个场景。特别是在医疗器械这类高精尖行业,通过三维动画可以透视化内部结构、模拟微观生化过程,有效解决了传统二维媒介难以清晰展示复杂技术细节的痛点。本文将以医学检测设备为例,深入剖析三维动画制作的

weixin_34037515的博客 309
上一篇: Fluids —— Viscosity: honey
下一篇: Pyro —— 简介
挨代码
博客等级 码龄5年 1696粉丝 384原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值