@geotechcli/core 0.4.112 → 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/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
|
}
|