@geotechcli/core 0.4.111 → 0.4.113
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/fem/engineering-evidence.d.ts +48 -0
- package/dist/fem/engineering-evidence.d.ts.map +1 -1
- package/dist/fem/engineering-evidence.js +173 -21
- package/dist/fem/engineering-evidence.js.map +1 -1
- package/dist/fem/index.d.ts +1 -1
- package/dist/fem/index.d.ts.map +1 -1
- package/dist/fem/index.js.map +1 -1
- package/dist/fem/plane-strain-assembly.d.ts +23 -0
- package/dist/fem/plane-strain-assembly.d.ts.map +1 -1
- package/dist/fem/plane-strain-assembly.js +108 -8
- package/dist/fem/plane-strain-assembly.js.map +1 -1
- package/dist/ingest/geotech-document.d.ts +2 -1
- package/dist/ingest/geotech-document.d.ts.map +1 -1
- package/dist/ingest/geotech-document.js +2 -1
- package/dist/ingest/geotech-document.js.map +1 -1
- package/dist/ingest/geotech-extract.d.ts +2 -1
- package/dist/ingest/geotech-extract.d.ts.map +1 -1
- package/dist/ingest/geotech-extract.js +2 -1
- package/dist/ingest/geotech-extract.js.map +1 -1
- package/dist/ingest/job-worker.d.ts.map +1 -1
- package/dist/ingest/job-worker.js +48 -6
- package/dist/ingest/job-worker.js.map +1 -1
- package/dist/meta/metadata.json +1 -1
- package/package.json +1 -1
|
@@ -270,6 +270,7 @@ export interface FemReviewerApprovalValidation {
|
|
|
270
270
|
}
|
|
271
271
|
export type FemExternalBenchmarkSourceType = 'published-source' | 'commercial-solver' | 'open-source-solver';
|
|
272
272
|
export type FemExternalBenchmarkToleranceType = 'absolute' | 'relative' | 'absolute-or-relative';
|
|
273
|
+
export type FemExternalBenchmarkComparisonKind = 'scalar' | 'series-summary';
|
|
273
274
|
export interface FemExternalBenchmarkPublishedCitation {
|
|
274
275
|
title: string;
|
|
275
276
|
authors: string[];
|
|
@@ -296,6 +297,35 @@ export interface FemExternalBenchmarkReference {
|
|
|
296
297
|
publishedSource?: FemExternalBenchmarkPublishedCitation;
|
|
297
298
|
referenceSolver?: FemExternalBenchmarkReferenceSolverCitation;
|
|
298
299
|
}
|
|
300
|
+
export interface FemExternalBenchmarkSolverRunMetadata {
|
|
301
|
+
name: string;
|
|
302
|
+
version: string;
|
|
303
|
+
vendor?: string;
|
|
304
|
+
solverType: 'geotechcli-kernel' | 'published-reference' | 'commercial-solver' | 'open-source-solver' | 'deterministic-fixture';
|
|
305
|
+
analysisProcedure?: string;
|
|
306
|
+
elementType?: string;
|
|
307
|
+
runId?: string;
|
|
308
|
+
}
|
|
309
|
+
export interface FemExternalBenchmarkSeriesStatistics {
|
|
310
|
+
min: number;
|
|
311
|
+
max: number;
|
|
312
|
+
final: number;
|
|
313
|
+
mean?: number;
|
|
314
|
+
}
|
|
315
|
+
export interface FemExternalBenchmarkSeriesSummary {
|
|
316
|
+
xQuantity: string;
|
|
317
|
+
xUnit: string;
|
|
318
|
+
yQuantity: string;
|
|
319
|
+
yUnit: string;
|
|
320
|
+
pointCount: number;
|
|
321
|
+
actual: FemExternalBenchmarkSeriesStatistics;
|
|
322
|
+
expected: FemExternalBenchmarkSeriesStatistics;
|
|
323
|
+
maxAbsoluteError: number;
|
|
324
|
+
maxRelativeError: number;
|
|
325
|
+
rmsError?: number;
|
|
326
|
+
seriesHashSha256: string;
|
|
327
|
+
notes?: string[];
|
|
328
|
+
}
|
|
299
329
|
export interface FemExternalBenchmarkQuantityRequirement {
|
|
300
330
|
id: string;
|
|
301
331
|
feature: FemEngineeringKernelFeature;
|
|
@@ -310,6 +340,8 @@ export interface FemExternalBenchmarkComparisonResult {
|
|
|
310
340
|
quantityRequirementId: string;
|
|
311
341
|
referenceId: string;
|
|
312
342
|
caseId: string;
|
|
343
|
+
comparisonKind?: FemExternalBenchmarkComparisonKind;
|
|
344
|
+
metricName?: string;
|
|
313
345
|
quantity: string;
|
|
314
346
|
unit: string;
|
|
315
347
|
actual: number;
|
|
@@ -317,9 +349,24 @@ export interface FemExternalBenchmarkComparisonResult {
|
|
|
317
349
|
tolerance: number;
|
|
318
350
|
toleranceType: FemExternalBenchmarkToleranceType;
|
|
319
351
|
accepted: boolean;
|
|
352
|
+
candidateSolver?: FemExternalBenchmarkSolverRunMetadata;
|
|
353
|
+
referenceSolver?: FemExternalBenchmarkSolverRunMetadata;
|
|
320
354
|
evidenceHashSha256?: string;
|
|
355
|
+
resultHashSha256?: string;
|
|
356
|
+
seriesSummary?: FemExternalBenchmarkSeriesSummary;
|
|
321
357
|
notes?: string[];
|
|
322
358
|
}
|
|
359
|
+
export interface FemExternalBenchmarkCoverageSummary {
|
|
360
|
+
schemaVersion: 'fem-external-benchmark-coverage.v1';
|
|
361
|
+
acceptedComparisonCount: number;
|
|
362
|
+
acceptedPublishedComparisonCount: number;
|
|
363
|
+
acceptedCommercialComparisonCount: number;
|
|
364
|
+
acceptedOpenSourceComparisonCount: number;
|
|
365
|
+
requiredQuantityCount: number;
|
|
366
|
+
partiallyCoveredRequiredQuantityIds: string[];
|
|
367
|
+
fullyCoveredRequiredQuantityIds: string[];
|
|
368
|
+
missingRequiredSourceTypes: FemExternalBenchmarkSourceType[];
|
|
369
|
+
}
|
|
323
370
|
export interface FemExternalBenchmarkAcceptanceContract {
|
|
324
371
|
schemaVersion: 'fem-external-benchmark-acceptance.v2';
|
|
325
372
|
status: 'accepted-comparisons-ready' | 'blocked';
|
|
@@ -328,6 +375,7 @@ export interface FemExternalBenchmarkAcceptanceContract {
|
|
|
328
375
|
references: FemExternalBenchmarkReference[];
|
|
329
376
|
requiredQuantities: FemExternalBenchmarkQuantityRequirement[];
|
|
330
377
|
comparisonResults: FemExternalBenchmarkComparisonResult[];
|
|
378
|
+
coverageSummary: FemExternalBenchmarkCoverageSummary;
|
|
331
379
|
blockerCodes: string[];
|
|
332
380
|
acceptanceStatement: string;
|
|
333
381
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engineering-evidence.d.ts","sourceRoot":"","sources":["../../src/fem/engineering-evidence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engineering-evidence.d.ts","sourceRoot":"","sources":["../../src/fem/engineering-evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -183,6 +183,53 @@ function hasReferenceSolverCitation(citation) {
|
|
|
183
183
|
function hasValidSha256(value) {
|
|
184
184
|
return typeof value === 'string' && /^[a-f0-9]{64}$/i.test(value);
|
|
185
185
|
}
|
|
186
|
+
function hasSolverRunMetadata(value) {
|
|
187
|
+
if (value == null || typeof value !== 'object')
|
|
188
|
+
return false;
|
|
189
|
+
const metadata = value;
|
|
190
|
+
return isNonEmptyString(metadata.name) &&
|
|
191
|
+
isNonEmptyString(metadata.version) &&
|
|
192
|
+
(metadata.solverType === 'geotechcli-kernel' ||
|
|
193
|
+
metadata.solverType === 'published-reference' ||
|
|
194
|
+
metadata.solverType === 'commercial-solver' ||
|
|
195
|
+
metadata.solverType === 'open-source-solver' ||
|
|
196
|
+
metadata.solverType === 'deterministic-fixture');
|
|
197
|
+
}
|
|
198
|
+
function hasFiniteSeriesStatistics(value) {
|
|
199
|
+
if (value == null || typeof value !== 'object')
|
|
200
|
+
return false;
|
|
201
|
+
const statistics = value;
|
|
202
|
+
return Number.isFinite(statistics.min) &&
|
|
203
|
+
Number.isFinite(statistics.max) &&
|
|
204
|
+
Number.isFinite(statistics.final) &&
|
|
205
|
+
(statistics.mean == null || Number.isFinite(statistics.mean));
|
|
206
|
+
}
|
|
207
|
+
function hasValidSeriesSummary(value) {
|
|
208
|
+
if (value == null || typeof value !== 'object')
|
|
209
|
+
return false;
|
|
210
|
+
const summary = value;
|
|
211
|
+
const pointCount = summary.pointCount;
|
|
212
|
+
const maxAbsoluteError = summary.maxAbsoluteError;
|
|
213
|
+
const maxRelativeError = summary.maxRelativeError;
|
|
214
|
+
const rmsError = summary.rmsError;
|
|
215
|
+
return isNonEmptyString(summary.xQuantity) &&
|
|
216
|
+
isNonEmptyString(summary.xUnit) &&
|
|
217
|
+
isNonEmptyString(summary.yQuantity) &&
|
|
218
|
+
isNonEmptyString(summary.yUnit) &&
|
|
219
|
+
typeof pointCount === 'number' &&
|
|
220
|
+
Number.isInteger(pointCount) &&
|
|
221
|
+
pointCount > 0 &&
|
|
222
|
+
hasFiniteSeriesStatistics(summary.actual) &&
|
|
223
|
+
hasFiniteSeriesStatistics(summary.expected) &&
|
|
224
|
+
typeof maxAbsoluteError === 'number' &&
|
|
225
|
+
Number.isFinite(maxAbsoluteError) &&
|
|
226
|
+
maxAbsoluteError >= 0 &&
|
|
227
|
+
typeof maxRelativeError === 'number' &&
|
|
228
|
+
Number.isFinite(maxRelativeError) &&
|
|
229
|
+
maxRelativeError >= 0 &&
|
|
230
|
+
(rmsError == null || (Number.isFinite(rmsError) && rmsError >= 0)) &&
|
|
231
|
+
hasValidSha256(summary.seriesHashSha256);
|
|
232
|
+
}
|
|
186
233
|
function copyExternalBenchmarkReference(reference) {
|
|
187
234
|
return {
|
|
188
235
|
...reference,
|
|
@@ -210,6 +257,24 @@ function copyExternalBenchmarkQuantityRequirement(requirement) {
|
|
|
210
257
|
function copyExternalBenchmarkComparisonResult(result) {
|
|
211
258
|
return {
|
|
212
259
|
...result,
|
|
260
|
+
candidateSolver: result.candidateSolver != null
|
|
261
|
+
? { ...result.candidateSolver }
|
|
262
|
+
: result.candidateSolver,
|
|
263
|
+
...(result.referenceSolver ? { referenceSolver: { ...result.referenceSolver } } : {}),
|
|
264
|
+
...(result.seriesSummary
|
|
265
|
+
? {
|
|
266
|
+
seriesSummary: {
|
|
267
|
+
...result.seriesSummary,
|
|
268
|
+
actual: result.seriesSummary.actual != null
|
|
269
|
+
? { ...result.seriesSummary.actual }
|
|
270
|
+
: result.seriesSummary.actual,
|
|
271
|
+
expected: result.seriesSummary.expected != null
|
|
272
|
+
? { ...result.seriesSummary.expected }
|
|
273
|
+
: result.seriesSummary.expected,
|
|
274
|
+
...(result.seriesSummary.notes ? { notes: [...result.seriesSummary.notes] } : {}),
|
|
275
|
+
},
|
|
276
|
+
}
|
|
277
|
+
: {}),
|
|
213
278
|
...(result.notes ? { notes: [...result.notes] } : {}),
|
|
214
279
|
};
|
|
215
280
|
}
|
|
@@ -223,6 +288,42 @@ export function buildFemExternalBenchmarkAcceptanceContract(options = {}) {
|
|
|
223
288
|
const blockerCodes = [];
|
|
224
289
|
const referenceById = new Map(references.map((reference) => [reference.id, reference]));
|
|
225
290
|
const quantityById = new Map(requiredQuantities.map((requirement) => [requirement.id, requirement]));
|
|
291
|
+
function referenceRequiresSolverRunMetadata(reference) {
|
|
292
|
+
return reference?.sourceType === 'commercial-solver' || reference?.sourceType === 'open-source-solver';
|
|
293
|
+
}
|
|
294
|
+
function comparisonIsAcceptedForRequirement(result, requirement, reference, sourceType) {
|
|
295
|
+
if (!reference)
|
|
296
|
+
return false;
|
|
297
|
+
if (sourceType && reference.sourceType !== sourceType)
|
|
298
|
+
return false;
|
|
299
|
+
if (result.quantityRequirementId !== requirement.id || !result.accepted)
|
|
300
|
+
return false;
|
|
301
|
+
if (result.comparisonKind !== 'scalar' && result.comparisonKind !== 'series-summary')
|
|
302
|
+
return false;
|
|
303
|
+
if (result.comparisonKind === 'series-summary' && !hasValidSeriesSummary(result.seriesSummary))
|
|
304
|
+
return false;
|
|
305
|
+
if (!isNonEmptyString(result.metricName))
|
|
306
|
+
return false;
|
|
307
|
+
if (!hasSolverRunMetadata(result.candidateSolver))
|
|
308
|
+
return false;
|
|
309
|
+
if (referenceRequiresSolverRunMetadata(reference) && !hasSolverRunMetadata(result.referenceSolver))
|
|
310
|
+
return false;
|
|
311
|
+
if (result.referenceSolver != null && !hasSolverRunMetadata(result.referenceSolver))
|
|
312
|
+
return false;
|
|
313
|
+
if (!Number.isFinite(result.actual) || !Number.isFinite(result.expected))
|
|
314
|
+
return false;
|
|
315
|
+
if (!hasValidSha256(result.evidenceHashSha256) || !hasValidSha256(result.resultHashSha256))
|
|
316
|
+
return false;
|
|
317
|
+
if (result.quantity !== requirement.quantity || result.unit !== requirement.unit)
|
|
318
|
+
return false;
|
|
319
|
+
if (result.toleranceType !== requirement.toleranceType || result.tolerance > requirement.tolerance) {
|
|
320
|
+
return false;
|
|
321
|
+
}
|
|
322
|
+
const tolerance = evaluateFemTolerance(requirement.quantity, result.actual, result.expected, requirement.toleranceType === 'relative' ? 0 : requirement.tolerance, requirement.toleranceType === 'absolute'
|
|
323
|
+
? { unit: requirement.unit }
|
|
324
|
+
: { relativeTolerance: requirement.tolerance, unit: requirement.unit });
|
|
325
|
+
return tolerance.accepted;
|
|
326
|
+
}
|
|
226
327
|
if (references.length === 0) {
|
|
227
328
|
blockerCodes.push('external-benchmark-reference-corpus-missing');
|
|
228
329
|
}
|
|
@@ -321,6 +422,12 @@ export function buildFemExternalBenchmarkAcceptanceContract(options = {}) {
|
|
|
321
422
|
if (!isNonEmptyString(result.caseId)) {
|
|
322
423
|
blockerCodes.push(`external-benchmark.comparison-results.${resultCode}.case-id-missing`);
|
|
323
424
|
}
|
|
425
|
+
if (result.comparisonKind !== 'scalar' && result.comparisonKind !== 'series-summary') {
|
|
426
|
+
blockerCodes.push(`external-benchmark.comparison-results.${resultCode}.comparison-kind-invalid`);
|
|
427
|
+
}
|
|
428
|
+
if (!isNonEmptyString(result.metricName)) {
|
|
429
|
+
blockerCodes.push(`external-benchmark.comparison-results.${resultCode}.metric-name-missing`);
|
|
430
|
+
}
|
|
324
431
|
if (!isNonEmptyString(result.quantity)) {
|
|
325
432
|
blockerCodes.push(`external-benchmark.comparison-results.${resultCode}.quantity-missing`);
|
|
326
433
|
}
|
|
@@ -341,6 +448,25 @@ export function buildFemExternalBenchmarkAcceptanceContract(options = {}) {
|
|
|
341
448
|
if (!hasValidSha256(result.evidenceHashSha256)) {
|
|
342
449
|
blockerCodes.push(`external-benchmark.comparison-results.${resultCode}.evidence-hash-missing`);
|
|
343
450
|
}
|
|
451
|
+
if (!hasValidSha256(result.resultHashSha256)) {
|
|
452
|
+
blockerCodes.push(`external-benchmark.comparison-results.${resultCode}.result-hash-missing`);
|
|
453
|
+
}
|
|
454
|
+
if (!hasSolverRunMetadata(result.candidateSolver)) {
|
|
455
|
+
blockerCodes.push(`external-benchmark.comparison-results.${resultCode}.candidate-solver-metadata-missing`);
|
|
456
|
+
}
|
|
457
|
+
const reference = referenceById.get(result.referenceId);
|
|
458
|
+
if (referenceRequiresSolverRunMetadata(reference) && !hasSolverRunMetadata(result.referenceSolver)) {
|
|
459
|
+
blockerCodes.push(`external-benchmark.comparison-results.${resultCode}.reference-solver-metadata-missing`);
|
|
460
|
+
}
|
|
461
|
+
else if (result.referenceSolver != null && !hasSolverRunMetadata(result.referenceSolver)) {
|
|
462
|
+
blockerCodes.push(`external-benchmark.comparison-results.${resultCode}.reference-solver-metadata-invalid`);
|
|
463
|
+
}
|
|
464
|
+
if (result.comparisonKind === 'series-summary' && !hasValidSeriesSummary(result.seriesSummary)) {
|
|
465
|
+
blockerCodes.push(`external-benchmark.comparison-results.${resultCode}.series-summary-invalid`);
|
|
466
|
+
}
|
|
467
|
+
else if (result.seriesSummary != null && !hasValidSeriesSummary(result.seriesSummary)) {
|
|
468
|
+
blockerCodes.push(`external-benchmark.comparison-results.${resultCode}.series-summary-invalid`);
|
|
469
|
+
}
|
|
344
470
|
const requirement = quantityById.get(result.quantityRequirementId);
|
|
345
471
|
if (requirement) {
|
|
346
472
|
if (result.quantity !== requirement.quantity) {
|
|
@@ -371,37 +497,60 @@ export function buildFemExternalBenchmarkAcceptanceContract(options = {}) {
|
|
|
371
497
|
}
|
|
372
498
|
}
|
|
373
499
|
}
|
|
500
|
+
const acceptedComparisons = comparisonResults
|
|
501
|
+
.map((result) => ({
|
|
502
|
+
result,
|
|
503
|
+
requirement: quantityById.get(result.quantityRequirementId),
|
|
504
|
+
reference: referenceById.get(result.referenceId),
|
|
505
|
+
}))
|
|
506
|
+
.filter((item) => item.requirement != null &&
|
|
507
|
+
item.reference != null &&
|
|
508
|
+
comparisonIsAcceptedForRequirement(item.result, item.requirement, item.reference));
|
|
509
|
+
const partiallyCoveredRequiredQuantityIds = [];
|
|
510
|
+
const fullyCoveredRequiredQuantityIds = [];
|
|
374
511
|
for (const requirement of requiredQuantities) {
|
|
375
512
|
if (!isNonEmptyString(requirement.id))
|
|
376
513
|
continue;
|
|
514
|
+
const acceptedSourceTypesForRequirement = new Set(acceptedComparisons
|
|
515
|
+
.filter((item) => item.requirement.id === requirement.id)
|
|
516
|
+
.map((item) => item.reference.sourceType));
|
|
517
|
+
if (acceptedSourceTypesForRequirement.size > 0) {
|
|
518
|
+
partiallyCoveredRequiredQuantityIds.push(requirement.id);
|
|
519
|
+
}
|
|
520
|
+
if (requirement.requiredReferenceSourceTypes.length > 0 &&
|
|
521
|
+
requirement.requiredReferenceSourceTypes.every((sourceType) => acceptedSourceTypesForRequirement.has(sourceType))) {
|
|
522
|
+
fullyCoveredRequiredQuantityIds.push(requirement.id);
|
|
523
|
+
}
|
|
377
524
|
for (const sourceType of requirement.requiredReferenceSourceTypes) {
|
|
378
|
-
const hasAcceptedComparison =
|
|
379
|
-
|
|
380
|
-
if (!reference || reference.sourceType !== sourceType)
|
|
381
|
-
return false;
|
|
382
|
-
if (result.quantityRequirementId !== requirement.id || !result.accepted)
|
|
383
|
-
return false;
|
|
384
|
-
if (!Number.isFinite(result.actual) || !Number.isFinite(result.expected))
|
|
385
|
-
return false;
|
|
386
|
-
if (!hasValidSha256(result.evidenceHashSha256))
|
|
387
|
-
return false;
|
|
388
|
-
if (result.quantity !== requirement.quantity || result.unit !== requirement.unit)
|
|
389
|
-
return false;
|
|
390
|
-
if (result.toleranceType !== requirement.toleranceType || result.tolerance > requirement.tolerance) {
|
|
391
|
-
return false;
|
|
392
|
-
}
|
|
393
|
-
const tolerance = evaluateFemTolerance(requirement.quantity, result.actual, result.expected, requirement.toleranceType === 'relative' ? 0 : requirement.tolerance, requirement.toleranceType === 'absolute'
|
|
394
|
-
? { unit: requirement.unit }
|
|
395
|
-
: { relativeTolerance: requirement.tolerance, unit: requirement.unit });
|
|
396
|
-
return tolerance.accepted;
|
|
397
|
-
});
|
|
525
|
+
const hasAcceptedComparison = acceptedComparisons.some((item) => item.requirement.id === requirement.id &&
|
|
526
|
+
item.reference.sourceType === sourceType);
|
|
398
527
|
if (!hasAcceptedComparison) {
|
|
399
528
|
blockerCodes.push(`external-benchmark.required-quantities.${requirement.id}.accepted-comparison-missing.${sourceType}`);
|
|
400
529
|
}
|
|
401
530
|
}
|
|
402
531
|
}
|
|
532
|
+
const acceptedSourceTypes = new Set(acceptedComparisons.map((item) => item.reference.sourceType));
|
|
533
|
+
const coverageSummary = {
|
|
534
|
+
schemaVersion: 'fem-external-benchmark-coverage.v1',
|
|
535
|
+
acceptedComparisonCount: acceptedComparisons.length,
|
|
536
|
+
acceptedPublishedComparisonCount: acceptedComparisons
|
|
537
|
+
.filter((item) => item.reference.sourceType === 'published-source').length,
|
|
538
|
+
acceptedCommercialComparisonCount: acceptedComparisons
|
|
539
|
+
.filter((item) => item.reference.sourceType === 'commercial-solver').length,
|
|
540
|
+
acceptedOpenSourceComparisonCount: acceptedComparisons
|
|
541
|
+
.filter((item) => item.reference.sourceType === 'open-source-solver').length,
|
|
542
|
+
requiredQuantityCount: requiredQuantities.length,
|
|
543
|
+
partiallyCoveredRequiredQuantityIds,
|
|
544
|
+
fullyCoveredRequiredQuantityIds,
|
|
545
|
+
missingRequiredSourceTypes: REQUIRED_EXTERNAL_BENCHMARK_SOURCE_TYPES
|
|
546
|
+
.filter((sourceType) => !acceptedSourceTypes.has(sourceType)),
|
|
547
|
+
};
|
|
548
|
+
if (coverageSummary.fullyCoveredRequiredQuantityIds.length < requiredQuantities.length) {
|
|
549
|
+
blockerCodes.push('external-benchmark-comparison-results-missing');
|
|
550
|
+
}
|
|
403
551
|
const uniqueBlockerCodes = [...new Set(blockerCodes)];
|
|
404
552
|
const productionReadinessBlocked = uniqueBlockerCodes.length > 0;
|
|
553
|
+
const hasPartialAcceptedEvidence = coverageSummary.acceptedComparisonCount > 0;
|
|
405
554
|
return {
|
|
406
555
|
schemaVersion: 'fem-external-benchmark-acceptance.v2',
|
|
407
556
|
status: productionReadinessBlocked ? 'blocked' : 'accepted-comparisons-ready',
|
|
@@ -410,9 +559,12 @@ export function buildFemExternalBenchmarkAcceptanceContract(options = {}) {
|
|
|
410
559
|
references,
|
|
411
560
|
requiredQuantities,
|
|
412
561
|
comparisonResults,
|
|
562
|
+
coverageSummary,
|
|
413
563
|
blockerCodes: uniqueBlockerCodes,
|
|
414
564
|
acceptanceStatement: productionReadinessBlocked
|
|
415
|
-
?
|
|
565
|
+
? hasPartialAcceptedEvidence
|
|
566
|
+
? `Partial external benchmark evidence is present (${coverageSummary.acceptedComparisonCount} accepted comparison summaries), but production readiness remains blocked until published and commercial solver references and accepted comparison results cover every required FEM quantity.`
|
|
567
|
+
: 'External benchmark acceptance is incomplete; production readiness remains blocked until source citations, commercial solver references, and accepted comparison results cover every required FEM quantity.'
|
|
416
568
|
: 'External benchmark references and comparison results cover the required FEM quantities; this still does not approve production design without solver-route and reviewer-workflow acceptance.',
|
|
417
569
|
};
|
|
418
570
|
}
|