|
|
|
|
|
#pragma once
|
|
|
|
|
|
#ifndef PCH_H
|
|
|
|
|
|
#define PCH_H
|
|
|
|
|
|
#include "framework.h"
|
|
|
|
|
|
#endif //PCH_H
|
|
|
|
|
|
|
|
|
|
|
|
#define HX_API extern "C" _declspec(dllexport)
|
|
|
|
|
|
#include <iostream>
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
#include <cmath>
|
|
|
|
|
|
#include <algorithm>
|
|
|
|
|
|
#include <fstream>
|
|
|
|
|
|
#include <ctime>
|
|
|
|
|
|
#include <iomanip>
|
|
|
|
|
|
#include <unordered_set>
|
|
|
|
|
|
#include <Windows.h>
|
|
|
|
|
|
#include "accelwt_solver_api.h"
|
|
|
|
|
|
#include "accelwt_cpu.h"
|
|
|
|
|
|
#include <cstdio>
|
|
|
|
|
|
const double M_PI = acos(-1.0);
|
|
|
|
|
|
typedef std::vector<std::vector<std::vector<double>>>dVec3; //<2F><>ά<EFBFBD><CEAC><EFBFBD><EFBFBD>:double
|
|
|
|
|
|
typedef std::vector<std::vector<double>>dVec2; //<2F><>ά<EFBFBD><CEAC><EFBFBD><EFBFBD>:double
|
|
|
|
|
|
typedef std::vector<std::vector<int>>iVec2; //<2F><>ά<EFBFBD><CEAC><EFBFBD><EFBFBD>:int
|
|
|
|
|
|
typedef std::vector<double>dVec1; //һά<D2BB><CEAC><EFBFBD><EFBFBD>:double
|
|
|
|
|
|
typedef std::vector<int>iVec1; //һά<D2BB><CEAC><EFBFBD><EFBFBD>:int
|
|
|
|
|
|
|
|
|
|
|
|
template<class T> void HX_copy(std::vector<std::vector<std::vector<T>>>& p1, const std::vector<std::vector<std::vector<T>>>& p0)
|
|
|
|
|
|
{
|
|
|
|
|
|
int m = p0.size(); p1.resize(m);
|
|
|
|
|
|
for (int i = 0; i < m; ++i)
|
|
|
|
|
|
{
|
|
|
|
|
|
int n = p0[i].size(); p1[i].resize(n);
|
|
|
|
|
|
for (int j = 0; j < n; ++j)
|
|
|
|
|
|
{
|
|
|
|
|
|
int l = p0[i][j].size(); p1[i][j].resize(l);
|
|
|
|
|
|
for (int k = 0; k < l; ++k)
|
|
|
|
|
|
{
|
|
|
|
|
|
p1[i][j][k] = p0[i][j][k];
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
template<class T> void HX_copy(std::vector<std::vector<T>>& p1, const std::vector<std::vector<T>>& p0)
|
|
|
|
|
|
{
|
|
|
|
|
|
int m = p0.size(); p1.resize(m);
|
|
|
|
|
|
for (int i = 0; i < m; ++i)
|
|
|
|
|
|
{
|
|
|
|
|
|
int n = p0[i].size(); p1[i].resize(n);
|
|
|
|
|
|
for (int j = 0; j < n; ++j)
|
|
|
|
|
|
{
|
|
|
|
|
|
p1[i][j] = p0[i][j];
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
template<class T> void HX_copy(std::vector<T>& p1, const std::vector<T>& p0)
|
|
|
|
|
|
{
|
|
|
|
|
|
int m = p0.size(); p1.resize(m);
|
|
|
|
|
|
for (int i = 0; i < m; ++i)
|
|
|
|
|
|
{
|
|
|
|
|
|
p1[i] = p0[i];
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
template<class T> void HX_copy(std::vector<std::vector<std::vector<T>>>& p1, T*** p0, int m, int* n, int l)
|
|
|
|
|
|
{
|
|
|
|
|
|
p1.resize(m);
|
|
|
|
|
|
for (int i = 0; i < m; ++i)
|
|
|
|
|
|
{
|
|
|
|
|
|
p1[i].resize(n[i]);
|
|
|
|
|
|
for (int j = 0; j < n[i]; ++j)
|
|
|
|
|
|
{
|
|
|
|
|
|
p1[i][j].resize(l);
|
|
|
|
|
|
for (int k = 0; k < l; ++k)
|
|
|
|
|
|
{
|
|
|
|
|
|
p1[i][j][k] = p0[i][j][k];
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
template<class T> void HX_copy(std::vector<std::vector<T>>& p1, T** p0, int m, int n)
|
|
|
|
|
|
{
|
|
|
|
|
|
p1.resize(m);
|
|
|
|
|
|
for (int i = 0; i < m; ++i)
|
|
|
|
|
|
{
|
|
|
|
|
|
p1[i].resize(n);
|
|
|
|
|
|
for (int j = 0; j < n; ++j)
|
|
|
|
|
|
{
|
|
|
|
|
|
p1[i][j] = p0[i][j];
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
template<class T> void HX_copy(std::vector<T>& p1, T* p0, int m)
|
|
|
|
|
|
{
|
|
|
|
|
|
p1.resize(m);
|
|
|
|
|
|
for (int i = 0; i < m; ++i)
|
|
|
|
|
|
{
|
|
|
|
|
|
p1[i] = p0[i];
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
|
struct point
|
|
|
|
|
|
{
|
|
|
|
|
|
//<2F><><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
|
double x; double y; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
point() { x = 0; y = 0; }
|
|
|
|
|
|
~point() {}
|
|
|
|
|
|
void set(const double& x_ = 0, const double& y_ = 0) { x = x_; y = y_; }
|
|
|
|
|
|
void set(const point& p) { x = p.x; y = p.y; }
|
|
|
|
|
|
};
|
|
|
|
|
|
struct point3
|
|
|
|
|
|
{
|
|
|
|
|
|
double x;
|
|
|
|
|
|
double y;
|
|
|
|
|
|
double z;
|
|
|
|
|
|
point3() { x = 0; y = 0; z = 0; }
|
|
|
|
|
|
~point3() {}
|
|
|
|
|
|
point3(const dVec1&p) { x = p[0]; y = p[1]; z = p[2]; }
|
|
|
|
|
|
point3(const double& x_ = 0, const double& y_ = 0, const double&z_ = 0) { x = x_; y = y_; z = z_;}
|
|
|
|
|
|
void set(const double& x_ = 0, const double& y_ = 0, const double& z_ = 0) { x = x_; y = y_; z = z_; }
|
|
|
|
|
|
void set(const point3&p) { x = p.x; y = p.y; z = p.z; }
|
|
|
|
|
|
};
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
|
struct cell
|
|
|
|
|
|
{
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
|
std::vector<point> p;
|
|
|
|
|
|
iVec2 pindex;
|
|
|
|
|
|
iVec1 isplot;
|
|
|
|
|
|
cell() {}
|
|
|
|
|
|
~cell() {}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
|
struct HX_NWTM_GRID_INPUT
|
|
|
|
|
|
{
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><F1BBAEB7>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
|
dVec2 Boundary; //3D:{x0, y0, z0, x1, y1, z1} //2D:{x0, y0, x1, y1} <20>߽<EFBFBD><DFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
dVec2 VerticalWell; //3D:{x0, y0, z0, x1, y1, z1, rw} //2D:{x0, y0, x1, y1, rw} ֱ<><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
dVec2 HorizontalWell; //3D:{x0, y0, z0, x1, y1, z1, rw} ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
dVec2 FractureVerticalWell; //3D:{x0, y0, z0, x1, y1, z1, wf} //2D:{x0, y0, x1, y1, wf, FC} ѹ<><D1B9>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(wf<77>ѷ<EFBFBD><D1B7><EFBFBD><EFBFBD><EFBFBD>,m,FC,<2C>ѷ쵼<D1B7><ECB5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,mD.m(FCΪ0ʱΪ<CAB1><CEAA><EFBFBD><EFBFBD><DEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0ʱΪ<CAB1><CEAA><EFBFBD><EFBFBD><DEB5><EFBFBD>))
|
|
|
|
|
|
dVec3 MultistageFracturedHorizontalWell; //3D:{x0, y0, z0, x1, y1, z1, wf} //2D:{x0, y0, x1, y1, wf, FC} <20>༶ѹ<E0BCB6><D1B9>ˮƽ<CBAE><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(wf<77>ѷ<EFBFBD><D1B7><EFBFBD><EFBFBD><EFBFBD>,m,FC,<2C>ѷ쵼<D1B7><ECB5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,mD.m(FCΪ0ʱΪ<CAB1><CEAA><EFBFBD><EFBFBD><DEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0ʱΪ<CAB1><CEAA><EFBFBD><EFBFBD><DEB5><EFBFBD>))
|
|
|
|
|
|
dVec2 InclinedWell; //3D:{x0, y0, z0, x1, y1, z1, rw} б<><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
dVec2 Fault; //3D:{x0, y0, z0, x1, y1, z1} //2D:{x0, y0, x1, y1} <20>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double GridControl; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>
|
|
|
|
|
|
int D; // ά<><CEAC>
|
|
|
|
|
|
|
|
|
|
|
|
//Ĭ<>ϳ<EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
HX_NWTM_GRID_INPUT()
|
|
|
|
|
|
{
|
|
|
|
|
|
dVec1 a(3), b(4), c(5), d(6);
|
|
|
|
|
|
Boundary.resize(4);
|
|
|
|
|
|
b[0] = -1500.0; b[1] = -1500.0; b[2] = -1500.0; b[3] = 1500.0; Boundary[0] = b;
|
|
|
|
|
|
b[0] = -1500.0; b[1] = 1500.0; b[2] = 1500.0; b[3] = 1500.0; Boundary[1] = b;
|
|
|
|
|
|
b[0] = 1500.0; b[1] = 1500.0; b[2] = 1500.0; b[3] = -1500.0; Boundary[2] = b;
|
|
|
|
|
|
b[0] = 1500.0; b[1] = -1500.0; b[2] = -1500.0; b[3] = -1500.0; Boundary[3] = b;
|
|
|
|
|
|
|
|
|
|
|
|
VerticalWell.resize(3);
|
|
|
|
|
|
a[0] = 0; a[1] = 0; a[2] = 0.1; VerticalWell[0] = a;
|
|
|
|
|
|
a[0] = 1000; a[1] = 1000; a[2] = 0.1; VerticalWell[1] = a;
|
|
|
|
|
|
a[0] = -1000; a[1] = -1000; a[2] = 0.1; VerticalWell[2] = a;
|
|
|
|
|
|
|
|
|
|
|
|
HorizontalWell.resize(0);
|
|
|
|
|
|
|
|
|
|
|
|
FractureVerticalWell.resize(1);
|
|
|
|
|
|
d[0] = -200; d[1] = -200; d[2] = 200; d[3] = -200; d[4] = 0.05; d[5] = 0; FractureVerticalWell[0] = d;
|
|
|
|
|
|
|
|
|
|
|
|
MultistageFracturedHorizontalWell.resize(1);
|
|
|
|
|
|
MultistageFracturedHorizontalWell[0].resize(3, dVec1(5));
|
|
|
|
|
|
d[0] = -600; d[1] = 600; d[2] = -400; d[3] = 600; d[4] = 0.1; d[5] = 0; MultistageFracturedHorizontalWell[0][0] = d;
|
|
|
|
|
|
d[0] = -600; d[1] = 400; d[2] = -400; d[3] = 400; d[4] = 0.1; d[5] = 0; MultistageFracturedHorizontalWell[0][1] = d;
|
|
|
|
|
|
d[0] = -600; d[1] = 200; d[2] = -400; d[3] = 200; d[4] = 0.1; d[5] = 0; MultistageFracturedHorizontalWell[0][2] = d;
|
|
|
|
|
|
|
|
|
|
|
|
InclinedWell.resize(0);
|
|
|
|
|
|
|
|
|
|
|
|
Fault.resize(1);
|
|
|
|
|
|
b[0] = -500; b[1] = 1000; b[2] = 500; b[3] = 500; Fault[0] = b;
|
|
|
|
|
|
|
|
|
|
|
|
GridControl = 150.0;
|
|
|
|
|
|
|
|
|
|
|
|
D = 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
~HX_NWTM_GRID_INPUT() {}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>(<28><>ͼ<EFBFBD><CDBC>)
|
|
|
|
|
|
struct HX_NWTM_GRID_OUTPUT1
|
|
|
|
|
|
{
|
|
|
|
|
|
cell TRI_cell; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
cell PEBI_cell; //PEBI<42><49><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
HX_NWTM_GRID_OUTPUT1() {}
|
|
|
|
|
|
~HX_NWTM_GRID_OUTPUT1() {}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>(ģ<><C4A3><EFBFBD><EFBFBD>)
|
|
|
|
|
|
struct HX_NWTM_GRID_OUTPUT2
|
|
|
|
|
|
{
|
|
|
|
|
|
dVec2 Trinodexy;
|
|
|
|
|
|
dVec1 Area;
|
|
|
|
|
|
dVec2 D;
|
|
|
|
|
|
struct {
|
|
|
|
|
|
int n;
|
|
|
|
|
|
dVec2 XiLinw;
|
|
|
|
|
|
dVec2 lw;
|
|
|
|
|
|
dVec2 dw;
|
|
|
|
|
|
dVec1 rw;
|
|
|
|
|
|
iVec2 inwell;
|
|
|
|
|
|
dVec1 dwell;
|
|
|
|
|
|
} ZhiJingNeiBianJie;
|
|
|
|
|
|
struct {
|
|
|
|
|
|
int n;
|
|
|
|
|
|
dVec2 XiLinf;
|
|
|
|
|
|
dVec2 lf;
|
|
|
|
|
|
dVec2 df;
|
|
|
|
|
|
dVec1 xf;
|
|
|
|
|
|
iVec2 infra;
|
|
|
|
|
|
iVec1 nf;
|
|
|
|
|
|
iVec1 jjf;
|
|
|
|
|
|
iVec1 jjfl;
|
|
|
|
|
|
dVec1 lfcd;
|
|
|
|
|
|
iVec2 infra1;
|
|
|
|
|
|
dVec2 lf1;
|
|
|
|
|
|
dVec2 df1;
|
|
|
|
|
|
} LieFengJingNeiBianJie;
|
|
|
|
|
|
struct {
|
|
|
|
|
|
int n;
|
|
|
|
|
|
dVec2 XiLinh;
|
|
|
|
|
|
dVec2 lh;
|
|
|
|
|
|
dVec2 dh;
|
|
|
|
|
|
dVec2 dsxf;
|
|
|
|
|
|
iVec2 inhor;
|
|
|
|
|
|
iVec1 nhor;
|
|
|
|
|
|
dVec2 areah;
|
|
|
|
|
|
iVec2 inhor1;
|
|
|
|
|
|
iVec2 nh;
|
|
|
|
|
|
iVec2 jjh;
|
|
|
|
|
|
dVec2 hfcd;
|
|
|
|
|
|
iVec2 jjhl;
|
|
|
|
|
|
iVec2 jjh2;
|
|
|
|
|
|
iVec2 inhor2;
|
|
|
|
|
|
dVec2 lh1;
|
|
|
|
|
|
dVec2 dh1;
|
|
|
|
|
|
} DuoJiYaLieShuiPingJingNeiBianJie;
|
|
|
|
|
|
struct {
|
|
|
|
|
|
int n;
|
|
|
|
|
|
dVec2 WaiBianh;
|
|
|
|
|
|
dVec2 WaiBianl;
|
|
|
|
|
|
dVec2 WaiBiand;
|
|
|
|
|
|
} WaiBianJie;
|
|
|
|
|
|
struct {
|
|
|
|
|
|
int n;
|
|
|
|
|
|
dVec2 faultb1;
|
|
|
|
|
|
dVec2 faultb2;
|
|
|
|
|
|
dVec2 faultl1;
|
|
|
|
|
|
dVec2 faultd1;
|
|
|
|
|
|
} NeiBuDuanCeng;
|
|
|
|
|
|
struct {
|
|
|
|
|
|
iVec1 ia;
|
|
|
|
|
|
iVec1 ja;
|
|
|
|
|
|
iVec2 nzeros;
|
|
|
|
|
|
int numk;
|
|
|
|
|
|
} YuChuLiJuZhen;
|
|
|
|
|
|
HX_NWTM_GRID_OUTPUT2() {}
|
|
|
|
|
|
~HX_NWTM_GRID_OUTPUT2() {}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//KRINGING<4E><47>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
|
struct HX_KRING_INPUT
|
|
|
|
|
|
{
|
|
|
|
|
|
double nugget; //<2F><><EFBFBD><EFBFBD>ֵ:<3A><>ʾ<EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>봦<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD>̶ȣ<CCB6><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>߶ȵ<DFB6><C8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE>
|
|
|
|
|
|
double sill; //<2F><>ֵ̨:<3A><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EEBAAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD><C8B6>ļ<EFBFBD><C4BC><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD><EFBFBD><F2BBAFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD><EFBFBD>̶<EFBFBD>
|
|
|
|
|
|
double range; //<2F><><EFBFBD><EFBFBD>:<3A><>ʾ<EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD>롣<EFBFBD><EBA1A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>볬<EFBFBD><EBB3AC> range ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD>䲻<EFBFBD>پ<EFBFBD><D9BE>пռ<D0BF><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double model; //<2F><><EFBFBD><EFBFBD><EEBAAF>ģ<EFBFBD><C4A3>:ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEBAAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı仯<C4B1><E4BBAF><EFBFBD><EFBFBD>{, , }
|
|
|
|
|
|
//<2F><>˹ģ<CBB9><C4A3>SPHERICAL(0)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD>ָ<EFBFBD><D6B8>˥<EFBFBD><CBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD>ǿ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>
|
|
|
|
|
|
//ָ<><D6B8>ģ<EFBFBD><C4A3>EXPONENTIAL(1)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կ<EFBFBD><D4BF><EFBFBD>˥<EFBFBD><CBA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ھֲ<DABE><D6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խϴ<D4BD><CFB4>ı<EFBFBD><C4B1><EFBFBD>
|
|
|
|
|
|
//<2F><>״ģ<D7B4><C4A3>GAUSSIAN(2)<29><><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߱仯<DFB1><E4BBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD><CCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
|
|
|
|
|
|
dVec2 p; //<2F><>ֵ<EFBFBD><D6B5>
|
|
|
|
|
|
dVec2 v; //
|
|
|
|
|
|
~HX_KRING_INPUT() {}
|
|
|
|
|
|
HX_KRING_INPUT(double nugget0, double sill0, double range0, double model0 , const dVec2& p0, const dVec2& v0)
|
|
|
|
|
|
{
|
|
|
|
|
|
nugget = nugget0; sill = sill0; range = range0; model = model0;
|
|
|
|
|
|
p = p0;
|
|
|
|
|
|
v = v0;
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//KRINGING<4E><47>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
|
struct HX_KRING_OUTPUT
|
|
|
|
|
|
{
|
|
|
|
|
|
dVec1 v;
|
|
|
|
|
|
HX_KRING_OUTPUT() {}
|
|
|
|
|
|
~HX_KRING_OUTPUT() {}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ֵ<EFBFBD>Ծ<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
|
struct HX_NWTM_MODEL_INPUT
|
|
|
|
|
|
{
|
|
|
|
|
|
int T; //1:<3A>͵<EFBFBD><CDB5>ೣ<EFBFBD><E0B3A3>pvt; 2:<3A>͵<EFBFBD><CDB5><EFBFBD><EFBFBD>仯pvt; 3:ˮ<><CBAE><EFBFBD>ೣ<EFBFBD><E0B3A3>pvt; 4:ˮ<><CBAE><EFBFBD><EFBFBD><EFBFBD>仯pvt; 5:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>仯pvt; 6:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9>; 7:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; 8:<3A><>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD>; 9:<3A><>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD>; 10:<3A><><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD>
|
|
|
|
|
|
HX_NWTM_GRID_OUTPUT2 GRID;
|
|
|
|
|
|
struct Rate //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
dVec2 t; //ʱ<><CAB1>, h [һ<>ھ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>]
|
|
|
|
|
|
dVec2 qo; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,m^3/d [һ<>ھ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>]
|
|
|
|
|
|
dVec2 qg; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,m^3/d [һ<>ھ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>]
|
|
|
|
|
|
dVec2 qw; //ˮ<><CBAE><EFBFBD><EFBFBD>,m^3/d [һ<>ھ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>]
|
|
|
|
|
|
}Rate;
|
|
|
|
|
|
struct Pressure //ѹ<><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
dVec2 t; //ʱ<><CAB1>, h [һ<>ھ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>]
|
|
|
|
|
|
dVec2 p; //ѹ<><D1B9>, MPa [һ<>ھ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>]
|
|
|
|
|
|
}Pressure;
|
|
|
|
|
|
struct CS //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
dVec1 C; //<2F><><EFBFBD><EFBFBD>, m^3/MPa [һ<>ھ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>]
|
|
|
|
|
|
dVec1 S; //<2F><>Ƥ, [һ<>ھ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>]
|
|
|
|
|
|
}CS;
|
|
|
|
|
|
struct PVT //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
dVec1 p; //ѹ<><D1B9>, MPa
|
|
|
|
|
|
double pb; //<2F><><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9>, MPa
|
|
|
|
|
|
dVec1 Rso; //<2F>ܽ<EFBFBD><DCBD><EFBFBD><EFBFBD>ͱ<EFBFBD>, m^3/m^3
|
|
|
|
|
|
dVec1 Bo; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>, m^3/m^3
|
|
|
|
|
|
dVec1 Co; //<2F><>ѹ<EFBFBD><D1B9>ϵ<EFBFBD><CFB5>, 1/MPa
|
|
|
|
|
|
dVec1 miuo; //<2F><>ճ<EFBFBD><D5B3>, mPa<50><61>s
|
|
|
|
|
|
dVec1 rouo; //<2F><><EFBFBD>ܶ<EFBFBD>, kg/m^3
|
|
|
|
|
|
dVec1 Rv; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, m^3/m^3
|
|
|
|
|
|
dVec1 Bg; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>, m^3/m^3
|
|
|
|
|
|
dVec1 Cg; //<2F><>ѹ<EFBFBD><D1B9>ϵ<EFBFBD><CFB5>, 1/MPa
|
|
|
|
|
|
dVec1 miug; //<2F><>ճ<EFBFBD><D5B3>, mPa<50><61>s
|
|
|
|
|
|
dVec1 roug; //<2F><><EFBFBD>ܶ<EFBFBD>, kg/m^3
|
|
|
|
|
|
dVec1 Z; //<2F><>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 1
|
|
|
|
|
|
dVec1 Rsw; //<2F>ܽ<EFBFBD><DCBD><EFBFBD>ˮ<EFBFBD><CBAE>, m^3/m^3
|
|
|
|
|
|
dVec1 Bw; //ˮ<><CBAE><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>, m^3/m^3
|
|
|
|
|
|
dVec1 Cw; //ˮѹ<CBAE><D1B9>ϵ<EFBFBD><CFB5>, 1/MPa
|
|
|
|
|
|
dVec1 miuw; //ˮճ<CBAE><D5B3>, mPa<50><61>s
|
|
|
|
|
|
dVec1 rouw; //ˮ<>ܶ<EFBFBD>, kg/m^3
|
|
|
|
|
|
dVec1 V; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, m^3/kg
|
|
|
|
|
|
dVec1 k_kinitial; //<2F><><EFBFBD>ʱ<EFBFBD>, 1
|
|
|
|
|
|
dVec1 Cf_Cfinitial; //<2F><>ʯѹ<CAAF><D1B9>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>, 1
|
|
|
|
|
|
dVec1 So; //<2F>ͱ<EFBFBD><CDB1>Ͷ<EFBFBD>
|
|
|
|
|
|
dVec1 Kro; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8>
|
|
|
|
|
|
dVec1 Sg; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>
|
|
|
|
|
|
dVec1 Krg; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8>
|
|
|
|
|
|
dVec1 Sw; //ˮ<><CBAE><EFBFBD>Ͷ<EFBFBD>
|
|
|
|
|
|
dVec1 Krw; //ˮ<><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8>
|
|
|
|
|
|
}PVT;
|
|
|
|
|
|
struct Base //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
double Pi; //<2F><>ʼѹ<CABC><D1B9>, MPa
|
|
|
|
|
|
double Cti; //<2F>ۺ<EFBFBD>ѹ<EFBFBD><D1B9>ϵ<EFBFBD><CFB5>, 1/MPa
|
|
|
|
|
|
double Cf; //<2F><>ʯѹ<CAAF><D1B9>ϵ<EFBFBD><CFB5>, 1/MPa
|
|
|
|
|
|
double Soi; //<2F><>ʼ<EFBFBD><CABC><EFBFBD>ͱ<EFBFBD><CDB1>Ͷ<EFBFBD>
|
|
|
|
|
|
double Sgi; //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>
|
|
|
|
|
|
double Swi; //<2F><>ʼ<EFBFBD><CABC>ˮ<EFBFBD><CBAE><EFBFBD>Ͷ<EFBFBD>
|
|
|
|
|
|
dVec1 k; //<2F><><EFBFBD><CDB8>, D [һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫһ<D4AA><D2BB>ֵ]
|
|
|
|
|
|
dVec1 phi; //<2F><>϶<EFBFBD><CFB6>, 1 [һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫһ<D4AA><D2BB>ֵ]
|
|
|
|
|
|
dVec1 h; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, m [һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫһ<D4AA><D2BB>ֵ]
|
|
|
|
|
|
double d; //ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
|
double dt_Min; //<2F><>Сʱ<D0A1><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, h
|
|
|
|
|
|
double dt_Max; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, h
|
|
|
|
|
|
}Base;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
HX_NWTM_MODEL_INPUT() {}
|
|
|
|
|
|
~HX_NWTM_MODEL_INPUT() {}
|
|
|
|
|
|
HX_NWTM_MODEL_INPUT(const HX_NWTM_GRID_OUTPUT2& p0)
|
|
|
|
|
|
{
|
|
|
|
|
|
T =1;
|
|
|
|
|
|
GRID = p0;
|
|
|
|
|
|
|
|
|
|
|
|
Rate.t.resize(5);
|
|
|
|
|
|
Rate.qo.resize(5);
|
|
|
|
|
|
Rate.qw.resize(5);
|
|
|
|
|
|
Rate.qg.resize(5);
|
|
|
|
|
|
|
|
|
|
|
|
Rate.t[0].resize(2); Rate.t[0][0] = 2000; Rate.t[0][1] = 500;
|
|
|
|
|
|
Rate.qo[0].resize(2); Rate.qo[0][0] = 10; Rate.qo[0][1] = 0;
|
|
|
|
|
|
Rate.qw[0].resize(2); Rate.qw[0][0] = 2; Rate.qw[0][1] = 0;
|
|
|
|
|
|
Rate.qg[0].resize(2); Rate.qg[0][0] = 20000; Rate.qg[0][1] = 0;
|
|
|
|
|
|
|
|
|
|
|
|
Rate.t[1].resize(0);
|
|
|
|
|
|
Rate.qo[1].resize(0);
|
|
|
|
|
|
Rate.qw[1].resize(0);
|
|
|
|
|
|
Rate.qg[1].resize(0);
|
|
|
|
|
|
|
|
|
|
|
|
Rate.t[2].resize(3); Rate.t[2][0] = 1000; Rate.t[2][1] = 1000; Rate.t[2][2] = 500;
|
|
|
|
|
|
Rate.qo[2].resize(3); Rate.qo[2][0] = 30; Rate.qo[2][1] = 40; Rate.qo[2][2] = 20;
|
|
|
|
|
|
Rate.qw[2].resize(3); Rate.qw[2][0] = 3; Rate.qw[2][1] = 4; Rate.qw[2][2] = 2;
|
|
|
|
|
|
Rate.qg[2].resize(3); Rate.qg[2][0] = 30000; Rate.qg[2][1] = 40000; Rate.qg[2][2] = 20000;
|
|
|
|
|
|
|
|
|
|
|
|
Rate.t[3].resize(2); Rate.t[3][0] = 1500; Rate.t[3][1] = 1000;
|
|
|
|
|
|
Rate.qo[3].resize(2); Rate.qo[3][0] = 30; Rate.qo[3][1] = 20;
|
|
|
|
|
|
Rate.qw[3].resize(2); Rate.qw[3][0] = 5; Rate.qw[3][1] = 2;
|
|
|
|
|
|
Rate.qg[3].resize(2); Rate.qg[3][0] = 50000; Rate.qg[3][1] = 20000;
|
|
|
|
|
|
Rate.t[4].resize(2); Rate.t[4][0] = 1000; Rate.t[4][1] = 1500;
|
|
|
|
|
|
Rate.qo[4].resize(2); Rate.qo[4][0] = -50; Rate.qo[4][1] = -60;
|
|
|
|
|
|
Rate.qw[4].resize(2); Rate.qw[4][0] = -2; Rate.qw[4][1] = -5;
|
|
|
|
|
|
Rate.qg[4].resize(2); Rate.qg[4][0] = -20000; Rate.qg[4][1] = -50000;
|
|
|
|
|
|
|
|
|
|
|
|
Pressure.t.resize(0);
|
|
|
|
|
|
Pressure.p.resize(0);
|
|
|
|
|
|
|
|
|
|
|
|
CS.C.resize(5);
|
|
|
|
|
|
CS.C[0] = 0.1; CS.C[1] = 0.1; CS.C[2] = 0.1; CS.C[3] = 0.1; CS.C[4] = 0.1;
|
|
|
|
|
|
CS.S.resize(5);
|
|
|
|
|
|
CS.S[0] = 0.1; CS.S[1] = 0.1; CS.S[2] = 0.1; CS.S[3] = 0.1; CS.S[4] = 0.1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PVT.p = dVec1(200, 0); for (int i = 0; i < 200; ++i) { PVT.p[i] = (i + 1.0); }
|
|
|
|
|
|
PVT.pb = 40.0;
|
|
|
|
|
|
PVT.Rso = dVec1(200, 0);
|
|
|
|
|
|
PVT.Bo = dVec1(200, 1.2);
|
|
|
|
|
|
PVT.Co = dVec1(200, 5e-4);
|
|
|
|
|
|
PVT.miuo = dVec1(200, 0.5);
|
|
|
|
|
|
PVT.rouo = dVec1(200, 800);
|
|
|
|
|
|
PVT.Rv = dVec1(200, 0);
|
|
|
|
|
|
PVT.Bg = dVec1(200, 5e-3);
|
|
|
|
|
|
PVT.Cg = dVec1(200, 2e-2);
|
|
|
|
|
|
PVT.miug = dVec1(200, 2e-2);
|
|
|
|
|
|
PVT.roug = dVec1(200, 200);
|
|
|
|
|
|
PVT.Z = dVec1(200, 1);
|
|
|
|
|
|
PVT.Rsw = dVec1(200, 0);
|
|
|
|
|
|
PVT.Bw = dVec1(200, 1.05);
|
|
|
|
|
|
PVT.Cw = dVec1(200, 1e-4);
|
|
|
|
|
|
PVT.miuw = dVec1(200, 0.8);
|
|
|
|
|
|
PVT.rouw = dVec1(200, 1000);
|
|
|
|
|
|
PVT.V = dVec1(200, 0);
|
|
|
|
|
|
|
|
|
|
|
|
PVT.k_kinitial = dVec1(200, 1);
|
|
|
|
|
|
PVT.Cf_Cfinitial = dVec1(200, 1);
|
|
|
|
|
|
|
|
|
|
|
|
PVT.So = dVec1(81, 0); for (int i = 0; i < 81; ++i) { PVT.So[i] = (0.1+i*0.01); }
|
|
|
|
|
|
PVT.Kro = dVec1(81, 0); for (int i = 0; i < 81; ++i) { PVT.Kro[i] = (i*0.0125); }
|
|
|
|
|
|
PVT.Krw = dVec1(81, 0); for (int i = 0; i < 81; ++i) { PVT.Krw[i] = (1 - i * 0.0125); }
|
|
|
|
|
|
PVT.Sg = dVec1(100, 0);
|
|
|
|
|
|
PVT.Krg = dVec1(100, 0);
|
|
|
|
|
|
PVT.Sw = dVec1(100, 0);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Base.Pi = 40.0;
|
|
|
|
|
|
Base.Cti = 1e-3;
|
|
|
|
|
|
Base.Cf = 1e-4;
|
|
|
|
|
|
Base.Soi = 0.8;
|
|
|
|
|
|
Base.Sgi = 0.0;
|
|
|
|
|
|
Base.Swi = 0.2;
|
|
|
|
|
|
Base.k = dVec1(p0.Trinodexy.size(), 0.001);
|
|
|
|
|
|
Base.phi = dVec1(p0.Trinodexy.size(), 0.1);
|
|
|
|
|
|
Base.h = dVec1(p0.Trinodexy.size(), 10);
|
|
|
|
|
|
Base.d = 1.05;
|
|
|
|
|
|
Base.dt_Min = 0.0025;
|
|
|
|
|
|
Base.dt_Max = 12.5;
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ֵ<EFBFBD>Ծ<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>
|
|
|
|
|
|
struct HX_NWTM_MODEL_OUTPUT
|
|
|
|
|
|
{
|
|
|
|
|
|
dVec1 t; //ʱ<><CAB1>, h
|
|
|
|
|
|
dVec2 pw; //<2F><><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9>, MPa [һ<>ھ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>]
|
|
|
|
|
|
dVec2 p; //ѹ<><D1B9><EFBFBD>ֲ<EFBFBD>, MPa [һ<><D2BB>ʱ<EFBFBD><CAB1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>]
|
|
|
|
|
|
dVec2 So; //<2F>ͱ<EFBFBD><CDB1>Ͷȷֲ<C8B7> [һ<><D2BB>ʱ<EFBFBD><CAB1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>]
|
|
|
|
|
|
dVec2 Sg; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ͷȷֲ<C8B7> [һ<><D2BB>ʱ<EFBFBD><CAB1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>]
|
|
|
|
|
|
dVec2 Sw; //ˮ<><CBAE><EFBFBD>Ͷȷֲ<C8B7> [һ<><D2BB>ʱ<EFBFBD><CAB1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>]
|
|
|
|
|
|
dVec2 k; //<2F><><EFBFBD>ʷֲ<CAB7>,mD [һ<><D2BB>ʱ<EFBFBD><CAB1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>]
|
|
|
|
|
|
HX_NWTM_MODEL_OUTPUT() {}
|
|
|
|
|
|
~HX_NWTM_MODEL_OUTPUT() {}
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
HX_API void HX_NWTM_GRID(HX_NWTM_GRID_OUTPUT1& p1, HX_NWTM_GRID_OUTPUT2& p2, const HX_NWTM_GRID_INPUT& p0, std::string LIC); //<2F><>ֵ<EFBFBD>Ծ<EFBFBD><D4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
|
HX_API void HX_NWTM_KRINGING(HX_KRING_OUTPUT& p1, const HX_KRING_INPUT p0, std::string LIC); //<2F><>ֵ<EFBFBD>Ծ<EFBFBD><D4BE>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
|
HX_API void HX_NWTM_MODEL(HX_NWTM_MODEL_OUTPUT& p1, const HX_NWTM_MODEL_INPUT& p0, std::string LIC); //<2F><>ֵ<EFBFBD>Ծ<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|
|
|
|
|
HX_API void set_omp_threads(int n);
|
|
|
|
|
|
HX_API void set_ilu_reuse_steps(int n);
|
|
|
|
|
|
HX_API int getPEBInum();
|
|
|
|
|
|
HX_API int getsolvetime();
|
|
|
|
|
|
HX_API void set_solvetype(int n);
|
|
|
|
|
|
|
|
|
|
|
|
|