【CFD小工坊】浅水模型的边界条件

2023-10-30 23:30

本文主要是介绍【CFD小工坊】浅水模型的边界条件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【CFD小工坊】浅水模型的边界条件

  • 前言
  • 处理边界条件的原则
  • 边界处水力要素的计算
    • 水位边界条件
    • 单宽流量边界条件
    • 流量边界条件
    • 固壁边界条件
  • 参考文献

前言

在浅水方程的离散及求解方法一篇中,我们学习了三角形网格各边通量值及源项的求解。但仍有一个问题没有解决:对于边界处的网格,模型边界对应的网格边的通量求解。
对此,我们借鉴王志力1的研究,学习各类边界条件下,网格边的通量的求解。

处理边界条件的原则

对于浅水水域,常见的边界有水位边界与流量边界。在此,我们假设网格 i i i的第 j j j条边对应了模型的边界,设边界上的水位为 h i j ∗ h_{ij}^* hij,垂直(外法线方向)和平行网格边的流速为 u ~ i j ∗ \tilde{u}_{ij}^* u~ij v ~ i j ∗ \tilde{v}_{ij}^* v~ij。为简便起见,以下我们将 h i j ∗ h_{ij}^* hij简记为 h ∗ h^* h,将 u ~ i j ∗ \tilde{u}_{ij}^* u~ij v ~ i j ∗ \tilde{v}_{ij}^* v~ij简记为 u ~ L ∗ \tilde{u}_L^* u~L v ~ L ∗ \tilde{v}_L^* v~L
根据一维方程的特征线理论,沿着特征线方向有特征不变量,最终会得到如下关系:
u ~ L ∗ + 2 c L = u ∗ + 2 c ∗ \tilde{u}_L^*+2c_L = u^* + 2c^* u~L+2cL=u+2c
上式即确定边界条件时所要满足的原则。其中, c L = g h L c_L=\sqrt{gh_L} cL=ghL c ∗ = g h ∗ c^*=\sqrt{gh^*} c=gh
在这里插入图片描述

边界处水力要素的计算

在模型中,边界处的水力要素的计算步骤如下:

  1. 根据笛卡尔坐标系下边界处的 u L u_L uL v L v_L vL转化为网格边界外法线方向和切向的 u ~ L ∗ \tilde{u}_L^* u~L v ~ L ∗ \tilde{v}_L^* v~L
  2. 给定边界处的 u ∗ u^* u h ∗ h^* h。此处的 u ∗ u^* u值可通过流量边界条件转化而来。
  3. 根据式 u ~ L ∗ + 2 c L = u ∗ + 2 c ∗ \tilde{u}_L^*+2c_L = u^* + 2c^* u~L+2cL=u+2c来确定网格边上的其它变量。例如,对于水位条件, h ∗ h^* h已知,我们需要通过上式确定 u ∗ u^* u
  4. 根据浅水方程的对流项确定通量值。

水位边界条件

对于边界条件, h ∗ h^* h已知,则:
u ∗ = u ~ L ∗ + 2 c L − 2 c ∗ = u ~ L ∗ + 2 g h L − 2 g h ∗ u^* = \tilde{u}_L^*+2c_L - 2c^*=\tilde{u}_L^*+ 2\sqrt{gh_L} -2\sqrt{gh^*} u=u~L+2cL2c=u~L+2ghL 2gh
之后将局部坐标系的 u ∗ u^* u v ∗ v^* v转化为全局笛卡尔坐标系下的 u b u_b ub v b v_b vb;记 h b = h ∗ h_b=h^* hb=h。则边界处的通量为:
( F n ) b = E ( U b ) n x + G ( U b ) n y = n x ( h u b h u b 2 + g h b 2 2 h u b v b ) + n y ( h v b z h u b v b h v b 2 + g h b 2 2 ) (\bold{F}_n)_b = \bold{E(U_b)} n_x+ \bold{G(U_b)} n_y = n_x \left( \begin{matrix} hu_b \\ hu_b^2+\dfrac{gh_b^2}{2} \\ hu_b v_b \end{matrix} \right) + n_y \left( \begin{matrix} hv_bz \\ hu_b v_b \\ hv_b^2+\dfrac{gh_b^2}{2} \end{matrix} \right) (Fn)b=E(Ub)nx+G(Ub)ny=nx hubhub2+2ghb2hubvb +ny hvbzhubvbhvb2+2ghb2
式中, ( n x , n y ) (n_x, n_y) (nx,ny)表示边界处外法线方向。

单宽流量边界条件

给定网格边的单宽流量 q = h ∗ u ∗ q=h^*u^* q=hu,则有:
u ~ L ∗ + 2 c L = u ∗ + 2 c ∗ = q h ∗ + 2 g h ∗ = q c ∗ 2 / g + 2 g h ∗ \tilde{u}_L^*+2c_L = u^* + 2c^* = \dfrac{q}{h^*} + 2\sqrt{gh^*} = \dfrac{q}{{c^*}^2/g} + 2\sqrt{gh^*} u~L+2cL=u+2c=hq+2gh =c2/gq+2gh
化简后,上述方程为 c ∗ c^* c的一元三次方程:
2 c ∗ 3 − ( u L + 2 g h L ) c ∗ 2 + g q = 0 2{c^*}^3 - (u_L + 2\sqrt{gh_L}){c^*}^2 + gq = 0 2c3(uL+2ghL )c2+gq=0
求解后可得 h ∗ = c ∗ 2 / g h^*={c^*}^2/g h=c2/g。同理,我们可求得 h b h_b hb u b u_b ub v b v_b vb,以及通量 ( F n ) b (\bold{F}_n)_b (Fn)b
注意:在设置边界时,我们需要设定单宽流量的方向;对于入流边界,单宽流量方向与边界外法线方向相反,则 q < 0 q<0 q<0;反之,对于出流边界, q > 0 q>0 q>0

流量边界条件

若流量给定在一个网格的边上,我们可以先求该边界的单宽流量 q q q,之后按照上一小节等同的办法处理边界。若指定的边界条件涉及到m条连续的网格边(如下图边界蓝色边所示),组需要先求出每个对应网格边的单宽流量,之后再按单宽流量边界条件处理方法进行计算。
在这里插入图片描述
对于这m条边界上的总流量 Q Q Q,某一网格 i i i边上的单宽流量 q i q_i qi是:
q i = L i ′ h i 1.5 C i ∑ k = 1 m L k ′ h k 1.5 C k Q q_i = \dfrac{L'_i h_i^{1.5}C_i}{\sum^{m}_{k=1} L'_k h_k^{1.5}C_k} Q qi=k=1mLkhk1.5CkLihi1.5CiQ
式中, L ′ L' L表示流量边界对应网格边的边长, h h h表示对应网格的水深, C C C表示对应网格的摩阻力项,有 C = h 1 / 6 n C = \dfrac{h^{1/6}}{n} C=nh1/6,n为曼宁系数。
之后根据求出的单款流量,依次处理每个边界网格的通量值。

固壁边界条件

在静止的固壁边界上,我们采用无滑移边界条件,即 u b u_b ub v b v_b vb均为0,故:
( F n ) b = ( 0 g h L 2 2 n x g h L 2 2 n y ) (\bold{F}_n)_b = \left( \begin{matrix} 0 \\ \dfrac{gh_L^2}{2}n_x \\ \dfrac{gh_L^2}{2}n_y \end{matrix} \right) (Fn)b= 02ghL2nx2ghL2ny

参考文献


  1. 王志力. 基于Godunov和Semi-Lagrangian法的二、三维浅水方程的非结构化网格离散研究[D]. 辽宁:大连理工大学,2005. ↩︎

这篇关于【CFD小工坊】浅水模型的边界条件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/311273

相关文章

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

DeepSeek模型本地部署的详细教程

《DeepSeek模型本地部署的详细教程》DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,在本地成功部署DeepSe... 目录一、环境准备(一)硬件需求(二)软件依赖二、安装Ollama三、下载并部署DeepSeek模型选

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G