update readme
This commit is contained in:
parent
3cd05d36ac
commit
72fb9cac2f
BIN
GCTL_logo.jpg
Normal file
BIN
GCTL_logo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
105
README.md
105
README.md
@ -1,2 +1,105 @@
|
|||||||
# gctl_potential
|

|
||||||
|
|
||||||
|
# GCTL Potential
|
||||||
|
|
||||||
|
GCTL Potential 是地球物理计算工具与库(Geophysical Computational Tools & Library, GCTL)的重力和磁力场正演模拟模块。该模块提供了一系列用于计算重力场和磁场的核心功能。
|
||||||
|
|
||||||
|
## 功能特性
|
||||||
|
|
||||||
|
### 重力场计算 (G-Kernel)
|
||||||
|
- 2D模型计算
|
||||||
|
- `gkernel_triangle2d`: 二维三角形体
|
||||||
|
- `gkernel_rectangle2d`: 二维矩形体
|
||||||
|
- `gkernel_polygon`: 二维多边形体
|
||||||
|
|
||||||
|
- 3D模型计算
|
||||||
|
- `gkernel_triangle`: 三维三角形体
|
||||||
|
- `gkernel_sphere`: 球体
|
||||||
|
- `gkernel_block`: 长方体
|
||||||
|
- `gkernel_tetrahedron`: 四面体
|
||||||
|
- `gkernel_tricone`: 三锥体
|
||||||
|
- `gkernel_tesseroid`: 曲面格网体(需要 GCTL_POTENTIAL_TESS 选项)
|
||||||
|
|
||||||
|
### 磁场计算 (M-Kernel)
|
||||||
|
- `mkernel_dipole`: 偶极子
|
||||||
|
- `mkernel_block`: 长方体
|
||||||
|
- `mkernel_triangle`: 三角形体
|
||||||
|
- `mkernel_tricone`: 三锥体
|
||||||
|
- `mkernel_tetrahedron`: 四面体
|
||||||
|
- 标准实现
|
||||||
|
- Ren2017 实现方法
|
||||||
|
- `mkernel_tesseroid`: 曲面格网体(需要 GCTL_POTENTIAL_MAGTESS 选项)
|
||||||
|
|
||||||
|
### 网格与数据结构
|
||||||
|
- `gm_data`: 基础数据结构
|
||||||
|
- `gm_regular_grid`: 规则网格
|
||||||
|
- `gm_regular_mesh_2d`: 二维规则网格
|
||||||
|
- `gm_regular_mesh_3d`: 三维规则网格
|
||||||
|
- `gm_regular_mesh_sph_3d`: 三维球面规则网格
|
||||||
|
- `gm_tet_mesh`: 四面体网格
|
||||||
|
|
||||||
|
## 依赖
|
||||||
|
- Eigen (矩阵运算库)
|
||||||
|
- autodiff (自动微分库,用于梯度计算)
|
||||||
|
|
||||||
|
## 许可证
|
||||||
|
GCTL Potential 采用双重许可证方案:
|
||||||
|
1. GNU Lesser General Public License v2 或更高版本
|
||||||
|
2. 商业许可证(需单独购买)
|
||||||
|
|
||||||
|
## 作者
|
||||||
|
- Yi Zhang (yizhang-geo@zju.edu.cn)
|
||||||
|
|
||||||
|
## 安装
|
||||||
|
使用 CMake 构建系统:
|
||||||
|
```bash
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake ..
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
```
|
||||||
|
|
||||||
|
## 示例
|
||||||
|
`example` 目录下提供了丰富的示例代码,展示了各种计算功能的使用方法:
|
||||||
|
|
||||||
|
### 重力场计算示例
|
||||||
|
- `gobser_tri2d_ex.cpp`: 二维三角形体重力场计算
|
||||||
|
- 演示了如何读取 GMSH 格式的网格文件
|
||||||
|
- 计算重力位、重力分量和重力梯度张量
|
||||||
|
- 结果输出为 DSV 格式
|
||||||
|
- `gobser_tri2d_sph_ex.cpp`: 球面坐标系下的二维三角形体重力场计算
|
||||||
|
|
||||||
|
### 磁场计算示例
|
||||||
|
- `mobser_tetra_ex.cpp`: 四面体磁场计算
|
||||||
|
- 展示了标准实现和 Ren2017 方法的对比
|
||||||
|
- 包含磁位、磁场分量和 ΔT 异常计算
|
||||||
|
- 支持 NetCDF 格式输出
|
||||||
|
- `mobser_tetra_ex2.cpp`: 四面体磁场计算的另一个示例
|
||||||
|
- `mobser_block_ex.cpp`: 长方体磁场计算
|
||||||
|
- `mobser_tricone_ex.cpp`: 三锥体磁场计算
|
||||||
|
- `mobser_tesseroid_ex.cpp`: 曲面格网体磁场计算
|
||||||
|
- `mobser_dipole_ex.cpp`: 偶极子磁场计算
|
||||||
|
- `mobser_tri_ex.cpp`: 三角形体磁场计算
|
||||||
|
- `mobser_tri_sph_ex.cpp`: 球面坐标系下的三角形体磁场计算
|
||||||
|
|
||||||
|
### 特殊功能示例
|
||||||
|
- `power_spectrum_ex.cpp`: 功率谱计算示例
|
||||||
|
- `read_IGRF_ex.cpp`: IGRF 地磁场模型数据读取示例
|
||||||
|
- `mobser_block_gradient_ex.cpp`: 长方体磁场梯度计算
|
||||||
|
|
||||||
|
### 数据格式支持
|
||||||
|
- 网格文件格式:
|
||||||
|
- GMSH 格式 (.msh)
|
||||||
|
- Tetgen 格式 (.node, .ele)
|
||||||
|
- 输出格式:
|
||||||
|
- DSV (Delimiter-Separated Values)
|
||||||
|
- NetCDF
|
||||||
|
- 文本格式
|
||||||
|
|
||||||
|
所有示例代码都包含详细的注释,并提供了完整的数据输入输出流程。用户可以根据需要修改示例代码中的参数来适应自己的应用场景。
|
||||||
|
|
||||||
|
## 注意事项
|
||||||
|
- 某些功能(如 tesseroid 计算)需要在编译时启用特定选项
|
||||||
|
- 商业用途请联系作者获取商业许可证
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user