@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.
- package/dist/fem/engineering-evidence.d.ts +60 -0
- package/dist/fem/engineering-evidence.d.ts.map +1 -1
- package/dist/fem/engineering-evidence.js +188 -0
- package/dist/fem/engineering-evidence.js.map +1 -1
- package/dist/fem/index.d.ts +2 -1
- 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/nonlinear-column-solver.d.ts +6 -0
- package/dist/fem/nonlinear-column-solver.d.ts.map +1 -0
- package/dist/fem/nonlinear-column-solver.js +231 -0
- package/dist/fem/nonlinear-column-solver.js.map +1 -0
- package/dist/fem/production-readiness.js +3 -3
- package/dist/fem/production-readiness.js.map +1 -1
- package/dist/fem/types.d.ts +6 -1
- package/dist/fem/types.d.ts.map +1 -1
- package/dist/fem/validation.d.ts.map +1 -1
- package/dist/fem/validation.js +26 -6
- package/dist/fem/validation.js.map +1 -1
- package/dist/ingest/document-evidence-packet.d.ts +6 -6
- package/dist/ingest/job-worker.d.ts.map +1 -1
- package/dist/ingest/job-worker.js +4 -0
- package/dist/ingest/job-worker.js.map +1 -1
- package/dist/llm/providers/anthropic.d.ts.map +1 -1
- package/dist/llm/providers/anthropic.js +3 -2
- package/dist/llm/providers/anthropic.js.map +1 -1
- package/dist/llm/providers/hosted-beta.d.ts.map +1 -1
- package/dist/llm/providers/hosted-beta.js +3 -8
- package/dist/llm/providers/hosted-beta.js.map +1 -1
- package/dist/llm/providers/huggingface.d.ts.map +1 -1
- package/dist/llm/providers/huggingface.js +3 -2
- package/dist/llm/providers/huggingface.js.map +1 -1
- package/dist/llm/providers/openai-compatible.d.ts.map +1 -1
- package/dist/llm/providers/openai-compatible.js +3 -2
- package/dist/llm/providers/openai-compatible.js.map +1 -1
- package/dist/llm/providers/response-json.d.ts +6 -0
- package/dist/llm/providers/response-json.d.ts.map +1 -0
- package/dist/llm/providers/response-json.js +27 -0
- package/dist/llm/providers/response-json.js.map +1 -0
- package/dist/llm/providers/zhipu.d.ts.map +1 -1
- package/dist/llm/providers/zhipu.js +3 -2
- package/dist/llm/providers/zhipu.js.map +1 -1
- package/dist/meta/metadata.json +1 -1
- package/dist/vision/geotech-document.d.ts.map +1 -1
- package/dist/vision/geotech-document.js +4 -0
- package/dist/vision/geotech-document.js.map +1 -1
- package/dist/vision/index.d.ts.map +1 -1
- package/dist/vision/index.js +4 -0
- package/dist/vision/index.js.map +1 -1
- 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: '
|
|
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.
|
|
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
|
|
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":"AAAA,OAAO,EAAE,mBAAmB,EAA0B,MAAM,cAAc,CAAC;AAC3E,OAAO,EACL,8BAA8B,GAE/B,MAAM,2BAA2B,CAAC;AA0CnC,MAAM,uBAAuB,GAA2B;IACtD,sBAAsB;IACtB,eAAe;IACf,gCAAgC;IAChC,8BAA8B;IAC9B,gBAAgB;IAChB,0CAA0C;IAC1C,kCAAkC;IAClC,mCAAmC;CACpC,CAAC;AAEF,MAAM,oBAAoB,GAAmF;IAC3G,sBAAsB,EAAE;QACtB,MAAM,EAAE,iBAAiB;QACzB,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"production-readiness.js","sourceRoot":"","sources":["../../src/fem/production-readiness.ts"],"names":[],"mappings":"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"}
|
package/dist/fem/types.d.ts
CHANGED
|
@@ -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;
|
package/dist/fem/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/fem/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GACpB,uBAAuB,GACvB,wBAAwB,GACxB,+BAA+B,GAC/B,iCAAiC,CAAC;AAEtC,MAAM,MAAM,eAAe,GACvB,wBAAwB,GACxB,0BAA0B,GAC1B,iCAAiC,GACjC,iCAAiC,CAAC;AAEtC,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEzE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/D,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,IAAI,CAAC;IACZ,MAAM,EAAE,KAAK,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,uBAAuB,CAAC;IACpC,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,GAAG,cAAc,CAAC;IACzC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC,CAAC,EAAE,MAAM,CAAC;IAC7C,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,WAAW,EAAE,aAAa,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,uBAAuB,CAAC;IACnG,MAAM,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,aAAa,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC9B,MAAM,EAAE,qBAAqB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,sBAAsB,GAAG,gBAAgB,CAAC;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,WAAW,EAAE,aAAa,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,GAAG,cAAc,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,cAAc,GAAG,cAAc,GAAG,WAAW,CAAC;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,sBAAsB,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,IAAI,CAAC;IACnB,SAAS,EAAE,YAAY,CAAC;IACxB,YAAY,EAAE,eAAe,CAAC;IAC9B,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE;QACR,MAAM,EAAE,YAAY,CAAC;QACrB,IAAI,CAAC,EAAE,eAAe,CAAC;QACvB,UAAU,CAAC,EAAE,qBAAqB,CAAC;QACnC,MAAM,CAAC,EAAE,iBAAiB,CAAC;QAC3B,aAAa,CAAC,EAAE,wBAAwB,CAAC;KAC1C,CAAC;IACF,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,kBAAkB,EAAE,oBAAoB,EAAE,CAAC;IAC3C,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,EAAE,wBAAwB,CAAC;IACtC,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,eAAe,GAAG,eAAe,GAAG,UAAU,CAAC;IACzD,QAAQ,EAAE,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,aAAa,GAAG,eAAe,GAAG,yBAAyB,GAAG,gBAAgB,CAAC;IAChI,SAAS,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,WAAW,CAAC;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;IACd,MAAM,EAAE,oBAAoB,GAAG,qBAAqB,GAAG,UAAU,CAAC;CACnE;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,wBAAwB,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE;QACP,EAAE,EAAE,wBAAwB,GAAG,gCAAgC,GAAG,iCAAiC,GAAG,iCAAiC,CAAC;
|
|
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;
|
|
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"}
|
package/dist/fem/validation.js
CHANGED
|
@@ -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
|
|
965
|
-
if (
|
|
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)}.`));
|