gctl_toolkits/gm3d/gm3d.h
2024-09-10 20:25:18 +08:00

60 lines
1.6 KiB
C++

#ifndef _GM3D_H
#define _GM3D_H
#include "head_func.h"
#include "gctl/core.h"
#include "gctl/utility.h"
class GM3D{
public:
GM3D(){}
~GM3D(){}
int BuildRegularGrid(char*); //初始化反演模型空间
int AddModels(char*); //读取模型块体参数文件
int AddRegularBlock(modelist); //添加普通模型块体
int AddTiltedBlock(modelist); //添加倾斜模型块体
int AddSphereBlock(modelist); //添加球体椭球体块体
int AddInterfaceBlock(modelist); //添加密度界面
//模型操作
int ReadModel(char*,char*);
//输出模型
int RegisteredOuput(bool); //注册输出的块体模型
int OutMshFile(char*,string); //输出模型文件
int OutNeighborFile(char*,char*); //输出模型块体或顶点的相邻关系 暂缓
//观测数据
int InitObs(char*);
int OutObs(char*);
//正演函数
int ForwardVz(char*);
int ForwardVzx(char*);
int ForwardVzy(char*);
int ForwardVzz(char*);
int ForwardDeltaT(char*,char*);
int ForwardDeltaTx(char*,char*);
int ForwardDeltaTy(char*,char*);
int ForwardDeltaTz(char*,char*);
int ForwardHax(char*,char*);
int ForwardHay(char*,char*);
int ForwardZa(char*,char*);
private:
int obs_num_, model_num_, vert_num_;
//正演数组
obspointArray obs_p_;
_2dArray input_models_;
_1sArray input_model_names_;
_1dArray forward_model_;
//模型数据
cubeArray model_cube_;
cpointArray model_vert_;
_1dArray model_block_val_;
modelistArray model_list_;
_1iArray out_ele_ids_;
_1iArray out_ele_data_ids_;
_1iArray out_vert_ids_;
_int2intMap vert_out_map_;
_int2intMap ele_data_out_map_;
_2iArray model_vert_neighbor_; //暂缓
_2iArray model_cube_neighbor_; //暂缓
};
#endif