@theerapat-s28/ts-structural-eng-tools 2.3.0 → 3.0.0

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 (115) hide show
  1. package/CHANGELOG.md +28 -1
  2. package/README.md +8 -5
  3. package/dist/core/constants/frame.constant.d.ts +15 -0
  4. package/dist/core/constants/frame.constant.js +16 -1
  5. package/dist/core/constants/frame.constant.js.map +1 -1
  6. package/dist/core/errors/frame-analysis.error.d.ts +1 -0
  7. package/dist/core/errors/frame-analysis.error.js +18 -2
  8. package/dist/core/errors/frame-analysis.error.js.map +1 -1
  9. package/dist/core/index.d.ts +1 -1
  10. package/dist/core/index.js +2 -1
  11. package/dist/core/index.js.map +1 -1
  12. package/dist/esm/core/constants/frame.constant.js +15 -0
  13. package/dist/esm/core/constants/frame.constant.js.map +1 -1
  14. package/dist/esm/core/errors/frame-analysis.error.js +18 -2
  15. package/dist/esm/core/errors/frame-analysis.error.js.map +1 -1
  16. package/dist/esm/core/index.js +1 -1
  17. package/dist/esm/core/index.js.map +1 -1
  18. package/dist/esm/fea/frame/elements/shell/dkq-plate.js +109 -0
  19. package/dist/esm/fea/frame/elements/shell/dkq-plate.js.map +1 -0
  20. package/dist/esm/fea/frame/elements/shell/flat-shell.js +111 -0
  21. package/dist/esm/fea/frame/elements/shell/flat-shell.js.map +1 -0
  22. package/dist/esm/fea/frame/elements/shell/membrane-quad.js +107 -0
  23. package/dist/esm/fea/frame/elements/shell/membrane-quad.js.map +1 -0
  24. package/dist/esm/fea/frame/elements/shell/quad-geometry.js +127 -0
  25. package/dist/esm/fea/frame/elements/shell/quad-geometry.js.map +1 -0
  26. package/dist/esm/fea/frame/elements/shell/rigidity.js +19 -0
  27. package/dist/esm/fea/frame/elements/shell/rigidity.js.map +1 -0
  28. package/dist/esm/fea/frame/elements/shell/shell-axes.js +97 -0
  29. package/dist/esm/fea/frame/elements/shell/shell-axes.js.map +1 -0
  30. package/dist/esm/fea/frame/mesh/expand-model.js +129 -0
  31. package/dist/esm/fea/frame/mesh/expand-model.js.map +1 -0
  32. package/dist/esm/fea/frame/mesh/mesh-shells.js +239 -0
  33. package/dist/esm/fea/frame/mesh/mesh-shells.js.map +1 -0
  34. package/dist/esm/fea/frame/post/envelope.js +38 -1
  35. package/dist/esm/fea/frame/post/envelope.js.map +1 -1
  36. package/dist/esm/fea/frame/post/member-diagram.js +51 -2
  37. package/dist/esm/fea/frame/post/member-diagram.js.map +1 -1
  38. package/dist/esm/fea/frame/post/present-state.js +34 -16
  39. package/dist/esm/fea/frame/post/present-state.js.map +1 -1
  40. package/dist/esm/fea/frame/post/shell-forces.js +111 -0
  41. package/dist/esm/fea/frame/post/shell-forces.js.map +1 -0
  42. package/dist/esm/fea/frame/solver/analyze-frame.js +27 -7
  43. package/dist/esm/fea/frame/solver/analyze-frame.js.map +1 -1
  44. package/dist/esm/fea/frame/solver/auto-restraint.js +58 -10
  45. package/dist/esm/fea/frame/solver/auto-restraint.js.map +1 -1
  46. package/dist/esm/fea/frame/solver/frame-system.js +148 -40
  47. package/dist/esm/fea/frame/solver/frame-system.js.map +1 -1
  48. package/dist/esm/fea/frame/solver/global-assembly.js +5 -3
  49. package/dist/esm/fea/frame/solver/global-assembly.js.map +1 -1
  50. package/dist/esm/fea/frame/solver/load-case-solver.js +102 -9
  51. package/dist/esm/fea/frame/solver/load-case-solver.js.map +1 -1
  52. package/dist/esm/fea/frame/validation/validate-model.js +120 -3
  53. package/dist/esm/fea/frame/validation/validate-model.js.map +1 -1
  54. package/dist/esm/index.js +1 -1
  55. package/dist/esm/index.js.map +1 -1
  56. package/dist/fea/frame/elements/shell/dkq-plate.d.ts +50 -0
  57. package/dist/fea/frame/elements/shell/dkq-plate.js +115 -0
  58. package/dist/fea/frame/elements/shell/dkq-plate.js.map +1 -0
  59. package/dist/fea/frame/elements/shell/flat-shell.d.ts +63 -0
  60. package/dist/fea/frame/elements/shell/flat-shell.js +118 -0
  61. package/dist/fea/frame/elements/shell/flat-shell.js.map +1 -0
  62. package/dist/fea/frame/elements/shell/membrane-quad.d.ts +61 -0
  63. package/dist/fea/frame/elements/shell/membrane-quad.js +113 -0
  64. package/dist/fea/frame/elements/shell/membrane-quad.js.map +1 -0
  65. package/dist/fea/frame/elements/shell/quad-geometry.d.ts +71 -0
  66. package/dist/fea/frame/elements/shell/quad-geometry.js +136 -0
  67. package/dist/fea/frame/elements/shell/quad-geometry.js.map +1 -0
  68. package/dist/fea/frame/elements/shell/rigidity.d.ts +14 -0
  69. package/dist/fea/frame/elements/shell/rigidity.js +23 -0
  70. package/dist/fea/frame/elements/shell/rigidity.js.map +1 -0
  71. package/dist/fea/frame/elements/shell/shell-axes.d.ts +43 -0
  72. package/dist/fea/frame/elements/shell/shell-axes.js +102 -0
  73. package/dist/fea/frame/elements/shell/shell-axes.js.map +1 -0
  74. package/dist/fea/frame/index.d.ts +2 -2
  75. package/dist/fea/frame/mesh/expand-model.d.ts +29 -0
  76. package/dist/fea/frame/mesh/expand-model.js +133 -0
  77. package/dist/fea/frame/mesh/expand-model.js.map +1 -0
  78. package/dist/fea/frame/mesh/mesh-shells.d.ts +38 -0
  79. package/dist/fea/frame/mesh/mesh-shells.js +244 -0
  80. package/dist/fea/frame/mesh/mesh-shells.js.map +1 -0
  81. package/dist/fea/frame/post/envelope.js +38 -1
  82. package/dist/fea/frame/post/envelope.js.map +1 -1
  83. package/dist/fea/frame/post/member-diagram.d.ts +21 -1
  84. package/dist/fea/frame/post/member-diagram.js +53 -3
  85. package/dist/fea/frame/post/member-diagram.js.map +1 -1
  86. package/dist/fea/frame/post/present-state.d.ts +3 -2
  87. package/dist/fea/frame/post/present-state.js +33 -15
  88. package/dist/fea/frame/post/present-state.js.map +1 -1
  89. package/dist/fea/frame/post/shell-forces.d.ts +27 -0
  90. package/dist/fea/frame/post/shell-forces.js +116 -0
  91. package/dist/fea/frame/post/shell-forces.js.map +1 -0
  92. package/dist/fea/frame/solver/analyze-frame.d.ts +8 -4
  93. package/dist/fea/frame/solver/analyze-frame.js +27 -7
  94. package/dist/fea/frame/solver/analyze-frame.js.map +1 -1
  95. package/dist/fea/frame/solver/auto-restraint.d.ts +23 -10
  96. package/dist/fea/frame/solver/auto-restraint.js +60 -11
  97. package/dist/fea/frame/solver/auto-restraint.js.map +1 -1
  98. package/dist/fea/frame/solver/frame-system.d.ts +47 -8
  99. package/dist/fea/frame/solver/frame-system.js +146 -38
  100. package/dist/fea/frame/solver/frame-system.js.map +1 -1
  101. package/dist/fea/frame/solver/global-assembly.d.ts +11 -0
  102. package/dist/fea/frame/solver/global-assembly.js +7 -4
  103. package/dist/fea/frame/solver/global-assembly.js.map +1 -1
  104. package/dist/fea/frame/solver/load-case-solver.d.ts +11 -1
  105. package/dist/fea/frame/solver/load-case-solver.js +100 -7
  106. package/dist/fea/frame/solver/load-case-solver.js.map +1 -1
  107. package/dist/fea/frame/types/model.type.d.ts +82 -4
  108. package/dist/fea/frame/types/results.type.d.ts +61 -1
  109. package/dist/fea/frame/validation/validate-model.d.ts +3 -2
  110. package/dist/fea/frame/validation/validate-model.js +120 -3
  111. package/dist/fea/frame/validation/validate-model.js.map +1 -1
  112. package/dist/index.d.ts +2 -2
  113. package/dist/index.js +3 -2
  114. package/dist/index.js.map +1 -1
  115. package/package.json +1 -1
@@ -0,0 +1,244 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.meshShells = exports.pointOnSegment = void 0;
4
+ const frame_constant_1 = require("../../../core/constants/frame.constant");
5
+ const shell_axes_1 = require("../elements/shell/shell-axes");
6
+ const sub = (p, q) => [p[0] - q[0], p[1] - q[1], p[2] - q[2]];
7
+ const dot = (p, q) => p[0] * q[0] + p[1] * q[1] + p[2] * q[2];
8
+ const lerp = (p, q, t) => [
9
+ p[0] + (q[0] - p[0]) * t,
10
+ p[1] + (q[1] - p[1]) * t,
11
+ p[2] + (q[2] - p[2]) * t,
12
+ ];
13
+ /** A string that tells `1` and `"1"` apart, for ordering and map keys. */
14
+ const idKey = (id) => `${typeof id}:${String(id)}`;
15
+ /** Parameter t ∈ (0, 1) of `x` on the segment p → q when it lies strictly inside it, else null. */
16
+ const pointOnSegment = (x, p, q, inclusive = false) => {
17
+ const d = sub(q, p);
18
+ const L2 = dot(d, d);
19
+ if (!(L2 > 0))
20
+ return null;
21
+ const L = Math.sqrt(L2);
22
+ const tolerance = frame_constant_1.AREA_GEOMETRY_TOLERANCE * L;
23
+ const t = dot(sub(x, p), d) / L2;
24
+ const margin = inclusive ? -tolerance / L : tolerance / L;
25
+ if (t < margin || t > 1 - margin)
26
+ return null;
27
+ const off = sub(x, lerp(p, q, t));
28
+ return Math.hypot(off[0], off[1], off[2]) <= tolerance ? t : null;
29
+ };
30
+ exports.pointOnSegment = pointOnSegment;
31
+ /**
32
+ * Meshes the shell areas of a model whose shells and nodes are valid.
33
+ *
34
+ * - Each area edge is cut into segments at the model nodes lying on it (hard points), so an
35
+ * edge shared whole by two areas, or partly where areas meet at a node (a T-junction), shares
36
+ * its segments.
37
+ * - Every segment gets a division count: at least 1, at least `length / maxSize` for an area
38
+ * with `mesh.maxSize`, and raised until in every area opposite edges add up to the same
39
+ * count (and at least `mesh.divisions`), adding each division where the elements are longest.
40
+ * - Segment nodes are evenly spaced; interior nodes come from transfinite interpolation of the
41
+ * four edges, so a planar area stays planar.
42
+ *
43
+ * An area that ends with 1 × 1 divisions is its own element, with its own id. Generated ids:
44
+ * `"<a>~<b>:<k>"` for the k-th node from model node a to b on a segment, `"<areaId>:<i>,<j>"`
45
+ * for interior nodes and for elements.
46
+ *
47
+ * @param nodes - Model nodes
48
+ * @param shells - Shell areas, each with 4 valid corner nodes
49
+ */
50
+ const meshShells = (nodes, shells) => {
51
+ const position = new Map(nodes.map((n) => [n.id, [n.x, n.y, n.z]]));
52
+ const segments = new Map();
53
+ const segmentOf = (p, q) => {
54
+ const forward = idKey(p) < idKey(q);
55
+ const [a, b] = forward ? [p, q] : [q, p];
56
+ const key = `${idKey(a)}|${idKey(b)}`;
57
+ let segment = segments.get(key);
58
+ if (!segment) {
59
+ const d = sub(position.get(b), position.get(a));
60
+ segment = { a, b, length: Math.hypot(d[0], d[1], d[2]), count: 1 };
61
+ segments.set(key, segment);
62
+ }
63
+ return { segment, forward };
64
+ };
65
+ // ---- Edges cut at the model nodes lying on them -------------------------------------
66
+ const plans = shells.map((shell) => {
67
+ const corners = shell.nodeIds;
68
+ const edges = [0, 1, 2, 3].map((i) => {
69
+ const [p, q] = [corners[i], corners[(i + 1) % 4]];
70
+ const [P, Q] = [position.get(p), position.get(q)];
71
+ const inside = [];
72
+ for (const node of nodes) {
73
+ if (corners.includes(node.id))
74
+ continue;
75
+ const t = (0, exports.pointOnSegment)([node.x, node.y, node.z], P, Q);
76
+ if (t !== null)
77
+ inside.push({ id: node.id, t });
78
+ }
79
+ const chain = [p, ...inside.sort((x, y) => x.t - y.t).map((h) => h.id), q];
80
+ return chain.slice(1).map((id, k) => segmentOf(chain[k], id));
81
+ });
82
+ const d = shell.mesh?.divisions;
83
+ return { shell, edges, minimum: d ? [d[0], d[1]] : [1, 1] };
84
+ });
85
+ // ---- Division counts ---------------------------------------------------------------
86
+ for (const { shell, edges } of plans) {
87
+ const maxSize = shell.mesh?.maxSize;
88
+ if (maxSize === undefined)
89
+ continue;
90
+ for (const { segment } of edges.flat()) {
91
+ segment.count = Math.max(segment.count, Math.ceil(segment.length / maxSize - 1e-9));
92
+ }
93
+ }
94
+ const total = (edge) => edge.reduce((sum, { segment }) => sum + segment.count, 0);
95
+ const growTo = (edge, target) => {
96
+ while (total(edge) < target) {
97
+ // one more division where the elements are longest
98
+ const longest = edge.reduce((best, s) => s.segment.length / s.segment.count > best.segment.length / best.segment.count ? s : best);
99
+ longest.segment.count++;
100
+ }
101
+ };
102
+ const balanced = () => plans.every(({ edges, minimum }) => total(edges[0]) === total(edges[2]) &&
103
+ total(edges[1]) === total(edges[3]) &&
104
+ total(edges[0]) >= minimum[0] &&
105
+ total(edges[1]) >= minimum[1]);
106
+ const maxPasses = 10 + 4 * plans.length;
107
+ for (let pass = 0; pass < maxPasses && !balanced(); pass++) {
108
+ for (const { edges, minimum } of plans) {
109
+ for (const [p, q, least] of [
110
+ [0, 2, minimum[0]],
111
+ [1, 3, minimum[1]],
112
+ ]) {
113
+ const target = Math.max(total(edges[p]), total(edges[q]), least);
114
+ growTo(edges[p], target);
115
+ growTo(edges[q], target);
116
+ }
117
+ }
118
+ }
119
+ if (!balanced()) {
120
+ return {
121
+ nodes: [],
122
+ elements: [],
123
+ problems: plans
124
+ .filter(({ edges }) => total(edges[0]) !== total(edges[2]) || total(edges[1]) !== total(edges[3]))
125
+ .map((p) => p.shell.id),
126
+ };
127
+ }
128
+ // ---- Nodes along segments ---------------------------------------------------------
129
+ const generated = [];
130
+ const generate = (id, at) => {
131
+ generated.push({ id, x: at[0], y: at[1], z: at[2] });
132
+ position.set(id, at);
133
+ };
134
+ for (const segment of segments.values()) {
135
+ const [A, B] = [position.get(segment.a), position.get(segment.b)];
136
+ segment.chain = [segment.a];
137
+ for (let k = 1; k < segment.count; k++) {
138
+ const id = `${String(segment.a)}~${String(segment.b)}:${k}`;
139
+ generate(id, lerp(A, B, k / segment.count));
140
+ segment.chain.push(id);
141
+ }
142
+ segment.chain.push(segment.b);
143
+ }
144
+ // ---- Areas ------------------------------------------------------------------------
145
+ const elements = [];
146
+ const problems = [];
147
+ for (const { shell, edges } of plans) {
148
+ // node ids along each edge, corner i → corner i + 1
149
+ const along = edges.map((edge) => edge.flatMap(({ segment, forward }, k) => {
150
+ const chain = forward ? segment.chain : [...segment.chain].reverse();
151
+ return k === 0 ? chain : chain.slice(1);
152
+ }));
153
+ const n1 = along[0].length - 1;
154
+ const n2 = along[1].length - 1;
155
+ const { mesh: _mesh, ...properties } = shell;
156
+ if (n1 === 1 && n2 === 1) {
157
+ elements.push({ ...properties, areaId: shell.id });
158
+ continue;
159
+ }
160
+ const bottom = along[0];
161
+ const right = along[1];
162
+ const top = [...along[2]].reverse();
163
+ const left = [...along[3]].reverse();
164
+ const fractions = (ids) => {
165
+ const out = [0];
166
+ for (let k = 1; k < ids.length; k++) {
167
+ const d = sub(position.get(ids[k]), position.get(ids[k - 1]));
168
+ out.push(out[k - 1] + Math.hypot(d[0], d[1], d[2]));
169
+ }
170
+ return out.map((v) => v / out[out.length - 1]);
171
+ };
172
+ const [uB, uT, vL, vR] = [bottom, top, left, right].map(fractions);
173
+ const C = shell.nodeIds.map((id) => position.get(id));
174
+ const grid = [];
175
+ for (let i = 0; i <= n1; i++) {
176
+ grid.push([]);
177
+ for (let j = 0; j <= n2; j++) {
178
+ if (j === 0)
179
+ grid[i].push(bottom[i]);
180
+ else if (j === n2)
181
+ grid[i].push(top[i]);
182
+ else if (i === 0)
183
+ grid[i].push(left[j]);
184
+ else if (i === n1)
185
+ grid[i].push(right[j]);
186
+ else {
187
+ // transfinite (Coons) interpolation of the four edges
188
+ const v0 = (vL[j] + vR[j]) / 2;
189
+ const u0 = (uB[i] + uT[i]) / 2;
190
+ const u = (1 - v0) * uB[i] + v0 * uT[i];
191
+ const v = (1 - u0) * vL[j] + u0 * vR[j];
192
+ const [B, T, L, R] = [bottom[i], top[i], left[j], right[j]].map((id) => position.get(id));
193
+ const at = [0, 1, 2].map((k) => (1 - v) * B[k] +
194
+ v * T[k] +
195
+ (1 - u) * L[k] +
196
+ u * R[k] -
197
+ ((1 - u) * (1 - v) * C[0][k] +
198
+ u * (1 - v) * C[1][k] +
199
+ u * v * C[2][k] +
200
+ (1 - u) * v * C[3][k]));
201
+ const id = `${String(shell.id)}:${i},${j}`;
202
+ generate(id, at);
203
+ grid[i].push(id);
204
+ }
205
+ }
206
+ }
207
+ let ok = true;
208
+ for (let j = 0; j < n2; j++) {
209
+ for (let i = 0; i < n1; i++) {
210
+ const nodeIds = [grid[i][j], grid[i + 1][j], grid[i + 1][j + 1], grid[i][j + 1]];
211
+ if (!(0, shell_axes_1.isValidShellQuad)(nodeIds.map((id) => position.get(id))))
212
+ ok = false;
213
+ elements.push({
214
+ ...properties,
215
+ id: `${String(shell.id)}:${i},${j}`,
216
+ nodeIds,
217
+ areaId: shell.id,
218
+ });
219
+ }
220
+ }
221
+ if (!ok)
222
+ problems.push(shell.id);
223
+ }
224
+ // ---- Generated ids must be new ----------------------------------------------------
225
+ const taken = new Set(nodes.map((n) => idKey(n.id)));
226
+ for (const node of generated) {
227
+ if (taken.has(idKey(node.id))) {
228
+ const owner = elements.find((e) => e.nodeIds.includes(node.id));
229
+ if (owner && !problems.includes(owner.areaId))
230
+ problems.push(owner.areaId);
231
+ }
232
+ taken.add(idKey(node.id));
233
+ }
234
+ const shellIds = new Set();
235
+ for (const element of elements) {
236
+ const key = idKey(element.id);
237
+ if (shellIds.has(key) && !problems.includes(element.areaId))
238
+ problems.push(element.areaId);
239
+ shellIds.add(key);
240
+ }
241
+ return { nodes: generated, elements, problems };
242
+ };
243
+ exports.meshShells = meshShells;
244
+ //# sourceMappingURL=mesh-shells.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh-shells.js","sourceRoot":"","sources":["../../../../src/fea/frame/mesh/mesh-shells.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,22 @@ exports.buildEnvelope = void 0;
4
4
  const DISPLACEMENT_KEYS = ["ux", "uy", "uz", "rx", "ry", "rz"];
5
5
  const REACTION_KEYS = ["fx", "fy", "fz", "mx", "my", "mz"];
6
6
  const COMPONENTS = ["N", "V2", "V3", "T", "M2", "M3", "u1", "u2", "u3"];
7
+ const SHELL_COMPONENTS = [
8
+ "F11",
9
+ "F22",
10
+ "F12",
11
+ "M11",
12
+ "M22",
13
+ "M12",
14
+ "V13",
15
+ "V23",
16
+ "S11Top",
17
+ "S22Top",
18
+ "S12Top",
19
+ "S11Bot",
20
+ "S22Bot",
21
+ "S12Bot",
22
+ ];
7
23
  /** Keeps the larger max and smaller min; the first combination wins a tie. */
8
24
  const update = (bound, max, min) => {
9
25
  if (!bound)
@@ -57,7 +73,28 @@ const buildEnvelope = (results) => {
57
73
  }
58
74
  return { memberId: d.memberId, extremes };
59
75
  });
60
- return { combinationIds: results.map((r) => r.id), nodalDisplacements, reactions, members };
76
+ const shells = first.shellForces.map((shell, s) => ({
77
+ shellId: shell.shellId,
78
+ corners: shell.corners.map((corner, c) => {
79
+ const entry = { nodeId: corner.nodeId };
80
+ for (const key of SHELL_COMPONENTS) {
81
+ let bound;
82
+ for (const r of results) {
83
+ const g = { value: r.shellForces[s].corners[c][key], combinationId: r.id };
84
+ bound = update(bound, g, g);
85
+ }
86
+ entry[key] = bound;
87
+ }
88
+ return entry;
89
+ }),
90
+ }));
91
+ return {
92
+ combinationIds: results.map((r) => r.id),
93
+ nodalDisplacements,
94
+ reactions,
95
+ members,
96
+ shells,
97
+ };
61
98
  };
62
99
  exports.buildEnvelope = buildEnvelope;
63
100
  //# sourceMappingURL=envelope.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../../src/fea/frame/post/envelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../../src/fea/frame/post/envelope.ts"],"names":[],"mappings":"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"}
@@ -22,5 +22,25 @@ export interface DiagramMember {
22
22
  * @param stationCount - Number of evenly spaced stations (at least 2); load breakpoints and
23
23
  * zero-shear points are added, with both sides reported at a point load
24
24
  * @param withStations - false returns the extremes only, with an empty `stations` array
25
+ * @param stationPositions - Stations to use instead of the evenly spaced ones (mm from the start)
25
26
  */
26
- export declare const memberDiagram: (member: DiagramMember, startForce: number[], endDisplacements: number[], loads: LocalMemberLoad[], stationCount?: number, withStations?: boolean) => MemberDiagram;
27
+ export declare const memberDiagram: (member: DiagramMember, startForce: number[], endDisplacements: number[], loads: LocalMemberLoad[], stationCount?: number, withStations?: boolean, stationPositions?: number[]) => MemberDiagram;
28
+ /** One piece of a member split by shell-mesh nodes, with what its diagram needs. */
29
+ export interface DiagramPiece {
30
+ member: DiagramMember;
31
+ offset: number;
32
+ startForce: number[];
33
+ endDisplacements: number[];
34
+ loads: LocalMemberLoad[];
35
+ }
36
+ /**
37
+ * The diagram of a member analysed as several pieces (split where shell-mesh nodes lie inside
38
+ * it), stitched along its full length. The evenly spaced stations are taken along the whole
39
+ * member and each is evaluated in the piece it falls in; at a piece end where the shells
40
+ * deliver a force, both sides are reported, as at a point load. Extremes are the extremes of
41
+ * the pieces.
42
+ *
43
+ * @param id - The member's id
44
+ * @param length - The member's length (mm)
45
+ */
46
+ export declare const chainDiagram: (id: FrameId, length: number, pieces: DiagramPiece[], stationCount?: number, withStations?: boolean) => MemberDiagram;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.memberDiagram = void 0;
3
+ exports.chainDiagram = exports.memberDiagram = void 0;
4
4
  const math_1 = require("../../../utils/math");
5
5
  const FORCE_COMPONENTS = ["N", "V2", "V3", "T", "M2", "M3"];
6
6
  const DISPLACEMENT_COMPONENTS = ["u1", "u2", "u3"];
@@ -169,8 +169,9 @@ const present = (c, value) => (0, math_1.roundToDecimalPlaces)(value * SCALE[c],
169
169
  * @param stationCount - Number of evenly spaced stations (at least 2); load breakpoints and
170
170
  * zero-shear points are added, with both sides reported at a point load
171
171
  * @param withStations - false returns the extremes only, with an empty `stations` array
172
+ * @param stationPositions - Stations to use instead of the evenly spaced ones (mm from the start)
172
173
  */
173
- const memberDiagram = (member, startForce, endDisplacements, loads, stationCount = 21, withStations = true) => {
174
+ const memberDiagram = (member, startForce, endDisplacements, loads, stationCount = 21, withStations = true, stationPositions) => {
174
175
  const L = member.length;
175
176
  const tolerance = 1e-9 * L;
176
177
  const breakpoints = new Set([0, L]);
@@ -232,7 +233,7 @@ const memberDiagram = (member, startForce, endDisplacements, loads, stationCount
232
233
  const coarse = Array.from({ length: DEFLECTION_GRID_INTERVALS + 1 }, (_, i) => (L * i) / DEFLECTION_GRID_INTERVALS);
233
234
  const count = Math.max(2, Math.floor(stationCount));
234
235
  const uniform = withStations
235
- ? Array.from({ length: count }, (_, i) => (L * i) / (count - 1))
236
+ ? (stationPositions ?? Array.from({ length: count }, (_, i) => (L * i) / (count - 1)))
236
237
  : [];
237
238
  // One grid for everything: breakpoints, zero-shear points, stations and the deflection grid
238
239
  const grid = mergeSorted([...sortedBreaks, ...roots, ...uniform, ...coarse]);
@@ -354,4 +355,53 @@ const memberDiagram = (member, startForce, endDisplacements, loads, stationCount
354
355
  return { memberId: member.id, length: L, stations, extremes };
355
356
  };
356
357
  exports.memberDiagram = memberDiagram;
358
+ /**
359
+ * The diagram of a member analysed as several pieces (split where shell-mesh nodes lie inside
360
+ * it), stitched along its full length. The evenly spaced stations are taken along the whole
361
+ * member and each is evaluated in the piece it falls in; at a piece end where the shells
362
+ * deliver a force, both sides are reported, as at a point load. Extremes are the extremes of
363
+ * the pieces.
364
+ *
365
+ * @param id - The member's id
366
+ * @param length - The member's length (mm)
367
+ */
368
+ const chainDiagram = (id, length, pieces, stationCount = 21, withStations = true) => {
369
+ const count = Math.max(2, Math.floor(stationCount));
370
+ const tolerance = 1e-9 * length;
371
+ const along = Array.from({ length: count }, (_, i) => (length * i) / (count - 1));
372
+ const diagrams = pieces.map((piece) => (0, exports.memberDiagram)(piece.member, piece.startForce, piece.endDisplacements, piece.loads, count, withStations, along
373
+ .filter((x) => x >= piece.offset - tolerance && x <= piece.offset + piece.member.length + tolerance)
374
+ .map((x) => Math.min(piece.member.length, Math.max(0, x - piece.offset)))));
375
+ const stations = [];
376
+ diagrams.forEach((diagram, k) => {
377
+ for (const station of diagram.stations) {
378
+ const shifted = { ...station, x: (0, math_1.roundToDecimalPlaces)(station.x + pieces[k].offset, 3) };
379
+ const previous = stations[stations.length - 1];
380
+ // the same point from both pieces: keep one unless the forces jump there
381
+ const same = previous !== undefined &&
382
+ Math.abs(previous.x - shifted.x) < 1e-3 &&
383
+ COMPONENTS.every((c) => previous[c] === shifted[c]);
384
+ if (!same)
385
+ stations.push(shifted);
386
+ }
387
+ });
388
+ const extremes = {};
389
+ for (const c of COMPONENTS) {
390
+ const shift = (k, e) => ({
391
+ value: e.value,
392
+ x: (0, math_1.roundToDecimalPlaces)(e.x + pieces[k].offset, 3),
393
+ });
394
+ let max = shift(0, diagrams[0].extremes[c].max);
395
+ let min = shift(0, diagrams[0].extremes[c].min);
396
+ diagrams.forEach((d, k) => {
397
+ if (d.extremes[c].max.value > max.value)
398
+ max = shift(k, d.extremes[c].max);
399
+ if (d.extremes[c].min.value < min.value)
400
+ min = shift(k, d.extremes[c].min);
401
+ });
402
+ extremes[c] = { max, min };
403
+ }
404
+ return { memberId: id, length, stations, extremes };
405
+ };
406
+ exports.chainDiagram = chainDiagram;
357
407
  //# sourceMappingURL=member-diagram.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"member-diagram.js","sourceRoot":"","sources":["../../../../src/fea/frame/post/member-diagram.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"member-diagram.js","sourceRoot":"","sources":["../../../../src/fea/frame/post/member-diagram.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,13 @@ import type { FrameSystem } from "../solver/frame-system";
2
2
  import type { RawState } from "../solver/load-case-solver";
3
3
  import type { FrameCaseResult, MemberDiagram } from "../types/results.type";
4
4
  /**
5
- * The presented diagram of member `m` in a raw state.
5
+ * The presented diagram of model member `g` (an index into `system.memberGroups`) in a raw
6
+ * state, stitched from its pieces when the shell mesh splits it.
6
7
  *
7
8
  * @param stations - Evenly spaced stations
8
9
  * @param withStations - false keeps only the extremes (empty `stations`)
9
10
  */
10
- export declare const presentMemberDiagram: (system: FrameSystem, state: RawState, m: number, stations?: number, withStations?: boolean) => MemberDiagram;
11
+ export declare const presentMemberDiagram: (system: FrameSystem, state: RawState, g: number, stations?: number, withStations?: boolean) => MemberDiagram;
11
12
  /**
12
13
  * Rounds a raw state into the presented result of one load case or combination.
13
14
  *
@@ -7,6 +7,7 @@ const matrix_1 = require("../../../utils/matrix");
7
7
  const fixed_end_forces_1 = require("../elements/fixed-end-forces");
8
8
  const global_assembly_1 = require("../solver/global-assembly");
9
9
  const member_diagram_1 = require("./member-diagram");
10
+ const shell_forces_1 = require("./shell-forces");
10
11
  const FORCE_DECIMALS = 4;
11
12
  const DISPLACEMENT_DECIMALS = 5;
12
13
  const ROTATION_DECIMALS = 8;
@@ -71,13 +72,25 @@ const equilibrium = (system, state) => {
71
72
  };
72
73
  };
73
74
  /**
74
- * The presented diagram of member `m` in a raw state.
75
+ * The presented diagram of model member `g` (an index into `system.memberGroups`) in a raw
76
+ * state, stitched from its pieces when the shell mesh splits it.
75
77
  *
76
78
  * @param stations - Evenly spaced stations
77
79
  * @param withStations - false keeps only the extremes (empty `stations`)
78
80
  */
79
- const presentMemberDiagram = (system, state, m, stations, withStations = true) => {
80
- return (0, member_diagram_1.memberDiagram)(system.members[m], state.memberForces[m].slice(0, 6), memberEnd(system, state, m).own, state.memberLoads[m], stations, withStations);
81
+ const presentMemberDiagram = (system, state, g, stations, withStations = true) => {
82
+ const group = system.memberGroups[g];
83
+ if (group.pieces.length === 1) {
84
+ const m = group.pieces[0];
85
+ return (0, member_diagram_1.memberDiagram)(system.members[m], state.memberForces[m].slice(0, 6), memberEnd(system, state, m).own, state.memberLoads[m], stations, withStations);
86
+ }
87
+ return (0, member_diagram_1.chainDiagram)(group.id, group.length, group.pieces.map((m) => ({
88
+ member: system.members[m],
89
+ offset: system.members[m].offset,
90
+ startForce: state.memberForces[m].slice(0, 6),
91
+ endDisplacements: memberEnd(system, state, m).own,
92
+ loads: state.memberLoads[m],
93
+ })), stations, withStations);
81
94
  };
82
95
  exports.presentMemberDiagram = presentMemberDiagram;
83
96
  /**
@@ -115,25 +128,30 @@ const presentState = (system, state, meta, diagram = {}) => {
115
128
  my: roundForce(R[6 * n + 4], 1e-6),
116
129
  mz: roundForce(R[6 * n + 5], 1e-6),
117
130
  })),
118
- memberEndForces: system.members.map((member, m) => ({
119
- memberId: member.id,
120
- start: endForce(state.memberForces[m].slice(0, 6)),
121
- end: endForce(state.memberForces[m].slice(6, 12)),
131
+ // a member split by the shell mesh: its start is its first piece's, its end its last's
132
+ memberEndForces: system.memberGroups.map(({ id, pieces }) => ({
133
+ memberId: id,
134
+ start: endForce(state.memberForces[pieces[0]].slice(0, 6)),
135
+ end: endForce(state.memberForces[pieces[pieces.length - 1]].slice(6, 12)),
122
136
  })),
123
- releaseDeformations: system.members.flatMap((member, m) => {
124
- if (!member.hasReleases)
137
+ releaseDeformations: system.memberGroups.flatMap(({ id, pieces }) => {
138
+ const [first, last] = [pieces[0], pieces[pieces.length - 1]];
139
+ if (!system.members[first].hasReleases && !system.members[last].hasReleases)
125
140
  return [];
126
- const { node, own } = memberEnd(system, state, m);
127
- const jump = node.map((v, i) => v - own[i]);
141
+ const jump = (m) => {
142
+ const { node, own } = memberEnd(system, state, m);
143
+ return node.map((v, i) => v - own[i]);
144
+ };
128
145
  return [
129
146
  {
130
- memberId: member.id,
131
- start: releaseDeformation(jump.slice(0, 6)),
132
- end: releaseDeformation(jump.slice(6, 12)),
147
+ memberId: id,
148
+ start: releaseDeformation(jump(first).slice(0, 6)),
149
+ end: releaseDeformation(jump(last).slice(6, 12)),
133
150
  },
134
151
  ];
135
152
  }),
136
- memberDiagrams: system.members.map((_, m) => (0, exports.presentMemberDiagram)(system, state, m, diagram.stations, diagram.withStations ?? true)),
153
+ memberDiagrams: system.memberGroups.map((_, g) => (0, exports.presentMemberDiagram)(system, state, g, diagram.stations, diagram.withStations ?? true)),
154
+ shellForces: system.shells.map((shell, s) => (0, shell_forces_1.presentShellForces)(shell, shell.nodeIndices.map((n) => system.nodes[n].id), state.shellForces[s])),
137
155
  equilibriumResidual: {
138
156
  force: (0, math_1.roundToDecimalPlaces)(residual.force, 8),
139
157
  moment: (0, math_1.roundToDecimalPlaces)(residual.moment, 8),