【深度学习驱动流体力学】OpenFOAM框架剖析

目录

  • 1. applications 目录
    • solvers:存放各种求解器。
    • mesh:网格生成相关工具。
  • 2. src 目录
  • 3. tutorials 目录
  • 其他主要目录和文件
  • 参考

OpenFOAM 源码文件目录的框架如下,OpenFOAM 是一个开源的计算流体力学 (CFD) 软件包,其源码文件结构设计精巧,分为多个主要目录,每个目录都有特定的功能和内容。
在这里插入图片描述
在这里插入图片描述

OpenFOAM 源码文件目录框架详细解析,关于具体安装请参考上一篇文章:https://blog.csdn.net/weixin_41194129/article/details/139758221

1. applications 目录

功能:包含了所有的应用程序,包括求解器和实用工具。

solvers:存放各种求解器。

incompressible:不可压缩流体求解器。
icoFoam:简单的不可压缩流体求解器。
multiphase:多相流求解器。
interFoam:用于两相流的求解器。
utilities:存放各种实用工具。

具体来看:在 OpenFOAM 中,solvers 目录是存放各种求解器(solvers)的地方。求解器是用于解决不同类型流体力学问题的数值方法和算法的实现。下面详细展开 solvers 目录下的两个子目录和其对应的求解器。

incompressible:不可压缩流体求解器
在 OpenFOAM 中,不可压缩流体求解器专门用于模拟不可压缩流体的运动和流动。这些求解器采用了有限体积方法来求解流体动力学方程,并且通常适用于流体的密度变化较小的情况。

icoFoam:简单的不可压缩流体求解器
icoFoam 是 OpenFOAM 中的一个简单的不可压缩流体求解器,主要用于解决稳态和非稳态的不可压缩流动问题。它基于 Navier-Stokes 方程和连续性方程,并且适用于需要高精度数值模拟的场景。icoFoam 的主要特点包括:

求解的方程:Navier-Stokes 方程和连续性方程。
适用场景:适用于低速、不可压缩流体流动的模拟。
数值算法:采用有限体积方法进行离散化,通常使用 SIMPLE 或 PISO 算法来处理速度压力耦合。
multiphase:多相流求解器
多相流求解器用于模拟同时存在两种或多种流体(相)的复杂流动现象。OpenFOAM 中的 multiphase 目录包含了各种多相流求解器,其中最常见的是用于两相流的求解器。

interFoam:用于两相流的求解器
interFoam 是 OpenFOAM 中用于解决两种流体界面的动力学行为的求解器。它基于 Volume of Fluid (VOF) 方法,能够有效地捕捉和模拟两种不同流体之间的界面和相互作用。interFoam 的主要特点包括:

求解的方程:Navier-Stokes 方程和连续性方程,结合 VOF 方法进行界面跟踪。
适用场景:适用于需要模拟两种或更多种不同流体的界面现象,如泡沫、液滴、气泡等。
数值算法:采用高分辨率数值格式,确保界面的准确捕捉和数值稳定性。
utilities:存放各种实用工具
utilities 目录是 OpenFOAM 中存放各种实用工具的地方,这些工具可以帮助用户进行流体力学模拟前后的数据处理、网格生成、后处理等操作。

mesh:网格生成相关工具
mesh 子目录包含了用于生成和处理网格的工具,这在数值模拟中是非常关键的一步,直接影响数值模拟的精度和效率。

generation:生成工具
generation 目录包含了各种用于生成不同类型网格的工具。在 OpenFOAM 中,最常用的网格生成工具之一是 blockMesh。

blockMesh:网格生成工具
blockMesh 是 OpenFOAM 中的一个重要工具,用于生成结构化网格。它通过定义块(blocks)、边界条件和网格参数来生成结构化的三维网格,适用于简单到复杂的几何形状和流动问题。

postProcessing:后处理工具
postProcessing 子目录包含了各种用于后处理和分析数值模拟结果的工具,其中包括图形化输出、数据采样和结果分析等。

graphics:图形相关的后处理工具
graphics 目录下的工具主要用于生成和处理模拟结果的图形化输出,通常与 ParaView 集成,能够生成动画、流线图、矢量图等形式的结果展示。

paraFoam:ParaView 集成工具
paraFoam 是 OpenFOAM 中与 ParaView 集成的工具,通过 paraFoam 可以将 OpenFOAM 模拟结果导入 ParaView 进行更高级的可视化和后处理分析。

mesh:网格生成相关工具。

generation:包含网格生成器。
blockMesh:用于创建结构化网格的工具。
postProcessing:后处理工具。
graphics:图形相关的后处理工具。
paraFoam:用于与 ParaView 集成的工具。

具体来看:在 OpenFOAM 中,mesh 目录下的工具主要用于处理和生成数值模拟所需的网格,网格质量和结构直接影响了数值模拟的精度和效率。

generation:包含网格生成器
generation 是 mesh 目录下的一个子目录,专门负责包含各种网格生成器工具,其中最常用和重要的工具是 blockMesh。

blockMesh:用于创建结构化网格的工具
blockMesh 是 OpenFOAM 中用于创建结构化网格的基础工具之一,它通过定义块(blocks)、边界条件和网格参数来生成三维结构化网格。以下是 blockMesh 的主要特点和用途:

工作原理:blockMesh 将物理空间划分为多个块(blocks),每个块可以有不同的网格密度和几何形状。
应用场景:适用于各种复杂几何形状的流动问题,能够高效地生成符合几何要求的网格。
特点:生成的网格具有良好的结构化特性,有利于数值计算的稳定性和收敛性。
使用方法:通过 OpenFOAM 中的字典文件(如 blockMeshDict)配置和控制网格的生成参数和几何定义。
postProcessing:后处理工具
在数值模拟中,生成数值结果并进行分析和展示是非常重要的步骤。OpenFOAM 提供了丰富的后处理工具,以便用户可以有效地分析和可视化模拟结果。

graphics:图形相关的后处理工具
graphics 是 postProcessing 目录下的一个子目录,包含了用于生成和处理模拟结果图形化输出的工具。

paraFoam:用于与 ParaView 集成的工具
paraFoam 是 OpenFOAM 中专门用于与 ParaView 集成的后处理工具。ParaView 是一个强大的开源科学数据可视化工具,能够处理大规模数据并生成高质量的三维图形和动画。

功能:paraFoam 可以将 OpenFOAM 模拟结果导出为 ParaView 可识别的格式,以便进行更高级的可视化和后处理分析。
使用方法:用户可以通过命令行或图形界面调用 paraFoam,选择相应的模拟结果数据并在 ParaView 中进行交互式分析和可视化。
优势:ParaView 提供了丰富的后处理功能,包括流线图、矢量场显示、动画生成等,能够帮助用户更直观地理解数值模拟的结果。

2. src 目录

功能:包含 OpenFOAM 的核心库和基础设施代码。

finiteVolume:有限体积方法的实现,是 OpenFOAM 求解器的核心基础。
lagrangian:拉格朗日方法的实现,用于处理颗粒流、液滴流等问题。
thermophysicalModels:热物理模型和热力学属性库的实现。
turbulenceModels:各种湍流模型的实现,包括 RANS、LES 等。
sampling:用于数据采样和处理的工具。

3. tutorials 目录

功能:包含各种示例案例,帮助用户学习和使用 OpenFOAM。

incompressible:不可压缩流体流动的示例案例。
icoFoam:与不可压缩流体求解器相关的案例。
cavity:简单的腔体流动案例。
multiphase:多相流动的示例案例。
interFoam:与两相流求解器相关的案例。
damBreak:溃坝问题的案例。

具体来看:

finiteVolume:有限体积方法的实现
在 OpenFOAM 中,finiteVolume 是一个核心模块,用于实现各种求解器的有限体积方法。有限体积方法是求解流体力学偏微分方程的常用数值方法,它将物理区域离散为有限数量的控制体积,并在每个控制体积上建立质量、动量和能量守恒方程。以下是 finiteVolume 模块的详细介绍:

功能:实现了 Navier-Stokes 方程等流体力学偏微分方程的数值解法,通过有限体积方法进行离散化求解。
核心算法:包括压力-速度耦合算法(如 SIMPLE 和 PISO 算法)、网格重构和解耦算法等,确保数值解的稳定性和收敛性。
应用场景:适用于各种流动问题的模拟,包括不可压缩流体、多相流动、燃烧和传热问题等。
lagrangian:拉格朗日方法的实现
lagrangian 模块是 OpenFOAM 中用于实现拉格朗日方法的部分,主要用于模拟颗粒流、液滴流等问题,这些问题中颗粒或液滴的运动状态由其自身的轨迹决定,而不受周围流体的影响。

功能:提供了适合处理颗粒流、液滴流等粒子追踪问题的数值方法和算法。
核心技术:采用 Eulerian-Lagrangian 耦合方法,将颗粒的运动方程与流体的 Eulerian 方程耦合,实现两者之间的相互作用。
应用场景:适用于颗粒物料输送、颗粒悬浮流动、喷雾、气泡流等多种工业和科学应用场景。
thermophysicalModels:热物理模型和热力学属性库的实现
thermophysicalModels 模块包含了 OpenFOAM 中热物理模型和热力学属性库的实现,这些模型和库用于描述和计算流体的热物理性质和热力学属性。

功能:提供了各种物质(如空气、水、液体金属等)的物理性质数据、热传导系数、比热容、粘度等参数的计算和模型。
核心内容:包括状态方程、热传导模型、物质性质随温度和压力变化的关系等。
应用场景:广泛用于模拟流体的传热、相变、燃烧等热力学过程。
turbulenceModels:各种湍流模型的实现
turbulenceModels 模块包含了 OpenFOAM 中各种湍流模型的实现,湍流是流体动力学中普遍存在的不稳定现象,需要通过湍流模型来描述和模拟。

功能:提供了多种湍流模型,包括 Reynolds 平均 Navier-Stokes 方程(RANS)、大涡模拟(LES)和直接数值模拟(DNS)等。
核心技术:各种湍流模型基于不同的假设和数学形式,适用于不同湍流强度和长度尺度的流动问题。
应用场景:适用于需要准确描述湍流效应的流动问题,如风力发电机叶片、汽车空气动力学、建筑物风场模拟等。
sampling:用于数据采样和处理的工具
在 OpenFOAM 中,sampling 模块提供了一系列工具,用于对数值模拟结果进行数据采样、处理和分析,以便获取流场中各种物理量的详细信息。

功能:包括点采样、面采样、体积采样等方法,用于提取流场中的速度、压力、温度等数据。
应用场景:用于生成流场的数据文件、绘制流场图像、生成统计数据等,为模拟结果的后续分析提供支持。

其他主要目录和文件

bin:包含编译后生成的可执行文件和脚本。
COPYING:版权和许可证文件,通常为 GPL。
doc:包含用户手册、程序员指南和其他文档。
etc:包含配置文件和环境设置脚本,如 bashrc 和控制字典文件。
out.log:编译和运行时的输出日志文件。
platforms:包含编译后生成的平台相关的二进制文件和库文件。
README.md 和 README.org:项目的使用说明和详细说明文件。
test:用于测试 OpenFOAM 功能和性能的测试案例和脚本。
wmake:OpenFOAM 的编译工具,用于编译和链接源代码。

OpenFOAM-10/
├── Allwmake
├── applications/
│   ├── solvers/
│   │   ├── incompressible/
│   │   │   └── icoFoam/
│   │   └── multiphase/
│   │       └── interFoam/
│   └── utilities/
│       ├── mesh/
│       │   └── generation/
│       │       └── blockMesh/
│       └── postProcessing/
│           └── graphics/
│               └── paraFoam/
├── bin/
├── COPYING
├── doc/
├── etc/
│   ├── bashrc
│   └── controlDicts/
├── out.log
├── platforms/
│   └── linux64GccDPInt32Opt/
├── README.md
├── README.org
├── src/
│   ├── finiteVolume/
│   ├── lagrangian/
│   ├── thermophysicalModels/
│   ├── turbulenceModels/
│   └── sampling/
├── test/
├── tutorials/
│   ├── incompressible/
│   │   └── icoFoam/
│   │       └── cavity/
│   └── multiphase/
│       └── interFoam/
│           └── damBreak/
└── wmake

源码截图:
在这里插入图片描述
具体来看:

在 OpenFOAM 中,f:bin 目录存放了编译后生成的各种可执行文件和脚本,这些文件是通过编译 OpenFOAM 源代码得到的实际运行程序和工具。以下是对 f:bin 目录的详细展开介绍:

功能:存放了通过 OpenFOAM 的编译工具生成的可执行文件和脚本。这些文件包括各种求解器、网格生成工具、后处理工具以及其他实用程序。
内容示例:例如,icoFoam、blockMesh、paraFoam 等常用的 OpenFOAM 程序都会被放置在 f:bin 目录中。
使用方法:用户可以通过命令行进入 f:bin 目录,直接执行相应的程序来进行流体力学模拟、网格生成、后处理等操作。
COPYING:版权和许可证文件,通常为 GPL
COPYING 文件是 OpenFOAM 中的一个重要文件,用于声明 OpenFOAM 的版权所有者和软件许可证条款,通常是 GNU General Public License(GPL)或类似的开源许可证。

功能:包含了 OpenFOAM 的版权声明和详细的使用许可条款。用户和开发者在使用、分发和修改 OpenFOAM 代码时需要遵守这些条款。
内容:通常包括版权所有者的名称、授权许可的类型(如 GPL 版本号)、免责声明等法律要求的条款。
重要性:COPYING 文件确保了 OpenFOAM 作为开源软件的合法性和可用性,同时规范了用户和开发者对软件的合法使用和再分发。
doc:包含用户手册、程序员指南和其他文档
doc 目录是 OpenFOAM 中存放各种文档的地方,这些文档包括用户手册、程序员指南、技术文档和其他相关的使用说明。
在这里插入图片描述

功能:提供了关于 OpenFOAM 的详细文档和使用指南,帮助用户和开发者了解如何安装、配置和使用 OpenFOAM,以及如何开发自定义求解器和工具。
内容示例:包括但不限于安装指南、使用手册、求解器开发指南、网格生成器教程、后处理工具说明等。
使用方法:用户可以通过查阅 doc 目录中的文档,快速掌握 OpenFOAM 的各种功能和操作步骤,提高模拟的效率和精度。
etc:包含配置文件和环境设置脚本,如 bashrc 和控制字典文件
etc 目录存放了 OpenFOAM 中的各种配置文件和环境设置脚本,这些文件对于正确配置和运行 OpenFOAM 至关重要。

功能:包含了用于配置 OpenFOAM 运行环境的各种文件,如 bashrc 脚本、控制字典文件等。
内容示例:
bashrc:用于设置环境变量、路径和其他系统配置,确保 OpenFOAM 程序可以正确运行和链接。
控制字典文件:包含了用于控制 OpenFOAM 模拟过程中各种参数和选项的配置信息。
使用方法:在安装和配置 OpenFOAM 时,用户需要根据自己的操作系统和需求,正确设置和使用 etc 目录下的配置文件和脚本。

platforms:包含编译后生成的平台相关的二进制文件和库文件
platforms 目录存放了编译后生成的平台相关的二进制文件和库文件,这些文件根据不同的操作系统和硬件平台进行了优化和编译。

功能:存放了适用于不同操作系统(如 Linux、Windows)和硬件架构(如 x86、ARM)的 OpenFOAM 可执行文件和库文件。
内容示例:包括编译后的求解器、网格生成工具、后处理程序以及与特定硬件平台相关的库文件。
使用方法:用户在安装 OpenFOAM 后,可以根据自己的操作系统和硬件平台选择合适的 platforms 目录下的文件进行使用和配置。
README.md 和 README.org:项目的使用说明和详细说明文件
README.md 和 README.org 文件是 OpenFOAM 项目的使用说明和详细说明文件,提供了关于项目的概述、安装指南、基本用法和其他相关信息。

功能:作为开发者和用户的入门指南,帮助理解和使用 OpenFOAM 的基本功能和特性。
内容:通常包括项目的背景介绍、安装要求、配置步骤、使用示例、常见问题解答(FAQ)等。
重要性:README 文件是用户和开发者了解和使用 OpenFOAM 的第一手资料,对于新手入门和问题解决具有重要参考价值。
test:用于测试 OpenFOAM 功能和性能的测试案例和脚本
test 目录包含了用于测试 OpenFOAM 功能和性能的测试案例和脚本,这些测试用例能够验证 OpenFOAM 各个功能模块的正确性和性能指标。

功能:提供了自动化测试框架和测试用例,用于评估和验证 OpenFOAM 在不同场景下的稳定性和性能表现。
内容示例:包括单元测试、性能测试、集成测试等,覆盖了求解器、网格生成、后处理和其他关键功能的测试场景。
使用方法:开发者和贡献者可以运行 test 目录下的测试脚本,确保其修改和新增功能不会影响到现有功能的正确性和性能。
wmake:OpenFOAM 的编译工具,用于编译和链接源代码
wmake 是 OpenFOAM 中的一个重要工具,用于编译和链接源代码,生成各种求解器、工具和库文件。

功能:提供了自动化的编译和构建系统,支持多种编译选项和优化设置。
特点:基于 Makefile 的自动化编译系统,能够处理复杂的依赖关系和源代码文件结构。
使用方法:开发者通过运行 wmake 命令,可以根据指定的编译选项和配置

参考

https://blog.csdn.net/weixin_49181094/article/details/107143700
https://marinecfd.xyz/post/openfoam-templated-turbulence-modeling-framework-part-2/
https://developer.moduyun.com/article/577f3c24-7df0-11ee-b225-6c92bf60bba4.html
http://dyfluid.com/cnn.html#id7
https://zhuanlan.zhihu.com/p/455164468
http://dyfluid.com/install.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/29196.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解并打败C语言难关之一————指针(3)

前言: 昨天把指针最为基础的内容讲完了,并且详细说明了传值调用和传址调用的区别(这次我也是做到了每日一更,感觉有好多想写的但是没有写完),下面不多废话,下面进入本文想要说的内容 目录&#…

windows解决clion终端中文乱码

windows解决clion终端中文乱码 问题: 解决办法: 添加system("chcp 65001 > nul");

聚六亚甲基单胍(PHMB)为第三代胍类消毒剂 我国应用场景广泛

聚六亚甲基单胍(PHMB)为第三代胍类消毒剂 我国应用场景广泛 聚六亚甲基单胍全称为聚六亚甲基胍盐酸盐,简称PHMG,是一种高分子有机聚合物,易溶于水,水溶液无色无味,无毒,生物相容性良…

欢迎 Stable Diffusion 3 加入 Diffusers

作为 Stability AI 的 Stable Diffusion 家族最新的模型,Stable Diffusion 3(SD3) 现已登陆 Hugging Face Hub,并且可用在 🧨 Diffusers 中使用了。 Stable Diffusion 3https://stability.ai/news/stable-diffusion-3-research-paper 当前放出…

MapStruct对象转换

MapStruct是一个Java注解处理器,用于简化对象的转换 遇到的问题: java: Internal error in the mapping processor: java.lang.NullPointerException 解决方案:修改编辑器配置 -Djps.track.ap.dependenciesfalse

从0开始C++(一)

目录 c的基本介绍 C语言和C 的区别 面向过程和面向对象的区别 引用 引用使用的注意事项 赋值 终端输入 cin getline string字符串类 遍历方式 字符串和数字转换 函数 内联函数 函数重载overload 小练习: 参考代码 c的基本介绍 C是一种通用的高级编…

Unity基础(一)unity的下载与安装

目录 一:下载与安装 1.官网下载地址 2.推荐直接下载UnityHub 3.选择编辑器版本(推荐长期支持版) 4.在UnityHub安装选择相应的模块 二:创建项目 简介: Unity 是一款广泛应用的跨平台游戏开发引擎。 它具有以下显著特点: 强大的跨平台能力:能将开发的游…

JavaScript之内置对象

内置对象 JavaScript中的对象分为3种:自定义对象、内置对象、浏览器对象前面两种对象是javascript基础内容,属于ECMAScript;第三个浏览器对象属于我们javascript独有的,我们javascript API讲解 内置对象就是指javascript语言自带…

ssldump一键分析网络流量(KALI工具系列二十二)

目录 1、KALI LINUX 简介 2、ssldump工具简介 3、在KALI中使用ssldump 3.1 目标主机IP(win) 3.2 KALI的IP 4、操作示例 4.1 监听指定网卡 4.2 指定端口 4.3 特定主机 4.4 解码文件 4.5 显示对话摘要 4.6 显示加密数据(需要私钥&…

Spring boot 启动报:Do not use @ for indentation

一、使用maven插件动态切换配置时出现报错 二、配置文件及pom 2.1 配置文件结构 2.2 application.yml spring: # 根据环境读取配置文件(手动) # profiles: # active: dev# 根据环境读取配置文件(通过勾选maven插件)profiles…

神仙级AI大模型入门教程(非常详细),从零基础入门到精通,从看这篇开始!

一.初聊大模型 1.为什么要学习大模型? 在学习大模型之前,你不必担心自己缺乏相关知识或认为这太难。我坚信,只要你有学习的意愿并付出努力,你就能够掌握大模型,并能够用它们完成许多有意义的事情。在这个快速变化的时…

codeforces round 953 div2

A Alice and books 题目&#xff1a; 思路&#xff1a;编号最大的肯定会被读到&#xff0c;所以在编号最大的这一组书中不能存在除去最大编号的外书外页数最大的书&#xff0c;并且在另一堆中这本书的编号也应该是最大值 代码&#xff1a; #include <iostream>using…

郑州设计资质延续流程:人员社保的审核标准是什么?

郑州设计资质延续流程中&#xff0c;人员社保的审核标准如下&#xff1a; 一、社保缴纳期限 审核标准&#xff1a;人员&#xff08;技术负责人、注册人员等&#xff09;的社保考核期限恢复为3个月。需要提供相关人员至少连续3个月的社保缴纳记录。 二、社保缴纳主体 审核标准…

python 【包含数据预处理】基于词频生成词云图

基于词频生成词云图 背景目的 有一篇中文文章&#xff0c;或者一本小说。想要根据词频来生成词云图。 为什么中文需要分词 中文分词是理解和处理中文文本的关键步骤&#xff0c;它直接影响到后续的文本分析和信息提取的准确性和有效性。 无明显单词分隔&#xff1a;中文文本不…

Einops 张量操作快速入门

张量&#xff0c;即多维数组&#xff0c;是现代机器学习框架的支柱。操纵这些张量可能会变得冗长且难以阅读&#xff0c;尤其是在处理高维数据时。Einops 使用简洁的符号简化了这些操作。 Einops &#xff08;Einstein-Inspired Notation for operations&#xff09;&#xff…

温度传感器NST175手册阅读

温度传感器NST175手册阅读 首先看芯片的输入和输出&#xff1a;主要关注IIC接口&#xff0c;毕竟是要驱动这个芯片读取温度。在编写此博客时还未对改温度传感器进行调试&#xff0c;只是阅读手册&#xff0c;把需要重点关注的地方标记出来。 一、芯片管脚 二、温度输出格式 …

618大促背后:优秀制造企业如何精准备货?

618这场年中购物盛宴点燃了消费者的热情。而在背后&#xff0c;是许许多多的制造企业在默默发力&#xff0c;对于他们来说&#xff0c;这不仅仅是一个促销的机会&#xff0c;更是一个检验供应链响应速度、库存管理能力以及市场洞察力的关键时刻。那么&#xff0c;优秀的制造企业…

WACV2024检测Detection论文49篇速览

WACV2024 Detection论文摘要速览49篇 Paper1 CLRerNet: Improving Confidence of Lane Detection With LaneIoU 摘要小结: 车道线检测是自动驾驶和驾驶辅助系统中的关键组成部分。现代基于锚点的深度车道检测方法在车道检测基准测试中表现出色。通过初步的实验&#xff0c;我们…

macbook屏幕录制技巧,这2个方法请你收好

在当今数字化时代&#xff0c;屏幕录制成为了一项不可或缺的技能&#xff0c;无论是教学演示、游戏直播&#xff0c;还是软件操作教程&#xff0c;屏幕录制都能帮助我们更直观地传达信息。MacBook作为苹果公司的标志性产品&#xff0c;其屏幕录制功能也备受用户关注。本文将详细…

区区微服务,何足挂齿?

背景 睿哥前天吩咐我去了解一下微服务&#xff0c;我本来想周末看的&#xff0c;结果周末没带电脑&#xff0c;所以只能周一看了。刚刚我就去慕课网看了相关的视频&#xff0c;然后写一篇文章总结一下。这篇文章算是基础理论版&#xff0c;等我之后进行更多的实践&#xff0c;…