feat(nmNum): 集成PEBI CPU加速求解器配置
- 新增求解器库、OpenMP线程数和ILU复用步数设置 - 支持求解器配置的工程保存与恢复 - 计算前将加速参数传递给PEBI求解器DLL - 记录PEBI网格数量并在计算完成后显示求解耗时 - 更新CPU加速运行库和中文翻译资源feature/PebiSolver-Integration-20260818
parent
7bbc44b7d5
commit
d0ab4cd518
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
||||
7d534fb716ed6121f939
|
||||
@ -0,0 +1,22 @@
|
||||
So,Krw,Kro
|
||||
0,1,0
|
||||
0.05,1,0
|
||||
0.1,1,0
|
||||
0.15,0.864105595,0.020840082
|
||||
0.2,0.744179203,0.044454989
|
||||
0.25,0.638344534,0.071214184
|
||||
0.3,0.544945766,0.101536324
|
||||
0.35,0.462521643,0.135895811
|
||||
0.4,0.389782609,0.17483021
|
||||
0.45,0.325590638,0.218948664
|
||||
0.5,0.268941421,0.268941421
|
||||
0.55,0.218948664,0.325590638
|
||||
0.6,0.17483021,0.389782609
|
||||
0.65,0.135895811,0.462521643
|
||||
0.7,0.101536324,0.544945766
|
||||
0.75,0.071214184,0.638344534
|
||||
0.8,0.044454989,0.744179203
|
||||
0.85,0.020840082,0.864105595
|
||||
0.9,0,1
|
||||
0.95,0,1
|
||||
1,0,1
|
||||
|
@ -0,0 +1,202 @@
|
||||
p,Bw,miuw,,Bo,miuo
|
||||
0.101325,1.04263,0.294823,0,1.17376,0.653595
|
||||
0.446063,1.04246,0.294823,0,1.13543,0.653595
|
||||
0.790801,1.04228,0.294823,0,1.12095,0.653595
|
||||
1.13554,1.04211,0.294823,0,1.1119,0.653595
|
||||
1.48028,1.04194,0.294823,0,1.10532,0.653595
|
||||
1.82501,1.04177,0.294823,0,1.10015,0.653595
|
||||
2.16975,1.0416,0.294823,0,1.09589,0.653595
|
||||
2.51449,1.04143,0.294823,0,1.09228,0.653595
|
||||
2.85923,1.04126,0.294823,0,1.08914,0.653595
|
||||
3.20397,1.04109,0.294823,0,1.08636,0.653595
|
||||
3.5487,1.04092,0.294823,0,1.08388,0.653595
|
||||
3.89344,1.04075,0.294823,0,1.08163,0.653595
|
||||
4.23818,1.04058,0.294823,0,1.07958,0.653595
|
||||
4.58292,1.04041,0.294823,0,1.07769,0.653595
|
||||
4.92765,1.04024,0.294823,0,1.07594,0.653595
|
||||
5.27239,1.04008,0.294823,0,1.07431,0.653595
|
||||
5.61713,1.03991,0.294823,0,1.07278,0.653595
|
||||
5.96187,1.03974,0.294823,0,1.07135,0.653595
|
||||
6.30661,1.03957,0.294823,0,1.07001,0.653595
|
||||
6.65134,1.0394,0.294823,0,1.06873,0.653595
|
||||
6.99608,1.03924,0.294823,0,1.06752,0.653595
|
||||
7.34082,1.03907,0.294823,0,1.06637,0.653595
|
||||
7.68556,1.0389,0.294823,0,1.06528,0.653595
|
||||
8.0303,1.03873,0.294823,0,1.06423,0.653595
|
||||
8.37503,1.03857,0.294823,0,1.06323,0.653595
|
||||
8.71977,1.0384,0.294823,0,1.06227,0.653595
|
||||
9.06451,1.03823,0.294823,0,1.06134,0.653595
|
||||
9.40925,1.03807,0.294823,0,1.06046,0.653595
|
||||
9.75398,1.0379,0.294823,0,1.0596,0.653595
|
||||
10.0987,1.03774,0.294823,0,1.05878,0.653595
|
||||
10.4435,1.03757,0.294823,0,1.05798,0.653595
|
||||
10.7882,1.0374,0.294823,0,1.05721,0.653595
|
||||
11.1329,1.03724,0.294823,0,1.05647,0.653595
|
||||
11.4777,1.03707,0.294823,0,1.05575,0.653595
|
||||
11.8224,1.03691,0.294823,0,1.05505,0.653595
|
||||
12.1671,1.03674,0.294823,0,1.05437,0.653595
|
||||
12.5119,1.03658,0.294823,0,1.05371,0.653595
|
||||
12.8566,1.03642,0.294823,0,1.05307,0.653595
|
||||
13.2014,1.03625,0.294823,0,1.05244,0.653595
|
||||
13.5461,1.03609,0.294823,0,1.05183,0.653595
|
||||
13.8908,1.03592,0.294823,0,1.05124,0.653595
|
||||
14.2356,1.03576,0.294823,0,1.05067,0.653595
|
||||
14.5803,1.0356,0.294823,0,1.0501,0.653595
|
||||
14.9251,1.03543,0.294823,0,1.04955,0.653595
|
||||
15.2698,1.03527,0.294823,0,1.04902,0.653595
|
||||
15.6145,1.03511,0.294823,0,1.04849,0.653595
|
||||
15.9593,1.03495,0.294823,0,1.04798,0.653595
|
||||
16.304,1.03478,0.294823,0,1.04748,0.653595
|
||||
16.6487,1.03462,0.294823,0,1.04699,0.653595
|
||||
16.9935,1.03446,0.294823,0,1.04651,0.653595
|
||||
17.3382,1.0343,0.294823,0,1.04603,0.653595
|
||||
17.683,1.03414,0.294823,0,1.04557,0.653595
|
||||
18.0277,1.03397,0.294823,0,1.04512,0.653595
|
||||
18.3724,1.03381,0.294823,0,1.04468,0.653595
|
||||
18.7172,1.03365,0.294823,0,1.04424,0.653595
|
||||
19.0619,1.03349,0.294823,0,1.04382,0.653595
|
||||
19.4066,1.03333,0.294823,0,1.0434,0.653595
|
||||
19.7514,1.03317,0.294823,0,1.04299,0.653595
|
||||
20.0961,1.03301,0.294823,0,1.04258,0.653595
|
||||
20.4409,1.03285,0.294823,0,1.04218,0.653595
|
||||
20.7856,1.03269,0.294823,0,1.04179,0.653595
|
||||
21.1303,1.03253,0.294823,0,1.04141,0.653595
|
||||
21.4751,1.03237,0.294823,0,1.04103,0.653595
|
||||
21.8198,1.03221,0.294823,0,1.04066,0.653595
|
||||
22.1645,1.03205,0.294823,0,1.0403,0.653595
|
||||
22.5093,1.03189,0.294823,0,1.03994,0.653595
|
||||
22.854,1.03173,0.294823,0,1.03958,0.653595
|
||||
23.1988,1.03158,0.294823,0,1.03923,0.653595
|
||||
23.5435,1.03142,0.294823,0,1.03889,0.653595
|
||||
23.8882,1.03126,0.294823,0,1.03855,0.653595
|
||||
24.233,1.0311,0.294823,0,1.03822,0.653595
|
||||
24.5777,1.03094,0.294823,0,1.03789,0.653595
|
||||
24.9225,1.03079,0.294823,0,1.03757,0.653595
|
||||
25.2672,1.03063,0.294823,0,1.03725,0.653595
|
||||
25.6119,1.03047,0.294823,0,1.03693,0.653595
|
||||
25.9567,1.03031,0.294823,0,1.03662,0.653595
|
||||
26.3014,1.03016,0.294823,0,1.03631,0.653595
|
||||
26.6461,1.03,0.294823,0,1.03601,0.653595
|
||||
26.9909,1.02984,0.294823,0,1.03571,0.653595
|
||||
27.3356,1.02969,0.294823,0,1.03542,0.653595
|
||||
27.6804,1.02953,0.294823,0,1.03513,0.653595
|
||||
28.0251,1.02937,0.294823,0,1.03484,0.653595
|
||||
28.3698,1.02922,0.294823,0,1.03456,0.653595
|
||||
28.7146,1.02906,0.294823,0,1.03428,0.653595
|
||||
29.0593,1.02891,0.294823,0,1.034,0.653595
|
||||
29.404,1.02875,0.294823,0,1.03373,0.653595
|
||||
29.7488,1.0286,0.294823,0,1.03346,0.653595
|
||||
30.0935,1.02844,0.294823,0,1.03319,0.653595
|
||||
30.4383,1.02829,0.294823,0,1.03293,0.653595
|
||||
30.783,1.02813,0.294823,0,1.03267,0.653595
|
||||
31.1277,1.02798,0.294823,0,1.03241,0.653595
|
||||
31.4725,1.02782,0.294823,0,1.03216,0.653595
|
||||
31.8172,1.02767,0.294823,0,1.0319,0.653595
|
||||
32.1619,1.02751,0.294823,0,1.03166,0.653595
|
||||
32.5067,1.02736,0.294823,0,1.03141,0.653595
|
||||
32.8514,1.02721,0.294823,0,1.03116,0.653595
|
||||
33.1962,1.02705,0.294823,0,1.03092,0.653595
|
||||
33.5409,1.0269,0.294823,0,1.03069,0.653595
|
||||
33.8856,1.02675,0.294823,0,1.03045,0.653595
|
||||
34.2304,1.02659,0.294823,0,1.03022,0.653595
|
||||
34.5751,1.02644,0.294823,0,1.02998,0.653595
|
||||
34.9198,1.02629,0.294823,0,1.02976,0.653595
|
||||
35.2646,1.02614,0.294823,0,1.02953,0.653595
|
||||
35.6093,1.02598,0.294823,0,1.0293,0.653595
|
||||
35.9541,1.02583,0.294823,0,1.02908,0.653595
|
||||
36.2988,1.02568,0.294823,0,1.02886,0.653595
|
||||
36.6435,1.02553,0.294823,0,1.02864,0.653595
|
||||
36.9883,1.02538,0.294823,0,1.02843,0.653595
|
||||
37.333,1.02522,0.294823,0,1.02821,0.653595
|
||||
37.6778,1.02507,0.294823,0,1.028,0.653595
|
||||
38.0225,1.02492,0.294823,0,1.02779,0.653595
|
||||
38.3672,1.02477,0.294823,0,1.02759,0.653595
|
||||
38.712,1.02462,0.294823,0,1.02738,0.653595
|
||||
39.0567,1.02447,0.294823,0,1.02718,0.653595
|
||||
39.4014,1.02432,0.294823,0,1.02697,0.653595
|
||||
39.7462,1.02417,0.294823,0,1.02677,0.653595
|
||||
40.0909,1.02402,0.294823,0,1.02657,0.653595
|
||||
40.4357,1.02387,0.294823,0,1.02638,0.653595
|
||||
40.7804,1.02372,0.294823,0,1.02618,0.653595
|
||||
41.1251,1.02357,0.294823,0,1.02599,0.653595
|
||||
41.4699,1.02342,0.294823,0,1.0258,0.653595
|
||||
41.8146,1.02327,0.294823,0,1.02561,0.653595
|
||||
42.1593,1.02312,0.294823,0,1.02542,0.653595
|
||||
42.5041,1.02297,0.294823,0,1.02523,0.653595
|
||||
42.8488,1.02282,0.294823,0,1.02505,0.653595
|
||||
43.1936,1.02267,0.294823,0,1.02486,0.653595
|
||||
43.5383,1.02253,0.294823,0,1.02468,0.653595
|
||||
43.883,1.02238,0.294823,0,1.0245,0.653595
|
||||
44.2278,1.02223,0.294823,0,1.02432,0.653595
|
||||
44.5725,1.02208,0.294823,0,1.02414,0.653595
|
||||
44.9172,1.02193,0.294823,0,1.02396,0.653595
|
||||
45.262,1.02179,0.294823,0,1.02379,0.653595
|
||||
45.6067,1.02164,0.294823,0,1.02361,0.653595
|
||||
45.9515,1.02149,0.294823,0,1.02344,0.653595
|
||||
46.2962,1.02134,0.294823,0,1.02327,0.653595
|
||||
46.6409,1.0212,0.294823,0,1.0231,0.653595
|
||||
46.9857,1.02105,0.294823,0,1.02293,0.653595
|
||||
47.3304,1.0209,0.294823,0,1.02276,0.653595
|
||||
47.6751,1.02076,0.294823,0,1.0226,0.653595
|
||||
48.0199,1.02061,0.294823,0,1.02243,0.653595
|
||||
48.3646,1.02046,0.294823,0,1.02227,0.653595
|
||||
48.7094,1.02032,0.294823,0,1.02211,0.653595
|
||||
49.0541,1.02017,0.294823,0,1.02194,0.653595
|
||||
49.3988,1.02003,0.294823,0,1.02178,0.653595
|
||||
49.7436,1.01988,0.294823,0,1.02162,0.653595
|
||||
50.0883,1.01974,0.294823,0,1.02147,0.653595
|
||||
50.4331,1.01959,0.294823,0,1.02131,0.653595
|
||||
50.7778,1.01944,0.294823,0,1.02115,0.653595
|
||||
51.1225,1.0193,0.294823,0,1.021,0.653595
|
||||
51.4673,1.01915,0.294823,0,1.02085,0.653595
|
||||
51.812,1.01901,0.294823,0,1.02069,0.653595
|
||||
52.1567,1.01887,0.294823,0,1.02054,0.653595
|
||||
52.5015,1.01872,0.294823,0,1.02039,0.653595
|
||||
52.8462,1.01858,0.294823,0,1.02024,0.653595
|
||||
53.191,1.01843,0.294823,0,1.02009,0.653595
|
||||
53.5357,1.01829,0.294823,0,1.01994,0.653595
|
||||
53.8804,1.01814,0.294823,0,1.0198,0.653595
|
||||
54.2252,1.018,0.294823,0,1.01965,0.653595
|
||||
54.5699,1.01786,0.294823,0,1.01951,0.653595
|
||||
54.9146,1.01771,0.294823,0,1.01936,0.653595
|
||||
55.2594,1.01757,0.294823,0,1.01922,0.653595
|
||||
55.6041,1.01743,0.294823,0,1.01908,0.653595
|
||||
55.9489,1.01729,0.294823,0,1.01894,0.653595
|
||||
56.2936,1.01714,0.294823,0,1.0188,0.653595
|
||||
56.6383,1.017,0.294823,0,1.01866,0.653595
|
||||
56.9831,1.01686,0.294823,0,1.01852,0.653595
|
||||
57.3278,1.01672,0.294823,0,1.01838,0.653595
|
||||
57.6725,1.01657,0.294823,0,1.01825,0.653595
|
||||
58.0173,1.01643,0.294823,0,1.01811,0.653595
|
||||
58.362,1.01629,0.294823,0,1.01797,0.653595
|
||||
58.7068,1.01615,0.294823,0,1.01784,0.653595
|
||||
59.0515,1.01601,0.294823,0,1.01771,0.653595
|
||||
59.3962,1.01586,0.294823,0,1.01757,0.653595
|
||||
59.741,1.01572,0.294823,0,1.01744,0.653595
|
||||
60.0857,1.01558,0.294823,0,1.01731,0.653595
|
||||
60.4304,1.01544,0.294823,0,1.01718,0.653595
|
||||
60.7752,1.0153,0.294823,0,1.01705,0.653595
|
||||
61.1199,1.01516,0.294823,0,1.01692,0.653595
|
||||
61.4647,1.01502,0.294823,0,1.01679,0.653595
|
||||
61.8094,1.01488,0.294823,0,1.01667,0.653595
|
||||
62.1541,1.01474,0.294823,0,1.01654,0.653595
|
||||
62.4989,1.0146,0.294823,0,1.01641,0.653595
|
||||
62.8436,1.01446,0.294823,0,1.01629,0.653595
|
||||
63.1884,1.01432,0.294823,0,1.01616,0.653595
|
||||
63.5331,1.01418,0.294823,0,1.01604,0.653595
|
||||
63.8778,1.01404,0.294823,0,1.01592,0.653595
|
||||
64.2226,1.0139,0.294823,0,1.01579,0.653595
|
||||
64.5673,1.01376,0.294823,0,1.01567,0.653595
|
||||
64.912,1.01362,0.294823,0,1.01555,0.653595
|
||||
65.2568,1.01348,0.294823,0,1.01543,0.653595
|
||||
65.6015,1.01334,0.294823,0,1.01531,0.653595
|
||||
65.9463,1.01321,0.294823,0,1.01519,0.653595
|
||||
66.291,1.01307,0.294823,0,1.01507,0.653595
|
||||
66.6357,1.01293,0.294823,0,1.01496,0.653595
|
||||
66.9805,1.01279,0.294823,0,1.01484,0.653595
|
||||
67.3252,1.01265,0.294823,0,1.01472,0.653595
|
||||
67.6699,1.01251,0.294823,0,1.01461,0.653595
|
||||
68.0147,1.01238,0.294823,0,1.01449,0.653595
|
||||
68.3594,1.01224,0.294823,0,1.01437,0.653595
|
||||
68.7042,1.0121,0.294823,0,1.01426,0.653595
|
||||
69.0489,1.01196,0.294823,0,1.01415,0.653595
|
||||
|
@ -0,0 +1,223 @@
|
||||
#ifndef ACCELWT_CPU_H
|
||||
#define ACCELWT_CPU_H
|
||||
|
||||
#if defined(_WIN32) || defined(__CYGWIN__)
|
||||
# if defined(ACCELWT_CPU_STATIC_DEFINE)
|
||||
# define ACCELWT_CPU_API
|
||||
# elif defined(ACCELWT_CPU_BUILDING_LIBRARY)
|
||||
# define ACCELWT_CPU_API __declspec(dllexport)
|
||||
# else
|
||||
# define ACCELWT_CPU_API __declspec(dllimport)
|
||||
# endif
|
||||
#elif defined(__GNUC__) && __GNUC__ >= 4
|
||||
# define ACCELWT_CPU_API __attribute__((visibility("default")))
|
||||
#else
|
||||
# define ACCELWT_CPU_API
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ACCELWT_CPU_VERSION_MAJOR 3
|
||||
#define ACCELWT_CPU_VERSION_MINOR 2
|
||||
#define ACCELWT_CPU_VERSION_PATCH 0
|
||||
|
||||
/*
|
||||
* Persistent simulation session. Create one context for a fixed CSR sparsity
|
||||
* pattern, reuse it across accepted physical time steps, and destroy it when
|
||||
* the simulation ends. Keeping this object alive enables temporal history,
|
||||
* workspace reuse and lagged preconditioner refreshes.
|
||||
*/
|
||||
typedef struct AccelWTCPUContext AccelWTCPUContext;
|
||||
typedef AccelWTCPUContext AccelWTCPUSession;
|
||||
|
||||
typedef enum AccelWTCPUStatus
|
||||
{
|
||||
ACCELWT_CPU_SUCCESS = 0,
|
||||
ACCELWT_CPU_INVALID_ARGUMENT = 1,
|
||||
ACCELWT_CPU_INVALID_MATRIX = 2,
|
||||
ACCELWT_CPU_ALLOCATION_FAILED = 3,
|
||||
ACCELWT_CPU_SETUP_FAILED = 4,
|
||||
ACCELWT_CPU_NOT_READY = 5,
|
||||
ACCELWT_CPU_SOLVE_FAILED = 6,
|
||||
ACCELWT_CPU_NOT_CONVERGED = 7
|
||||
} AccelWTCPUStatus;
|
||||
|
||||
typedef struct AccelWTCPUOptions
|
||||
{
|
||||
int max_iterations;
|
||||
double relative_tolerance;
|
||||
double absolute_tolerance;
|
||||
int ilu_jacobi_iterations;
|
||||
int omp_threads;
|
||||
int use_initial_guess;
|
||||
/* Default: 1. Set to 0 to opt into experimental LU-split Jacobi. */
|
||||
int use_exact_triangular_solve;
|
||||
/*
|
||||
* Experimental four-thread block triangular application.
|
||||
* 0 keeps the mode selected above, 1 performs one block sweep and
|
||||
* 2 performs one cross-subdomain correction sweep. Requires omp_threads=4.
|
||||
*/
|
||||
int block_triangular_sweeps;
|
||||
} AccelWTCPUOptions;
|
||||
|
||||
typedef struct AccelWTCPUInfo
|
||||
{
|
||||
int iterations;
|
||||
double final_rel_residual;
|
||||
double final_abs_residual;
|
||||
double setup_seconds;
|
||||
double solve_seconds;
|
||||
int status;
|
||||
} AccelWTCPUInfo;
|
||||
|
||||
typedef struct AccelWTCPUPhaseInfo
|
||||
{
|
||||
double initialization_seconds;
|
||||
double direction_update_seconds;
|
||||
double preconditioner_seconds;
|
||||
double spmv_reduction_seconds;
|
||||
double solution_update_seconds;
|
||||
double true_residual_seconds;
|
||||
} AccelWTCPUPhaseInfo;
|
||||
|
||||
typedef enum AccelWTCPUTemporalGuess
|
||||
{
|
||||
ACCELWT_CPU_TEMPORAL_GUESS_NONE = 0,
|
||||
ACCELWT_CPU_TEMPORAL_GUESS_PREVIOUS = 1,
|
||||
ACCELWT_CPU_TEMPORAL_GUESS_MR2 = 2
|
||||
} AccelWTCPUTemporalGuess;
|
||||
|
||||
typedef struct AccelWTCPUTemporalOptions
|
||||
{
|
||||
int initial_guess_policy;
|
||||
int enable_early_exit;
|
||||
int ilu_refresh_interval;
|
||||
int ilu_refresh_iteration_threshold;
|
||||
} AccelWTCPUTemporalOptions;
|
||||
|
||||
typedef struct AccelWTCPUStepInfo
|
||||
{
|
||||
AccelWTCPUInfo solve;
|
||||
int used_mr2;
|
||||
int history_depth;
|
||||
int early_exit;
|
||||
int refreshed_preconditioner;
|
||||
double predicted_relative_residual;
|
||||
double prediction_seconds;
|
||||
double update_seconds;
|
||||
double solve_seconds;
|
||||
} AccelWTCPUStepInfo;
|
||||
|
||||
/*
|
||||
* Simple session configuration for time-dependent applications.
|
||||
* Zero values select library defaults. One ILU factor is used for
|
||||
* ilu_reuse_steps consecutive time steps; 1 rebuilds it every step.
|
||||
*/
|
||||
typedef struct AccelWTCPUSessionOptions
|
||||
{
|
||||
int omp_threads;
|
||||
int ilu_reuse_steps;
|
||||
} AccelWTCPUSessionOptions;
|
||||
|
||||
#define ACCELWT_CPU_SESSION_OPTIONS_DEFAULT {0, 5}
|
||||
|
||||
/*
|
||||
* Simple three-function interface. Passing NULL options uses the defaults,
|
||||
* including an ILU reuse window of five time steps.
|
||||
*/
|
||||
ACCELWT_CPU_API int accelwt_cpu_session_create(
|
||||
int n,
|
||||
int nnz,
|
||||
const int *row_ptr,
|
||||
const int *col_ind,
|
||||
const AccelWTCPUSessionOptions *options,
|
||||
AccelWTCPUSession **session);
|
||||
|
||||
ACCELWT_CPU_API int accelwt_cpu_session_solve(
|
||||
AccelWTCPUSession *session,
|
||||
const double *values,
|
||||
const double *rhs,
|
||||
double *x,
|
||||
AccelWTCPUStepInfo *info);
|
||||
|
||||
/* Accepts NULL. */
|
||||
ACCELWT_CPU_API void accelwt_cpu_session_destroy(AccelWTCPUSession *session);
|
||||
|
||||
/* Returns the default options without allocating a solver context. */
|
||||
ACCELWT_CPU_API void accelwt_cpu_default_options(AccelWTCPUOptions *options);
|
||||
ACCELWT_CPU_API void accelwt_cpu_default_temporal_options(
|
||||
AccelWTCPUTemporalOptions *options);
|
||||
|
||||
ACCELWT_CPU_API const char *accelwt_cpu_backend_name(void);
|
||||
ACCELWT_CPU_API const char *accelwt_cpu_status_string(int status);
|
||||
|
||||
/*
|
||||
* Creates a persistent solver for a zero-based, square CSR matrix pattern.
|
||||
* The row and column arrays are copied and may be released after this call.
|
||||
* Column indices must be strictly increasing within each row, and every row
|
||||
* must contain its diagonal entry.
|
||||
*/
|
||||
ACCELWT_CPU_API int accelwt_cpu_create(int n,
|
||||
int nnz,
|
||||
const int *row_ptr,
|
||||
const int *col_ind,
|
||||
const AccelWTCPUOptions *options,
|
||||
AccelWTCPUContext **context);
|
||||
|
||||
/*
|
||||
* Copies new CSR values into the context. A nonzero refresh_preconditioner
|
||||
* rebuilds ILU0. The first update always builds ILU0, regardless of the flag.
|
||||
*/
|
||||
ACCELWT_CPU_API int accelwt_cpu_update_matrix(AccelWTCPUContext *context,
|
||||
const double *values,
|
||||
int refresh_preconditioner,
|
||||
AccelWTCPUInfo *info);
|
||||
|
||||
/* Solves A*x=rhs. The context is not safe for concurrent solve calls. */
|
||||
ACCELWT_CPU_API int accelwt_cpu_solve(AccelWTCPUContext *context,
|
||||
const double *rhs,
|
||||
double *x,
|
||||
AccelWTCPUInfo *info);
|
||||
|
||||
/*
|
||||
* Returns phase timings from the latest solve. Values are zero unless the
|
||||
* library was built with ACCELWT_CPU_PHASE_TIMING=ON.
|
||||
*/
|
||||
ACCELWT_CPU_API int accelwt_cpu_get_last_phase_info(
|
||||
const AccelWTCPUContext *context,
|
||||
AccelWTCPUPhaseInfo *info);
|
||||
|
||||
/*
|
||||
* Configures the library-owned temporal policy. The default is MR2 with
|
||||
* verified early exit and a five-step lagged-ILU interval.
|
||||
*/
|
||||
ACCELWT_CPU_API int accelwt_cpu_set_temporal_options(
|
||||
AccelWTCPUContext *context,
|
||||
const AccelWTCPUTemporalOptions *options);
|
||||
|
||||
/*
|
||||
* Updates A and solves one accepted physical time step while managing MR2
|
||||
* history, verified early exit and lagged-ILU refreshes inside the session.
|
||||
* This interface assumes one linear solve per accepted physical time step.
|
||||
* Do not call it for intermediate or rejected nonlinear iterations because a
|
||||
* successful call immediately commits x to the temporal history.
|
||||
*/
|
||||
ACCELWT_CPU_API int accelwt_cpu_solve_step(AccelWTCPUContext *context,
|
||||
const double *values,
|
||||
const double *rhs,
|
||||
double *x,
|
||||
AccelWTCPUStepInfo *info);
|
||||
|
||||
ACCELWT_CPU_API int accelwt_cpu_reset_temporal_history(
|
||||
AccelWTCPUContext *context);
|
||||
|
||||
/* Accepts NULL. */
|
||||
ACCELWT_CPU_API void accelwt_cpu_destroy(AccelWTCPUContext *context);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,223 @@
|
||||
#ifndef ACCELWT_CPU_H
|
||||
#define ACCELWT_CPU_H
|
||||
|
||||
#if defined(_WIN32) || defined(__CYGWIN__)
|
||||
# if defined(ACCELWT_CPU_STATIC_DEFINE)
|
||||
# define ACCELWT_CPU_API
|
||||
# elif defined(ACCELWT_CPU_BUILDING_LIBRARY)
|
||||
# define ACCELWT_CPU_API __declspec(dllexport)
|
||||
# else
|
||||
# define ACCELWT_CPU_API __declspec(dllimport)
|
||||
# endif
|
||||
#elif defined(__GNUC__) && __GNUC__ >= 4
|
||||
# define ACCELWT_CPU_API __attribute__((visibility("default")))
|
||||
#else
|
||||
# define ACCELWT_CPU_API
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define ACCELWT_CPU_VERSION_MAJOR 3
|
||||
#define ACCELWT_CPU_VERSION_MINOR 2
|
||||
#define ACCELWT_CPU_VERSION_PATCH 0
|
||||
|
||||
/*
|
||||
* Persistent simulation session. Create one context for a fixed CSR sparsity
|
||||
* pattern, reuse it across accepted physical time steps, and destroy it when
|
||||
* the simulation ends. Keeping this object alive enables temporal history,
|
||||
* workspace reuse and lagged preconditioner refreshes.
|
||||
*/
|
||||
typedef struct AccelWTCPUContext AccelWTCPUContext;
|
||||
typedef AccelWTCPUContext AccelWTCPUSession;
|
||||
|
||||
typedef enum AccelWTCPUStatus
|
||||
{
|
||||
ACCELWT_CPU_SUCCESS = 0,
|
||||
ACCELWT_CPU_INVALID_ARGUMENT = 1,
|
||||
ACCELWT_CPU_INVALID_MATRIX = 2,
|
||||
ACCELWT_CPU_ALLOCATION_FAILED = 3,
|
||||
ACCELWT_CPU_SETUP_FAILED = 4,
|
||||
ACCELWT_CPU_NOT_READY = 5,
|
||||
ACCELWT_CPU_SOLVE_FAILED = 6,
|
||||
ACCELWT_CPU_NOT_CONVERGED = 7
|
||||
} AccelWTCPUStatus;
|
||||
|
||||
typedef struct AccelWTCPUOptions
|
||||
{
|
||||
int max_iterations;
|
||||
double relative_tolerance;
|
||||
double absolute_tolerance;
|
||||
int ilu_jacobi_iterations;
|
||||
int omp_threads;
|
||||
int use_initial_guess;
|
||||
/* Default: 1. Set to 0 to opt into experimental LU-split Jacobi. */
|
||||
int use_exact_triangular_solve;
|
||||
/*
|
||||
* Experimental four-thread block triangular application.
|
||||
* 0 keeps the mode selected above, 1 performs one block sweep and
|
||||
* 2 performs one cross-subdomain correction sweep. Requires omp_threads=4.
|
||||
*/
|
||||
int block_triangular_sweeps;
|
||||
} AccelWTCPUOptions;
|
||||
|
||||
typedef struct AccelWTCPUInfo
|
||||
{
|
||||
int iterations;
|
||||
double final_rel_residual;
|
||||
double final_abs_residual;
|
||||
double setup_seconds;
|
||||
double solve_seconds;
|
||||
int status;
|
||||
} AccelWTCPUInfo;
|
||||
|
||||
typedef struct AccelWTCPUPhaseInfo
|
||||
{
|
||||
double initialization_seconds;
|
||||
double direction_update_seconds;
|
||||
double preconditioner_seconds;
|
||||
double spmv_reduction_seconds;
|
||||
double solution_update_seconds;
|
||||
double true_residual_seconds;
|
||||
} AccelWTCPUPhaseInfo;
|
||||
|
||||
typedef enum AccelWTCPUTemporalGuess
|
||||
{
|
||||
ACCELWT_CPU_TEMPORAL_GUESS_NONE = 0,
|
||||
ACCELWT_CPU_TEMPORAL_GUESS_PREVIOUS = 1,
|
||||
ACCELWT_CPU_TEMPORAL_GUESS_MR2 = 2
|
||||
} AccelWTCPUTemporalGuess;
|
||||
|
||||
typedef struct AccelWTCPUTemporalOptions
|
||||
{
|
||||
int initial_guess_policy;
|
||||
int enable_early_exit;
|
||||
int ilu_refresh_interval;
|
||||
int ilu_refresh_iteration_threshold;
|
||||
} AccelWTCPUTemporalOptions;
|
||||
|
||||
typedef struct AccelWTCPUStepInfo
|
||||
{
|
||||
AccelWTCPUInfo solve;
|
||||
int used_mr2;
|
||||
int history_depth;
|
||||
int early_exit;
|
||||
int refreshed_preconditioner;
|
||||
double predicted_relative_residual;
|
||||
double prediction_seconds;
|
||||
double update_seconds;
|
||||
double solve_seconds;
|
||||
} AccelWTCPUStepInfo;
|
||||
|
||||
/*
|
||||
* Simple session configuration for time-dependent applications.
|
||||
* Zero values select library defaults. One ILU factor is used for
|
||||
* ilu_reuse_steps consecutive time steps; 1 rebuilds it every step.
|
||||
*/
|
||||
typedef struct AccelWTCPUSessionOptions
|
||||
{
|
||||
int omp_threads;
|
||||
int ilu_reuse_steps;
|
||||
} AccelWTCPUSessionOptions;
|
||||
|
||||
#define ACCELWT_CPU_SESSION_OPTIONS_DEFAULT {0, 5}
|
||||
|
||||
/*
|
||||
* Simple three-function interface. Passing NULL options uses the defaults,
|
||||
* including an ILU reuse window of five time steps.
|
||||
*/
|
||||
ACCELWT_CPU_API int accelwt_cpu_session_create(
|
||||
int n,
|
||||
int nnz,
|
||||
const int *row_ptr,
|
||||
const int *col_ind,
|
||||
const AccelWTCPUSessionOptions *options,
|
||||
AccelWTCPUSession **session);
|
||||
|
||||
ACCELWT_CPU_API int accelwt_cpu_session_solve(
|
||||
AccelWTCPUSession *session,
|
||||
const double *values,
|
||||
const double *rhs,
|
||||
double *x,
|
||||
AccelWTCPUStepInfo *info);
|
||||
|
||||
/* Accepts NULL. */
|
||||
ACCELWT_CPU_API void accelwt_cpu_session_destroy(AccelWTCPUSession *session);
|
||||
|
||||
/* Returns the default options without allocating a solver context. */
|
||||
ACCELWT_CPU_API void accelwt_cpu_default_options(AccelWTCPUOptions *options);
|
||||
ACCELWT_CPU_API void accelwt_cpu_default_temporal_options(
|
||||
AccelWTCPUTemporalOptions *options);
|
||||
|
||||
ACCELWT_CPU_API const char *accelwt_cpu_backend_name(void);
|
||||
ACCELWT_CPU_API const char *accelwt_cpu_status_string(int status);
|
||||
|
||||
/*
|
||||
* Creates a persistent solver for a zero-based, square CSR matrix pattern.
|
||||
* The row and column arrays are copied and may be released after this call.
|
||||
* Column indices must be strictly increasing within each row, and every row
|
||||
* must contain its diagonal entry.
|
||||
*/
|
||||
ACCELWT_CPU_API int accelwt_cpu_create(int n,
|
||||
int nnz,
|
||||
const int *row_ptr,
|
||||
const int *col_ind,
|
||||
const AccelWTCPUOptions *options,
|
||||
AccelWTCPUContext **context);
|
||||
|
||||
/*
|
||||
* Copies new CSR values into the context. A nonzero refresh_preconditioner
|
||||
* rebuilds ILU0. The first update always builds ILU0, regardless of the flag.
|
||||
*/
|
||||
ACCELWT_CPU_API int accelwt_cpu_update_matrix(AccelWTCPUContext *context,
|
||||
const double *values,
|
||||
int refresh_preconditioner,
|
||||
AccelWTCPUInfo *info);
|
||||
|
||||
/* Solves A*x=rhs. The context is not safe for concurrent solve calls. */
|
||||
ACCELWT_CPU_API int accelwt_cpu_solve(AccelWTCPUContext *context,
|
||||
const double *rhs,
|
||||
double *x,
|
||||
AccelWTCPUInfo *info);
|
||||
|
||||
/*
|
||||
* Returns phase timings from the latest solve. Values are zero unless the
|
||||
* library was built with ACCELWT_CPU_PHASE_TIMING=ON.
|
||||
*/
|
||||
ACCELWT_CPU_API int accelwt_cpu_get_last_phase_info(
|
||||
const AccelWTCPUContext *context,
|
||||
AccelWTCPUPhaseInfo *info);
|
||||
|
||||
/*
|
||||
* Configures the library-owned temporal policy. The default is MR2 with
|
||||
* verified early exit and a five-step lagged-ILU interval.
|
||||
*/
|
||||
ACCELWT_CPU_API int accelwt_cpu_set_temporal_options(
|
||||
AccelWTCPUContext *context,
|
||||
const AccelWTCPUTemporalOptions *options);
|
||||
|
||||
/*
|
||||
* Updates A and solves one accepted physical time step while managing MR2
|
||||
* history, verified early exit and lagged-ILU refreshes inside the session.
|
||||
* This interface assumes one linear solve per accepted physical time step.
|
||||
* Do not call it for intermediate or rejected nonlinear iterations because a
|
||||
* successful call immediately commits x to the temporal history.
|
||||
*/
|
||||
ACCELWT_CPU_API int accelwt_cpu_solve_step(AccelWTCPUContext *context,
|
||||
const double *values,
|
||||
const double *rhs,
|
||||
double *x,
|
||||
AccelWTCPUStepInfo *info);
|
||||
|
||||
ACCELWT_CPU_API int accelwt_cpu_reset_temporal_history(
|
||||
AccelWTCPUContext *context);
|
||||
|
||||
/* Accepts NULL. */
|
||||
ACCELWT_CPU_API void accelwt_cpu_destroy(AccelWTCPUContext *context);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@ -1 +1 @@
|
||||
7d534fb716ec6521f938
|
||||
7d534fb716ed6121f939
|
||||
@ -0,0 +1,22 @@
|
||||
So,Krw,Kro
|
||||
0,1,0
|
||||
0.05,1,0
|
||||
0.1,1,0
|
||||
0.15,0.864105595,0.020840082
|
||||
0.2,0.744179203,0.044454989
|
||||
0.25,0.638344534,0.071214184
|
||||
0.3,0.544945766,0.101536324
|
||||
0.35,0.462521643,0.135895811
|
||||
0.4,0.389782609,0.17483021
|
||||
0.45,0.325590638,0.218948664
|
||||
0.5,0.268941421,0.268941421
|
||||
0.55,0.218948664,0.325590638
|
||||
0.6,0.17483021,0.389782609
|
||||
0.65,0.135895811,0.462521643
|
||||
0.7,0.101536324,0.544945766
|
||||
0.75,0.071214184,0.638344534
|
||||
0.8,0.044454989,0.744179203
|
||||
0.85,0.020840082,0.864105595
|
||||
0.9,0,1
|
||||
0.95,0,1
|
||||
1,0,1
|
||||
|
@ -0,0 +1,202 @@
|
||||
p,Bw,miuw,,Bo,miuo
|
||||
0.101325,1.04263,0.294823,0,1.17376,0.653595
|
||||
0.446063,1.04246,0.294823,0,1.13543,0.653595
|
||||
0.790801,1.04228,0.294823,0,1.12095,0.653595
|
||||
1.13554,1.04211,0.294823,0,1.1119,0.653595
|
||||
1.48028,1.04194,0.294823,0,1.10532,0.653595
|
||||
1.82501,1.04177,0.294823,0,1.10015,0.653595
|
||||
2.16975,1.0416,0.294823,0,1.09589,0.653595
|
||||
2.51449,1.04143,0.294823,0,1.09228,0.653595
|
||||
2.85923,1.04126,0.294823,0,1.08914,0.653595
|
||||
3.20397,1.04109,0.294823,0,1.08636,0.653595
|
||||
3.5487,1.04092,0.294823,0,1.08388,0.653595
|
||||
3.89344,1.04075,0.294823,0,1.08163,0.653595
|
||||
4.23818,1.04058,0.294823,0,1.07958,0.653595
|
||||
4.58292,1.04041,0.294823,0,1.07769,0.653595
|
||||
4.92765,1.04024,0.294823,0,1.07594,0.653595
|
||||
5.27239,1.04008,0.294823,0,1.07431,0.653595
|
||||
5.61713,1.03991,0.294823,0,1.07278,0.653595
|
||||
5.96187,1.03974,0.294823,0,1.07135,0.653595
|
||||
6.30661,1.03957,0.294823,0,1.07001,0.653595
|
||||
6.65134,1.0394,0.294823,0,1.06873,0.653595
|
||||
6.99608,1.03924,0.294823,0,1.06752,0.653595
|
||||
7.34082,1.03907,0.294823,0,1.06637,0.653595
|
||||
7.68556,1.0389,0.294823,0,1.06528,0.653595
|
||||
8.0303,1.03873,0.294823,0,1.06423,0.653595
|
||||
8.37503,1.03857,0.294823,0,1.06323,0.653595
|
||||
8.71977,1.0384,0.294823,0,1.06227,0.653595
|
||||
9.06451,1.03823,0.294823,0,1.06134,0.653595
|
||||
9.40925,1.03807,0.294823,0,1.06046,0.653595
|
||||
9.75398,1.0379,0.294823,0,1.0596,0.653595
|
||||
10.0987,1.03774,0.294823,0,1.05878,0.653595
|
||||
10.4435,1.03757,0.294823,0,1.05798,0.653595
|
||||
10.7882,1.0374,0.294823,0,1.05721,0.653595
|
||||
11.1329,1.03724,0.294823,0,1.05647,0.653595
|
||||
11.4777,1.03707,0.294823,0,1.05575,0.653595
|
||||
11.8224,1.03691,0.294823,0,1.05505,0.653595
|
||||
12.1671,1.03674,0.294823,0,1.05437,0.653595
|
||||
12.5119,1.03658,0.294823,0,1.05371,0.653595
|
||||
12.8566,1.03642,0.294823,0,1.05307,0.653595
|
||||
13.2014,1.03625,0.294823,0,1.05244,0.653595
|
||||
13.5461,1.03609,0.294823,0,1.05183,0.653595
|
||||
13.8908,1.03592,0.294823,0,1.05124,0.653595
|
||||
14.2356,1.03576,0.294823,0,1.05067,0.653595
|
||||
14.5803,1.0356,0.294823,0,1.0501,0.653595
|
||||
14.9251,1.03543,0.294823,0,1.04955,0.653595
|
||||
15.2698,1.03527,0.294823,0,1.04902,0.653595
|
||||
15.6145,1.03511,0.294823,0,1.04849,0.653595
|
||||
15.9593,1.03495,0.294823,0,1.04798,0.653595
|
||||
16.304,1.03478,0.294823,0,1.04748,0.653595
|
||||
16.6487,1.03462,0.294823,0,1.04699,0.653595
|
||||
16.9935,1.03446,0.294823,0,1.04651,0.653595
|
||||
17.3382,1.0343,0.294823,0,1.04603,0.653595
|
||||
17.683,1.03414,0.294823,0,1.04557,0.653595
|
||||
18.0277,1.03397,0.294823,0,1.04512,0.653595
|
||||
18.3724,1.03381,0.294823,0,1.04468,0.653595
|
||||
18.7172,1.03365,0.294823,0,1.04424,0.653595
|
||||
19.0619,1.03349,0.294823,0,1.04382,0.653595
|
||||
19.4066,1.03333,0.294823,0,1.0434,0.653595
|
||||
19.7514,1.03317,0.294823,0,1.04299,0.653595
|
||||
20.0961,1.03301,0.294823,0,1.04258,0.653595
|
||||
20.4409,1.03285,0.294823,0,1.04218,0.653595
|
||||
20.7856,1.03269,0.294823,0,1.04179,0.653595
|
||||
21.1303,1.03253,0.294823,0,1.04141,0.653595
|
||||
21.4751,1.03237,0.294823,0,1.04103,0.653595
|
||||
21.8198,1.03221,0.294823,0,1.04066,0.653595
|
||||
22.1645,1.03205,0.294823,0,1.0403,0.653595
|
||||
22.5093,1.03189,0.294823,0,1.03994,0.653595
|
||||
22.854,1.03173,0.294823,0,1.03958,0.653595
|
||||
23.1988,1.03158,0.294823,0,1.03923,0.653595
|
||||
23.5435,1.03142,0.294823,0,1.03889,0.653595
|
||||
23.8882,1.03126,0.294823,0,1.03855,0.653595
|
||||
24.233,1.0311,0.294823,0,1.03822,0.653595
|
||||
24.5777,1.03094,0.294823,0,1.03789,0.653595
|
||||
24.9225,1.03079,0.294823,0,1.03757,0.653595
|
||||
25.2672,1.03063,0.294823,0,1.03725,0.653595
|
||||
25.6119,1.03047,0.294823,0,1.03693,0.653595
|
||||
25.9567,1.03031,0.294823,0,1.03662,0.653595
|
||||
26.3014,1.03016,0.294823,0,1.03631,0.653595
|
||||
26.6461,1.03,0.294823,0,1.03601,0.653595
|
||||
26.9909,1.02984,0.294823,0,1.03571,0.653595
|
||||
27.3356,1.02969,0.294823,0,1.03542,0.653595
|
||||
27.6804,1.02953,0.294823,0,1.03513,0.653595
|
||||
28.0251,1.02937,0.294823,0,1.03484,0.653595
|
||||
28.3698,1.02922,0.294823,0,1.03456,0.653595
|
||||
28.7146,1.02906,0.294823,0,1.03428,0.653595
|
||||
29.0593,1.02891,0.294823,0,1.034,0.653595
|
||||
29.404,1.02875,0.294823,0,1.03373,0.653595
|
||||
29.7488,1.0286,0.294823,0,1.03346,0.653595
|
||||
30.0935,1.02844,0.294823,0,1.03319,0.653595
|
||||
30.4383,1.02829,0.294823,0,1.03293,0.653595
|
||||
30.783,1.02813,0.294823,0,1.03267,0.653595
|
||||
31.1277,1.02798,0.294823,0,1.03241,0.653595
|
||||
31.4725,1.02782,0.294823,0,1.03216,0.653595
|
||||
31.8172,1.02767,0.294823,0,1.0319,0.653595
|
||||
32.1619,1.02751,0.294823,0,1.03166,0.653595
|
||||
32.5067,1.02736,0.294823,0,1.03141,0.653595
|
||||
32.8514,1.02721,0.294823,0,1.03116,0.653595
|
||||
33.1962,1.02705,0.294823,0,1.03092,0.653595
|
||||
33.5409,1.0269,0.294823,0,1.03069,0.653595
|
||||
33.8856,1.02675,0.294823,0,1.03045,0.653595
|
||||
34.2304,1.02659,0.294823,0,1.03022,0.653595
|
||||
34.5751,1.02644,0.294823,0,1.02998,0.653595
|
||||
34.9198,1.02629,0.294823,0,1.02976,0.653595
|
||||
35.2646,1.02614,0.294823,0,1.02953,0.653595
|
||||
35.6093,1.02598,0.294823,0,1.0293,0.653595
|
||||
35.9541,1.02583,0.294823,0,1.02908,0.653595
|
||||
36.2988,1.02568,0.294823,0,1.02886,0.653595
|
||||
36.6435,1.02553,0.294823,0,1.02864,0.653595
|
||||
36.9883,1.02538,0.294823,0,1.02843,0.653595
|
||||
37.333,1.02522,0.294823,0,1.02821,0.653595
|
||||
37.6778,1.02507,0.294823,0,1.028,0.653595
|
||||
38.0225,1.02492,0.294823,0,1.02779,0.653595
|
||||
38.3672,1.02477,0.294823,0,1.02759,0.653595
|
||||
38.712,1.02462,0.294823,0,1.02738,0.653595
|
||||
39.0567,1.02447,0.294823,0,1.02718,0.653595
|
||||
39.4014,1.02432,0.294823,0,1.02697,0.653595
|
||||
39.7462,1.02417,0.294823,0,1.02677,0.653595
|
||||
40.0909,1.02402,0.294823,0,1.02657,0.653595
|
||||
40.4357,1.02387,0.294823,0,1.02638,0.653595
|
||||
40.7804,1.02372,0.294823,0,1.02618,0.653595
|
||||
41.1251,1.02357,0.294823,0,1.02599,0.653595
|
||||
41.4699,1.02342,0.294823,0,1.0258,0.653595
|
||||
41.8146,1.02327,0.294823,0,1.02561,0.653595
|
||||
42.1593,1.02312,0.294823,0,1.02542,0.653595
|
||||
42.5041,1.02297,0.294823,0,1.02523,0.653595
|
||||
42.8488,1.02282,0.294823,0,1.02505,0.653595
|
||||
43.1936,1.02267,0.294823,0,1.02486,0.653595
|
||||
43.5383,1.02253,0.294823,0,1.02468,0.653595
|
||||
43.883,1.02238,0.294823,0,1.0245,0.653595
|
||||
44.2278,1.02223,0.294823,0,1.02432,0.653595
|
||||
44.5725,1.02208,0.294823,0,1.02414,0.653595
|
||||
44.9172,1.02193,0.294823,0,1.02396,0.653595
|
||||
45.262,1.02179,0.294823,0,1.02379,0.653595
|
||||
45.6067,1.02164,0.294823,0,1.02361,0.653595
|
||||
45.9515,1.02149,0.294823,0,1.02344,0.653595
|
||||
46.2962,1.02134,0.294823,0,1.02327,0.653595
|
||||
46.6409,1.0212,0.294823,0,1.0231,0.653595
|
||||
46.9857,1.02105,0.294823,0,1.02293,0.653595
|
||||
47.3304,1.0209,0.294823,0,1.02276,0.653595
|
||||
47.6751,1.02076,0.294823,0,1.0226,0.653595
|
||||
48.0199,1.02061,0.294823,0,1.02243,0.653595
|
||||
48.3646,1.02046,0.294823,0,1.02227,0.653595
|
||||
48.7094,1.02032,0.294823,0,1.02211,0.653595
|
||||
49.0541,1.02017,0.294823,0,1.02194,0.653595
|
||||
49.3988,1.02003,0.294823,0,1.02178,0.653595
|
||||
49.7436,1.01988,0.294823,0,1.02162,0.653595
|
||||
50.0883,1.01974,0.294823,0,1.02147,0.653595
|
||||
50.4331,1.01959,0.294823,0,1.02131,0.653595
|
||||
50.7778,1.01944,0.294823,0,1.02115,0.653595
|
||||
51.1225,1.0193,0.294823,0,1.021,0.653595
|
||||
51.4673,1.01915,0.294823,0,1.02085,0.653595
|
||||
51.812,1.01901,0.294823,0,1.02069,0.653595
|
||||
52.1567,1.01887,0.294823,0,1.02054,0.653595
|
||||
52.5015,1.01872,0.294823,0,1.02039,0.653595
|
||||
52.8462,1.01858,0.294823,0,1.02024,0.653595
|
||||
53.191,1.01843,0.294823,0,1.02009,0.653595
|
||||
53.5357,1.01829,0.294823,0,1.01994,0.653595
|
||||
53.8804,1.01814,0.294823,0,1.0198,0.653595
|
||||
54.2252,1.018,0.294823,0,1.01965,0.653595
|
||||
54.5699,1.01786,0.294823,0,1.01951,0.653595
|
||||
54.9146,1.01771,0.294823,0,1.01936,0.653595
|
||||
55.2594,1.01757,0.294823,0,1.01922,0.653595
|
||||
55.6041,1.01743,0.294823,0,1.01908,0.653595
|
||||
55.9489,1.01729,0.294823,0,1.01894,0.653595
|
||||
56.2936,1.01714,0.294823,0,1.0188,0.653595
|
||||
56.6383,1.017,0.294823,0,1.01866,0.653595
|
||||
56.9831,1.01686,0.294823,0,1.01852,0.653595
|
||||
57.3278,1.01672,0.294823,0,1.01838,0.653595
|
||||
57.6725,1.01657,0.294823,0,1.01825,0.653595
|
||||
58.0173,1.01643,0.294823,0,1.01811,0.653595
|
||||
58.362,1.01629,0.294823,0,1.01797,0.653595
|
||||
58.7068,1.01615,0.294823,0,1.01784,0.653595
|
||||
59.0515,1.01601,0.294823,0,1.01771,0.653595
|
||||
59.3962,1.01586,0.294823,0,1.01757,0.653595
|
||||
59.741,1.01572,0.294823,0,1.01744,0.653595
|
||||
60.0857,1.01558,0.294823,0,1.01731,0.653595
|
||||
60.4304,1.01544,0.294823,0,1.01718,0.653595
|
||||
60.7752,1.0153,0.294823,0,1.01705,0.653595
|
||||
61.1199,1.01516,0.294823,0,1.01692,0.653595
|
||||
61.4647,1.01502,0.294823,0,1.01679,0.653595
|
||||
61.8094,1.01488,0.294823,0,1.01667,0.653595
|
||||
62.1541,1.01474,0.294823,0,1.01654,0.653595
|
||||
62.4989,1.0146,0.294823,0,1.01641,0.653595
|
||||
62.8436,1.01446,0.294823,0,1.01629,0.653595
|
||||
63.1884,1.01432,0.294823,0,1.01616,0.653595
|
||||
63.5331,1.01418,0.294823,0,1.01604,0.653595
|
||||
63.8778,1.01404,0.294823,0,1.01592,0.653595
|
||||
64.2226,1.0139,0.294823,0,1.01579,0.653595
|
||||
64.5673,1.01376,0.294823,0,1.01567,0.653595
|
||||
64.912,1.01362,0.294823,0,1.01555,0.653595
|
||||
65.2568,1.01348,0.294823,0,1.01543,0.653595
|
||||
65.6015,1.01334,0.294823,0,1.01531,0.653595
|
||||
65.9463,1.01321,0.294823,0,1.01519,0.653595
|
||||
66.291,1.01307,0.294823,0,1.01507,0.653595
|
||||
66.6357,1.01293,0.294823,0,1.01496,0.653595
|
||||
66.9805,1.01279,0.294823,0,1.01484,0.653595
|
||||
67.3252,1.01265,0.294823,0,1.01472,0.653595
|
||||
67.6699,1.01251,0.294823,0,1.01461,0.653595
|
||||
68.0147,1.01238,0.294823,0,1.01449,0.653595
|
||||
68.3594,1.01224,0.294823,0,1.01437,0.653595
|
||||
68.7042,1.0121,0.294823,0,1.01426,0.653595
|
||||
69.0489,1.01196,0.294823,0,1.01415,0.653595
|
||||
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -1 +0,0 @@
|
||||
7d534fb716ec6521f938
|
||||
Loading…
Reference in New Issue