@theerapat-s28/ts-structural-eng-tools 2.3.0 → 3.1.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 +80 -1
  2. package/README.md +35 -11
  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
@@ -6,6 +6,8 @@ const frame_analysis_error_1 = require("../../../core/errors/frame-analysis.erro
6
6
  const skyline_1 = require("../../../utils/skyline");
7
7
  const beam_3d_stiffness_1 = require("../elements/beam-3d-stiffness");
8
8
  const end_releases_1 = require("../elements/end-releases");
9
+ const flat_shell_1 = require("../elements/shell/flat-shell");
10
+ const quad_geometry_1 = require("../elements/shell/quad-geometry");
9
11
  const static_condensation_1 = require("../elements/static-condensation");
10
12
  const coordinate_transform_1 = require("../transformation/coordinate-transform");
11
13
  const validate_model_1 = require("../validation/validate-model");
@@ -14,46 +16,152 @@ const boundary_conditions_1 = require("./boundary-conditions");
14
16
  const global_assembly_1 = require("./global-assembly");
15
17
  const DOF_NAMES = ["ux", "uy", "uz", "rx", "ry", "rz"];
16
18
  /**
17
- * Builds the member matrices of a model that passed `validateFrameModel`, assembles the free
18
- * stiffness in skyline storage with nodes in reverse Cuthill–McKee order, and factorises it
19
- * once for all load cases. Joint rotations that no member resists (e.g. at truss joints) are
20
- * held by a spring along each null direction, which carries no force.
19
+ * Builds the member and shell matrices of a model that passed `validateFrameModel`, assembles
20
+ * the free stiffness in skyline storage with nodes in reverse Cuthill–McKee order, and
21
+ * factorises it once for all load cases. Joint rotations that nothing resists (e.g. at truss
22
+ * joints) are held by a spring along each null direction, which carries no force.
21
23
  *
22
- * @throws {FrameAnalysisError} 304 if the structure is a mechanism; `details` names a node and
23
- * a DOF involved in it
24
+ * @throws {FrameAnalysisError} 328 if a node connected only to shells has a translation that
25
+ * nothing resists (a membrane's out-of-plane or a plate's in-plane direction), with `nodeId`,
26
+ * `shellId` and `dof`; 304 if the structure is a mechanism; `details` names a node and a DOF
27
+ * involved in it
24
28
  */
25
29
  const prepareFrameSystem = (model) => {
26
30
  const { nodes, members, restraints } = model;
31
+ // shell elements: after `expandModel` they carry their area's id
32
+ const shells = (model.shells ?? []);
27
33
  const nodeIndex = new Map(nodes.map((n, i) => [n.id, i]));
28
34
  const memberIndex = new Map(members.map((m, i) => [m.id, i]));
35
+ const shellIndex = new Map(shells.map((sh, i) => [sh.id, i]));
29
36
  const dofCount = 6 * nodes.length;
30
37
  const boundary = (0, boundary_conditions_1.buildBoundaryConditions)(restraints, nodeIndex, dofCount);
31
- const systemMembers = members.map((member) => {
32
- const start = nodes[nodeIndex.get(member.startNodeId)];
33
- const end = nodes[nodeIndex.get(member.endNodeId)];
34
- const { length, lambda } = (0, coordinate_transform_1.memberAxes)([start.x, start.y, start.z], [end.x, end.y, end.z], member.angle ?? 0);
38
+ const point = (id) => {
39
+ const n = nodes[nodeIndex.get(id)];
40
+ return [n.x, n.y, n.z];
41
+ };
42
+ const systemMembers = [];
43
+ const memberGroups = members.map((member) => {
44
+ // pieces between the member's ends and the mesh nodes inside it (see `expandModel`)
45
+ const chain = [member.startNodeId, ...(member.through ?? []), member.endNodeId];
46
+ const whole = (0, coordinate_transform_1.memberAxes)(point(member.startNodeId), point(member.endNodeId), member.angle ?? 0);
35
47
  const { E, G, A, I22, I33, J } = member.section;
36
- const releases = (0, end_releases_1.memberEndReleases)(member.releases);
37
- const condensed = (0, static_condensation_1.condenseMember)((0, beam_3d_stiffness_1.beam3dLocalStiffnessRightHanded)(E, G, A, I22, I33, J, length), releases);
48
+ const pieces = [];
49
+ let offset = 0;
50
+ for (let k = 0; k + 1 < chain.length; k++) {
51
+ const { length, lambda } = chain.length === 2
52
+ ? whole
53
+ : (0, coordinate_transform_1.memberAxes)(point(chain[k]), point(chain[k + 1]), member.angle ?? 0);
54
+ // releases only at the member's own ends
55
+ const releases = (0, end_releases_1.memberEndReleases)({
56
+ start: k === 0 ? member.releases?.start : undefined,
57
+ end: k === chain.length - 2 ? member.releases?.end : undefined,
58
+ });
59
+ const condensed = (0, static_condensation_1.condenseMember)((0, beam_3d_stiffness_1.beam3dLocalStiffnessRightHanded)(E, G, A, I22, I33, J, length), releases);
60
+ pieces.push(systemMembers.length);
61
+ systemMembers.push({
62
+ id: member.id,
63
+ offset,
64
+ section: member.section,
65
+ startIndex: nodeIndex.get(chain[k]),
66
+ endIndex: nodeIndex.get(chain[k + 1]),
67
+ T: (0, coordinate_transform_1.transformationMatrix)(lambda),
68
+ k: condensed.k,
69
+ hasReleases: releases.length > 0,
70
+ condenseFixedEndForces: condensed.condenseFixedEndForces,
71
+ memberEndDisplacements: condensed.memberEndDisplacements,
72
+ length,
73
+ lambda,
74
+ });
75
+ offset += length;
76
+ }
38
77
  return {
39
78
  id: member.id,
79
+ pieces,
40
80
  section: member.section,
41
- startIndex: nodeIndex.get(member.startNodeId),
42
- endIndex: nodeIndex.get(member.endNodeId),
43
- T: (0, coordinate_transform_1.transformationMatrix)(lambda),
44
- k: condensed.k,
45
- hasReleases: releases.length > 0,
46
- condenseFixedEndForces: condensed.condenseFixedEndForces,
47
- memberEndDisplacements: condensed.memberEndDisplacements,
48
- length,
49
- lambda,
81
+ length: whole.length,
82
+ lambda: whole.lambda,
83
+ };
84
+ });
85
+ const systemShells = shells.map((shell) => {
86
+ const nodeIndices = shell.nodeIds.map((id) => nodeIndex.get(id));
87
+ const points = nodeIndices.map((n) => [nodes[n].x, nodes[n].y, nodes[n].z]);
88
+ const { thickness, E, nu } = shell.section;
89
+ const m = shell.modifiers ?? {};
90
+ const type = shell.type ?? "shell";
91
+ const element = (0, flat_shell_1.flatShellElement)(points, {
92
+ E,
93
+ nu,
94
+ t: thickness,
95
+ type,
96
+ membraneModifiers: [m.f11 ?? 1, m.f22 ?? 1, m.f12 ?? 1],
97
+ bendingModifiers: [m.m11 ?? 1, m.m22 ?? 1, m.m12 ?? 1],
98
+ }, shell.angle ?? 0);
99
+ return {
100
+ id: shell.id,
101
+ areaId: shell.areaId ?? shell.id,
102
+ nodeIndices,
103
+ type,
104
+ section: shell.section,
105
+ modifiers: m,
106
+ element,
107
+ cornerAreas: (0, quad_geometry_1.cornerAreas)(element.axes.corners),
50
108
  };
51
109
  });
110
+ const shellsByArea = new Map();
111
+ systemShells.forEach((sh, s) => {
112
+ const list = shellsByArea.get(sh.areaId);
113
+ if (list)
114
+ list.push(s);
115
+ else
116
+ shellsByArea.set(sh.areaId, [s]);
117
+ });
118
+ // Everything that adds stiffness, as elements over 6 DOFs per node; members have 2 nodes
119
+ const memberElements = systemMembers.map((m) => ({
120
+ nodes: [m.startIndex, m.endIndex],
121
+ kGlobal: (0, global_assembly_1.memberGlobalStiffness)(m),
122
+ }));
123
+ const shellElements = systemShells.map((sh) => ({
124
+ nodes: sh.nodeIndices,
125
+ kGlobal: sh.element.kGlobal,
126
+ }));
127
+ const elements = [...memberElements, ...shellElements];
128
+ // ---- Translations no shell resists at nodes without members (membrane / plate only) --
129
+ const memberNodes = new Set(systemMembers.flatMap((m) => [m.startIndex, m.endIndex]));
130
+ const shellOnlyNodes = new Set(systemShells.flatMap((sh) => sh.nodeIndices).filter((n) => !memberNodes.has(n)));
131
+ const unresisted = (0, auto_restraint_1.findUnresistedTranslations)([...shellOnlyNodes].sort((a, b) => a - b), // issues in model order
132
+ shellElements, boundary);
133
+ if (unresisted.length > 0) {
134
+ (0, validate_model_1.throwIssues)(unresisted.map(({ node, axis }) => {
135
+ const lead = axis.reduce((best, c, i) => (Math.abs(c) > Math.abs(axis[best]) ? i : best), 0);
136
+ return (0, validate_model_1.frameIssue)(frame_analysis_error_1.FrameErrors.SHELL_DOF_UNSUPPORTED, {
137
+ nodeId: nodes[node].id,
138
+ shellId: systemShells.find((sh) => sh.nodeIndices.includes(node))?.id,
139
+ dof: DOF_NAMES[lead],
140
+ });
141
+ }));
142
+ }
52
143
  // ---- Equation numbering: nodes in RCM order, fixed DOFs skipped ------------------
53
144
  const adjacency = nodes.map(() => []);
54
- for (const m of systemMembers) {
55
- adjacency[m.startIndex].push(m.endIndex);
56
- adjacency[m.endIndex].push(m.startIndex);
145
+ for (const element of memberElements) {
146
+ for (const a of element.nodes) {
147
+ for (const b of element.nodes)
148
+ if (a !== b)
149
+ adjacency[a].push(b);
150
+ }
151
+ }
152
+ // shells share edges: add each neighbour once (members keep their own order unchanged)
153
+ if (shellElements.length > 0) {
154
+ const known = adjacency.map((list) => new Set(list));
155
+ for (const element of shellElements) {
156
+ for (const a of element.nodes) {
157
+ for (const b of element.nodes) {
158
+ if (a !== b && !known[a].has(b)) {
159
+ known[a].add(b);
160
+ adjacency[a].push(b);
161
+ }
162
+ }
163
+ }
164
+ }
57
165
  }
58
166
  const equation = new Int32Array(dofCount).fill(-1);
59
167
  const free = [];
@@ -66,18 +174,13 @@ const prepareFrameSystem = (model) => {
66
174
  }
67
175
  }
68
176
  }
69
- const kGlobal = systemMembers.map(global_assembly_1.memberGlobalStiffness);
70
- const autoRestraints = (0, auto_restraint_1.findAutoRestraints)(nodes.length, systemMembers.map((m, i) => ({
71
- startIndex: m.startIndex,
72
- endIndex: m.endIndex,
73
- kGlobal: kGlobal[i],
74
- })), boundary);
177
+ const autoRestraints = (0, auto_restraint_1.findAutoRestraints)(nodes.length, elements, boundary);
75
178
  // ---- Profile, assembly and factorisation -----------------------------------------
76
179
  let factor = null;
77
180
  if (free.length > 0) {
78
181
  const first = free.map((_, e) => e);
79
- const memberEquations = systemMembers.map((m) => (0, global_assembly_1.memberDofs)(m).map((d) => equation[d]));
80
- for (const eqs of memberEquations) {
182
+ const elementEquations = elements.map((el) => (0, global_assembly_1.elementDofs)(el.nodes).map((d) => equation[d]));
183
+ for (const eqs of elementEquations) {
81
184
  const active = eqs.filter((e) => e >= 0);
82
185
  const low = Math.min(...active);
83
186
  for (const e of active)
@@ -85,14 +188,15 @@ const prepareFrameSystem = (model) => {
85
188
  first[e] = low;
86
189
  }
87
190
  const K = (0, skyline_1.createSkyline)(first);
88
- memberEquations.forEach((eqs, index) => {
89
- // a member's 12 DOFs are distinct, so each unordered pair and each diagonal is added once
90
- for (let a = 0; a < 12; a++) {
191
+ elementEquations.forEach((eqs, index) => {
192
+ // an element's nodes, hence its DOFs, are distinct: each pair and diagonal is added once
193
+ const k = elements[index].kGlobal;
194
+ for (let a = 0; a < eqs.length; a++) {
91
195
  if (eqs[a] < 0)
92
196
  continue;
93
- for (let b = 0; b < 12; b++) {
197
+ for (let b = 0; b < eqs.length; b++) {
94
198
  if (eqs[b] >= eqs[a])
95
- (0, skyline_1.skylineAdd)(K, eqs[a], eqs[b], kGlobal[index][a][b]);
199
+ (0, skyline_1.skylineAdd)(K, eqs[a], eqs[b], k[a][b]);
96
200
  }
97
201
  }
98
202
  });
@@ -100,7 +204,7 @@ const prepareFrameSystem = (model) => {
100
204
  if (boundary.spring[dof] > 0)
101
205
  (0, skyline_1.skylineAdd)(K, e, e, boundary.spring[dof]);
102
206
  });
103
- // k·n·nᵀ on the node's free rotations, inside the profile: its members span all 6 node DOFs
207
+ // k·n·nᵀ on the node's free rotations, inside the profile: its elements span all 6 node DOFs
104
208
  for (const { node, axis, stiffness } of autoRestraints) {
105
209
  for (let i = 0; i < 3; i++) {
106
210
  const ei = equation[6 * node + 3 + i];
@@ -129,7 +233,11 @@ const prepareFrameSystem = (model) => {
129
233
  nodes,
130
234
  nodeIndex,
131
235
  memberIndex,
236
+ memberGroups,
132
237
  members: systemMembers,
238
+ shellIndex,
239
+ shellsByArea,
240
+ shells: systemShells,
133
241
  dofCount,
134
242
  boundary,
135
243
  equation,
@@ -1 +1 @@
1
- {"version":3,"file":"frame-system.js","sourceRoot":"","sources":["../../../../src/fea/frame/solver/frame-system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame-system.js","sourceRoot":"","sources":["../../../../src/fea/frame/solver/frame-system.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,21 @@
1
1
  import { type Matrix } from "../../../utils/matrix";
2
+ /**
3
+ * A stiffness contribution to the global system: the nodes it connects and its stiffness over
4
+ * their DOFs (6 per node, in node order) in global axes. A member is a 2-node element; elements
5
+ * with more nodes assemble the same way.
6
+ */
7
+ export interface StiffnessElement {
8
+ nodes: number[];
9
+ kGlobal: Matrix;
10
+ }
2
11
  export interface AssemblyMember {
3
12
  startIndex: number;
4
13
  endIndex: number;
5
14
  T: Matrix;
6
15
  k: Matrix;
7
16
  }
17
+ /** Global DOF numbers (6 per node, in node order) of an element connecting `nodes`. */
18
+ export declare const elementDofs: (nodes: readonly number[]) => number[];
8
19
  /** Global DOF numbers (6 per node) of a member's 12 end DOFs. */
9
20
  export declare const memberDofs: (member: Pick<AssemblyMember, "startIndex" | "endIndex">) => number[];
10
21
  /** A member's stiffness in global axes, `Tᵀ·k·T` (N and mm). */
@@ -1,16 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scatterMemberForces = exports.memberGlobalStiffness = exports.memberDofs = void 0;
3
+ exports.scatterMemberForces = exports.memberGlobalStiffness = exports.memberDofs = exports.elementDofs = void 0;
4
4
  const matrix_1 = require("../../../utils/matrix");
5
- /** Global DOF numbers (6 per node) of a member's 12 end DOFs. */
6
- const memberDofs = (member) => {
5
+ /** Global DOF numbers (6 per node, in node order) of an element connecting `nodes`. */
6
+ const elementDofs = (nodes) => {
7
7
  const dofs = [];
8
- for (const node of [member.startIndex, member.endIndex]) {
8
+ for (const node of nodes) {
9
9
  for (let k = 0; k < 6; k++)
10
10
  dofs.push(6 * node + k);
11
11
  }
12
12
  return dofs;
13
13
  };
14
+ exports.elementDofs = elementDofs;
15
+ /** Global DOF numbers (6 per node) of a member's 12 end DOFs. */
16
+ const memberDofs = (member) => (0, exports.elementDofs)([member.startIndex, member.endIndex]);
14
17
  exports.memberDofs = memberDofs;
15
18
  /** A member's stiffness in global axes, `Tᵀ·k·T` (N and mm). */
16
19
  const memberGlobalStiffness = (member) => (0, matrix_1.matMul)((0, matrix_1.transpose)(member.T), (0, matrix_1.matMul)(member.k, member.T));
@@ -1 +1 @@
1
- {"version":3,"file":"global-assembly.js","sourceRoot":"","sources":["../../../../src/fea/frame/solver/global-assembly.ts"],"names":[],"mappings":";;;AAAA,8CAAmE;AASnE,iEAAiE;AAC1D,MAAM,UAAU,GAAG,CAAC,MAAuD,EAAY,EAAE;IAC9F,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AANW,QAAA,UAAU,cAMrB;AAEF,gEAAgE;AACzD,MAAM,qBAAqB,GAAG,CAAC,MAAsB,EAAU,EAAE,CACtE,IAAA,eAAM,EAAC,IAAA,kBAAS,EAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAD7C,QAAA,qBAAqB,yBACwB;AAE1D;;;;GAIG;AACI,MAAM,mBAAmB,GAAG,CACjC,MAAgB,EAChB,MAA6D,EAC7D,WAAqB,EACrB,IAAY,EACN,EAAE;IACR,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC;IAClC,CAAC;AACH,CAAC,CAAC;AAZW,QAAA,mBAAmB,uBAY9B"}
1
+ {"version":3,"file":"global-assembly.js","sourceRoot":"","sources":["../../../../src/fea/frame/solver/global-assembly.ts"],"names":[],"mappings":";;;AAAA,8CAAmE;AAmBnE,uFAAuF;AAChF,MAAM,WAAW,GAAG,CAAC,KAAwB,EAAY,EAAE;IAChE,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AANW,QAAA,WAAW,eAMtB;AAEF,iEAAiE;AAC1D,MAAM,UAAU,GAAG,CAAC,MAAuD,EAAY,EAAE,CAC9F,IAAA,mBAAW,EAAC,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AADvC,QAAA,UAAU,cAC6B;AAEpD,gEAAgE;AACzD,MAAM,qBAAqB,GAAG,CAAC,MAAsB,EAAU,EAAE,CACtE,IAAA,eAAM,EAAC,IAAA,kBAAS,EAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAD7C,QAAA,qBAAqB,yBACwB;AAE1D;;;;GAIG;AACI,MAAM,mBAAmB,GAAG,CACjC,MAAgB,EAChB,MAA6D,EAC7D,WAAqB,EACrB,IAAY,EACN,EAAE;IACR,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC;IAClC,CAAC;AACH,CAAC,CAAC;AAZW,QAAA,mBAAmB,uBAY9B"}
@@ -1,5 +1,5 @@
1
1
  import { type LocalMemberLoad } from "../elements/fixed-end-forces";
2
- import type { LoadCase, MemberLoad, NodalLoad } from "../types/model.type";
2
+ import type { AreaLoad, LoadCase, MemberLoad, NodalLoad } from "../types/model.type";
3
3
  import type { FrameSystem } from "./frame-system";
4
4
  /**
5
5
  * Unrounded result of one load case or combination, in N and mm. Every field is linear in the
@@ -10,6 +10,7 @@ export interface RawState {
10
10
  R: number[];
11
11
  F: number[];
12
12
  memberForces: number[][];
13
+ shellForces: number[][];
13
14
  memberLoads: LocalMemberLoad[][];
14
15
  }
15
16
  /**
@@ -20,6 +21,14 @@ export interface RawState {
20
21
  * @param loadCase - The load case (id and self-weight multiplier)
21
22
  * @param loads - The nodal and member loads tagged with this load case
22
23
  *
24
+ * Shell areas take `selfWeight · unitWeight · thickness · modifiers.weight` per unit area along
25
+ * −Z and their `AreaLoad`s as forces at their corners, each corner the share `∫ Nᵢ dA` of the
26
+ * element's area on its mean plane (no corner moments, so a warped element's offsets do not load
27
+ * the rotations auto-restraint holds).
28
+ *
29
+ * @param loads - The nodal and member loads tagged with this load case, and its area loads on
30
+ * shell areas
31
+ *
23
32
  * @throws {FrameAnalysisError} 304 if a load has a moment about a joint rotation that nothing
24
33
  * resists (an auto-restrained axis), 308 for a load outside its member, 313 if self-weight is
25
34
  * requested for a member without `unitWeight`
@@ -27,6 +36,7 @@ export interface RawState {
27
36
  export declare const solveLoadCase: (system: FrameSystem, loadCase: LoadCase, loads: {
28
37
  nodalLoads: NodalLoad[];
29
38
  memberLoads: MemberLoad[];
39
+ shellLoads?: AreaLoad[];
30
40
  }) => RawState;
31
41
  /** Superposes factored states: `Σ factor × state`. Member loads are concatenated, scaled. */
32
42
  export declare const combineStates: (terms: {
@@ -6,6 +6,7 @@ const frame_analysis_error_1 = require("../../../core/errors/frame-analysis.erro
6
6
  const matrix_1 = require("../../../utils/matrix");
7
7
  const skyline_1 = require("../../../utils/skyline");
8
8
  const fixed_end_forces_1 = require("../elements/fixed-end-forces");
9
+ const shell_forces_1 = require("../post/shell-forces");
9
10
  const validate_model_1 = require("../validation/validate-model");
10
11
  const global_assembly_1 = require("./global-assembly");
11
12
  const GLOBAL_DIRECTIONS = {
@@ -52,6 +53,41 @@ const toLocalLoads = (load, lambda, L) => {
52
53
  };
53
54
  });
54
55
  };
56
+ /**
57
+ * The part of a member's local loads that falls on one of its pieces, `[offset, offset + L]`,
58
+ * in the piece's own positions. A distributed load or torque is cut at the piece ends; a point
59
+ * load goes to the piece it lies in (at an interior node, to the piece that starts there).
60
+ */
61
+ const clipLoads = (loads, offset, L, last) => {
62
+ const end = offset + L;
63
+ const tolerance = 1e-9 * end;
64
+ const out = [];
65
+ for (const load of loads) {
66
+ if (load.type === "point") {
67
+ const inside = load.a >= offset - tolerance && (load.a < end - tolerance || last);
68
+ if (inside)
69
+ out.push({ ...load, a: Math.min(L, Math.max(0, load.a - offset)) });
70
+ continue;
71
+ }
72
+ const from = Math.max(load.start, offset);
73
+ const to = Math.min(load.end, end);
74
+ if (to - from <= tolerance)
75
+ continue;
76
+ if (load.type === "torque") {
77
+ out.push({ ...load, start: from - offset, end: to - offset });
78
+ }
79
+ else {
80
+ out.push({
81
+ ...load,
82
+ w1: (0, fixed_end_forces_1.loadIntensity)(load, from),
83
+ w2: (0, fixed_end_forces_1.loadIntensity)(load, to),
84
+ start: from - offset,
85
+ end: to - offset,
86
+ });
87
+ }
88
+ }
89
+ return out;
90
+ };
55
91
  /**
56
92
  * Solves one load case against the prepared, factorised system.
57
93
  *
@@ -60,6 +96,14 @@ const toLocalLoads = (load, lambda, L) => {
60
96
  * @param loadCase - The load case (id and self-weight multiplier)
61
97
  * @param loads - The nodal and member loads tagged with this load case
62
98
  *
99
+ * Shell areas take `selfWeight · unitWeight · thickness · modifiers.weight` per unit area along
100
+ * −Z and their `AreaLoad`s as forces at their corners, each corner the share `∫ Nᵢ dA` of the
101
+ * element's area on its mean plane (no corner moments, so a warped element's offsets do not load
102
+ * the rotations auto-restraint holds).
103
+ *
104
+ * @param loads - The nodal and member loads tagged with this load case, and its area loads on
105
+ * shell areas
106
+ *
63
107
  * @throws {FrameAnalysisError} 304 if a load has a moment about a joint rotation that nothing
64
108
  * resists (an auto-restrained axis), 308 for a load outside its member, 313 if self-weight is
65
109
  * requested for a member without `unitWeight`
@@ -67,15 +111,18 @@ const toLocalLoads = (load, lambda, L) => {
67
111
  const solveLoadCase = (system, loadCase, loads) => {
68
112
  const { members, dofCount, boundary, equation, free, factor, nodeIndex, memberIndex } = system;
69
113
  const F = new Array(dofCount).fill(0);
70
- const loadsByMember = members.map(() => []);
114
+ const groups = system.memberGroups;
115
+ const loadsByMember = groups.map(() => []);
71
116
  for (const load of loads.memberLoads) {
72
117
  loadsByMember[memberIndex.get(load.memberId)].push(load);
73
118
  }
74
119
  const selfWeight = loadCase.selfWeight ?? 0;
75
- const memberLoads = members.map((member, m) => {
76
- const memberLoadsHere = [...loadsByMember[m]];
120
+ // local loads of each model member, then of each piece it is analysed as
121
+ const memberLoads = members.map(() => []);
122
+ groups.forEach((group, g) => {
123
+ const memberLoadsHere = [...loadsByMember[g]];
77
124
  if (selfWeight !== 0) {
78
- const { unitWeight, A } = member.section;
125
+ const { unitWeight, A } = group.section;
79
126
  if (unitWeight === undefined)
80
127
  throw new frame_analysis_error_1.FrameAnalysisError(frame_analysis_error_1.FrameErrors.MISSING_UNIT_WEIGHT);
81
128
  // kN/m³ · m² = kN/m
@@ -84,19 +131,58 @@ const solveLoadCase = (system, loadCase, loads) => {
84
131
  memberLoadsHere.push({
85
132
  loadCase: loadCase.id,
86
133
  type: "udl",
87
- memberId: member.id,
134
+ memberId: group.id,
88
135
  direction: "Z",
89
136
  w,
90
137
  });
91
138
  }
92
139
  }
93
- return memberLoadsHere.flatMap((load) => toLocalLoads(load, member.lambda, member.length));
140
+ const local = memberLoadsHere.flatMap((load) => toLocalLoads(load, group.lambda, group.length));
141
+ if (group.pieces.length === 1) {
142
+ memberLoads[group.pieces[0]] = local;
143
+ return;
144
+ }
145
+ group.pieces.forEach((p, k) => {
146
+ const piece = members[p];
147
+ memberLoads[p] = clipLoads(local, piece.offset, piece.length, k === group.pieces.length - 1);
148
+ });
94
149
  });
95
150
  const fixed = members.map((member, m) => {
96
151
  const condensed = member.condenseFixedEndForces((0, fixed_end_forces_1.fixedEndForces)(memberLoads[m], member.length));
97
152
  (0, global_assembly_1.scatterMemberForces)(F, member, condensed, -1);
98
153
  return condensed;
99
154
  });
155
+ // Shell surface loads, kN/m² as a global vector per shell, then N at the corners
156
+ const shellPressure = system.shells.map(() => [0, 0, 0]);
157
+ for (const load of loads.shellLoads ?? []) {
158
+ // every element of the area
159
+ for (const s of system.shellsByArea.get(load.areaId) ?? []) {
160
+ const normal = system.shells[s].element.axes.lambda[2];
161
+ const e = load.direction === "3" ? normal : GLOBAL_DIRECTIONS[load.direction];
162
+ // per projected area → per true area: Aproj / A = |n · e|
163
+ const q = load.projected
164
+ ? load.q * Math.abs(normal[0] * e[0] + normal[1] * e[1] + normal[2] * e[2])
165
+ : load.q;
166
+ for (let k = 0; k < 3; k++)
167
+ shellPressure[s][k] += q * e[k];
168
+ }
169
+ }
170
+ system.shells.forEach((shell, s) => {
171
+ if (selfWeight !== 0) {
172
+ // kN/m³ · mm · 10⁻³ = kN/m²
173
+ const { unitWeight = 0, thickness } = shell.section;
174
+ shellPressure[s][2] -=
175
+ selfWeight * unitWeight * thickness * (shell.modifiers.weight ?? 1) * 1e-3;
176
+ }
177
+ const p = shellPressure[s];
178
+ if (p[0] === 0 && p[1] === 0 && p[2] === 0)
179
+ return;
180
+ shell.nodeIndices.forEach((node, i) => {
181
+ // kN/m² = 10⁻³ N/mm², times mm²
182
+ for (let k = 0; k < 3; k++)
183
+ F[6 * node + k] += p[k] * 1e-3 * shell.cornerAreas[i];
184
+ });
185
+ });
100
186
  for (const load of loads.nodalLoads) {
101
187
  const base = 6 * nodeIndex.get(load.nodeId);
102
188
  [load.fx, load.fy, load.fz].forEach((v, k) => (F[base + k] += (v ?? 0) * 1e3));
@@ -134,8 +220,14 @@ const solveLoadCase = (system, loadCase, loads) => {
134
220
  (0, global_assembly_1.scatterMemberForces)(KU, member, elastic, 1);
135
221
  return elastic.map((v, i) => v + fixed[m][i]);
136
222
  });
223
+ for (const shell of system.shells) {
224
+ const dofs = (0, global_assembly_1.elementDofs)(shell.nodeIndices);
225
+ const forces = (0, matrix_1.matVec)(shell.element.kGlobal, dofs.map((d) => U[d]));
226
+ dofs.forEach((d, a) => (KU[d] += forces[a]));
227
+ }
137
228
  const R = KU.map((v, i) => (boundary.restrained[i] ? v - F[i] : 0));
138
- return { U, R, F, memberForces, memberLoads };
229
+ const shellForces = system.shells.map((shell) => (0, shell_forces_1.shellRawForces)(shell, U));
230
+ return { U, R, F, memberForces, shellForces, memberLoads };
139
231
  };
140
232
  exports.solveLoadCase = solveLoadCase;
141
233
  const scaleLoad = (load, factor) => {
@@ -160,6 +252,7 @@ const combineStates = (terms) => {
160
252
  R: add((s) => s.R, first.R.length),
161
253
  F: add((s) => s.F, first.F.length),
162
254
  memberForces: first.memberForces.map((_, m) => add((s) => s.memberForces[m], 12)),
255
+ shellForces: first.shellForces.map((f, sh) => add((s) => s.shellForces[sh], f.length)),
163
256
  memberLoads: first.memberLoads.map((_, m) => terms.flatMap(({ state, factor }) => factor === 0 ? [] : state.memberLoads[m].map((l) => scaleLoad(l, factor)))),
164
257
  };
165
258
  };
@@ -1 +1 @@
1
- {"version":3,"file":"load-case-solver.js","sourceRoot":"","sources":["../../../../src/fea/frame/solver/load-case-solver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load-case-solver.js","sourceRoot":"","sources":["../../../../src/fea/frame/solver/load-case-solver.ts"],"names":[],"mappings":"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"}