SWMM深度二次开发:武理排水管网模拟分析系统
文章平均质量分 86
将排水管网一维水力模型及二维水力模型分别封装为两个类SWMMCPP及SweSolver,通过两个类的配合实现一维水动力模拟及一二维耦合水动力模拟
水力魔方
数量掌握C、C++、C++,正在学GO
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SWMM深度二次开发专题13:二维水动力模拟-耦合模拟
摘要:本文介绍了城市内涝模拟中一维二维耦合模型的应用方法,重点阐述如何通过武理排水管网系统实现地下管网与地面内涝的交互模拟。详细说明了二维水动力模块(IRectProject)的调用流程,包括SWE_open等核心函数的组合使用方式,并提供了两种一维模型数据输入方法:配置文件设置或独立实例传递。文中包含完整的C++代码示例,展示耦合模拟的具体实现过程,以及路径处理、资源释放等关键操作。通过实际案例项目演示了模拟结果的输出和可视化方法,为城市排水系统模拟分析提供了实用技术方案。原创 2026-01-07 17:44:43 · 276 阅读 · 0 评论 -
SWMM深度二次开发专题12:二维水动力模拟-基准案例
本文介绍了武理排水管网模拟分析系统中的二维水动力模块功能及使用方法。该系统提供可执行程序SweCalling.exe和SweCalling_cuda.exe,支持通过命令行调用进行二维水动力模拟。文中详细说明了基准案例(Bump_restemerged、Dry_Dam_Break等)的测试方法,包括配置文件修改、命令执行步骤以及结果可视化处理。通过Matlab脚本可实现模拟结果的动态展示,验证了模型在复杂地形、激波捕捉、侧向流量交换等方面的性能。该模块为排水管网模拟提供了可靠的水动力计算工具。原创 2026-01-07 14:26:51 · 250 阅读 · 0 评论 -
SWMM深度二次开发专题11:网络分析-管网合并
本文介绍了使用武理排水管网模拟分析系统实现SWMM模型自动合并的方法。通过二次开发的swmm_mergeProject函数,可以避免手动编辑inp文件的繁琐操作。文章详细说明了合并前提条件(要素不能重名)、函数参数说明(输入文件路径和结果文件路径)以及具体实现步骤,包括路径处理、函数调用和编译运行过程。最后展示了两个独立管网模型合并后的效果,验证了该方法的可行性。该技术为城市排水系统多区域模型整合提供了高效解决方案。原创 2026-01-07 10:14:38 · 365 阅读 · 0 评论 -
SWMM深度二次开发专题10:网络分析-管网简化
文章摘要: 本文介绍了排水管网模型简化方法,通过trim和simplify函数可有效提高计算效率。trim函数可裁剪起端枝状管段,移除不必要的末端构造;simplify函数能合并串联同管径管段。两个函数配合使用可将管网简化至最简状态,且不影响模拟精度。文中提供了C++实现案例,包括路径处理函数、管网裁剪和管段合并的具体代码示例。案例项目配置了VS2022开发环境,详细说明了文件目录设置和函数调用方法,为管网模型优化提供了实用解决方案。原创 2026-01-06 17:11:09 · 449 阅读 · 0 评论 -
SWMM深度二次开发专题9:网络分析-管网提取
摘要:本文介绍了如何从排水管网模型中提取部分管网进行分析。通过使用networkClass的extract函数,可以基于指定节点提取相连管网,并将提取结果标记为访问状态1。随后利用projectClass的swmm_exportExtractedProject函数将提取的管网输出为独立inp文件。案例项目位于\software\tutorial\exp_network_extract文件夹,包含C++项目和管网模型数据。文章详细说明了路径处理、管网提取实现代码及编译运行方法,最终可输出提取管网中所有连接的节原创 2026-01-06 16:06:56 · 225 阅读 · 0 评论 -
SWMM深度二次开发专题8:网络分析-最短路径查询
本文介绍了如何利用networkClass类中的findShortestPath函数获取排水管网模型中两点间的最短路径。主要内容包括:1)项目文件结构说明;2)路径处理相关函数的实现;3)通过networkClass实例调用findShortestPath函数获取节点间最短路径的具体代码实现;4)主函数调用示例;5)编译运行结果展示。该方法可应用于排水管网模拟分析系统中,通过节点索引和路径数组返回最短路径信息。原创 2026-01-06 15:40:25 · 263 阅读 · 0 评论 -
SWMM深度二次开发专题7:网络分析-获取网络
文章摘要: 本文介绍了武理排水管网模拟分析系统中networkClass的网络分析功能实现方法。主要内容包括:1)通过projectClass获取网络拓扑对象networkClass的步骤;2)案例项目配置说明及路径处理函数实现;3)使用networkClass进行节点连接分析和度计算的代码示例。文中详细展示了如何获取节点上下游管段信息、计算节点度等网络分析操作,并提供了完整的项目配置和main函数实现方案。该案例位于\software\tutorial\exp_network_getNetwork文件夹,原创 2026-01-06 15:21:01 · 175 阅读 · 0 评论 -
SWMM深度二次开发专题6:年径流总量控制率及年径流污染总量削减率的计算
摘要:本文介绍了海绵城市设计中"年径流总量控制率"和"年径流污染总量削减率"的计算方法。通过武理排水管网模拟分析系统,可基于SWMM模型结果计算总体及单个汇水子面积的径流控制率(rvcr)和污染削减率(prr)。径流控制率计算公式为rvcr=(V_TP-V_SR)/V_TP×100,污染削减率计算考虑下渗和LID措施去除的污染物量。文中详细说明了水量平衡和质量平衡的计算原理,并提供了C++实现案例,包括路径处理函数和outputReaderClass类的应用方法,用于原创 2026-01-05 17:17:57 · 757 阅读 · 0 评论 -
SWMM深度二次开发专题5:模型克隆与并行计算
摘要:本文介绍了利用SWMMCPP实现排水管网模型深度克隆与并行计算的方法。通过projectClass类的构造函数实现模型内存复制,支持多线程并行模拟多个管网模型。案例包含路径处理函数、模型克隆实现(SwmmProjectClone)及8个模型同时计算的多线程应用。详细说明了VS2022项目配置、文件路径设置及代码实现要点,最后展示了编译运行结果。该方法为管网优化算法提供了高效的计算框架,可扩展应用于参数敏感性分析等场景。原创 2025-12-31 12:27:20 · 282 阅读 · 0 评论 -
SWMM深度二次开发专题4:元素坐标点获取和修改
摘要: 本案例演示了通过SWMMCPP接口和projectClass类获取排水管网模型元素坐标的方法。主要内容包括:1)项目配置说明,包括输出目录设置和依赖文件准备;2)路径处理函数实现,用于获取可执行文件路径;3)两种坐标获取方式:通过ISwmmProperty接口动态转换获取(支持子汇水区、节点和管段坐标),以及直接使用projectClass成员变量获取。案例强调无需单位转换,并提供了完整的代码示例,帮助掌握武理排水管网模拟分析系统的使用方法。原创 2025-12-31 11:10:18 · 653 阅读 · 0 评论 -
SWMM深度二次开发专题3:模型参数的获取和修改
本文介绍了SWMM排水管网模拟分析系统的开发案例实现方法。主要内容包括:1)案例项目结构说明,包含VS2022 C++项目和管网模型数据;2)路径处理函数实现,用于获取可执行文件路径;3)通过接口获取模型数据的实现,包括汇水子面积、节点等对象的属性获取。文章详细展示了如何使用SWMMCPP接口动态获取管网模型中的各类参数信息,如汇水面积、坡度、污染物初始累积量等,并提供了完整的代码示例。该案例可用于学习排水管网模拟分析系统的开发方法。原创 2025-12-30 17:35:30 · 860 阅读 · 0 评论 -
SWMM深度二次开发专题2:模拟计算及结果读取
摘要: 本案例演示了如何通过C++调用SWMMCPP库进行排水管网模拟分析。主要内容包括:1)项目配置与路径处理函数实现,确保可执行文件能正确访问模型数据;2)使用ISwmmSimulation接口类实现管网模拟流程,包括初始化、计算和结果输出;3)通过ISwmmOutRead接口类读取模拟结果文件。案例提供了完整的代码实现,展示了从模型加载、模拟计算到结果读取的全过程,并包含错误处理和进度显示功能,可作为排水管网模拟分析的开发参考。原创 2025-12-29 17:11:49 · 538 阅读 · 0 评论 -
SWMM深度二次开发专题1:开发环境设置(Windows操作系统)
摘要:武理排水管网模拟分析系统是基于SWMM深度二次开发的成果,支持一维、二维耦合水动力计算。系统提供C++开发平台,包含SWMMCPP.dll、SweSolver.dll等核心模块,支持CUDA加速。开发环境配置包括设置GDAL路径、添加头文件和库文件。通过Visual Studio创建项目并调用API接口,可实现排水管网模拟计算。系统附带验证案例和开发教程,适用于桌面程序和WebAPI开发。原创 2025-12-26 18:19:47 · 950 阅读 · 0 评论
分享