@geotechcli/core 0.4.107 → 0.4.108
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 +65 -0
- package/dist/fem/engineering-evidence.d.ts.map +1 -1
- package/dist/fem/engineering-evidence.js +287 -9
- package/dist/fem/engineering-evidence.js.map +1 -1
- package/dist/fem/index.d.ts +3 -2
- package/dist/fem/index.d.ts.map +1 -1
- package/dist/fem/index.js +2 -1
- package/dist/fem/index.js.map +1 -1
- package/dist/fem/plane-strain-assembly.d.ts +35 -4
- package/dist/fem/plane-strain-assembly.d.ts.map +1 -1
- package/dist/fem/plane-strain-assembly.js +160 -10
- package/dist/fem/plane-strain-assembly.js.map +1 -1
- package/dist/fem/production-readiness.d.ts.map +1 -1
- package/dist/fem/production-readiness.js +6 -1
- package/dist/fem/production-readiness.js.map +1 -1
- package/dist/fem/routing.js +4 -4
- package/dist/fem/routing.js.map +1 -1
- package/dist/fem/sparse-linear-algebra.d.ts +47 -0
- package/dist/fem/sparse-linear-algebra.d.ts.map +1 -0
- package/dist/fem/sparse-linear-algebra.js +290 -0
- package/dist/fem/sparse-linear-algebra.js.map +1 -0
- package/dist/meta/metadata.json +1 -1
- package/package.json +1 -1
|
@@ -199,6 +199,7 @@ export interface FemExcavationSupportDesignCheckInput {
|
|
|
199
199
|
cohesionKpa: number;
|
|
200
200
|
surchargeKpa?: number;
|
|
201
201
|
waterTableDepthM?: number;
|
|
202
|
+
stageDepthsM?: number[];
|
|
202
203
|
supportLevelsM: number[];
|
|
203
204
|
allowableSupportLoadKnPerM: number;
|
|
204
205
|
requiredPassiveSafetyFactor?: number;
|
|
@@ -212,16 +213,30 @@ export interface FemDesignCheck {
|
|
|
212
213
|
unit?: string;
|
|
213
214
|
status: 'accepted' | 'blocked';
|
|
214
215
|
}
|
|
216
|
+
export interface FemExcavationSupportStageCheck {
|
|
217
|
+
id: string;
|
|
218
|
+
stageDepthM: number;
|
|
219
|
+
installedSupportLevelsM: number[];
|
|
220
|
+
activeEarthPressureKnPerM: number;
|
|
221
|
+
supportReactionDemandKnPerM: number;
|
|
222
|
+
supportCapacitySafetyFactor: number;
|
|
223
|
+
blockerCodes: string[];
|
|
224
|
+
status: 'accepted' | 'blocked';
|
|
225
|
+
}
|
|
215
226
|
export interface FemExcavationSupportDesignCheckResult {
|
|
216
227
|
schemaVersion: 'fem-excavation-support-design-check.v1';
|
|
217
228
|
method: 'rankine-earth-pressure-support-screening';
|
|
229
|
+
designScope: 'screening-only-not-structural-design';
|
|
218
230
|
activeEarthPressureKnPerM: number;
|
|
219
231
|
passiveToeResistanceKnPerM: number;
|
|
220
232
|
supportDemandKnPerM: number;
|
|
221
233
|
supportCapacitySafetyFactor: number;
|
|
222
234
|
passiveSafetyFactor: number;
|
|
223
235
|
basalHeaveSafetyFactor: number;
|
|
236
|
+
stageChecks: FemExcavationSupportStageCheck[];
|
|
224
237
|
checks: FemDesignCheck[];
|
|
238
|
+
acceptanceBlockers: string[];
|
|
239
|
+
productionBlockers: string[];
|
|
225
240
|
status: 'accepted' | 'blocked';
|
|
226
241
|
policy: FemConvergencePolicy;
|
|
227
242
|
}
|
|
@@ -253,6 +268,51 @@ export interface FemReviewerApprovalValidation {
|
|
|
253
268
|
blockerCodes: string[];
|
|
254
269
|
warnings: string[];
|
|
255
270
|
}
|
|
271
|
+
export type FemExternalBenchmarkSourceType = 'published-source' | 'commercial-solver' | 'open-source-solver';
|
|
272
|
+
export type FemExternalBenchmarkToleranceType = 'absolute' | 'relative' | 'absolute-or-relative';
|
|
273
|
+
export interface FemExternalBenchmarkPublishedCitation {
|
|
274
|
+
title: string;
|
|
275
|
+
authors: string[];
|
|
276
|
+
year: number;
|
|
277
|
+
publication?: string;
|
|
278
|
+
doi?: string;
|
|
279
|
+
url?: string;
|
|
280
|
+
section?: string;
|
|
281
|
+
}
|
|
282
|
+
export interface FemExternalBenchmarkReferenceSolverCitation {
|
|
283
|
+
name: string;
|
|
284
|
+
version: string;
|
|
285
|
+
vendor?: string;
|
|
286
|
+
analysisProcedure?: string;
|
|
287
|
+
elementType?: string;
|
|
288
|
+
}
|
|
289
|
+
export interface FemExternalBenchmarkReference {
|
|
290
|
+
id: string;
|
|
291
|
+
sourceType: FemExternalBenchmarkSourceType;
|
|
292
|
+
label: string;
|
|
293
|
+
citation: string;
|
|
294
|
+
publishedSource?: FemExternalBenchmarkPublishedCitation;
|
|
295
|
+
referenceSolver?: FemExternalBenchmarkReferenceSolverCitation;
|
|
296
|
+
}
|
|
297
|
+
export interface FemExternalBenchmarkQuantityRequirement {
|
|
298
|
+
id: string;
|
|
299
|
+
feature: FemEngineeringKernelFeature;
|
|
300
|
+
quantity: string;
|
|
301
|
+
unit: string;
|
|
302
|
+
tolerance: number;
|
|
303
|
+
toleranceType: FemExternalBenchmarkToleranceType;
|
|
304
|
+
requiredReferenceSourceTypes: FemExternalBenchmarkSourceType[];
|
|
305
|
+
}
|
|
306
|
+
export interface FemExternalBenchmarkAcceptanceContract {
|
|
307
|
+
schemaVersion: 'fem-external-benchmark-acceptance-metadata.v1';
|
|
308
|
+
status: 'metadata-ready' | 'blocked';
|
|
309
|
+
productionReadinessBlocked: boolean;
|
|
310
|
+
requiredSourceTypes: FemExternalBenchmarkSourceType[];
|
|
311
|
+
references: FemExternalBenchmarkReference[];
|
|
312
|
+
requiredQuantities: FemExternalBenchmarkQuantityRequirement[];
|
|
313
|
+
blockerCodes: string[];
|
|
314
|
+
acceptanceStatement: string;
|
|
315
|
+
}
|
|
256
316
|
export interface FemEngineeringBenchmarkCase {
|
|
257
317
|
id: string;
|
|
258
318
|
feature: FemEngineeringKernelFeature;
|
|
@@ -271,10 +331,15 @@ export interface FemEngineeringEvidenceReport {
|
|
|
271
331
|
productionReady: false;
|
|
272
332
|
verifiedFeatures: FemEngineeringKernelFeature[];
|
|
273
333
|
benchmarks: FemEngineeringBenchmarkCase[];
|
|
334
|
+
externalBenchmarkAcceptance: FemExternalBenchmarkAcceptanceContract;
|
|
274
335
|
convergencePolicy: FemConvergencePolicy;
|
|
275
336
|
remainingProductionBlockers: string[];
|
|
276
337
|
releasePositioning: string;
|
|
277
338
|
}
|
|
339
|
+
export declare function buildFemExternalBenchmarkAcceptanceContract(options?: {
|
|
340
|
+
references?: readonly FemExternalBenchmarkReference[];
|
|
341
|
+
requiredQuantities?: readonly FemExternalBenchmarkQuantityRequirement[];
|
|
342
|
+
}): FemExternalBenchmarkAcceptanceContract;
|
|
278
343
|
export declare function evaluateFemTolerance(quantity: string, actual: number, expected: number, absoluteTolerance: number, options?: {
|
|
279
344
|
relativeTolerance?: number;
|
|
280
345
|
unit?: string;
|
|
@@ -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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"}
|
|
@@ -8,6 +8,66 @@ export const DEFAULT_FEM_CONVERGENCE_POLICY = {
|
|
|
8
8
|
maxIterations: 40,
|
|
9
9
|
minAcceptedSteps: 3,
|
|
10
10
|
};
|
|
11
|
+
const REQUIRED_EXTERNAL_BENCHMARK_SOURCE_TYPES = [
|
|
12
|
+
'published-source',
|
|
13
|
+
'commercial-solver',
|
|
14
|
+
];
|
|
15
|
+
const DEFAULT_EXTERNAL_BENCHMARK_REQUIRED_QUANTITIES = [
|
|
16
|
+
{
|
|
17
|
+
id: 'nonlinear-plane-strain-displacement-envelope',
|
|
18
|
+
feature: 'coupled-nonlinear-plane-strain',
|
|
19
|
+
quantity: 'nodal displacement envelope',
|
|
20
|
+
unit: 'mm',
|
|
21
|
+
tolerance: 0.05,
|
|
22
|
+
toleranceType: 'relative',
|
|
23
|
+
requiredReferenceSourceTypes: REQUIRED_EXTERNAL_BENCHMARK_SOURCE_TYPES,
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
id: 'global-reaction-force-balance',
|
|
27
|
+
feature: 'solver-convergence-and-tolerance',
|
|
28
|
+
quantity: 'reaction force and applied load balance',
|
|
29
|
+
unit: 'kN',
|
|
30
|
+
tolerance: 0.02,
|
|
31
|
+
toleranceType: 'relative',
|
|
32
|
+
requiredReferenceSourceTypes: REQUIRED_EXTERNAL_BENCHMARK_SOURCE_TYPES,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
id: 'consolidation-settlement-time-curve',
|
|
36
|
+
feature: 'consolidation',
|
|
37
|
+
quantity: 'settlement-time curve and degree of consolidation',
|
|
38
|
+
unit: 'mm, ratio',
|
|
39
|
+
tolerance: 0.02,
|
|
40
|
+
toleranceType: 'absolute-or-relative',
|
|
41
|
+
requiredReferenceSourceTypes: REQUIRED_EXTERNAL_BENCHMARK_SOURCE_TYPES,
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: 'biot-pore-pressure-dissipation',
|
|
45
|
+
feature: 'coupled-biot-plane-strain',
|
|
46
|
+
quantity: 'excess pore-pressure dissipation curve',
|
|
47
|
+
unit: 'kPa',
|
|
48
|
+
tolerance: 0.05,
|
|
49
|
+
toleranceType: 'relative',
|
|
50
|
+
requiredReferenceSourceTypes: REQUIRED_EXTERNAL_BENCHMARK_SOURCE_TYPES,
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: 'seepage-head-flux-gradient',
|
|
54
|
+
feature: 'seepage-pore-pressure-coupling',
|
|
55
|
+
quantity: 'hydraulic head, flux, and gradient checks',
|
|
56
|
+
unit: 'm, m3/s, ratio',
|
|
57
|
+
tolerance: 0.03,
|
|
58
|
+
toleranceType: 'relative',
|
|
59
|
+
requiredReferenceSourceTypes: REQUIRED_EXTERNAL_BENCHMARK_SOURCE_TYPES,
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: 'support-reaction-and-stability-factors',
|
|
63
|
+
feature: 'support-design',
|
|
64
|
+
quantity: 'support reaction and stability safety-factor checks',
|
|
65
|
+
unit: 'kN, ratio',
|
|
66
|
+
tolerance: 0.05,
|
|
67
|
+
toleranceType: 'relative',
|
|
68
|
+
requiredReferenceSourceTypes: REQUIRED_EXTERNAL_BENCHMARK_SOURCE_TYPES,
|
|
69
|
+
},
|
|
70
|
+
];
|
|
11
71
|
function degToRad(degrees) {
|
|
12
72
|
return (degrees * Math.PI) / 180;
|
|
13
73
|
}
|
|
@@ -25,6 +85,144 @@ function round(value, digits = 6) {
|
|
|
25
85
|
const scale = 10 ** digits;
|
|
26
86
|
return Math.round(value * scale) / scale;
|
|
27
87
|
}
|
|
88
|
+
function isNonEmptyString(value) {
|
|
89
|
+
return typeof value === 'string' && value.trim().length > 0;
|
|
90
|
+
}
|
|
91
|
+
function hasPublishedCitation(citation) {
|
|
92
|
+
return citation != null &&
|
|
93
|
+
isNonEmptyString(citation.title) &&
|
|
94
|
+
Array.isArray(citation.authors) &&
|
|
95
|
+
citation.authors.some((author) => isNonEmptyString(author)) &&
|
|
96
|
+
Number.isInteger(citation.year) &&
|
|
97
|
+
citation.year >= 1900 &&
|
|
98
|
+
(isNonEmptyString(citation.publication) ||
|
|
99
|
+
isNonEmptyString(citation.doi) ||
|
|
100
|
+
isNonEmptyString(citation.url));
|
|
101
|
+
}
|
|
102
|
+
function hasReferenceSolverCitation(citation) {
|
|
103
|
+
return citation != null &&
|
|
104
|
+
isNonEmptyString(citation.name) &&
|
|
105
|
+
isNonEmptyString(citation.version);
|
|
106
|
+
}
|
|
107
|
+
function copyExternalBenchmarkReference(reference) {
|
|
108
|
+
return {
|
|
109
|
+
...reference,
|
|
110
|
+
...(reference.publishedSource
|
|
111
|
+
? {
|
|
112
|
+
publishedSource: {
|
|
113
|
+
...reference.publishedSource,
|
|
114
|
+
authors: [...reference.publishedSource.authors],
|
|
115
|
+
},
|
|
116
|
+
}
|
|
117
|
+
: {}),
|
|
118
|
+
...(reference.referenceSolver
|
|
119
|
+
? {
|
|
120
|
+
referenceSolver: { ...reference.referenceSolver },
|
|
121
|
+
}
|
|
122
|
+
: {}),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
function copyExternalBenchmarkQuantityRequirement(requirement) {
|
|
126
|
+
return {
|
|
127
|
+
...requirement,
|
|
128
|
+
requiredReferenceSourceTypes: [...new Set(requirement.requiredReferenceSourceTypes)],
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
export function buildFemExternalBenchmarkAcceptanceContract(options = {}) {
|
|
132
|
+
const references = (options.references ?? []).map(copyExternalBenchmarkReference);
|
|
133
|
+
const requiredQuantities = (options.requiredQuantities ?? DEFAULT_EXTERNAL_BENCHMARK_REQUIRED_QUANTITIES)
|
|
134
|
+
.map(copyExternalBenchmarkQuantityRequirement);
|
|
135
|
+
const blockerCodes = [];
|
|
136
|
+
if (references.length === 0) {
|
|
137
|
+
blockerCodes.push('external-benchmark-reference-corpus-missing');
|
|
138
|
+
}
|
|
139
|
+
for (const [index, reference] of references.entries()) {
|
|
140
|
+
const referenceCode = isNonEmptyString(reference.id)
|
|
141
|
+
? reference.id
|
|
142
|
+
: String(index);
|
|
143
|
+
if (!isNonEmptyString(reference.id)) {
|
|
144
|
+
blockerCodes.push(`external-benchmark.references.${index}.id-missing`);
|
|
145
|
+
}
|
|
146
|
+
if (!REQUIRED_EXTERNAL_BENCHMARK_SOURCE_TYPES.includes(reference.sourceType) &&
|
|
147
|
+
reference.sourceType !== 'open-source-solver') {
|
|
148
|
+
blockerCodes.push(`external-benchmark.references.${referenceCode}.source-type-invalid`);
|
|
149
|
+
}
|
|
150
|
+
if (!isNonEmptyString(reference.label)) {
|
|
151
|
+
blockerCodes.push(`external-benchmark.references.${referenceCode}.label-missing`);
|
|
152
|
+
}
|
|
153
|
+
if (!isNonEmptyString(reference.citation)) {
|
|
154
|
+
blockerCodes.push(`external-benchmark.references.${referenceCode}.citation-missing`);
|
|
155
|
+
}
|
|
156
|
+
if (reference.sourceType === 'published-source' && !hasPublishedCitation(reference.publishedSource)) {
|
|
157
|
+
blockerCodes.push(`external-benchmark.references.${referenceCode}.published-source-citation-missing`);
|
|
158
|
+
}
|
|
159
|
+
if ((reference.sourceType === 'commercial-solver' || reference.sourceType === 'open-source-solver') &&
|
|
160
|
+
!hasReferenceSolverCitation(reference.referenceSolver)) {
|
|
161
|
+
blockerCodes.push(`external-benchmark.references.${referenceCode}.reference-solver-citation-missing`);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
const hasPublishedReference = references.some((reference) => reference.sourceType === 'published-source' &&
|
|
165
|
+
isNonEmptyString(reference.citation) &&
|
|
166
|
+
hasPublishedCitation(reference.publishedSource));
|
|
167
|
+
const hasReferenceSolver = references.some((reference) => (reference.sourceType === 'commercial-solver' || reference.sourceType === 'open-source-solver') &&
|
|
168
|
+
isNonEmptyString(reference.citation) &&
|
|
169
|
+
hasReferenceSolverCitation(reference.referenceSolver));
|
|
170
|
+
if (!hasPublishedReference) {
|
|
171
|
+
blockerCodes.push('external-benchmark-published-source-citation-missing');
|
|
172
|
+
}
|
|
173
|
+
if (!hasReferenceSolver) {
|
|
174
|
+
blockerCodes.push('external-benchmark-reference-solver-citation-missing');
|
|
175
|
+
}
|
|
176
|
+
if (requiredQuantities.length === 0) {
|
|
177
|
+
blockerCodes.push('external-benchmark-required-quantities-missing');
|
|
178
|
+
}
|
|
179
|
+
for (const [index, requirement] of requiredQuantities.entries()) {
|
|
180
|
+
const quantityCode = isNonEmptyString(requirement.id)
|
|
181
|
+
? requirement.id
|
|
182
|
+
: String(index);
|
|
183
|
+
if (!isNonEmptyString(requirement.id)) {
|
|
184
|
+
blockerCodes.push(`external-benchmark.required-quantities.${index}.id-missing`);
|
|
185
|
+
}
|
|
186
|
+
if (!isNonEmptyString(requirement.quantity)) {
|
|
187
|
+
blockerCodes.push(`external-benchmark.required-quantities.${quantityCode}.quantity-missing`);
|
|
188
|
+
}
|
|
189
|
+
if (!isNonEmptyString(requirement.unit)) {
|
|
190
|
+
blockerCodes.push(`external-benchmark.required-quantities.${quantityCode}.unit-missing`);
|
|
191
|
+
}
|
|
192
|
+
if (!Number.isFinite(requirement.tolerance) || requirement.tolerance < 0) {
|
|
193
|
+
blockerCodes.push(`external-benchmark.required-quantities.${quantityCode}.tolerance-invalid`);
|
|
194
|
+
}
|
|
195
|
+
if (requirement.toleranceType !== 'absolute' &&
|
|
196
|
+
requirement.toleranceType !== 'relative' &&
|
|
197
|
+
requirement.toleranceType !== 'absolute-or-relative') {
|
|
198
|
+
blockerCodes.push(`external-benchmark.required-quantities.${quantityCode}.tolerance-type-invalid`);
|
|
199
|
+
}
|
|
200
|
+
if (!Array.isArray(requirement.requiredReferenceSourceTypes) ||
|
|
201
|
+
requirement.requiredReferenceSourceTypes.length === 0) {
|
|
202
|
+
blockerCodes.push(`external-benchmark.required-quantities.${quantityCode}.source-types-missing`);
|
|
203
|
+
}
|
|
204
|
+
else if (references.length > 0) {
|
|
205
|
+
const missingSourceTypes = requirement.requiredReferenceSourceTypes.filter((sourceType) => !references.some((reference) => reference.sourceType === sourceType));
|
|
206
|
+
if (missingSourceTypes.length > 0) {
|
|
207
|
+
blockerCodes.push(`external-benchmark.required-quantities.${quantityCode}.reference-source-types-missing`);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
const uniqueBlockerCodes = [...new Set(blockerCodes)];
|
|
212
|
+
const productionReadinessBlocked = uniqueBlockerCodes.length > 0;
|
|
213
|
+
return {
|
|
214
|
+
schemaVersion: 'fem-external-benchmark-acceptance-metadata.v1',
|
|
215
|
+
status: productionReadinessBlocked ? 'blocked' : 'metadata-ready',
|
|
216
|
+
productionReadinessBlocked,
|
|
217
|
+
requiredSourceTypes: [...REQUIRED_EXTERNAL_BENCHMARK_SOURCE_TYPES],
|
|
218
|
+
references,
|
|
219
|
+
requiredQuantities,
|
|
220
|
+
blockerCodes: uniqueBlockerCodes,
|
|
221
|
+
acceptanceStatement: productionReadinessBlocked
|
|
222
|
+
? 'External benchmark metadata is incomplete; production readiness remains blocked until published source citations, reference-solver citations, and required quantity tolerances are registered.'
|
|
223
|
+
: 'External benchmark metadata is ready for independent result comparison; this does not approve production FEM design use.',
|
|
224
|
+
};
|
|
225
|
+
}
|
|
28
226
|
export function evaluateFemTolerance(quantity, actual, expected, absoluteTolerance, options = {}) {
|
|
29
227
|
const error = Math.abs(actual - expected);
|
|
30
228
|
const relativeError = Math.abs(expected) > 0 ? error / Math.abs(expected) : error;
|
|
@@ -494,13 +692,32 @@ export function runExcavationSupportDesignCheck(input) {
|
|
|
494
692
|
if (!Number.isFinite(input.frictionAngleDeg) || input.frictionAngleDeg <= 0 || input.frictionAngleDeg >= 50) {
|
|
495
693
|
throw new Error('frictionAngleDeg must be finite and between 0 and 50 degrees.');
|
|
496
694
|
}
|
|
695
|
+
if (!Array.isArray(input.supportLevelsM)) {
|
|
696
|
+
throw new Error('supportLevelsM must be an array of finite support depths.');
|
|
697
|
+
}
|
|
698
|
+
for (const [index, level] of input.supportLevelsM.entries()) {
|
|
699
|
+
if (!Number.isFinite(level) || level < 0 || level > input.excavationDepthM) {
|
|
700
|
+
throw new Error(`supportLevelsM.${index} must be finite and between 0 and excavationDepthM.`);
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
const stageDepthsM = input.stageDepthsM ?? [input.excavationDepthM];
|
|
704
|
+
if (!Array.isArray(stageDepthsM) || stageDepthsM.length === 0) {
|
|
705
|
+
throw new Error('stageDepthsM must contain at least one staged excavation depth when provided.');
|
|
706
|
+
}
|
|
707
|
+
let previousStageDepthM = 0;
|
|
708
|
+
for (const [index, stageDepthM] of stageDepthsM.entries()) {
|
|
709
|
+
if (!Number.isFinite(stageDepthM) || stageDepthM <= previousStageDepthM || stageDepthM > input.excavationDepthM) {
|
|
710
|
+
throw new Error(`stageDepthsM.${index} must be finite, increasing, and no deeper than excavationDepthM.`);
|
|
711
|
+
}
|
|
712
|
+
previousStageDepthM = stageDepthM;
|
|
713
|
+
}
|
|
497
714
|
const policy = input.policy ?? DEFAULT_FEM_CONVERGENCE_POLICY;
|
|
498
715
|
const surchargeKpa = input.surchargeKpa ?? 0;
|
|
499
716
|
const waterTableDepthM = input.waterTableDepthM ?? 999;
|
|
500
|
-
const
|
|
501
|
-
wallHeight:
|
|
717
|
+
const activeForceForDepth = (depthM) => calculateLateralEarthPressure({
|
|
718
|
+
wallHeight: depthM,
|
|
502
719
|
soilLayers: [{
|
|
503
|
-
thickness:
|
|
720
|
+
thickness: depthM,
|
|
504
721
|
unitWeight: input.unitWeightKnM3,
|
|
505
722
|
cohesion: input.cohesionKpa,
|
|
506
723
|
frictionAngle: input.frictionAngleDeg,
|
|
@@ -512,7 +729,8 @@ export function runExcavationSupportDesignCheck(input) {
|
|
|
512
729
|
wallInclination: 0,
|
|
513
730
|
waterTableDepth: waterTableDepthM,
|
|
514
731
|
surcharge: surchargeKpa,
|
|
515
|
-
});
|
|
732
|
+
}).totalForce;
|
|
733
|
+
const activeTotalForce = activeForceForDepth(input.excavationDepthM);
|
|
516
734
|
const embedmentM = input.wallToeDepthM - input.excavationDepthM;
|
|
517
735
|
const passive = calculateLateralEarthPressure({
|
|
518
736
|
wallHeight: embedmentM,
|
|
@@ -530,19 +748,49 @@ export function runExcavationSupportDesignCheck(input) {
|
|
|
530
748
|
waterTableDepth: 999,
|
|
531
749
|
surcharge: 0,
|
|
532
750
|
});
|
|
533
|
-
const
|
|
751
|
+
const supportLevelsM = [...new Set(input.supportLevelsM)].sort((a, b) => a - b);
|
|
752
|
+
const supportCount = supportLevelsM.length;
|
|
534
753
|
const supportDemandKnPerM = supportCount > 0
|
|
535
|
-
?
|
|
536
|
-
:
|
|
754
|
+
? activeTotalForce / supportCount
|
|
755
|
+
: activeTotalForce;
|
|
537
756
|
const supportCapacitySafetyFactor = supportCount > 0
|
|
538
757
|
? input.allowableSupportLoadKnPerM / Math.max(supportDemandKnPerM, 1e-9)
|
|
539
758
|
: 0;
|
|
540
|
-
const passiveSafetyFactor = passive.totalForce / Math.max(
|
|
759
|
+
const passiveSafetyFactor = passive.totalForce / Math.max(activeTotalForce, 1e-9);
|
|
541
760
|
const basalHeaveSafetyFactor = input.cohesionKpa > 0
|
|
542
761
|
? (5.14 * input.cohesionKpa) / Math.max(input.unitWeightKnM3 * input.excavationDepthM + surchargeKpa, 1e-9)
|
|
543
762
|
: 0;
|
|
544
763
|
const requiredPassiveSafetyFactor = input.requiredPassiveSafetyFactor ?? 1.5;
|
|
545
764
|
const requiredBasalHeaveSafetyFactor = input.requiredBasalHeaveSafetyFactor ?? 1.5;
|
|
765
|
+
const stagedSequenceCoversFinalDepth = Math.abs(stageDepthsM[stageDepthsM.length - 1] - input.excavationDepthM) <= 1e-9;
|
|
766
|
+
const stageChecks = stageDepthsM.map((stageDepthM, index) => {
|
|
767
|
+
const installedSupportLevelsM = supportLevelsM.filter((level) => level <= stageDepthM);
|
|
768
|
+
const activeEarthPressureKnPerM = activeForceForDepth(stageDepthM);
|
|
769
|
+
const supportReactionDemandKnPerM = installedSupportLevelsM.length > 0
|
|
770
|
+
? activeEarthPressureKnPerM / installedSupportLevelsM.length
|
|
771
|
+
: activeEarthPressureKnPerM;
|
|
772
|
+
const stageSupportCapacitySafetyFactor = installedSupportLevelsM.length > 0
|
|
773
|
+
? input.allowableSupportLoadKnPerM / Math.max(supportReactionDemandKnPerM, 1e-9)
|
|
774
|
+
: 0;
|
|
775
|
+
const blockerCodes = [];
|
|
776
|
+
if (installedSupportLevelsM.length === 0)
|
|
777
|
+
blockerCodes.push('support-level-missing');
|
|
778
|
+
if (stageSupportCapacitySafetyFactor < 1)
|
|
779
|
+
blockerCodes.push('support-reaction-demand-exceeds-allowable');
|
|
780
|
+
if (index === stageDepthsM.length - 1 && !stagedSequenceCoversFinalDepth) {
|
|
781
|
+
blockerCodes.push('final-stage-depth-mismatch');
|
|
782
|
+
}
|
|
783
|
+
return {
|
|
784
|
+
id: `stage-${index + 1}-support-reaction`,
|
|
785
|
+
stageDepthM: round(stageDepthM, 4),
|
|
786
|
+
installedSupportLevelsM: installedSupportLevelsM.map((level) => round(level, 4)),
|
|
787
|
+
activeEarthPressureKnPerM: round(activeEarthPressureKnPerM, 4),
|
|
788
|
+
supportReactionDemandKnPerM: round(supportReactionDemandKnPerM, 4),
|
|
789
|
+
supportCapacitySafetyFactor: round(stageSupportCapacitySafetyFactor, 4),
|
|
790
|
+
blockerCodes,
|
|
791
|
+
status: blockerCodes.length === 0 ? 'accepted' : 'blocked',
|
|
792
|
+
};
|
|
793
|
+
});
|
|
546
794
|
const checks = [
|
|
547
795
|
{
|
|
548
796
|
id: 'support-capacity',
|
|
@@ -562,17 +810,38 @@ export function runExcavationSupportDesignCheck(input) {
|
|
|
562
810
|
required: requiredBasalHeaveSafetyFactor,
|
|
563
811
|
status: basalHeaveSafetyFactor >= requiredBasalHeaveSafetyFactor ? 'accepted' : 'blocked',
|
|
564
812
|
},
|
|
813
|
+
{
|
|
814
|
+
id: 'staged-support-reaction-sequence',
|
|
815
|
+
actual: stageChecks.every((check) => check.status === 'accepted') && stagedSequenceCoversFinalDepth ? 1 : 0,
|
|
816
|
+
required: 1,
|
|
817
|
+
status: stageChecks.every((check) => check.status === 'accepted') && stagedSequenceCoversFinalDepth
|
|
818
|
+
? 'accepted'
|
|
819
|
+
: 'blocked',
|
|
820
|
+
},
|
|
821
|
+
];
|
|
822
|
+
const acceptanceBlockers = [
|
|
823
|
+
...checks
|
|
824
|
+
.filter((check) => check.status === 'blocked')
|
|
825
|
+
.map((check) => `support-design.${check.id}`),
|
|
826
|
+
...stageChecks.flatMap((check) => check.blockerCodes.map((code) => `${check.id}.${code}`)),
|
|
565
827
|
];
|
|
566
828
|
return {
|
|
567
829
|
schemaVersion: 'fem-excavation-support-design-check.v1',
|
|
568
830
|
method: 'rankine-earth-pressure-support-screening',
|
|
569
|
-
|
|
831
|
+
designScope: 'screening-only-not-structural-design',
|
|
832
|
+
activeEarthPressureKnPerM: round(activeTotalForce, 4),
|
|
570
833
|
passiveToeResistanceKnPerM: round(passive.totalForce, 4),
|
|
571
834
|
supportDemandKnPerM: round(supportDemandKnPerM, 4),
|
|
572
835
|
supportCapacitySafetyFactor: round(supportCapacitySafetyFactor, 4),
|
|
573
836
|
passiveSafetyFactor: round(passiveSafetyFactor, 4),
|
|
574
837
|
basalHeaveSafetyFactor: round(basalHeaveSafetyFactor, 4),
|
|
838
|
+
stageChecks,
|
|
575
839
|
checks,
|
|
840
|
+
acceptanceBlockers: [...new Set(acceptanceBlockers)],
|
|
841
|
+
productionBlockers: [
|
|
842
|
+
'jurisdiction-specific-wall-strut-anchor-structural-design-not-implemented',
|
|
843
|
+
'screening-support-reaction-check-is-not-a-design-code-acceptance',
|
|
844
|
+
],
|
|
576
845
|
status: checks.every((check) => check.status === 'accepted') ? 'accepted' : 'blocked',
|
|
577
846
|
policy,
|
|
578
847
|
};
|
|
@@ -1092,6 +1361,7 @@ export function runFemEngineeringEvidenceSuite(policy = DEFAULT_FEM_CONVERGENCE_
|
|
|
1092
1361
|
cohesionKpa: 45,
|
|
1093
1362
|
surchargeKpa: 10,
|
|
1094
1363
|
waterTableDepthM: 99,
|
|
1364
|
+
stageDepthsM: [3, 6, 8],
|
|
1095
1365
|
supportLevelsM: [1, 4],
|
|
1096
1366
|
allowableSupportLoadKnPerM: 300,
|
|
1097
1367
|
requiredPassiveSafetyFactor: 1.5,
|
|
@@ -1099,6 +1369,11 @@ export function runFemEngineeringEvidenceSuite(policy = DEFAULT_FEM_CONVERGENCE_
|
|
|
1099
1369
|
policy,
|
|
1100
1370
|
});
|
|
1101
1371
|
benchmarks.push(benchmark('excavation-support-capacity-screening', 'support-design', 'internal-balance', 'supportStatusAccepted', support.status === 'accepted' ? 1 : 0, 1, 0, 'Support screening must pass support capacity, passive toe resistance, and basal-heave checks for the controlled fixture.'));
|
|
1372
|
+
benchmarks.push(benchmark('excavation-support-staged-reaction-sequence', 'support-design', 'internal-balance', 'stageSupportChecksAccepted', support.stageChecks.every((check) => check.status === 'accepted') &&
|
|
1373
|
+
support.acceptanceBlockers.length === 0 &&
|
|
1374
|
+
support.productionBlockers.includes('jurisdiction-specific-wall-strut-anchor-structural-design-not-implemented')
|
|
1375
|
+
? 1
|
|
1376
|
+
: 0, 1, 0, 'Support screening must tie support reaction demand to staged excavation depths while preserving jurisdiction-specific structural design as a production blocker.'));
|
|
1102
1377
|
const reviewerValidation = validateFemReviewerApprovalRecord({
|
|
1103
1378
|
schemaVersion: 'fem-reviewer-approval.v1',
|
|
1104
1379
|
recordId: 'review-fem-001',
|
|
@@ -1126,12 +1401,14 @@ export function runFemEngineeringEvidenceSuite(policy = DEFAULT_FEM_CONVERGENCE_
|
|
|
1126
1401
|
.filter((item) => item.status === 'accepted')
|
|
1127
1402
|
.map((item) => item.feature))];
|
|
1128
1403
|
const status = benchmarks.every((item) => item.status === 'accepted') ? 'kernel-verified' : 'blocked';
|
|
1404
|
+
const externalBenchmarkAcceptance = buildFemExternalBenchmarkAcceptanceContract();
|
|
1129
1405
|
return {
|
|
1130
1406
|
schemaVersion: 'fem-engineering-evidence.v1',
|
|
1131
1407
|
status,
|
|
1132
1408
|
productionReady: false,
|
|
1133
1409
|
verifiedFeatures,
|
|
1134
1410
|
benchmarks,
|
|
1411
|
+
externalBenchmarkAcceptance,
|
|
1135
1412
|
convergencePolicy: policy,
|
|
1136
1413
|
remainingProductionBlockers: [
|
|
1137
1414
|
'production-sparse-fem-solver-and-2d-3d-result-route-not-integrated-with-these-kernels',
|
|
@@ -1139,6 +1416,7 @@ export function runFemEngineeringEvidenceSuite(policy = DEFAULT_FEM_CONVERGENCE_
|
|
|
1139
1416
|
'biot-u-p-route-backed-preview-is-not-production-sparse-solver',
|
|
1140
1417
|
'support-design-is-screening-level-and-not-jurisdiction-specific-structural-design',
|
|
1141
1418
|
'published-commercial-cross-solver-benchmark-corpus-not-approved',
|
|
1419
|
+
...externalBenchmarkAcceptance.blockerCodes,
|
|
1142
1420
|
'production-design-approval-scope-fails-closed-until-production-acceptance',
|
|
1143
1421
|
'reviewer-approval-record-validator-exists-but-cli-run-does-not-enforce-persistence-for-every-run',
|
|
1144
1422
|
],
|