news 2026/4/22 2:57:49

格子波尔兹曼LBM在甲烷吸附解吸研究中的应用及文献复现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
格子波尔兹曼LBM在甲烷吸附解吸研究中的应用及文献复现

格子波尔兹曼 LBM 甲烷吸附解吸 文献复现

最近在研究格子波尔兹曼方法(LBM)在甲烷吸附解吸中的应用,顺便复现了一篇文献的模型。LBM作为一种介观尺度的数值模拟方法,在处理多孔介质中的流体流动和传质问题上有着独特的优势。今天就来聊聊这个过程,顺便分享一些代码片段。

首先,LBM的核心思想是通过离散速度模型来模拟流体的宏观行为。对于甲烷吸附解吸问题,我们需要考虑流体在多孔介质中的流动以及甲烷分子在固体表面的吸附和解吸过程。文献中提到的模型是一个二维的D2Q9模型,也就是在二维空间中使用9个离散速度方向。

import numpy as np w = np.array([4/9, 1/9, 1/9, 1/9, 1/9, 1/36, 1/36, 1/36, 1/36]) e = np.array([[0, 0], [1, 0], [0, 1], [-1, 0], [0, -1], [1, 1], [-1, 1], [-1, -1], [1, -1]])

接下来是初始化分布函数。文献中使用了简单的均匀初始化方法,即所有方向的分布函数都相等。这里我们假设初始密度为1,速度为零。

def initialize_f(rho, u): f = np.zeros((nx, ny, 9)) for i in range(9): f[:, :, i] = w[i] * rho * (1 + 3 * np.dot(e[i], u) + 9/2 * np.dot(e[i], u)**2 - 3/2 * np.linalg.norm(u)**2) return f

在LBM中,碰撞和迁移是两个关键步骤。碰撞过程通过BGK模型来描述,迁移过程则是将分布函数沿着速度方向移动到相邻的格子。

def collide(f, tau): rho = np.sum(f, axis=2) u = np.zeros((nx, ny, 2)) for i in range(9): u[:, :, 0] += e[i, 0] * f[:, :, i] u[:, :, 1] += e[i, 1] * f[:, :, i] u /= rho[:, :, np.newaxis] feq = np.zeros_like(f) for i in range(9): feq[:, :, i] = w[i] * rho * (1 + 3 * np.dot(e[i], u) + 9/2 * np.dot(e[i], u)**2 - 3/2 * np.linalg.norm(u)**2) f += (feq - f) / tau return f def stream(f): for i in range(9): f[:, :, i] = np.roll(f[:, :, i], e[i], axis=(0, 1)) return f

对于甲烷吸附解吸过程,文献中引入了一个额外的吸附项,用来描述甲烷分子在固体表面的吸附和解吸行为。这个吸附项可以通过一个简单的动力学模型来描述,具体形式如下:

def adsorption(f, k_ads, k_des): rho = np.sum(f, axis=2) q = k_ads * rho - k_des * (1 - rho) return q

最后,我们将这些步骤整合到一个主循环中,进行时间步进模拟。

def simulate(nx, ny, nsteps, tau, k_ads, k_des): f = initialize_f(1, np.zeros((nx, ny, 2))) for step in range(nsteps): f = collide(f, tau) f = stream(f) q = adsorption(f, k_ads, k_des) f[:, :, 0] += q # 假设吸附只影响静止方向 return f

通过这个简单的模型,我们可以模拟甲烷在多孔介质中的吸附解吸过程。当然,实际应用中还需要考虑更多的细节,比如边界条件、多组分流体等。不过,这个模型已经能够很好地展示LBM在处理这类问题上的潜力。

复现文献的过程让我对LBM有了更深的理解,也让我意识到在实际应用中还有很多可以改进的地方。希望这篇博文能对正在研究LBM的朋友有所帮助,也欢迎大家在评论区讨论交流。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 16:28:07

Onthe Interplay of Pre-Training, Mid-Training, and RL on Reasoning Language Models

Onthe Interplay of Pre-Training, Mid-Training, and RL on Reasoning Language Models 动机 在预训练和中间训练已经奠定能力的前提下,强化学习究竟何时、以何种方式才能真正带来超出原有水平的推理能力提升。 后训练阶段是否真的让模型的推理能力超出了预训练阶段…

作者头像 李华
网站建设 2026/4/18 8:52:52

强化学习——PPO、DPO、GRPO的原理推导

文章目录基础知识强化学习基础知识数学期望推导实际训练的数学过程基础知识第二次补充PPO(Proximal Policy Optimization)PPO-KLPPO-CLIPDPOGRPO基础知识 强化学习基础知识 enviroment:看到的画面看不到的后台画面,不了解细节 a…

作者头像 李华
网站建设 2026/4/19 3:34:01

基于Python+Django的家政服务管理系统设计与实现

前言 🌞博主介绍:✌CSDN特邀作者、全栈领域优质创作者、10年IT从业经验、码云/掘金/知乎/B站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战,以及程序定制化开发、文档编写、答疑辅导等。✌…

作者头像 李华
网站建设 2026/4/21 10:38:50

从微信群“服务器抖动”看超级应用的高并发稳定性攻坚之道

从微信群“服务器抖动”看超级应用的高并发稳定性攻坚之道 2025年12月12日下午,不少人的微信突然陷入“瘫痪”:群消息发送后弹出红色感叹号,电脑端与手机端消息长时间不同步,部分群聊界面直接空白,甚至有用户反馈转账功…

作者头像 李华
网站建设 2026/4/13 21:37:28

Part 02|我为什么开始自己做一套商城系统

在对现成商城系统产生怀疑之后,我并没有立刻下定决心要“自己做一套”。 真正把这件事推到台前的,其实是一个很现实的触发点: 客户开始明确地询问商城系统相关的需求。一、问题不是“要不要做”,而是“拿什么交付” 当客户问到商城…

作者头像 李华
网站建设 2026/4/18 2:34:21

38、Python编程:回调函数、包管理与系统操作全解析

Python编程:回调函数、包管理与系统操作全解析 1. 回调函数基础 回调函数和传递函数的概念对于一些人来说可能比较陌生,但深入了解它是很有价值的。在Python中,函数是“一等公民”,这意味着可以像操作对象一样传递和处理函数。 1.1 函数作为一等公民示例 In [1]: def …

作者头像 李华