60 lines
1.6 KiB
C++
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 |