@geotechcli/core 0.4.95 → 0.4.97

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.
Files changed (50) hide show
  1. package/dist/fem/engineering-evidence.d.ts +60 -0
  2. package/dist/fem/engineering-evidence.d.ts.map +1 -1
  3. package/dist/fem/engineering-evidence.js +188 -0
  4. package/dist/fem/engineering-evidence.js.map +1 -1
  5. package/dist/fem/index.d.ts +2 -1
  6. package/dist/fem/index.d.ts.map +1 -1
  7. package/dist/fem/index.js +2 -1
  8. package/dist/fem/index.js.map +1 -1
  9. package/dist/fem/nonlinear-column-solver.d.ts +6 -0
  10. package/dist/fem/nonlinear-column-solver.d.ts.map +1 -0
  11. package/dist/fem/nonlinear-column-solver.js +231 -0
  12. package/dist/fem/nonlinear-column-solver.js.map +1 -0
  13. package/dist/fem/production-readiness.js +3 -3
  14. package/dist/fem/production-readiness.js.map +1 -1
  15. package/dist/fem/types.d.ts +6 -1
  16. package/dist/fem/types.d.ts.map +1 -1
  17. package/dist/fem/validation.d.ts.map +1 -1
  18. package/dist/fem/validation.js +26 -6
  19. package/dist/fem/validation.js.map +1 -1
  20. package/dist/ingest/document-evidence-packet.d.ts +6 -6
  21. package/dist/ingest/job-worker.d.ts.map +1 -1
  22. package/dist/ingest/job-worker.js +4 -0
  23. package/dist/ingest/job-worker.js.map +1 -1
  24. package/dist/llm/providers/anthropic.d.ts.map +1 -1
  25. package/dist/llm/providers/anthropic.js +3 -2
  26. package/dist/llm/providers/anthropic.js.map +1 -1
  27. package/dist/llm/providers/hosted-beta.d.ts.map +1 -1
  28. package/dist/llm/providers/hosted-beta.js +3 -8
  29. package/dist/llm/providers/hosted-beta.js.map +1 -1
  30. package/dist/llm/providers/huggingface.d.ts.map +1 -1
  31. package/dist/llm/providers/huggingface.js +3 -2
  32. package/dist/llm/providers/huggingface.js.map +1 -1
  33. package/dist/llm/providers/openai-compatible.d.ts.map +1 -1
  34. package/dist/llm/providers/openai-compatible.js +3 -2
  35. package/dist/llm/providers/openai-compatible.js.map +1 -1
  36. package/dist/llm/providers/response-json.d.ts +6 -0
  37. package/dist/llm/providers/response-json.d.ts.map +1 -0
  38. package/dist/llm/providers/response-json.js +27 -0
  39. package/dist/llm/providers/response-json.js.map +1 -0
  40. package/dist/llm/providers/zhipu.d.ts.map +1 -1
  41. package/dist/llm/providers/zhipu.js +3 -2
  42. package/dist/llm/providers/zhipu.js.map +1 -1
  43. package/dist/meta/metadata.json +1 -1
  44. package/dist/vision/geotech-document.d.ts.map +1 -1
  45. package/dist/vision/geotech-document.js +4 -0
  46. package/dist/vision/geotech-document.js.map +1 -1
  47. package/dist/vision/index.d.ts.map +1 -1
  48. package/dist/vision/index.js +4 -0
  49. package/dist/vision/index.js.map +1 -1
  50. package/package.json +1 -1
@@ -0,0 +1,231 @@
1
+ import { runDruckerPragerMaterialPoint, runTerzaghiConsolidationTimeStepper, } from './engineering-evidence.js';
2
+ import { runBuiltinStagedSettlementConsolidationDemo } from './demo.js';
3
+ import { validateFemAnalysisCase } from './validation.js';
4
+ function round(value, digits = 6) {
5
+ const factor = 10 ** digits;
6
+ return Math.round(value * factor) / factor;
7
+ }
8
+ function nonNegativeFinite(value, fallback) {
9
+ return Number.isFinite(value) && value >= 0 ? value : fallback;
10
+ }
11
+ function buildUniformAxialStrainIncrements(axialStrain, increments) {
12
+ const step = axialStrain / increments;
13
+ return Array.from({ length: increments }, () => [step, 0, 0]);
14
+ }
15
+ function mobilizedStrengthRatio(materialPoint) {
16
+ const step = materialPoint.finalStep;
17
+ const denominator = Math.max(materialPoint.mapping.rho * step.principalEffectiveStressKpa.reduce((total, value) => total + value, 0) +
18
+ materialPoint.mapping.compressionInterceptKpa, 1e-9);
19
+ return Math.min(1, Math.max(0, step.deviatoricStressNormKpa / denominator));
20
+ }
21
+ function updateEnvelopeDatasets(datasets, updates) {
22
+ if (!datasets)
23
+ return undefined;
24
+ return datasets.map((dataset) => {
25
+ const value = updates[dataset.fieldId];
26
+ if (dataset.source !== 'envelope' || value == null)
27
+ return dataset;
28
+ return {
29
+ ...dataset,
30
+ values: [round(value, 6)],
31
+ };
32
+ });
33
+ }
34
+ function buildMaterialPoint(caseFile, axialStrain, incrementCount, initialPrincipalEffectiveStressKpa, policy) {
35
+ const material = caseFile.materials[0];
36
+ const poissonRatio = material.poissonRatio;
37
+ const columnElasticModulusKpa = material.constrainedModulusKpa
38
+ ? material.constrainedModulusKpa * ((1 + poissonRatio) * (1 - 2 * poissonRatio)) / (1 - poissonRatio)
39
+ : material.elasticModulusKpa;
40
+ return runDruckerPragerMaterialPoint({
41
+ initialPrincipalEffectiveStressKpa,
42
+ principalStrainIncrements: buildUniformAxialStrainIncrements(axialStrain, incrementCount),
43
+ elasticModulusKpa: columnElasticModulusKpa,
44
+ poissonRatio,
45
+ frictionAngleDeg: material.frictionAngleDeg ?? 30,
46
+ cohesionKpa: material.cohesionKpa ?? 0,
47
+ dilationAngleDeg: 0,
48
+ policy,
49
+ });
50
+ }
51
+ function solveLoadControlledColumnStage(input) {
52
+ const { caseFile, targetLoadKpa, initialPrincipalEffectiveStressKpa, incrementCount, policy } = input;
53
+ if (targetLoadKpa <= 0) {
54
+ const materialPoint = buildMaterialPoint(caseFile, 0, incrementCount, initialPrincipalEffectiveStressKpa, policy);
55
+ return { axialStrain: 0, materialPoint, residualRatio: 0, iterations: 0 };
56
+ }
57
+ const material = caseFile.materials[0];
58
+ const modulus = Math.max(material.constrainedModulusKpa ?? material.elasticModulusKpa, 1);
59
+ const targetVerticalStressKpa = initialPrincipalEffectiveStressKpa[0] + targetLoadKpa;
60
+ const maxIterations = policy?.maxIterations ?? 40;
61
+ let lower = 0;
62
+ let upper = Math.max(targetLoadKpa / modulus, 1e-5);
63
+ let upperPoint = buildMaterialPoint(caseFile, upper, incrementCount, initialPrincipalEffectiveStressKpa, policy);
64
+ for (let guard = 0; guard < 16 && upperPoint.finalStep.principalEffectiveStressKpa[0] < targetVerticalStressKpa; guard += 1) {
65
+ upper *= 2;
66
+ upperPoint = buildMaterialPoint(caseFile, upper, incrementCount, initialPrincipalEffectiveStressKpa, policy);
67
+ }
68
+ let bestPoint = upperPoint;
69
+ let bestStrain = upper;
70
+ let bestResidual = Math.abs(upperPoint.finalStep.principalEffectiveStressKpa[0] - targetVerticalStressKpa) /
71
+ Math.max(targetLoadKpa, 1e-9);
72
+ let iterations = 0;
73
+ for (iterations = 1; iterations <= maxIterations; iterations += 1) {
74
+ const mid = (lower + upper) / 2;
75
+ const point = buildMaterialPoint(caseFile, mid, incrementCount, initialPrincipalEffectiveStressKpa, policy);
76
+ const verticalStress = point.finalStep.principalEffectiveStressKpa[0];
77
+ const residual = Math.abs(verticalStress - targetVerticalStressKpa) / Math.max(targetLoadKpa, 1e-9);
78
+ if (residual < bestResidual) {
79
+ bestResidual = residual;
80
+ bestPoint = point;
81
+ bestStrain = mid;
82
+ }
83
+ if (residual <= (policy?.forceBalanceTolerance ?? 1e-3))
84
+ break;
85
+ if (verticalStress < targetVerticalStressKpa) {
86
+ lower = mid;
87
+ }
88
+ else {
89
+ upper = mid;
90
+ }
91
+ }
92
+ return {
93
+ axialStrain: bestStrain,
94
+ materialPoint: bestPoint,
95
+ residualRatio: bestResidual,
96
+ iterations,
97
+ };
98
+ }
99
+ export function runBuiltinNonlinearConsolidationColumnSolver(caseFile, options = {}) {
100
+ const validation = validateFemAnalysisCase(caseFile);
101
+ if (validation.status === 'blocked') {
102
+ throw new Error(`Cannot run nonlinear consolidation column solver: ${validation.findings.map((item) => item.message).join('; ')}`);
103
+ }
104
+ if (caseFile.objective !== 'staged_settlement_consolidation') {
105
+ throw new Error('The nonlinear consolidation column solver only supports staged_settlement_consolidation cases.');
106
+ }
107
+ const consolidation = caseFile.geometry.consolidation;
108
+ const material = caseFile.materials[0];
109
+ if (!consolidation || !material) {
110
+ throw new Error('The nonlinear consolidation column solver requires consolidation geometry and at least one material.');
111
+ }
112
+ const policy = options.policy;
113
+ const phi = material.frictionAngleDeg ?? 30;
114
+ const k0 = Math.max(0.2, Math.min(1.2, 1 - Math.sin((phi * Math.PI) / 180)));
115
+ const initialVerticalEffectiveStressKpa = Math.max(1, material.unitWeightKnM3 * consolidation.layerThicknessM * 0.5);
116
+ const initialPrincipalEffectiveStressKpa = [
117
+ initialVerticalEffectiveStressKpa,
118
+ initialVerticalEffectiveStressKpa * k0,
119
+ initialVerticalEffectiveStressKpa * k0,
120
+ ];
121
+ const incrementCount = Math.max(4, Math.min(80, caseFile.mesh.divisionsZ * 4));
122
+ const stageSolutions = [];
123
+ let cumulativeLoadKpa = 0;
124
+ let cumulativeTimeYears = 0;
125
+ let cumulativeSettlementMm = 0;
126
+ let previousDrainedStrain = 0;
127
+ let maxSolverResidualRatio = 0;
128
+ let maxYieldResidualRatio = 0;
129
+ let solverIterations = 0;
130
+ for (const [stageIndex, stage] of consolidation.stages.entries()) {
131
+ cumulativeLoadKpa += stage.loadKpa;
132
+ cumulativeTimeYears += stage.durationYears;
133
+ const loadSolution = solveLoadControlledColumnStage({
134
+ caseFile,
135
+ targetLoadKpa: cumulativeLoadKpa,
136
+ initialPrincipalEffectiveStressKpa,
137
+ incrementCount,
138
+ policy,
139
+ });
140
+ const drainedSettlementIncrementMm = Math.max(0, (loadSolution.axialStrain - previousDrainedStrain) * consolidation.layerThicknessM * 1000);
141
+ previousDrainedStrain = Math.max(previousDrainedStrain, loadSolution.axialStrain);
142
+ const localTimes = Array.from({ length: 8 }, (_, index) => stage.durationYears * ((index + 1) / 8));
143
+ const consolidationStep = runTerzaghiConsolidationTimeStepper({
144
+ layerThicknessM: consolidation.layerThicknessM,
145
+ drainage: consolidation.drainage,
146
+ coefficientOfConsolidationM2PerYear: material.coefficientOfConsolidationM2PerYear ?? 1,
147
+ initialExcessPorePressureKpa: Math.max(stage.loadKpa, 1e-6),
148
+ primarySettlementMm: drainedSettlementIncrementMm,
149
+ timeStepsYears: localTimes,
150
+ nodeCount: Math.max(21, Math.min(101, caseFile.mesh.divisionsZ * 8 + 1)),
151
+ policy,
152
+ });
153
+ cumulativeSettlementMm += consolidationStep.finalStep.settlementMm;
154
+ const plasticSettlementMm = Math.max(0, loadSolution.materialPoint.plasticStrainPrincipal[0] * consolidation.layerThicknessM * 1000);
155
+ const yieldResidualRatio = loadSolution.materialPoint.finalStep.state === 'plastic'
156
+ ? loadSolution.materialPoint.finalStep.yieldResidualRatio
157
+ : 0;
158
+ maxSolverResidualRatio = Math.max(maxSolverResidualRatio, loadSolution.residualRatio);
159
+ maxYieldResidualRatio = Math.max(maxYieldResidualRatio, yieldResidualRatio);
160
+ solverIterations += loadSolution.iterations;
161
+ stageSolutions.push({
162
+ stageIndex,
163
+ stageId: stage.id,
164
+ cumulativeLoadKpa: round(cumulativeLoadKpa, 6),
165
+ cumulativeTimeYears: round(cumulativeTimeYears, 6),
166
+ axialStrain: round(loadSolution.axialStrain, 10),
167
+ settlementMm: round(cumulativeSettlementMm, 6),
168
+ plasticSettlementMm: round(plasticSettlementMm, 6),
169
+ degreeOfConsolidation: consolidationStep.finalStep.degreeOfConsolidation,
170
+ averageExcessPorePressureKpa: consolidationStep.finalStep.averageExcessPorePressureKpa,
171
+ mobilizedStrengthRatio: round(mobilizedStrengthRatio(loadSolution.materialPoint), 8),
172
+ solverIterations: loadSolution.iterations,
173
+ residualRatio: round(loadSolution.residualRatio, 12),
174
+ yieldResidualRatio: round(yieldResidualRatio, 12),
175
+ materialPoint: loadSolution.materialPoint,
176
+ });
177
+ }
178
+ const finalStage = stageSolutions[stageSolutions.length - 1];
179
+ const totalLoadKn = consolidation.stages.reduce((total, stage) => total + stage.loadKpa * consolidation.surfaceAreaM2, 0);
180
+ const finalSettlementMm = nonNegativeFinite(finalStage?.settlementMm, 0);
181
+ const plasticSettlementMm = Math.max(...stageSolutions.map((stage) => stage.plasticSettlementMm), 0);
182
+ const maxMobilizedStrengthRatio = Math.max(...stageSolutions.map((stage) => stage.mobilizedStrengthRatio), 0);
183
+ const maxExcessPorePressureKpa = Math.max(...stageSolutions.map((stage) => stage.averageExcessPorePressureKpa), 0);
184
+ const baseManifest = runBuiltinStagedSettlementConsolidationDemo(caseFile);
185
+ const envelope = {
186
+ ...baseManifest.envelope,
187
+ maxSettlementMm: round(finalSettlementMm, 3),
188
+ minSettlementMm: 0,
189
+ totalLoadKn: round(totalLoadKn, 4),
190
+ reactionKn: round(totalLoadKn, 4),
191
+ reactionBalanceRatio: 1,
192
+ finalSettlementMm: round(finalSettlementMm, 3),
193
+ plasticSettlementMm: round(plasticSettlementMm, 3),
194
+ finalDegreeOfConsolidation: finalStage?.degreeOfConsolidation ?? 0,
195
+ maxExcessPorePressureKpa: round(maxExcessPorePressureKpa, 4),
196
+ maxMobilizedStrengthRatio: round(maxMobilizedStrengthRatio, 6),
197
+ solverLoadSteps: consolidation.stages.length,
198
+ solverIterations,
199
+ maxSolverResidualRatio: round(maxSolverResidualRatio, 12),
200
+ maxYieldResidualRatio: round(maxYieldResidualRatio, 12),
201
+ nonlinearPlasticStrain: round(finalStage?.materialPoint.finalStep.equivalentPlasticStrain ?? 0, 12),
202
+ };
203
+ return {
204
+ ...baseManifest,
205
+ title: `${baseManifest.title} - nonlinear column solver`,
206
+ backend: {
207
+ id: 'builtin-nonlinear-column-v0',
208
+ label: 'Built-in nonlinear 1D consolidation column solver',
209
+ deterministic: true,
210
+ version: '0.1.0',
211
+ },
212
+ envelope,
213
+ datasets: updateEnvelopeDatasets(baseManifest.datasets, {
214
+ final_settlement: envelope.finalSettlementMm,
215
+ plastic_settlement: envelope.plasticSettlementMm,
216
+ final_degree_of_consolidation: envelope.finalDegreeOfConsolidation,
217
+ max_excess_pore_pressure: envelope.maxExcessPorePressureKpa,
218
+ max_mobilized_strength_ratio: envelope.maxMobilizedStrengthRatio,
219
+ reaction_balance_ratio: envelope.reactionBalanceRatio,
220
+ total_load: envelope.totalLoadKn,
221
+ }),
222
+ limitations: [
223
+ 'Nonlinear 1D column solver preview only; not a production 2D/3D geotechnical FEM design model.',
224
+ 'Solves vertical load-controlled column equilibrium with Drucker-Prager/Mohr-Coulomb-compatible material-point return mapping.',
225
+ 'Uses Terzaghi 1D consolidation for time-rate settlement; no global pore-pressure DOF or Biot matrix coupling is assembled.',
226
+ 'Independent published/commercial solver benchmarks and reviewer approval enforcement are still required before production design use.',
227
+ ...baseManifest.limitations,
228
+ ],
229
+ };
230
+ }
231
+ //# sourceMappingURL=nonlinear-column-solver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nonlinear-column-solver.js","sourceRoot":"","sources":["../../src/fem/nonlinear-column-solver.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ const ALL_PRODUCTION_FEATURES = [
13
13
  const FEATURE_REQUIREMENTS = {
14
14
  'nonlinear-plasticity': {
15
15
  status: 'kernel-verified',
16
- currentCoverage: 'A deterministic Mohr-Coulomb triaxial material-point kernel is benchmarked against closed-form yield and is used as a staged-consolidation review gate. It is not coupled to a global 2D/3D plasticity solver or plastic strain field.',
16
+ currentCoverage: 'Deterministic nonlinear material-point coverage now includes a Mohr-Coulomb triaxial strength cap plus a Drucker-Prager/Mohr-Coulomb-compatible principal-stress return-mapping kernel with yield residual and plastic strain state checks. It is not coupled to a global 2D/3D plasticity solver or plastic strain field.',
17
17
  requiredForAcceptance: [
18
18
  'constitutive models accepted for geotechnical use, such as Mohr-Coulomb/Hardening Soil or equivalent',
19
19
  'stress-path, yield, plastic strain, and convergence validation fixtures',
@@ -27,7 +27,7 @@ const FEATURE_REQUIREMENTS = {
27
27
  },
28
28
  consolidation: {
29
29
  status: 'kernel-verified',
30
- currentCoverage: 'A deterministic 1D Terzaghi backward-Euler consolidation kernel is benchmarked against analytical average consolidation and exposed through a human-reviewed staged-settlement/consolidation preview route. It is not a full 2D/3D coupled Biot FEM backend.',
30
+ currentCoverage: 'A deterministic 1D Terzaghi backward-Euler consolidation kernel is benchmarked against analytical average consolidation and exposed through a human-reviewed staged-settlement/consolidation preview route. A new nonlinear 1D column backend solves staged vertical equilibrium with Drucker-Prager material-point return mapping, but it is not a full 2D/3D coupled Biot FEM backend.',
31
31
  requiredForAcceptance: [
32
32
  'time-stepping consolidation backend with drainage boundary controls',
33
33
  'Cv, mv/Cc, drainage path, stage duration, and monitoring calibration schema',
@@ -55,7 +55,7 @@ const FEATURE_REQUIREMENTS = {
55
55
  },
56
56
  'advanced-staged-construction': {
57
57
  status: 'preview-only',
58
- currentCoverage: 'Excavation and staged-consolidation previews include deterministic stage visualization and load histories, but not production construction sequencing, activation/deactivation, or nonlinear path-dependence.',
58
+ currentCoverage: 'Excavation and staged-consolidation previews include deterministic stage visualization and load histories; staged consolidation can also run a nonlinear 1D column backend. Production construction sequencing, activation/deactivation, and 2D/3D nonlinear path-dependence remain unavailable.',
59
59
  requiredForAcceptance: [
60
60
  'construction-stage activation/deactivation model with support installation/removal',
61
61
  'stage-specific boundary, load, groundwater, and material state transitions',
@@ -1 +1 @@
1
- {"version":3,"file":"production-readiness.js","sourceRoot":"","sources":["../../src/fem/production-readiness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"production-readiness.js","sourceRoot":"","sources":["../../src/fem/production-readiness.ts"],"names":[],"mappings":"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"}
@@ -219,6 +219,11 @@ export interface FemResultEnvelope {
219
219
  maxMobilizedStrengthRatio?: number;
220
220
  drainagePathM?: number;
221
221
  consolidationDurationYears?: number;
222
+ solverLoadSteps?: number;
223
+ solverIterations?: number;
224
+ maxSolverResidualRatio?: number;
225
+ maxYieldResidualRatio?: number;
226
+ nonlinearPlasticStrain?: number;
222
227
  tunnelDiameterM?: number;
223
228
  tunnelAxisDepthM?: number;
224
229
  volumeLossPercent?: number;
@@ -233,7 +238,7 @@ export interface FemResultManifest {
233
238
  title: string;
234
239
  generatedAt: string;
235
240
  backend: {
236
- id: 'builtin-elastic3d-demo' | 'builtin-staged-excavation-demo' | 'builtin-tunnel-volume-loss-demo' | 'builtin-staged-consolidation-1d';
241
+ id: 'builtin-elastic3d-demo' | 'builtin-staged-excavation-demo' | 'builtin-tunnel-volume-loss-demo' | 'builtin-staged-consolidation-1d' | 'builtin-nonlinear-column-v0';
237
242
  label: string;
238
243
  deterministic: true;
239
244
  version: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/fem/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/fem/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/fem/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAEjB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAiiBpB,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,GAAG,oBAAoB,CA6bvF;AAkRD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,oBAAoB,CAsK3F"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/fem/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAEjB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAiiBpB,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,GAAG,oBAAoB,CA6bvF;AAqSD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,oBAAoB,CAuK3F"}
@@ -956,13 +956,13 @@ function validateResultEnvelopeSemantics(findings, manifest) {
956
956
  findings.push(finding('blocker', 'result.envelope.settlement-range-invalid', 'Envelope minimum settlement cannot exceed maximum settlement.'));
957
957
  }
958
958
  const expectedBackendByObjective = new Map([
959
- ['foundation_settlement', 'builtin-elastic3d-demo'],
960
- ['excavation_deformation', 'builtin-staged-excavation-demo'],
961
- ['tunnel_volume_loss_settlement', 'builtin-tunnel-volume-loss-demo'],
962
- ['staged_settlement_consolidation', 'builtin-staged-consolidation-1d'],
959
+ ['foundation_settlement', ['builtin-elastic3d-demo']],
960
+ ['excavation_deformation', ['builtin-staged-excavation-demo']],
961
+ ['tunnel_volume_loss_settlement', ['builtin-tunnel-volume-loss-demo']],
962
+ ['staged_settlement_consolidation', ['builtin-staged-consolidation-1d', 'builtin-nonlinear-column-v0']],
963
963
  ]);
964
- const expectedBackend = expectedBackendByObjective.get(analysisCase.objective);
965
- if (expectedBackend && manifest.backend.id !== expectedBackend) {
964
+ const expectedBackends = expectedBackendByObjective.get(analysisCase.objective);
965
+ if (expectedBackends && !expectedBackends.includes(manifest.backend.id)) {
966
966
  findings.push(finding('blocker', 'result.backend.objective-mismatch', 'Result backend must match the embedded FEM objective.'));
967
967
  }
968
968
  if (analysisCase.objective === 'foundation_settlement') {
@@ -1076,6 +1076,25 @@ function validateResultEnvelopeSemantics(findings, manifest) {
1076
1076
  const expectedDurationYears = consolidation.stages.reduce((total, stage) => total + stage.durationYears, 0);
1077
1077
  pushApproximateMatchFinding(findings, envelope.drainagePathM, expectedDrainagePathM, 'result.envelope.consolidation-drainage-path-mismatch', 'Consolidation drainage path', 0.001);
1078
1078
  pushApproximateMatchFinding(findings, envelope.consolidationDurationYears, expectedDurationYears, 'result.envelope.consolidation-duration-mismatch', 'Consolidation duration', 0.001);
1079
+ if (manifest.backend.id === 'builtin-nonlinear-column-v0') {
1080
+ const loadStepsOk = pushFiniteNumberFinding(findings, envelope.solverLoadSteps, 'result.envelope.solver-load-steps', 'Envelope solver load steps', { positive: true });
1081
+ const iterationsOk = pushFiniteNumberFinding(findings, envelope.solverIterations, 'result.envelope.solver-iterations', 'Envelope solver iterations', { positive: true });
1082
+ const solverResidualOk = pushFiniteNumberFinding(findings, envelope.maxSolverResidualRatio, 'result.envelope.max-solver-residual-ratio', 'Envelope max solver residual ratio', { nonNegative: true });
1083
+ const yieldResidualOk = pushFiniteNumberFinding(findings, envelope.maxYieldResidualRatio, 'result.envelope.max-yield-residual-ratio', 'Envelope max yield residual ratio', { nonNegative: true });
1084
+ pushFiniteNumberFinding(findings, envelope.nonlinearPlasticStrain, 'result.envelope.nonlinear-plastic-strain', 'Envelope nonlinear plastic strain', { nonNegative: true });
1085
+ if (loadStepsOk && (!Number.isInteger(envelope.solverLoadSteps) || envelope.solverLoadSteps !== consolidation.stages.length)) {
1086
+ findings.push(finding('blocker', 'result.envelope.solver-load-steps-mismatch', 'Nonlinear column solver load steps must match consolidation stages.'));
1087
+ }
1088
+ if (iterationsOk && !Number.isInteger(envelope.solverIterations)) {
1089
+ findings.push(finding('blocker', 'result.envelope.solver-iterations-integer', 'Nonlinear column solver iterations must be an integer.'));
1090
+ }
1091
+ if (solverResidualOk && envelope.maxSolverResidualRatio > 1e-3) {
1092
+ findings.push(finding('blocker', 'result.envelope.solver-residual-too-large', 'Nonlinear column solver residual exceeds the force-balance tolerance.'));
1093
+ }
1094
+ if (yieldResidualOk && envelope.maxYieldResidualRatio > 1e-6) {
1095
+ findings.push(finding('blocker', 'result.envelope.yield-residual-too-large', 'Nonlinear column solver yield residual exceeds the material return-map tolerance.'));
1096
+ }
1097
+ }
1079
1098
  }
1080
1099
  }
1081
1100
  export function validateFemResultManifest(manifest) {
@@ -1110,6 +1129,7 @@ export function validateFemResultManifest(manifest) {
1110
1129
  'builtin-staged-excavation-demo',
1111
1130
  'builtin-tunnel-volume-loss-demo',
1112
1131
  'builtin-staged-consolidation-1d',
1132
+ 'builtin-nonlinear-column-v0',
1113
1133
  ]);
1114
1134
  if (!validBackendIds.has(manifest.backend.id)) {
1115
1135
  findings.push(finding('blocker', 'result.backend.id-invalid', `Unsupported FEM result backend: ${String(manifest.backend.id)}.`));