Go to file
2025-04-23 12:39:44 +08:00
dep initial upload 2024-09-10 15:45:07 +08:00
doc initial upload 2024-09-10 15:45:07 +08:00
example bug fixed in sparray 2025-04-08 16:23:40 +08:00
lib tmp 2025-04-23 12:39:44 +08:00
tool update dsviewer 2025-03-03 09:15:25 +08:00
.gitignore edit ignore list 2024-12-31 09:36:25 +08:00
CMakeLists.txt tmp 2025-04-23 12:39:44 +08:00
config.h.in add exprtk library 2025-01-02 12:58:13 +08:00
Doxyfile tmp udpate 2024-09-20 21:54:47 +08:00
GCTL_logo.jpg update readme 2025-02-03 11:23:32 +08:00
GCTLConfig.cmake.in tmp 2025-02-08 21:04:59 +08:00
LICENSE initial upload 2024-09-10 15:45:07 +08:00
README.md update 2025-02-03 12:28:45 +08:00

logo

Geophysical Computational Tools & Library (GCTL)

注意: 本文档由 Cursor AI 自动生成。文档中的函数名称、参数和用法说明可能存在错误,请以头文件(.h)中的实际函数声明为准。如发现任何不一致,请以源代码为准。

GCTL 是一个用于地球物理研究的计算工具和 C++ 库。完整的软件包由核心库和额外的库以及命令行工具组成。本库采用现代 C++ 设计,提供高性能的数值计算和数据处理功能。

主要特性

  • 高性能: 采用现代 C++ 技术,支持并行计算和 SIMD 优化
  • 易用性: 直观的 API 设计,完善的文档和示例
  • 可扩展: 模块化设计,支持自定义扩展
  • 可靠性: 完整的单元测试,异常安全保证
  • 跨平台: 支持 Linux、macOS 和 Windows

库结构

1. 核心库 (gctl)

  • 核心数据结构 (core/)

    • 动态数组 (array.h, array_enhanced.h)
      • 自动内存管理
      • 并行算法支持
      • 数学运算功能
      • 序列化支持
    • 矩阵操作 (matrix.h)
      • 基础矩阵运算
      • 线性代数操作
      • 分解算法
      • 特征值计算
    • 稀疏数据结构 (spmat.h, sparray.h)
      • 压缩存储格式
      • 高效稀疏运算
      • 内存优化
    • 向量模板 (vector_t.h)
      • 2D/3D 向量运算
      • 几何变换
      • 坐标系转换
    • 枚举定义 (enum.h)
      • 类型安全枚举
      • 状态定义
      • 错误码
  • 输入输出 (io/)

    • DSV 文件操作 (dsv_io.h)
      • CSV/TSV 格式支持
      • 自定义分隔符
      • 表头处理
    • 文本文件操作 (text_io.h)
      • 文本读写
      • 编码转换
      • 流式处理
    • NetCDF 支持 (netcdf_io.h)
      • 科学数据格式
      • 多维数组支持
      • 元数据处理
    • 网格文件操作 (mesh_io.h)
      • 多种网格格式
      • 网格转换
      • 拓扑处理
  • 数学计算 (maths/)

    • 线性代数 (linear_algebra.h)
      • 矩阵分解
      • 特征值计算
      • 线性方程组求解
    • 数学函数 (mathfunc.h)
      • 基础数学函数
      • 特殊函数
      • 插值函数
    • 形状函数 (shapefunc.h)
      • 有限元基函数
      • 节点形函数
      • 边界条件
    • FFT 变换 (fft.h)
      • 快速傅里叶变换
      • 频谱分析
      • 滤波器
  • 几何处理 (geometry/)

    • 基础几何 (basic.h)
      • 点线面运算
      • 几何变换
      • 相交检测
    • 网格处理 (mesh.h)
      • 网格生成
      • 网格优化
      • 质量评估
    • 形状函数 (shape.h)
      • 几何形状描述
      • 参数化曲面
      • 边界表示
  • 工具函数 (utility/)

    • 通用工具 (common.h)
      • 字符串处理
      • 时间日期
      • 日志系统
    • 算法实现 (algorithm.h)
      • 排序算法
      • 搜索算法
      • 图算法

2. 扩展库

  • gctl_potential: 势场数据处理库

    • 重力数据处理
    • 磁场数据处理
    • 势场反演
    • 场源解释
  • gctl_seismic: 地震数据处理库

    • 波形处理
    • 震相识别
    • 速度建模
    • 层析成像
  • gctl_elecmag: 电磁数据处理库

    • MT数据处理
    • 电磁反演
    • 各向异性分析
    • 噪声处理
  • gctl_optimization: 优化算法库

    • 线性规划
    • 非线性优化
    • 全局优化
    • 约束优化
  • gctl_ai: 人工智能算法库

    • 神经网络
    • 机器学习
    • 深度学习
    • 模式识别
  • gctl_graphic: 数据可视化库

    • 2D绘图
    • 3D可视化
    • 等值线图
    • 矢量场图

系统要求

编译器支持

  • GCC 7.0 或更高版本
  • Clang 6.0 或更高版本
  • MSVC 2019 或更高版本

操作系统

  • Linux (Ubuntu 18.04+, CentOS 7+)
  • macOS (10.14+)
  • Windows (10, 11)

依赖库版本

  • CMake 3.10+
  • OpenMP 4.0+
  • NetCDF 4.6+
  • FFTW 3.3+
  • OpenBLAS 0.3+
  • Eigen 3.3+

性能优化

1. 并行计算

  • OpenMP 多线程并行
    • 自动线程分配
    • 负载均衡
    • 缓存优化
  • SIMD 向量化
    • AVX/AVX2 指令集
    • 自动向量化
    • 手动优化
  • GPU 加速(可选)
    • CUDA 支持
    • OpenCL 支持
    • 异构计算

2. 内存管理

  • 智能指针管理
  • 内存池技术
  • 缓存对齐
  • 零拷贝优化

3. 算法优化

  • 自适应算法选择
  • 数值稳定性保证
  • 计算精度控制
  • 资源使用优化

应用领域

1. 地球物理勘探

  • 重力勘探
  • 磁法勘探
  • 地震勘探
  • 电磁勘探

2. 地球科学研究

  • 地壳结构研究
  • 地球内部成像
  • 地球动力学模拟
  • 地震预测研究

3. 工程应用

  • 矿产资源勘探
  • 工程地质调查
  • 环境地球物理
  • 灾害监测预警

贡献指南

代码规范

  • 遵循现代 C++ 规范
  • 代码格式化要求
  • 命名规范
  • 注释规范

开发流程

  1. Fork 项目
  2. 创建特性分支
  3. 提交变更
  4. 发起 Pull Request

测试要求

  • 单元测试覆盖
  • 集成测试
  • 性能测试
  • 回归测试

版本历史

v1.0.0 (2024-01)

  • 初始版本发布
  • 核心功能实现
  • 基础文档完成

开发计划

  • GPU 加速支持
  • 分布式计算
  • 深度学习集成
  • 实时处理优化

联系方式

技术支持

致谢

感谢以下机构和个人的支持:

  • 浙江大学地球科学学院
  • 国家自然科学基金委员会