alice-physics 2.2.0

Deterministic physics engine: 128-bit fixed-point rigid bodies with bit-exact, replayable results, typed observation and rollback for search and planning, plus FEM, CFD and 3D-print analysis modules
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
# Numerical-infrastructure coverage of ALICE-Physics, against an external reference frame.
#
# What this table is: every general-purpose numerical building block that the
# standard references expect (Saad, Iterative Methods for Sparse Linear Systems;
# Hairer-Norsett-Wanner / Hairer-Wanner, Solving ODEs I/II; Hairer-Lubich-Wanner,
# Geometric Numerical Integration; Knoll-Keyes, JFNK survey (J. Comput. Phys. 2004);
# PETSc KSP / PC / SNES / TS / EPS-like eigen solvers; SUNDIALS CVODE / ARKODE /
# IDA / KINSOL; MOOSE Executioner / MultiApp; preCICE coupling schemes), one
# [[item]] per capability, with what the crate has today. The axes and the items
# come from that frame, not from the modules that exist.
#
# Scope and boundary with the other tables:
#   * A row here is about a reusable component: an API that takes the caller's
#     operator, residual, right-hand side or sweep. The same formula embedded in
#     one field's module (the private conjugate gradients of the FEM modules, the
#     FEM Newton / Newton-Krylov / Newmark, the MAC-grid pressure multigrid and
#     its slab decomposition, the per-module Verlet / symplectic Euler steps) is
#     cited in `evidence` but not counted: such a row stays `missing` here and
#     the field's table owns the embedded use.
#   * Rows that sit next to a solid-FE row of docs/coverage/fem.toml name that
#     row's id (COV-FEM-NNN) in `evidence`. The FE row judges the capability for
#     solids; the row here judges the general component. No capability is
#     counted in both tables.
#   * Closed-form results (e.g. the 3x3 polar decomposition, the 3x3 symmetric
#     eigen-decomposition of an inertia tensor) are small dense kernels of the
#     math layer and are counted here.
#   * Transforms (FFT), Monte Carlo estimators, matrix functions (exp(A),
#     CRAM), tridiagonal / dense symmetric eigensolvers and block-structured
#     mesh refinement are general components counted here; the field tables
#     (acoustics, CFD, quantum, nuclear, plasma, relativity) keep their uses.
#     Only a general component a caller can hand its inputs to is counted;
#     a combination of existing parts (e.g. the deterministic random number
#     generator plus a running mean / variance) is cited in the evidence of a
#     missing row.
#
# Search notes: "fft" / "dft" match the deformation-gradient variable names in
# src/linear_elastic_fem/consistent_tangent.rs; "Fourier" matches the replay
# compression description of an external crate; "Pade" matches the tanh
# approximation in src/neural.rs; "bisection" matches scalar root finding
# (Kepler, wall friction velocity, height-field probe); "tridiagonal" matches
# the Thomas linear solve; "refine" matches the tetrahedral longest-edge
# bisection of the FE mesher; "eigen" matches the thermal eigenstrain of the
# FE solver. None of these is the capability of the row it was searched for.
#
# Mesh axis (second wave): mesh generation and geometry processing as general
# components, the rows that the FE, additive-manufacturing, fracture, soft-body,
# coupling and optimisation tables would share. Rows already counted elsewhere
# are cited, not repeated: SDF to tetrahedra COV-OPT-065, SDF to a collision
# surface COV-RIGID-070, quality under refinement COV-FEM-115, h-adaptivity
# COV-FEM-112, design morphing COV-OPT-066, fluid mesh motion COV-COUPLE-016,
# cloth remeshing COV-SOFT-078, remeshing along a crack COV-FRACT-031, interface
# surface extraction COV-MULTIPHASE-024, block-structured refinement COV-NUM-101,
# geometry import into the electromagnetic material map COV-EM-041.
#
# status (exactly one of):
#   implemented+oracle     a general component exists, and at least one
#                          non-ignored test checks it against an independent
#                          reference (closed form, f64 elimination, another
#                          solver, or a pinned bit pattern)
#   implemented-no-oracle  a general component exists, no such test
#   partial                a general component exists with a restriction that the
#                          source states; `limitation` quotes it, and the source
#                          carries a `LIMITATION(<id>)` comment at that place
#   missing                no general component (a field-embedded one may exist,
#                          see `evidence`)
#   out-of-scope           not applicable to this crate (reason in `evidence`)
#
# This axis is separate from the test ignore reasons (`known defect: ...`,
# `src gap: ...`, `diagnostic`, `runtime`). A capability that exists with a
# recorded defect keeps its status and cites the known-defect test in
# `evidence`.
#
# keys: id (COV-NUM-NNN) / axis / item / source (book, chapter, or
# reference-implementation feature; no quoted text) / status / evidence
# (`src/...rs::symbol`, `tests/...rs::test_fn`) / oracle_candidate / limitation
# (verbatim quote of the source, required for `partial`).
#
# Chapter numbers are given from the table of contents and are not checked
# against the original. Reference values marked "参照値要確認" are to be checked
# against the original publication before any test uses them. "(推測)" in
# `evidence` marks a judgement based on a search with synonyms that found
# nothing, not on reading every module.
#
# Checked by scripts/coverage_check.py (tests: scripts/test_coverage_check.py).

[[item]]
id = "COV-NUM-001"
axis = "linear_direct"
item = "small dense direct solve (3x3 inverse)"
source = "Golub-Van Loan, Matrix Computations ch.3; Mat3 closed-form inverse"
status = "implemented+oracle"
evidence = "src/math.rs::inverse (Mat3Fix::inverse、余因子の閉形式) / tests/audit_math.rs::mat3_inverse_closed_form_and_singular / tests/audit_math.rs::mat3_inverse_of_small_scale_matrix"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-002"
axis = "linear_direct"
item = "dense LU with partial pivoting (n x n)"
source = "Golub-Van Loan, Matrix Computations ch.3; PETSc PCLU; LAPACK getrf"
status = "missing"
evidence = "n x n の直接法は無い src/linear_solver.rs::DenseMatrix の DenseMatrix は作用素 (y = A x) のみで分解を持たない tests 側の gauss_f64 は f64 の参照解 (tests/analytic_linear_solver.rs::spd_cantilever_matches_private_cg_and_f64_elimination)"
oracle_candidate = "f64 消去法との突合、Hilbert 行列で pivot 成長の実測"
limitation = ""

[[item]]
id = "COV-NUM-003"
axis = "linear_direct"
item = "dense Cholesky / LDL^T"
source = "Golub-Van Loan, Matrix Computations ch.4; PETSc PCCHOLESKY"
status = "missing"
evidence = "密な Cholesky / LDL^T は無い"
oracle_candidate = "SPD 行列で L L^T = A を bit 近傍で再構成"
limitation = ""

[[item]]
id = "COV-NUM-004"
axis = "linear_direct"
item = "banded / tridiagonal solve (Thomas) as a general API"
source = "Golub-Van Loan, Matrix Computations ch.4.3"
status = "missing"
evidence = "汎用 API は無い src/transient_thermal.rs::thomas_solve_in_place の thomas_solve_in_place は 1D 熱伝導専用の private f32 関数"
oracle_candidate = "既知解の三重対角系 (離散 Poisson 1D) で閉形式解と一致"
limitation = ""

[[item]]
id = "COV-NUM-005"
axis = "linear_direct"
item = "sparse direct LU / Cholesky with fill-reducing ordering"
source = "Davis, Direct Methods for Sparse Linear Systems; PETSc PCLU / PCCHOLESKY with MatOrdering (ND / AMD)"
status = "missing"
evidence = "疎直接法は無い 固体向けは COV-FEM-069 (fem.toml)"
oracle_candidate = "2D Poisson 5 点で反復法の解と突合"
limitation = ""

[[item]]
id = "COV-NUM-006"
axis = "linear_direct"
item = "sparse matrix storage (CSR) and SpMV"
source = "Saad, Iterative Methods for Sparse Linear Systems ch.3; PETSc MATAIJ"
status = "missing"
evidence = "疎行列型は無い (作用素は matrix-free の src/linear_solver.rs::LinearOperator LinearOperator のみ) src/spatial.rs::SpatialGrid の CSR は近傍探索の index 配列で行列ではない 固体の全体行列は COV-FEM-071 (fem.toml)"
oracle_candidate = "CSR の SpMV を DenseMatrix の apply と bit 一致で突合"
limitation = ""

[[item]]
id = "COV-NUM-007"
axis = "linear_direct"
item = "QR / least squares (dense)"
source = "Golub-Van Loan, Matrix Computations ch.5; LAPACK geqrf"
status = "missing"
evidence = "QR 分解・最小二乗の汎用部品は無い (推測)"
oracle_candidate = "過剰決定系の正規方程式解と突合"
limitation = ""

[[item]]
id = "COV-NUM-008"
axis = "krylov"
item = "matrix-free operator interface (closure / dense adapter)"
source = "PETSc MatShell; Saad ch.6"
status = "implemented+oracle"
evidence = "src/linear_solver.rs::LinearOperator (LinearOperator) / src/linear_solver.rs::FnOperator (FnOperator) / tests/analytic_linear_solver.rs::closure_operator_and_absolute_tolerance"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-009"
axis = "krylov"
item = "conjugate gradient (general SPD operator)"
source = "Saad, Iterative Methods for Sparse Linear Systems ch.6.7; PETSc KSPCG"
status = "missing"
evidence = "汎用 CG は無い (src/linear_solver.rs の対象は GMRES と BiCGStab のみ、同 file 冒頭に FEM の private CG が 4 本あると記載) 固体の CG は COV-FEM-066 (fem.toml、src/linear_elastic_fem.rs::conjugate_gradient)"
oracle_candidate = "SPD 系で GMRES と同じ解、反復数が n 以下"
limitation = ""

[[item]]
id = "COV-NUM-010"
axis = "krylov"
item = "restarted GMRES(m)"
source = "Saad, Iterative Methods for Sparse Linear Systems ch.6.5; PETSc KSPGMRES"
status = "implemented+oracle"
evidence = "src/linear_solver/gmres.rs::gmres / tests/analytic_linear_solver.rs::gmres_terminates_within_n_on_dense_spd / tests/analytic_linear_solver.rs::gmres_restart_lengths_agree_and_residual_is_monotone 固体向けの非対称 Krylov は COV-FEM-070 (fem.toml)"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-011"
axis = "krylov"
item = "BiCGStab"
source = "Saad, Iterative Methods for Sparse Linear Systems ch.7.4; van der Vorst 1992; PETSc KSPBCGS"
status = "implemented+oracle"
evidence = "src/linear_solver/bicgstab.rs::bicgstab / tests/analytic_linear_solver.rs::advection_diffusion_matches_closed_form_across_peclet / tests/analytic_linear_solver.rs::bicgstab_breakdown_where_gmres_succeeds src/eulerian_grid.rs::project_pressure_bicgstab の BiCGStab は MAC 格子の Laplacian 専用で数えない"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-012"
axis = "krylov"
item = "MINRES / SYMMLQ (symmetric indefinite)"
source = "Saad ch.6.6; Paige-Saunders 1975; PETSc KSPMINRES"
status = "missing"
evidence = "無い 固体の不定値接線は CG の負曲率打ち切り (COV-FEM-065、fem.toml)"
oracle_candidate = "対称不定値 2x2 ブロック (鞍点系) で f64 消去法と突合"
limitation = ""

[[item]]
id = "COV-NUM-013"
axis = "krylov"
item = "flexible GMRES (variable preconditioner)"
source = "Saad, Iterative Methods for Sparse Linear Systems ch.9.4; PETSc KSPFGMRES"
status = "missing"
evidence = "FGMRES は無い"
oracle_candidate = "内側に反復法を持つ前処理で GMRES が破綻し FGMRES が収束する系"
limitation = ""

[[item]]
id = "COV-NUM-014"
axis = "krylov"
item = "TFQMR / QMR / IDR(s)"
source = "Saad ch.7.3-7.4; PETSc KSPTFQMR / KSPQMRCGS"
status = "missing"
evidence = "無い"
oracle_candidate = "移流拡散 (Pe 大) で GMRES と同じ解"
limitation = ""

[[item]]
id = "COV-NUM-015"
axis = "krylov"
item = "least-squares Krylov (CGLS / LSQR)"
source = "Saad ch.8; Paige-Saunders 1982; PETSc KSPLSQR"
status = "missing"
evidence = "無い"
oracle_candidate = "過剰決定系で正規方程式の解と突合"
limitation = ""

[[item]]
id = "COV-NUM-016"
axis = "krylov"
item = "stopping on the true residual, with not-converged / stagnated / breakdown verdicts"
source = "Saad ch.6; PETSc KSPConvergedReason"
status = "implemented+oracle"
evidence = "src/linear_solver.rs::LinearSolverError (LinearSolverError) / tests/analytic_linear_solver.rs::inconsistent_singular_system_is_not_reported_as_solved / tests/analytic_linear_solver.rs::small_budget_is_not_converged / tests/analytic_linear_solver.rs::restarted_gmres_on_a_rotation_stagnates / tests/analytic_linear_solver.rs::zero_operator_is_a_breakdown"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-017"
axis = "krylov"
item = "nonzero initial guess (warm start)"
source = "PETSc KSPSetInitialGuessNonzero"
status = "partial"
evidence = "src/linear_solver.rs 初期値は常にゼロ (時間積分や Newton の連続した解で前回解から始められない) tests のみでは測れない: 非ゼロの初期値を受け取る API が存在しない (grep 'initial_guess' の実体ヒットは 0、この limitation の doc comment 自身のみ、2026-10-08 確認)"
oracle_candidate = ""
limitation = "src/linear_solver.rs 'The initial guess is always zero.'"

[[item]]
id = "COV-NUM-018"
axis = "stationary"
item = "Jacobi / Gauss-Seidel / SOR / SSOR as general solvers"
source = "Saad, Iterative Methods for Sparse Linear Systems ch.4; PETSc KSPRICHARDSON + PCSOR"
status = "missing"
evidence = "汎用の定常反復は無い src/eulerian_grid.rs::project_pressure_jacobi (Jacobi) / src/eulerian_grid.rs::project_pressure_red_black_gs (赤黒 Gauss-Seidel) は MAC 格子の圧力専用 (pub(crate))"
oracle_candidate = "1D Poisson で反復行列のスペクトル半径の閉形式 cos(pi h) と収束率を突合"
limitation = ""

[[item]]
id = "COV-NUM-019"
axis = "preconditioner"
item = "Jacobi (diagonal)"
source = "Saad ch.10.2; PETSc PCJACOBI"
status = "implemented+oracle"
evidence = "src/linear_solver/precond.rs::JacobiPreconditioner / tests/analytic_linear_solver.rs::jacobi_reduces_iterations_on_a_badly_scaled_diagonal 固体の Jacobi は COV-FEM-067 (fem.toml)"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-020"
axis = "preconditioner"
item = "block Jacobi"
source = "Saad ch.12; PETSc PCBJACOBI"
status = "implemented+oracle"
evidence = "src/linear_solver/precond.rs::BlockJacobiPreconditioner / tests/analytic_linear_solver.rs::block_jacobi_solves_a_block_diagonal_matrix_in_one_iteration"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-021"
axis = "preconditioner"
item = "left / right / split preconditioning"
source = "Saad, Iterative Methods for Sparse Linear Systems ch.9.3; PETSc KSPSetPCSide"
status = "partial"
evidence = "src/linear_solver.rs 右前処理のみ (左前処理の残差ノルムでの停止は選べない)"
oracle_candidate = "左右で解が一致し、右前処理では真の残差で停止することを確認"
limitation = "src/linear_solver.rs 'applied on the **right**'"

[[item]]
id = "COV-NUM-022"
axis = "preconditioner"
item = "SSOR / Gauss-Seidel preconditioner"
source = "Saad ch.10.2; PETSc PCSOR"
status = "missing"
evidence = "無い"
oracle_candidate = "1D Poisson で反復数が Jacobi より減る"
limitation = ""

[[item]]
id = "COV-NUM-023"
axis = "preconditioner"
item = "incomplete LU (ILU(0) / ILUT)"
source = "Saad, Iterative Methods for Sparse Linear Systems ch.10.3-10.4; PETSc PCILU"
status = "missing"
evidence = "無い (疎行列型が無いので前提も無い COV-NUM-006)"
oracle_candidate = "ILU(0) が 5 点 Laplacian で厳密な LU と非零パターン上で一致"
limitation = ""

[[item]]
id = "COV-NUM-024"
axis = "preconditioner"
item = "incomplete Cholesky (IC(0))"
source = "Saad ch.10.3; PETSc PCICC"
status = "missing"
evidence = "無い 固体向けは COV-FEM-068 (fem.toml)"
oracle_candidate = "SPD 系で CG の反復数が減り解は同じ"
limitation = ""

[[item]]
id = "COV-NUM-025"
axis = "preconditioner"
item = "geometric multigrid (V / W / F cycle) as a general component"
source = "Briggs-Henson-McCormick, A Multigrid Tutorial; Trottenberg-Oosterlee-Schuller, Multigrid; Saad ch.13; PETSc PCMG"
status = "missing"
evidence = "汎用の multigrid は無い src/eulerian_grid.rs::project_pressure_multigrid (project_pressure_multigrid) は MAC 格子の圧力 Poisson 専用で、収束率の格子非依存は tests/analytic_multigrid.rs::contraction_rate_is_grid_independent が CFD 側で確認 固体の multigrid 前処理は COV-FEM-068 (fem.toml)"
oracle_candidate = "Poisson で収束率が h に依存しない (参照値要確認)"
limitation = ""

[[item]]
id = "COV-NUM-026"
axis = "preconditioner"
item = "algebraic multigrid (AMG)"
source = "Ruge-Stuben 1987; Vanek-Mandel-Brezina (smoothed aggregation); PETSc PCGAMG; hypre BoomerAMG"
status = "missing"
evidence = "無い"
oracle_candidate = "非構造 Laplacian で反復数が問題サイズに依存しない"
limitation = ""

[[item]]
id = "COV-NUM-027"
axis = "preconditioner"
item = "additive Schwarz / domain-decomposition preconditioner"
source = "Smith-Bjorstad-Gropp, Domain Decomposition; Saad ch.14; PETSc PCASM"
status = "missing"
evidence = "無い"
oracle_candidate = "重なり幅を増やすと反復数が減る"
limitation = ""

[[item]]
id = "COV-NUM-028"
axis = "preconditioner"
item = "field-split / Schur-complement block preconditioner"
source = "Benzi-Golub-Liesen 2005 (saddle point); PETSc PCFIELDSPLIT"
status = "missing"
evidence = "無い src/linear_solver/equilibrate.rs::BlockEquilibration の BlockEquilibration はブロックごとのスケーリングで、ブロック前処理ではない"
oracle_candidate = "鞍点系で厳密 Schur 補元の前処理なら GMRES が 3 反復以内 (Murphy-Golub-Wathen)"
limitation = ""

[[item]]
id = "COV-NUM-029"
axis = "nonlinear"
item = "Newton's method with a caller-supplied residual and Jacobian"
source = "Kelley, Solving Nonlinear Equations with Newton's Method; PETSc SNESNEWTONLS; SUNDIALS KINSOL"
status = "missing"
evidence = "汎用 Newton は無い 固体の Newton は COV-FEM-052 (fem.toml、src/linear_elastic_fem/consistent_tangent.rs::newton_step) src/kepler.rs::solve_kepler の Kepler 方程式の Newton はスカラー専用"
oracle_candidate = "Rosenbrock 関数・Bratu 問題で 2 次収束 (参照値要確認)"
limitation = ""

[[item]]
id = "COV-NUM-030"
axis = "nonlinear"
item = "line search (backtracking with Armijo / Wolfe conditions)"
source = "Nocedal-Wright, Numerical Optimization ch.3; PETSc SNESLineSearch (BT / CP / L2)"
status = "missing"
evidence = "汎用の line search は無い 固体の backtrack は COV-FEM-056 (fem.toml)"
oracle_candidate = "Newton が発散する初期値 (arctan) で line search 付きが収束"
limitation = ""

[[item]]
id = "COV-NUM-031"
axis = "nonlinear"
item = "trust region (dogleg / Levenberg-Marquardt)"
source = "Nocedal-Wright ch.4; Conn-Gould-Toint, Trust-Region Methods; PETSc SNESNEWTONTR"
status = "missing"
evidence = "無い"
oracle_candidate = "Rosenbrock 関数で信頼領域半径の更新規則が教科書どおり"
limitation = ""

[[item]]
id = "COV-NUM-032"
axis = "nonlinear"
item = "inexact Newton with adaptive forcing (Eisenstat-Walker)"
source = "Eisenstat-Walker 1996; Knoll-Keyes 2004; PETSc SNESKSPSetUseEW"
status = "missing"
evidence = "汎用部品は無い 固体の inexact Newton / Newton-Krylov は COV-FEM-054 (fem.toml、src/linear_elastic_fem/consistent_tangent.rs::newton_krylov_step) 適応 forcing term は src 全体で 0 件 (推測)"
oracle_candidate = "forcing を緩めても解が変わらず線形反復の合計が減る"
limitation = ""

[[item]]
id = "COV-NUM-033"
axis = "nonlinear"
item = "Jacobian-free Newton-Krylov (finite-difference J v)"
source = "Knoll-Keyes, J. Comput. Phys. 193 (2004); PETSc MatMFFD + SNES; MOOSE PJFNK"
status = "missing"
evidence = "汎用 JFNK は無い (GMRES は src/linear_solver.rs::FnOperator の FnOperator で作用素を受け取れるが、差分 J v と Newton の外側は無い) 固体は COV-FEM-054 (fem.toml)"
oracle_candidate = "解析 Jacobian の Newton と同じ解、差分幅の選び方で反復数が変わらない範囲を測る"
limitation = ""

[[item]]
id = "COV-NUM-034"
axis = "nonlinear"
item = "quasi-Newton (Broyden / BFGS)"
source = "Nocedal-Wright ch.6; Dennis-Schnabel; PETSc SNESQN"
status = "missing"
evidence = "無い 固体の BFGS は COV-FEM-055 (fem.toml)"
oracle_candidate = "線形系で Broyden が n+1 反復以内に厳密解 (Gay の定理、参照値要確認)"
limitation = ""

[[item]]
id = "COV-NUM-035"
axis = "nonlinear"
item = "Anderson acceleration of a fixed-point map"
source = "Walker-Ni 2011; PETSc SNESANDERSON; SUNDIALS KINSOL fixed point"
status = "missing"
evidence = "無い"
oracle_candidate = "線形の不動点写像で GMRES と同値になる (Walker-Ni)"
limitation = ""

[[item]]
id = "COV-NUM-036"
axis = "nonlinear"
item = "continuation / pseudo-transient continuation"
source = "Kelley-Keyes 1998 (Psi-tc); Allgower-Georg, Numerical Continuation Methods; PETSc SNESNEWTONLS + TSPSEUDO"
status = "missing"
evidence = "無い 固体の弧長法は COV-FEM-059 (fem.toml)"
oracle_candidate = "折り返し点を持つスカラー方程式で解曲線を追跡"
limitation = ""

[[item]]
id = "COV-NUM-037"
axis = "nonlinear"
item = "bracketed scalar root finding (bisection / Brent) as a general API"
source = "Brent, Algorithms for Minimization without Derivatives; Press et al., Numerical Recipes ch.9"
status = "missing"
evidence = "汎用 API は無い 二分法は src/kepler.rs::solve_kepler (Kepler 方程式) と src/turbulence.rs::FRICTION_VELOCITY_BISECTIONS (摩擦速度) に分野内で埋め込み"
oracle_candidate = "単根を持つ多項式で反復数が log2(幅/許容) と一致"
limitation = ""

[[item]]
id = "COV-NUM-038"
axis = "eigen"
item = "3x3 symmetric eigen-decomposition (cyclic Jacobi)"
source = "Golub-Van Loan, Matrix Computations ch.8.5"
status = "implemented+oracle"
evidence = "src/mass_properties.rs::principal_axes (principal_axes) / tests/analytic_compound.rs::the_principal_axes_diagonalise_a_symmetric_tensor"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-039"
axis = "eigen"
item = "3x3 polar decomposition"
source = "Higham, Functions of Matrices ch.8"
status = "implemented+oracle"
evidence = "src/math.rs::polar_rotation (polar_rotation) / tests/audit_math.rs::polar_rotation_closed_forms_and_error_variants / tests/audit_math.rs::polar_rotation_result_is_orthogonal_to_a_few_ulp"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-040"
axis = "eigen"
item = "power iteration / inverse iteration with shift"
source = "Saad, Numerical Methods for Large Eigenvalue Problems ch.4; Golub-Van Loan ch.7.3"
status = "missing"
evidence = "汎用部品は無い tests/analytic_thermoplastic_coupling.rs::the_monolithic_entry_condition_is_three_decades_away_at_real_heat_capacities の冪乗法は test 内の局所実装"
oracle_candidate = "対角行列・既知固有値の 3 重対角行列で支配固有値と一致"
limitation = ""

[[item]]
id = "COV-NUM-041"
axis = "eigen"
item = "Lanczos / Arnoldi (implicitly restarted) for large sparse problems"
source = "Saad, Numerical Methods for Large Eigenvalue Problems ch.6; ARPACK; SLEPc EPSKRYLOVSCHUR"
status = "missing"
evidence = "無い (src/linear_solver/gmres.rs の Arnoldi は線形方程式用で固有値を返さない)"
oracle_candidate = "1D Laplacian の最小固有値 4 sin^2(pi h/2)/h^2 と突合"
limitation = ""

[[item]]
id = "COV-NUM-042"
axis = "eigen"
item = "generalized symmetric eigenproblem K x = lambda M x"
source = "Bathe, Finite Element Procedures ch.11; SLEPc EPS (GHEP)"
status = "missing"
evidence = "汎用部品は無い FE モード解析は COV-FEM-083 (fem.toml)"
oracle_candidate = "2 自由度ばね質点の閉形式固有振動数"
limitation = ""

[[item]]
id = "COV-NUM-043"
axis = "eigen"
item = "LOBPCG / subspace iteration"
source = "Knyazev 2001; Bathe ch.11.6; SLEPc EPSLOBPCG"
status = "missing"
evidence = "無い"
oracle_candidate = "1D Laplacian の下位 k 個の固有値"
limitation = ""

[[item]]
id = "COV-NUM-044"
axis = "eigen"
item = "dense nonsymmetric eigenvalues (QR algorithm) / SVD"
source = "Golub-Van Loan ch.7-8; LAPACK geev / gesvd"
status = "missing"
evidence = "無い"
oracle_candidate = "回転行列の固有値 exp(±i theta)"
limitation = ""

[[item]]
id = "COV-NUM-045"
axis = "time_integration"
item = "general ODE integrator interface (caller-supplied right-hand side)"
source = "SUNDIALS CVODE / ARKODE; PETSc TS"
status = "missing"
evidence = "汎用の時間積分 API は無い 各 module が固有の公式を埋め込む (例 src/nbody.rs::VelocityVerlet / src/molecular_dynamics.rs::VelocityVerlet の Velocity Verlet、src/sdf_sph.rs::step の symplectic Euler、src/transient_thermal.rs::crank_nicolson_step_1d の Crank-Nicolson)"
oracle_candidate = "y' = lambda y で各公式の安定関数と 1 step 一致"
limitation = ""

[[item]]
id = "COV-NUM-046"
axis = "time_integration"
item = "explicit / symplectic (semi-implicit) Euler"
source = "Hairer-Lubich-Wanner, Geometric Numerical Integration ch.I; PETSc TSEULER"
status = "missing"
evidence = "汎用部品は無い (分野内の埋め込みのみ src/sdf_sph.rs::step、剛体 world も同じ形) (推測: 汎用化の 1 番目の候補)"
oracle_candidate = "調和振動子で 1 次の大域誤差と有界なエネルギー誤差"
limitation = ""

[[item]]
id = "COV-NUM-047"
axis = "time_integration"
item = "velocity Verlet / leapfrog"
source = "Hairer-Lubich-Wanner, Geometric Numerical Integration ch.I.3; PETSc TSBASICSYMPLECTIC"
status = "missing"
evidence = "汎用部品は無い src/nbody.rs::VelocityVerlet と src/molecular_dynamics.rs::VelocityVerlet に別型の VelocityVerlet がそれぞれ分野専用で存在"
oracle_candidate = "調和振動子で 2 次の大域誤差、時間反転で初期値に戻る"
limitation = ""

[[item]]
id = "COV-NUM-048"
axis = "time_integration"
item = "higher-order symplectic composition (Yoshida / Forest-Ruth)"
source = "Yoshida 1990; Hairer-Lubich-Wanner ch.II.4"
status = "missing"
evidence = "無い"
oracle_candidate = "Kepler 問題で 4 次の大域誤差"
limitation = ""

[[item]]
id = "COV-NUM-049"
axis = "time_integration"
item = "explicit Runge-Kutta (RK4)"
source = "Hairer-Norsett-Wanner, Solving ODEs I ch.II.1; PETSc TSRK"
status = "missing"
evidence = "無い src/aeroelasticity.rs は f64 RK4 を参照解に使うと記載するが src に汎用 RK4 は無い"
oracle_candidate = "y' = y で 4 次の大域誤差"
limitation = ""

[[item]]
id = "COV-NUM-050"
axis = "time_integration"
item = "embedded Runge-Kutta with adaptive step control (Dormand-Prince 5(4))"
source = "Hairer-Norsett-Wanner, Solving ODEs I ch.II.4-II.5; SUNDIALS ARKODE ERK; PETSc TSRK + TSAdapt"
status = "missing"
evidence = "無い"
oracle_candidate = "Arenstorf 軌道で許容誤差と大域誤差の比例 (参照値要確認)"
limitation = ""

[[item]]
id = "COV-NUM-051"
axis = "time_integration"
item = "implicit Euler / BDF (variable order)"
source = "Hairer-Wanner, Solving ODEs II ch.III / ch.V; SUNDIALS CVODE BDF; PETSc TSBDF"
status = "missing"
evidence = "汎用の陰的積分は無い (陰解法は分野内のみ、例 src/transient_thermal.rs::crank_nicolson_step_1d)"
oracle_candidate = "Robertson 問題 (硬い 3 成分) で参照解と突合 (参照値要確認)"
limitation = ""

[[item]]
id = "COV-NUM-052"
axis = "time_integration"
item = "trapezoidal / theta method"
source = "Hairer-Wanner, Solving ODEs II; PETSc TSTHETA / TSCN"
status = "missing"
evidence = "汎用部品は無い src/transient_thermal.rs::crank_nicolson_step_1d の Crank-Nicolson は 1D 熱伝導専用"
oracle_candidate = "y' = lambda y の安定関数 (1+z/2)/(1-z/2)"
limitation = ""

[[item]]
id = "COV-NUM-053"
axis = "time_integration"
item = "second-order systems: Newmark / HHT-alpha / generalized-alpha as a general integrator"
source = "Chung-Hulbert 1993; Hilber-Hughes-Taylor 1977; PETSc TSALPHA2"
status = "missing"
evidence = "汎用部品は無い 固体の Newmark / HHT / generalized-alpha は COV-FEM-072 / 073 / 074 / 075 (fem.toml)"
oracle_candidate = "1 自由度振動子で数値減衰率の閉形式と突合"
limitation = ""

[[item]]
id = "COV-NUM-054"
axis = "time_integration"
item = "Rosenbrock / linearly implicit methods"
source = "Hairer-Wanner, Solving ODEs II ch.IV.7; PETSc TSROSW"
status = "missing"
evidence = "無い"
oracle_candidate = "van der Pol (mu 大) で参照解と突合 (参照値要確認)"
limitation = ""

[[item]]
id = "COV-NUM-055"
axis = "time_integration"
item = "IMEX additive Runge-Kutta"
source = "Ascher-Ruuth-Spiteri 1997; Kennedy-Carpenter 2003; SUNDIALS ARKODE ARK; PETSc TSARKIMEX"
status = "missing"
evidence = "無い"
oracle_candidate = "移流 (陽) + 拡散 (陰) の 1D で次数を確認"
limitation = ""

[[item]]
id = "COV-NUM-056"
axis = "time_integration"
item = "operator splitting (Lie / Strang) as a general component"
source = "Hairer-Lubich-Wanner ch.II.5; McLachlan-Quispel 2002"
status = "missing"
evidence = "汎用部品は無い (各 module の step が分野内で分割を固定) (推測)"
oracle_candidate = "可換でない 2 線形作用素で Lie 1 次 / Strang 2 次の誤差"
limitation = ""

[[item]]
id = "COV-NUM-057"
axis = "time_integration"
item = "multirate / subcycling"
source = "Gear-Wells 1984; SUNDIALS ARKODE MRIStep"
status = "missing"
evidence = "無い (推測)"
oracle_candidate = "速い成分と遅い成分の線形 2 自由度で閉形式解と突合"
limitation = ""

[[item]]
id = "COV-NUM-058"
axis = "time_integration"
item = "DAE (index 1) / constraint projection"
source = "Hairer-Wanner, Solving ODEs II ch.VI-VII; SUNDIALS IDA"
status = "missing"
evidence = "汎用部品は無い (剛体の拘束は位置補正で解く別系統)"
oracle_candidate = "振り子の Cartesian 定式化で拘束ドリフトが許容内"
limitation = ""

[[item]]
id = "COV-NUM-059"
axis = "coupling"
item = "partitioned (staggered) sub-iteration driver with convergence monitoring"
source = "Felippa-Park-Farhat 2001; MOOSE MultiApp fixed-point iterations; preCICE implicit coupling"
status = "implemented+oracle"
evidence = "src/coupled_iteration.rs::run_sub_iteration (run_sub_iteration) / src/coupled_iteration.rs::ContractionMonitor (ContractionMonitor) / tests/audit_coupled_iteration.rs::run_sub_iteration_passes_zero_based_sweep_indices_and_reports_the_final_state / tests/analytic_added_mass_coupling.rs::the_contraction_ratio_matches_the_closed_form"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-060"
axis = "coupling"
item = "divergence and silent-wrap detection of a coupled iteration"
source = "Causin-Gerbeau-Nobile 2005 (added-mass instability); Fix128 wrap behaviour of this crate"
status = "implemented+oracle"
evidence = "src/coupled_iteration.rs::residual_norm_l2_checked (residual_norm_l2_checked) / tests/audit_coupled_iteration.rs::doubling_residuals_are_diverging_at_the_fourth_sweep / tests/audit_coupled_iteration.rs::two_separate_overshoots_are_not_a_wrap / tests/analytic_added_mass_coupling.rs::a_diverging_iteration_reports_a_zero_l2_residual"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-061"
axis = "coupling"
item = "constant under-relaxation in the general driver"
source = "Kuttler-Wall 2008; MOOSE relaxation_factor; preCICE constant relaxation"
status = "missing"
evidence = "汎用 driver (src/coupled_iteration.rs::run_sub_iteration) は sweep を呼び手に任せ緩和を持たない 定数緩和は熱塑性連成に分野内で実装 (src/linear_elastic_fem.rs::ThermoplasticCoupling、tests/analytic_thermoplastic_coupling.rs::the_fixed_point_does_not_depend_on_the_relaxation)"
oracle_candidate = "added-mass ピストンで最適定数緩和 omega* = m/(m+m_f) が 1 sweep で収束 (閉形式)"
limitation = ""

[[item]]
id = "COV-NUM-062"
axis = "coupling"
item = "Aitken dynamic relaxation"
source = "Irons-Tuck 1969; Kuttler-Wall 2008; MOOSE secant / Steffensen; preCICE aitken"
status = "missing"
evidence = "src には無い tests/fix128_vs_f64_coupling_hypotheses.rs::aitken_reaches_the_unstable_upper_branch_under_fix128_too の Aitken は test 内の局所実装"
oracle_candidate = "2 自由度の分離反復で Aitken が定数緩和より少ない sweep で同じ不動点 (参照値要確認)"
limitation = ""

[[item]]
id = "COV-NUM-063"
axis = "coupling"
item = "interface quasi-Newton (IQN-ILS)"
source = "Degroote-Bathe-Vierendeels 2009; preCICE IQN-ILS"
status = "missing"
evidence = "無い"
oracle_candidate = "線形 2 場で n 反復以内に収束"
limitation = ""

[[item]]
id = "COV-NUM-064"
axis = "coupling"
item = "monolithic coupled Newton (block Jacobian)"
source = "Keyes et al., Multiphysics simulations (IJHPCA 2013); MOOSE single-app fully coupled"
status = "missing"
evidence = "無い src/coupled_iteration.rs 以降に入口条件と見送りの判断 (Krylov は src/linear_solver.rs で用意済、ブロック等化は src/linear_solver/equilibrate.rs::solve_equilibrated)"
oracle_candidate = "分離反復を収束させた解と同じ不動点"
limitation = ""

[[item]]
id = "COV-NUM-065"
axis = "coupling"
item = "field transfer between discretisations (sample / splat, conservative)"
source = "Farhat-Lesoinne-LeTallec 1998 (conservative load transfer); preCICE mapping"
status = "implemented+oracle"
evidence = "src/coupled_field.rs::sample (sample) / src/coupled_field.rs::splat (splat) / tests/analytic_coupled_field.rs::splat_is_the_adjoint_of_sample / tests/analytic_coupled_field.rs::splat_conserves_the_total_within_the_derived_rounding_bound"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-066"
axis = "distributed"
item = "domain decomposition with halo exchange as a general component"
source = "Smith-Bjorstad-Gropp, Domain Decomposition; PETSc DMDA + VecScatter"
status = "missing"
evidence = "汎用部品は無い z slab 分割と halo 交換は MAC 格子の圧力専用 (src/eulerian_grid.rs::RankTransport RankTransport、pub(crate))"
oracle_candidate = "1D Poisson の Jacobi 反復を 1/2/4 分割で bit 一致"
limitation = ""

[[item]]
id = "COV-NUM-067"
axis = "distributed"
item = "deterministic global reduction (all-reduce) API"
source = "MPI_Allreduce; Demmel-Nguyen 2013 (reproducible summation)"
status = "missing"
evidence = "汎用 API は無い Fix128 の加算が順序非依存である性質は COV-NUM-074 で確認済 分割数を変えた bit 一致は CFD の圧力でのみ (tests/analytic_pressure_solvers.rs::the_decomposed_multigrid_reproduces_multigrid_to_the_bit_for_every_rank_count)"
oracle_candidate = "rank 数・到着順を変えた総和が bit 一致"
limitation = ""

[[item]]
id = "COV-NUM-068"
axis = "distributed"
item = "distributed Krylov (global inner products across ranks)"
source = "Saad ch.11-12; PETSc KSP on MPI vectors"
status = "missing"
evidence = "無い (src/linear_solver.rs の Krylov は単一アドレス空間)"
oracle_candidate = "分割数を変えた GMRES の解が bit 一致"
limitation = ""

[[item]]
id = "COV-NUM-069"
axis = "distributed"
item = "multi-process / MPI transport backend"
source = "MPI-3.1 standard; PETSc PetscSF"
status = "missing"
evidence = "src には無い src/eulerian_grid.rs::RankTransport の doc に MPI backend は feature で後から入る予定と記載 (CFD 圧力専用)"
oracle_candidate = "loopback の 2 プロセスで単一プロセス解と bit 一致"
limitation = ""

[[item]]
id = "COV-NUM-070"
axis = "distributed"
item = "shared-memory parallel kernels with a deterministic result"
source = "OpenMP / rayon; PETSc with threads"
status = "missing"
evidence = "汎用 solver の並列化は無い (src/linear_solver.rs は逐次) (推測)"
oracle_candidate = "スレッド数を変えて bit 一致"
limitation = ""

[[item]]
id = "COV-NUM-071"
axis = "distributed"
item = "load balancing / repartitioning"
source = "Karypis-Kumar (METIS / ParMETIS); Zoltan"
status = "missing"
evidence = "無い"
oracle_candidate = "不均一な負荷で各 rank の作業量の最大 / 平均を測る"
limitation = ""

[[item]]
id = "COV-NUM-072"
axis = "representation"
item = "Q64.64 fixed-point scalar with bit-exact arithmetic"
source = "Yates, Fixed-Point Arithmetic; IEEE 754 is deliberately not used"
status = "implemented+oracle"
evidence = "src/math.rs::Fix128 (Fix128) / tests/audit_math.rs::mul_matches_256_bit_reference / tests/audit_math.rs::div_matches_192_bit_reference_and_truncates_toward_zero / tests/audit_math.rs::add_sub_neg_match_i128_wrapping_arithmetic"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-073"
axis = "representation"
item = "bit-identical results across platforms (pinned hashes)"
source = "Reproducible numerics (Demmel-Nguyen); deterministic lockstep simulation"
status = "implemented+oracle"
evidence = "tests/determinism_golden.rs::determinism_freefall / tests/determinism_golden.rs::determinism_fluid_step / tests/determinism_golden.rs::determinism_cascade"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-074"
axis = "representation"
item = "order-independent summation (bit-identical under permutation)"
source = "Demmel-Nguyen 2013; Kahan summation as the floating-point counterpart"
status = "implemented+oracle"
evidence = "tests/analytic_linear_solver.rs::fix128_sum_of_products_is_order_independent / tests/analytic_linear_solver.rs::bit_identical_and_permutation_equivariant"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-075"
axis = "representation"
item = "compensated (Kahan) summation"
source = "Higham, Accuracy and Stability of Numerical Algorithms ch.4"
status = "out-of-scope"
evidence = "Fix128 の加算は整数加算で丸めが無いので補償する誤差が無い (COV-NUM-074)"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-076"
axis = "representation"
item = "overflow detection in multiplication"
source = "Higham ch.2; checked arithmetic"
status = "partial"
evidence = "src/math.rs::checked_mul (checked_mul、明示的に呼んだ経路のみ) / tests/audit_math.rs::checked_mul_is_sound / tests/audit_math.rs::checked_mul_basic_range_boundaries / known defect: tests/audit_math.rs::checked_mul_is_complete 既定の * は巻き戻る (src/math.rs::sub)"
oracle_candidate = "範囲外の積で None、範囲内の積で Some"
limitation = "src/math.rs 'There is no saturation and no panic, in debug builds too'"

[[item]]
id = "COV-NUM-077"
axis = "representation"
item = "scaled inner products and norms (power-of-two rescaling per vector)"
source = "Higham ch.3; LAPACK dnrm2 scaling"
status = "partial"
evidence = "src/linear_solver.rs ベクトルごとの 2 冪スケーリング、1 本のベクトル内で 2^32 倍小さい成分は救えない (ブロック等化 COV-NUM-079 で補う) / tests/analytic_linear_solver.rs::pla_block_ratio_needs_equilibration"
oracle_candidate = "大小 2 ブロックの内積で小ブロックの寄与が残る"
limitation = "src/linear_solver.rs 'it cannot rescue entries of one vector that are `2³²` times smaller than that vector's largest entry'"

[[item]]
id = "COV-NUM-078"
axis = "representation"
item = "silent-truncation guard for squared norms (L2 checked / L-infinity norm)"
source = "this crate's Fix128 product floor 2^-64"
status = "implemented+oracle"
evidence = "src/coupled_iteration.rs::residual_norm_l2_checked / tests/audit_coupled_iteration.rs::l2_refuses_every_component_whose_square_leaves_the_representable_range / tests/audit_coupled_iteration.rs::l2_floor_is_exactly_the_square_root_of_one_ulp"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-079"
axis = "representation"
item = "block equilibration of multi-field systems (power-of-two factors)"
source = "Bunch 1971 (equilibration); Higham ch.7; PETSc MatDiagonalScale"
status = "implemented+oracle"
evidence = "src/linear_solver/equilibrate.rs::BlockEquilibration / src/linear_solver/equilibrate.rs::solve_equilibrated / tests/analytic_linear_solver.rs::pla_block_ratio_needs_equilibration / tests/analytic_linear_solver.rs::unscaled_floor_check_matches_the_material_table / known defect: tests/audit_coupled_iteration.rs::covering_scales_only_down_and_leaves_a_magnitude_of_one_or_less_alone"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-080"
axis = "representation"
item = "ill-conditioned systems (condition number above 2^40)"
source = "Higham ch.7; iterative refinement (Wilkinson)"
status = "partial"
evidence = "src/linear_solver.rs 条件数が 2^40 を超える系は解かずに breakdown として返す / tests/analytic_linear_solver.rs::rounded_rank_deficient_matrices_break_down_at_the_second_step / tests/analytic_hilbert_breakdown_boundary.rs (Hilbert 行列 n=9 vs n=10 境界、published cond(H_n) 突合、n=9 は closed form 誤差域で解き n=10 は known defect として ignore で pin) known defect: 既存 test は rank-deficient な系の breakdown のみ確認、単に ill-conditioned (非特異) な Hilbert 系では n=10 (cond~1.6e13 > 2^40) で gmres が Err(Breakdown) でなく Ok を返す (誤差 1.31 自体は cond(H_10)*tol≈14.6 の範囲内で収束としては正当、欠陥は breakdown 分類が付かない点のみ) (hilbert_ten_is_past_the_breakdown_threshold_and_should_report_breakdown、#[ignore] で pin)"
oracle_candidate = ""
limitation = "src/linear_solver.rs 'a system whose condition number exceeds about `2⁴⁰` is reported as breakdown rather than solved to digits the representation does not hold.'"

[[item]]
id = "COV-NUM-081"
axis = "representation"
item = "iterative refinement / mixed precision"
source = "Wilkinson; Carson-Higham 2018; PETSc KSPPREONLY + refinement"
status = "missing"
evidence = "無い"
oracle_candidate = "条件数 2^30 程度の系で残差補正 1 回ごとに桁が伸びる"
limitation = ""

[[item]]
id = "COV-NUM-082"
axis = "representation"
item = "f64 <-> Fix128 conversion"
source = "IEEE 754 binary64"
status = "implemented+oracle"
evidence = "src/math.rs::Fix128 / tests/audit_math.rs::f64_and_f32_conversions / known defect: tests/audit_math.rs::from_f64_non_finite_and_out_of_range_are_not_silently_plausible / known defect: tests/audit_math.rs::to_f64_is_relatively_accurate_for_small_negative_values"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-083"
axis = "representation"
item = "elementary functions (sqrt / exp / ln / sin / cos / atan2)"
source = "Muller, Elementary Functions"
status = "implemented+oracle"
evidence = "src/math.rs::sqrt (sqrt) / tests/audit_math.rs::sqrt_is_exact_floor / tests/audit_math.rs::exp_ln_powf_accuracy_claims / tests/audit_math.rs::sin_cos_accuracy_over_the_reduced_range_and_identities / known defect: tests/audit_math.rs::exp_is_accurate_up_to_the_representable_maximum"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-084"
axis = "benchmark"
item = "advection-diffusion non-symmetric system across Peclet numbers"
source = "Saad ch.6 / ch.7 model problems; Elman-Silvester-Wathen ch.6"
status = "implemented+oracle"
evidence = "tests/analytic_linear_solver.rs::advection_diffusion_matches_closed_form_across_peclet"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-085"
axis = "benchmark"
item = "Krylov solution cross-checked against an independent solver (SPD cantilever)"
source = "PETSc -ksp_type comparison practice"
status = "implemented+oracle"
evidence = "tests/analytic_linear_solver.rs::spd_cantilever_matches_private_cg_and_f64_elimination"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-086"
axis = "benchmark"
item = "Poisson multigrid convergence factor independent of h (general component)"
source = "Briggs-Henson-McCormick ch.4; Trottenberg et al."
status = "missing"
evidence = "汎用 multigrid が無い (COV-NUM-025) CFD の圧力では tests/analytic_multigrid.rs::contraction_rate_is_grid_independent"
oracle_candidate = "既存の CFD 圧力 multigrid の測定値を汎用化時の参照に流用 (参照値要確認)"
limitation = ""

[[item]]
id = "COV-NUM-087"
axis = "benchmark"
item = "stiff ODE: Robertson chemical kinetics"
source = "Hairer-Wanner, Solving ODEs II ch.IV.1"
status = "missing"
evidence = "陰的汎用積分が無い (COV-NUM-051 / 054)"
oracle_candidate = "長時間 (t = 1e11) で質量保存と参照解 (参照値要確認)"
limitation = ""

[[item]]
id = "COV-NUM-088"
axis = "benchmark"
item = "stiff ODE: van der Pol oscillator (large mu)"
source = "Hairer-Wanner, Solving ODEs II ch.IV.1"
status = "missing"
evidence = "陰的汎用積分が無い (COV-NUM-051 / 054)"
oracle_candidate = "周期の漸近式との突合 (参照値要確認)"
limitation = ""

[[item]]
id = "COV-NUM-089"
axis = "benchmark"
item = "long-time energy behaviour of a symplectic integrator (harmonic oscillator / Kepler)"
source = "Hairer-Lubich-Wanner ch.IX"
status = "missing"
evidence = "汎用の symplectic 積分が無い (COV-NUM-046 / 047) nbody / molecular_dynamics の分野内実装は各分野の表"
oracle_candidate = "1e6 step でエネルギー誤差が有界、位相誤差が線形"
limitation = ""

[[item]]
id = "COV-NUM-090"
axis = "benchmark"
item = "two-field partitioned coupling with closed-form contraction (added-mass piston)"
source = "Causin-Gerbeau-Nobile 2005; Forster-Wall-Ramm 2007"
status = "implemented+oracle"
evidence = "tests/analytic_added_mass_coupling.rs::the_contraction_ratio_matches_the_closed_form / tests/analytic_added_mass_coupling.rs::refining_the_time_step_does_not_rescue_a_divergent_splitting"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-091"
axis = "benchmark"
item = "two-field partitioned coupling with Aitken relaxation (sweep count vs constant relaxation)"
source = "Kuttler-Wall 2008"
status = "missing"
evidence = "汎用 Aitken が無い (COV-NUM-062)"
oracle_candidate = "added-mass ピストン + 2 自由度で sweep 数を比較 (参照値要確認)"
limitation = ""

[[item]]
id = "COV-NUM-092"
axis = "benchmark"
item = "nonlinear test set (Rosenbrock function / Bratu problem)"
source = "More-Garbow-Hillstrom 1981; Knoll-Keyes 2004 (Bratu)"
status = "missing"
evidence = "汎用 Newton が無い (COV-NUM-029)"
oracle_candidate = "Bratu の臨界パラメータ lambda_c (参照値要確認)"
limitation = ""

[[item]]
id = "COV-NUM-093"
axis = "transform"
item = "complex discrete Fourier transform, 1-D (radix-2 / mixed-radix FFT, forward and inverse)"
source = "Cooley-Tukey 1965; Press et al., Numerical Recipes ch.12; FFTW"
status = "missing"
evidence = "無い (推測: fft / dft / fourier で src を検索、当たるのは src/linear_elastic_fem/consistent_tangent.rs::ElementState の行列変数名 F Fᵀ と src/replay.rs の外部 crate の圧縮方式の説明だけ) 前提の複素数の型も無い (src/math.rs::Fix128 は実数の Q64.64 のみ、複素数の行は量子力学の表)"
oracle_candidate = "O(n^2) の直接和と突合、逆変換で元に戻る (Fix128 で bit 一致か誤差上界)、Parseval、純音で単一ビン"
limitation = ""

[[item]]
id = "COV-NUM-094"
axis = "transform"
item = "real-input FFT and multi-dimensional FFT (2-D / 3-D, periodic grids)"
source = "Press et al., Numerical Recipes ch.12; FFTW r2c / plan_dft_3d"
status = "missing"
evidence = "無い (COV-NUM-093 と同じ検索) 周期格子の FFT Poisson は COV-CFD-077 (missing)"
oracle_candidate = "実入力の Hermite 対称性、多次元は 1-D の積と突合、周期箱の単一 Fourier モード"
limitation = ""

[[item]]
id = "COV-NUM-095"
axis = "stochastic"
item = "plain Monte Carlo estimate of an integral / expectation with its sample variance and standard error"
source = "Robert-Casella, Monte Carlo Statistical Methods ch.3; Owen, Monte Carlo theory, methods and examples ch.2"
status = "missing"
evidence = "推定量の API は無い 部品として標本は src/rng.rs::DeterministicRng (src/rng.rs::next_fix128 一様 [0, 1)、src/rng.rs::next_gaussian_pair、tests/analytic_rng_wiring.rs::bounded_is_uniform_chi_square)、平均と標本分散は src/anomaly.rs::ZScoreDetector (Welford、src/anomaly.rs::observe / src/anomaly.rs::variance、std feature、tests/audit_anomaly.rs::zscore_matches_two_pass_mean_variance) にあるが、その組み合わせは呼び手が渡せる汎用の推定量ではないので数えない 標本は Fix128、統計量は f64"
oracle_candidate = "∫_0^1 x^2 dx = 1/3 を N 標本で推定し、誤差が標準誤差の数倍に収まることと標準誤差が 1/sqrt(N) で減ることを seed 固定で確認"
limitation = ""

[[item]]
id = "COV-NUM-096"
axis = "stochastic"
item = "variance reduction: importance sampling with weights, antithetic variates, control variates, stratified sampling"
source = "Owen, Monte Carlo theory, methods and examples ch.8-9; Lux-Koblinger, Monte Carlo Particle Transport Methods"
status = "missing"
evidence = "無い (推測: importance / antithetic / control variate / stratif で src 0 件) 一様と正規以外の分布から引く部品も無い (src/rng.rs) 原子核の表の MC 輸送の分散低減行はこの部品の用途"
oracle_candidate = "指数関数の積分で重点サンプリングの分散比が閉形式と一致、antithetic で単調関数の分散が減ること"
limitation = ""

[[item]]
id = "COV-NUM-097"
axis = "matrix_function"
item = "dense matrix exponential exp(A) (Pade approximation with scaling and squaring)"
source = "Moler-Van Loan 2003 (Nineteen dubious ways); Higham 2005; scipy.linalg.expm"
status = "missing"
evidence = "無い (推測: expm / matrix exp で src 0 件) Pade で当たるのは src/neural.rs::fix128_tanh_approx の tanh の有理近似、src/math.rs::exp の exp はスカラー"
oracle_candidate = "2x2 回転生成子の exp が cos / sin の回転行列、冪零行列で有限和と一致、対角行列で要素ごとの exp"
limitation = ""

[[item]]
id = "COV-NUM-098"
axis = "matrix_function"
item = "Chebyshev rational approximation (CRAM) for exp(A) v with eigenvalues on the negative real axis"
source = "Pusa-Leppanen 2010 (CRAM); Pusa 2016; ORIGEN / OpenMC depletion"
status = "missing"
evidence = "無い (推測: CRAM / Chebyshev rational で src 0 件) 硬い崩壊連鎖での使い方は原子核の表の行"
oracle_candidate = "2 段崩壊連鎖の Bateman 閉形式と突合、崩壊定数の比が極端な連鎖で負の数密度が出ないこと (係数は参照値要確認)"
limitation = ""

[[item]]
id = "COV-NUM-099"
axis = "eigen"
item = "symmetric tridiagonal eigenproblem (Sturm-sequence bisection, inverse iteration for eigenvectors, implicit QL)"
source = "Golub-Van Loan ch.8.4-8.5; Wilkinson-Reinsch Handbook (tql2 / bisect); LAPACK stebz / stein / steqr"
status = "missing"
evidence = "無い (推測: sturm / tql / implicit QL で src 0 件) bisection で当たるのはスカラーの根探索 (src/kepler.rs::KEPLER_MAX_ITERATIONS、src/turbulence.rs::FRICTION_VELOCITY_BISECTIONS、COV-NUM-037)、tridiagonal で当たるのは src/transient_thermal.rs::thomas_solve_in_place の Thomas 法 (連立 1 次方程式、COV-NUM-004) 一般の逆反復は COV-NUM-040"
oracle_candidate = "1D Laplacian (2, -1) の固有値 2 - 2 cos(k pi / (n + 1)) と固有ベクトル sin(j k pi / (n + 1)) の閉形式"
limitation = ""

[[item]]
id = "COV-NUM-100"
axis = "eigen"
item = "dense symmetric n x n eigen-decomposition (cyclic Jacobi, Householder tridiagonalisation + QL / QR)"
source = "Golub-Van Loan ch.8.3, 8.5; LAPACK syev / syevd"
status = "missing"
evidence = "3x3 に限った cyclic Jacobi だけ (src/mass_properties.rs::principal_axes principal_axes、COV-NUM-038) n x n の汎用部品は無い (推測: householder / tridiagonalis で src 0 件) 非対称と SVD は COV-NUM-044"
oracle_candidate = "n = 3 で principal_axes と突合、1D Laplacian の閉形式、直交性 Q^T Q = I と A Q = Q Λ の残差"
limitation = ""

[[item]]
id = "COV-NUM-101"
axis = "mesh_adaptivity"
item = "block-structured adaptive mesh refinement hierarchy as a general component (Berger-Oliger / Berger-Colella: tagging, regridding, coarse-fine interpolation, refluxing, subcycling in time)"
source = "Berger-Oliger 1984; Berger-Colella 1989; AMReX; Chombo; p4est"
status = "missing"
evidence = "格子の階層は無い (推測: AMR / octree / quadtree / Berger で src 0 件、COV-CFD-006 は「格子は固定解像度のみ」で missing) 四面体の最長辺二分割は src/sdf_fem_mesh.rs::refine_by_max_edge_length refine_by_max_edge_length / src/sdf_fem_mesh.rs::try_refine_marked try_refine_marked で固体 FE の h 適応 (COV-FEM-112) 専用、構造格子の階層ではない 分割: 子の行 COV-NUM-121〜124 この行の status は子のうち最も実装の少ないもの (missing) に合わせて手で保つ (検査器は親子を見ない)"
oracle_candidate = "細分化境界を越える一様流が不変、粗密境界の refluxing で保存量の総和が bit 一致で保たれる"
limitation = ""

[[item]]
id = "COV-NUM-102"
axis = "mesh"
item = "Delaunay tetrahedralisation of a point set (incremental Bowyer-Watson with robust orientation and in-sphere predicates)"
source = "Cheng-Dey-Shewchuk, Delaunay Mesh Generation ch.3-5; Shewchuk 1997 (robust predicates); CGAL / TetGen feature lists"
status = "missing"
evidence = "四面体 mesh の生成は SDF の格子を切る方式だけ (src/sdf_fem_mesh.rs::generate / src/sdf_fem_mesh.rs::generate_marching_tets、形状最適化の表 COV-OPT-065 が I+O で数える) grep: delaunay は src/sdf_fem_mesh.rs の「Delaunay 細分ではない」という注記のみ"
oracle_candidate = "空の外接球の検査と Euler 標数 (行 COV-NUM-120)"
limitation = ""

[[item]]
id = "COV-NUM-103"
axis = "mesh"
item = "boundary recovery of a given surface (constrained Delaunay) and Delaunay refinement for quality (Ruppert / Shewchuk)"
source = "Si 2015 (TetGen); Shewchuk 2002"
status = "missing"
evidence = "四面体 mesh の生成は SDF の格子を切る方式だけ (src/sdf_fem_mesh.rs::generate / src/sdf_fem_mesh.rs::generate_marching_tets、形状最適化の表 COV-OPT-065 が I+O で数える) FE の側の細分の品質は COV-FEM-115 (partial、最長辺の二分で Delaunay 細分ではない) 本行は汎用部品"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-104"
axis = "mesh"
item = "advancing-front tetrahedral meshing from a surface mesh"
source = "Löhner, Applied CFD Techniques ch.3; Frey-George, Mesh Generation ch.6"
status = "missing"
evidence = "四面体 mesh の生成は SDF の格子を切る方式だけ (src/sdf_fem_mesh.rs::generate / src/sdf_fem_mesh.rs::generate_marching_tets、形状最適化の表 COV-OPT-065 が I+O で数える)"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-105"
axis = "mesh"
item = "size-graded meshing of an SDF (octree or graded lattice with the cell size from curvature, local feature size and distance to the surface)"
source = "Labelle-Shewchuk 2007 (isosurface stuffing); Frey-George ch.5"
status = "missing"
evidence = "四面体 mesh の生成は SDF の格子を切る方式だけ (src/sdf_fem_mesh.rs::generate / src/sdf_fem_mesh.rs::generate_marching_tets、形状最適化の表 COV-OPT-065 が I+O で数える) 格子は一様で、セルより細い特徴は黙って埋まる (src/sdf_fem_mesh.rs の Limitations に記載)"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-106"
axis = "mesh"
item = "hexahedral and hex-dominant meshing (sweeping, grid-based with boundary projection)"
source = "Frey-George ch.8; Owen 1998 (survey)"
status = "missing"
evidence = "hex 要素も固体 FE の表で missing (COV-FEM-012 / 013)"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-107"
axis = "mesh"
item = "element quality measures as a callable component (radius-edge ratio, minimum dihedral angle, aspect ratio, scaled Jacobian)"
source = "Shewchuk 2002 (What is a good linear element?); Knupp 2001"
status = "missing"
evidence = "品質を測る関数は test の中だけ (tests/mesh_quality.rs、tests/refinement_conformity.rs) で、呼び手に渡せる API は src/ に無い"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-108"
axis = "mesh"
item = "mesh improvement with fixed topology and with local reconnection (Laplacian and optimisation-based smoothing, edge and face swaps, sliver removal)"
source = "Freitag-Ollivier-Gooch 1997; Klingner-Shewchuk 2007"
status = "missing"
evidence = "四面体 mesh の生成は SDF の格子を切る方式だけ (src/sdf_fem_mesh.rs::generate / src/sdf_fem_mesh.rs::generate_marching_tets、形状最適化の表 COV-OPT-065 が I+O で数える) 生成後に node を動かす・接続を変える操作は無い"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-109"
axis = "mesh"
item = "conforming local refinement of marked tetrahedra (edge bisection propagated until no hanging node remains)"
source = "Rivara 1984 (longest-edge bisection); Arnold-Mukherjee-Pouly 2000"
status = "implemented+oracle"
evidence = "src/sdf_fem_mesh.rs::try_refine_conforming / src/sdf_fem_mesh.rs::try_refine_marked oracle は面の使用回数の数え上げ (内部面はちょうど 2 回) tests/refinement_conformity.rs::uniform_refinement_stays_conforming / tests/refinement_conformity.rs::graded_refinement_stays_conforming FE の適応は COV-FEM-112 が数える 既知の欠陥 tests/audit_sdf_fem_mesh.rs::refinement_keeps_every_element_positively_wound (ignore = known defect AUD-A-S2W3-012、子の向きが混ざる)"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-110"
axis = "mesh"
item = "coarsening and full adaptive remeshing with a size field (refine, coarsen and smooth to a target metric)"
source = "Frey-George ch.21; Alauzet-Loseille 2016 (metric-based adaptation)"
status = "missing"
evidence = "細分 (行 COV-NUM-109) だけで粗くする操作が無い 布の適応 remesh COV-SOFT-078、き裂に沿う remesh COV-FRACT-031 (いずれも missing) が引く"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-111"
axis = "mesh"
item = "boundary-surface extraction of a tetrahedral mesh (faces used once; a non-manifold face is refused)"
source = "Frey-George ch.1 (mesh data structures)"
status = "implemented+oracle"
evidence = "src/sdf_fem_mesh.rs::boundary_faces tests/analytic_sdf_fem_mesh_wiring.rs::a_non_cubic_block_matches_the_closed_form_tet_vertex_and_boundary_counts / tests/analytic_sdf_fem_mesh_wiring.rs::boundary_faces_reports_which_face_and_how_many_tets_claimed_it"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-112"
axis = "mesh"
item = "element-quality guarantee of the lattice SDF mesher (uniform quality of the whole-cube dicing, crossing snap that keeps slivers out under refinement)"
source = "Labelle-Shewchuk 2007 (quality bounds of lattice-based meshers)"
status = "implemented+oracle"
evidence = "src/sdf_fem_mesh.rs::generate_marching_tets tests/mesh_quality.rs::whole_cube_dicing_has_uniform_quality / tests/mesh_quality.rs::marching_tets_stays_out_of_the_sliver_population oracle は二面角の下限の数え上げ 細分した後の品質の漂いは COV-FEM-115 (partial)"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-113"
axis = "mesh"
item = "surface mesh simplification by edge collapse that keeps a closed surface closed and its genus"
source = "Garland-Heckbert 1997; Hoppe 1996"
status = "implemented+oracle"
evidence = "src/collision_mesh_gen.rs::simplify_collision_mesh tests/analytic_collision_mesh.rs::simplifying_never_breaks_the_mesh / tests/analytic_collision_mesh.rs::simplifying_a_torus_keeps_its_hole / tests/analytic_collision_mesh.rs::simplifying_a_ball_keeps_a_closed_outward_sphere 生成は剛体の表 COV-RIGID-070 (同じ test が生成の行の evidence にも出る)"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-114"
axis = "mesh"
item = "surface remeshing and repair (isotropic remeshing, hole filling, removal of self-intersections, watertightness check)"
source = "Botsch et al., Polygon Mesh Processing ch.6-8"
status = "missing"
evidence = "表面 mesh の修復・再分割は無い (推測: remesh / repair で 0 件)"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-115"
axis = "mesh"
item = "mesh deformation with fixed connectivity as a general component (Laplacian or pseudo-elastic smoothing of interior nodes, radial-basis interpolation of a boundary displacement)"
source = "de Boer-van der Schoot-Bijl 2007 (RBF mesh motion); Stein-Tezduyar-Benney 2003"
status = "missing"
evidence = "設計変数による mesh morphing COV-OPT-066 と流体 mesh の界面追従 COV-COUPLE-016 (いずれも missing) の共通部品"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-116"
axis = "mesh"
item = "signed distance field from a closed triangle mesh (closest triangle with the sign from the winding number or angle-weighted pseudo-normals)"
source = "Bærentzen-Aanæs 2005; Jacobson et al. 2013 (generalised winding number)"
status = "missing"
evidence = "SDF から mesh への向きはある (COV-RIGID-070、COV-OPT-065) が逆向きが無い (推測: mesh_to_sdf / winding で 0 件) 電磁の材料の取り込み COV-EM-041 (missing) が使う"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-117"
axis = "mesh"
item = "mesh exchange formats for tetrahedral and surface meshes (Gmsh .msh, VTK / VTU, STL, Exodus II)"
source = "Gmsh, VTK and Exodus II format specifications"
status = "missing"
evidence = "mesh の読み書きは無い (推測: vtk / gmsh / exodus で 0 件) 場の書き出しは電磁の表 COV-EM-100 (missing)"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-118"
axis = "mesh"
item = "curved boundary for higher-order elements (edge and face nodes projected onto the SDF surface)"
source = "Sherwin-Peiró 2002; Persson-Peraire 2009"
status = "missing"
evidence = "P2 / P3 の辺 node は直線辺上 (固体 FE の曲辺アイソパラメトリック COV-FEM-016、missing) 本行は SDF の表面へ射影する汎用部品"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-119"
axis = "mesh"
item = "mesh partitioning for distributed runs (graph partitioning, space-filling-curve ordering)"
source = "Karypis-Kumar 1998 (METIS); Bader, Space-Filling Curves"
status = "missing"
evidence = "分散の負荷分散 COV-NUM-071 (missing) が使う 格子の領域分割は一様な立方体の分割だけ (推測)"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-120"
axis = "benchmark"
item = "Delaunay property of a random point set: empty circumspheres and the Euler characteristic of the result"
source = "Cheng-Dey-Shewchuk ch.4"
status = "missing"
evidence = "Delaunay 分割が無い (行 COV-NUM-102)"
oracle_candidate = ""
limitation = ""

[[item]]
id = "COV-NUM-121"
axis = "mesh_adaptivity"
item = "AMR: error tagging of cells and regridding into nested patches (Berger-Rigoutsos clustering)"
source = "Berger-Oliger 1984; Berger-Colella 1989; AMReX; Chombo; p4est"
status = "missing"
evidence = "COV-NUM-101 の子 階層の格子が無い (推測: AMR / Berger で src 0 件)"
oracle_candidate = "既知の誤差指標の帯を tag して作った patch が tag を全部覆い、efficiency の閾値を満たす"
limitation = ""

[[item]]
id = "COV-NUM-122"
axis = "mesh_adaptivity"
item = "AMR: coarse-fine interpolation of ghost cells (conservative, order-preserving)"
source = "Berger-Oliger 1984; Berger-Colella 1989; AMReX; Chombo; p4est"
status = "missing"
evidence = "COV-NUM-101 の子 階層の格子が無い"
oracle_candidate = "線形場を粗から細へ補間して厳密、2 次場で補間誤差の次数"
limitation = ""

[[item]]
id = "COV-NUM-123"
axis = "mesh_adaptivity"
item = "AMR: refluxing at coarse-fine faces (flux correction for conservation)"
source = "Berger-Oliger 1984; Berger-Colella 1989; AMReX; Chombo; p4est"
status = "missing"
evidence = "COV-NUM-101 の子 階層の格子が無い"
oracle_candidate = "粗密境界を越える移流で保存量の総和が bit 一致"
limitation = ""

[[item]]
id = "COV-NUM-124"
axis = "mesh_adaptivity"
item = "AMR: subcycling in time on the finer levels (time interpolation of boundary data)"
source = "Berger-Oliger 1984; Berger-Colella 1989; AMReX; Chombo; p4est"
status = "missing"
evidence = "COV-NUM-101 の子 階層の格子が無い"
oracle_candidate = "細格子の時間刻み比 r で時間精度の次数が保たれる"
limitation = ""