自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(480)
  • 收藏
  • 关注

原创 量子三体问题: 理论和数学

量子力学三体问题

2018-08-01 09:50:27 2035

原创 PyLops 使用与介绍

PyLops 是一个强大的工具,特别适合处理大规模线性代数问题,在地球物理、图像处理、信号处理等领域有广泛应用。它的主要优势在于能够高效地表示和操作大型线性系统,而无需显式存储大型矩阵,从而节省内存并提高计算效率。

2025-05-19 11:08:23 277

原创 NVC++ 介绍与使用指南

支持 C++17 和部分 C++20 特性内置对 CUDA 的支持基于 LLVM 技术针对 NVIDIA GPU 优化支持 OpenMP 和 OpenACC 指令。

2025-05-17 16:22:41 540

原创 大规模CFD仿真计算中,SIMPLE或者PISO算法中加速压力场方程迭代求解

1. 压力方程求解器的选择与优化代数多重网格法(AMG)压力方程(泊松型)的求解通常占主要计算时间,AMG对这类椭圆型方程具有最优的收敛速度(接近O(n))。优先选用基于AMG的求解器(如Hypre、PETSc或开源库AMGCL)。调整AMG参数:粗化策略(Ruge-Stuben或PMIS)、平滑迭代次数(通常1-2次Gauss-Seidel)、循环类型(V-cycle比W-cycle更快)。Krylov子空间方法预处理结合AMG预处理的CG或GMRES方法,适用于非对称矩阵(如瞬态PISO)

2025-05-16 17:17:49 1005

原创 Recycling Krylov Subspace 方法解释与开源实现

Recycling Krylov Subspace(循环Krylov子空间)方法是迭代求解线性方程组时提高效率的一种技术,特别适用于需要连续求解多个相关线性系统的情况。

2025-05-16 17:02:39 464

原创 AMGX里“One-ring“和“Two-ring“概念和解释

在AMGX函数库(一个用于大规模并行求解线性方程组的GPU加速代数多重网格库)中,"One-ring"和"Two-ring"通常与网格或图结构中的邻域概念相关。具体行为需结合AMGX的文档或源码确认,不同版本的实现可能有所不同。如果AMGX的API或配置文件中出现相关参数(如。

2025-05-15 16:15:53 465

原创 OpenSHMEM 介绍和使用指南

OpenSHMEM 是一个用于并行计算的标准化 API,它提供了一种分区全局地址空间 (PGAS) 编程模型。OpenSHMEM 最初由 Cray 公司开发,后来成为一个开源项目,旨在为高性能计算提供高效的通信接口。

2025-05-14 19:39:20 570

原创 OpenUCX 库介绍与使用指南

对于纯粹的单机多GPU环境,通常不需要额外安装OpenUCX,NVIDIA的NVLink和NCCL已经提供了优化的通信路径。但在需要与分布式系统集成或使用特定UCX功能的场景下,安装OpenUCX可能是有益的。

2025-05-14 19:21:29 438

原创 编译支持CUDA-aware的OpenMPI

要编译支持CUDA-aware的OpenMPI,您需要确保正确配置编译选项并安装必要的依赖项。

2025-05-14 19:17:55 303

原创 使用Thrust库实现异步操作与回调函数

在Thrust库中,你可以通过CUDA流(stream)来实现异步操作,并在适当的位置插入回调函数。

2025-05-14 19:14:11 748

原创 Thrust库中的Gather和Scatter操作

Thrust是CUDA提供的一个类似于C++ STL的并行算法库,其中包含两个重要的数据操作:gather(聚集)和scatter(散开)。

2025-05-14 19:08:15 505

原创 开源 Web Shell 工具

以下是一些开开源。

2025-05-14 17:27:20 592

原创 Fortran 中,你可以使用内部文件(internal file)的方式将内容追加写入到一个字符串

在 Fortran 中,你可以使用内部文件(internal file)的方式将内容追加写入到一个字符串。内部文件允许你像操作外部文件一样操作字符串变量。

2025-05-13 10:45:58 396

原创 大规模数据并行排序策略(Parallel Sample Sort)

这种策略能很好地平衡计算、通信和内存使用,适合处理超大规模数据集。

2025-05-12 17:52:53 665

原创 IDR方程迭代求解算法介绍与比较

IDR (Induced Dimension Reduction) 是一种用于求解大型稀疏线性方程组的迭代方法,由Peter Sonneveld和Martin B. van Gijzen于2008年提出。它是Krylov子空间方法家族中的一员,特别适合于非对称线性系统的求解。

2025-05-12 17:42:43 786

原创 在Fortran中输出类似Markdown的表格

在Fortran中输出类似Markdown的表格可以通过格式化输出实现。

2025-05-12 17:33:41 313

原创 Lua从字符串动态构建函数

在 Lua 中,你可以通过load或loadstring(Lua 5.1)函数从字符串动态构建函数。

2025-05-08 15:25:19 451

原创 在Lua中使用轻量级userdata在C/C++之间传递数据和调用函数

轻量级userdata是Lua中一种高效的数据传递机制,它允许你在C/C++和Lua之间传递指针而不创建完整的userdata对象。

2025-05-08 15:22:35 586

原创 多源地震资料处理中的震源信号分离算法资料

多源地震资料处理中的震源信号分离算法是地震学、勘探地球物理和信号处理领域的重要研究方向。

2025-05-08 15:08:39 622

原创 DUNE 开源项目介绍与使用指南

DUNE (Distributed and Unified Numerics Environment) 是一个用于求解偏微分方程(PDE)的模块化开源工具箱,采用C++编写。它提供了解决科学和工程中偏微分方程所需的网格抽象、离散化方法和求解器。

2025-05-08 14:28:01 362

原创 OpenFOAM中实现自适应网格加密

在OpenFOAM中实现自适应网格加密(Adaptive Mesh Refinement, AMR)主要通过动态网格细化技术来完成,通常结合场变量梯度或误差指示器来自动调整网格密度。通过上述步骤,OpenFOAM可根据物理场特征动态优化网格,在关键区域(如激波、界面附近)自动提高分辨率,平衡计算效率与精度。:初始网格预留加密空间,避免过度初始细化。教程)开始测试参数敏感性。

2025-05-08 11:51:38 392

原创 使用OpenFOAM中的VOF模型仿真两相流

OpenFOAM中的VOF(Volume of Fluid)方法是模拟两相流界面的常用方法,特别适用于不相溶流体的界面追踪。

2025-05-08 11:48:09 447

原创 油气地震资料处理中,单程波偏移成像介绍

单程波偏移是工业界主流方法之一(如Gazdag相移法、SSF),尤其在与**逆时偏移(RTM)**结合时(如作为初始模型)可平衡效率与精度。(One-Way Wave Equation),即假设地震波在传播过程中仅沿一个主导方向(通常为向下或向上)传播,忽略反向散射波。是一种基于波动方程的成像方法,其核心思想是通过近似波动方程来简化计算,实现对地下构造的快速、高效成像。其中 ( p ) 为波场,( v ) 为速度,( \omega ) 为角频率。其中 ( * ) 表示复共轭,实现上行波与下行波的干涉成像。

2025-05-08 11:28:20 673

原创 油藏模拟开源资源

在油藏模拟(Reservoir Simulation)领域,有许多开源工具和资源可供使用,涵盖从基础建模到高级数值模拟的各个环节。注意:开源工具通常需要一定的编程和油藏工程基础,部分工具文档可能不够完善,建议结合论文或社区(如GitHub Issues)学习。

2025-05-08 11:22:55 862

原创 CFD中Mixture模型

Mixture模型通过简化多相流的动力学描述,在计算效率和精度之间取得平衡,适用于相间耦合紧密且分布均匀的流动问题。使用时需结合具体场景评估其适用性,并合理选择相间作用力模型。是一种用于模拟多相流的简化方法,适用于相间耦合较强且相分布均匀的流动场景(如气泡流、颗粒悬浮流等)。{dr,k}):漂移速度((\vec{v}在CFD(计算流体力学)仿真中,

2025-05-08 10:49:57 584

原创 在地震资料柯希霍夫积分法深度偏移大规模成像中,五维旅行时表高效处理策略

在处理地震资料柯希霍夫积分法深度偏移中,当成像规模非常大时,五维旅行时表(通常包括炮点坐标、检波点坐标和成像点坐标)会带来巨大的存储和计算挑战。通过上述策略,可显著降低五维旅行时表的存储和计算压力,同时保持成像精度。实际选择需根据硬件资源、数据规模和精度要求灵活调整。

2025-05-07 16:53:50 349

原创 柯希霍夫(Kirchhoff)积分法深度偏移的孔径(Aperture)选择

在地震资料处理中,柯希霍夫(Kirchhoff)积分法深度偏移的孔径(Aperture)选择是关键步骤之一,直接影响成像质量和计算效率。孔径函数决定了参与偏移计算的绕射能量范围(即围绕成像点的空间范围)。通过合理选择孔径函数,柯希霍夫偏移能够有效平衡成像精度与计算效率,尤其在复杂地质条件下表现优异。实际应用中需结合工区地质特征和数据处理目标进行参数调优。

2025-05-07 16:47:34 448

原创 使用 pgrep 杀掉所有指定进程

pgrep是一个查找进程 ID 的工具,结合pkill或kill命令可以方便地终止指定进程。

2025-05-07 16:19:17 562

原创 HPDDM库使用指南与示例

实现了多种域分解方法(如ASM、RAS、OSM、FETI等)支持多种预条件子(如LU、Cholesky、ILU等)可与PETSc、SLEPc等库集成支持MPI并行计算提供C++接口。

2025-05-07 15:47:03 323

原创 在Python和C/C++之间共享std::vector<std::vector<int>>数据

在Python和C/C++之间共享嵌套向量数据()可以通过几种方法实现。

2025-05-07 14:54:27 381

原创 在Python中调用C/C++函数并与MPI集成

要在Python环境中调用C/C++函数并让Python和C/C++端都能使用MPI进行通信,有几种方法可以实现。下面我将介绍几种常见的方法。

2025-05-07 11:57:41 423

原创 C/C++ Python绑定工具: nanobind 使用指南与示例

nanobind 是一个高效、现代的 C++/Python 绑定工具,特别适合需要高性能和快速开发的项目。通过上面的示例,你可以开始将你的 C++ 代码暴露给 Python 使用。

2025-05-07 11:23:02 202

原创 在Star-CCM+中实现UDF并引用场数据和网格数据

Star-CCM+中的用户自定义函数(UDF)允许用户通过Java或C/C++编程扩展软件功能。下面我将详细介绍如何实现UDF并引用模拟数据。

2025-05-06 17:30:09 593

原创 在Fluent中使用Python脚本实现UDF并访问场数据和网格数据

Fluent软件允许用户通过用户定义函数(UDF)来扩展其功能。虽然传统的UDF是用C语言编写的,但较新版本的Fluent也支持通过Python脚本来实现类似功能。

2025-05-06 17:20:41 407

原创 Fluent UDF底层实现逻辑解析及示例

/ 定义速度剖面UDF// 存储位置坐标face_t f;// 获取通道高度(假设y方向)// 假设通道高度为0.1米// 遍历所有面// 获取面中心坐标// 计算y坐标(归一化)// 设置抛物线速度剖面 (中心最大速度1m/s)

2025-05-06 17:09:22 315

原创 GIMP插件机制设计与Python实现详解

插件发现机制:GIMP在启动时会扫描特定目录寻找插件插件接口:定义了一组标准函数和调用约定进程间通信:插件通常作为独立进程运行,通过协议与主程序通信语言绑定:支持多种语言(C, Python, Scheme等)实现插件GIMP的Python插件系统提供了强大的图像处理扩展能力。通过定义标准接口和使用GIMP Python API (gimpfu),开发者可以轻松创建自定义滤镜和工具。创建Python脚本并放在正确的插件目录使用register()函数注册插件实现核心功能函数。

2025-05-06 16:36:21 495

原创 Blender插件机制设计与Python实现

Blender的插件机制是其强大扩展性的核心,允许开发者通过Python创建自定义功能。下面我将详细介绍Blender插件系统的设计原理,并提供一个完整的示例。

2025-05-06 16:34:03 430

原创 C/C++工程中的Plugin机制设计与Python实现

endif// 定义插件类型// 插件基本信息结构// 插件操作接口// 获取插件信息// 初始化插件// 执行插件功能// 清理插件// 插件注册函数原型#endif。

2025-05-06 16:31:12 493

原创 Fortran 中的函数和子程序指针使用

在 Fortran 中,可以使用过程指针(procedure pointers)来指向函数或子程序,这提供了类似于函数指针的功能。下面我将通过示例程序说明如何在 Fortran 中使用函数和子程序指针。

2025-05-06 14:59:44 329

原创 深度学习在油气地震资料反卷积中的应用

在油气地震勘探中,反卷积(Deconvolution)是一种重要的信号处理技术,用于提高地震资料的分辨率。传统方法(如维纳滤波、预测反卷积等)存在对噪声敏感、假设条件严格等局限。深度学习方法通过数据驱动的方式学习更复杂的反卷积映射关系。

2025-05-06 14:46:06 858

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除