@theerapat-s28/ts-structural-eng-tools 3.1.0 → 3.3.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 (324) hide show
  1. package/CHANGELOG.md +48 -1
  2. package/README.md +293 -131
  3. package/dist/core/constants/frame.constant.d.ts +8 -0
  4. package/dist/core/constants/frame.constant.js +9 -1
  5. package/dist/core/constants/frame.constant.js.map +1 -1
  6. package/dist/core/errors/fea.error.d.ts +47 -0
  7. package/dist/{esm/core/errors/frame-analysis.error.js → core/errors/fea.error.js} +14 -5
  8. package/dist/core/errors/fea.error.js.map +1 -0
  9. package/dist/core/index.d.ts +5 -3
  10. package/dist/core/index.js +10 -4
  11. package/dist/core/index.js.map +1 -1
  12. package/dist/esm/core/constants/frame.constant.js +8 -0
  13. package/dist/esm/core/constants/frame.constant.js.map +1 -1
  14. package/dist/{core/errors/frame-analysis.error.js → esm/core/errors/fea.error.js} +10 -9
  15. package/dist/esm/core/errors/fea.error.js.map +1 -0
  16. package/dist/esm/core/index.js +4 -2
  17. package/dist/esm/core/index.js.map +1 -1
  18. package/dist/esm/fea/analysis/index.js +7 -0
  19. package/dist/esm/fea/analysis/index.js.map +1 -0
  20. package/dist/esm/fea/{frame → analysis}/mesh/expand-model.js +30 -41
  21. package/dist/esm/fea/analysis/mesh/expand-model.js.map +1 -0
  22. package/dist/esm/fea/analysis/mesh/member-connectivity.js +66 -0
  23. package/dist/esm/fea/analysis/mesh/member-connectivity.js.map +1 -0
  24. package/dist/esm/fea/{frame → analysis}/post/demand-envelope.js +4 -4
  25. package/dist/esm/fea/analysis/post/demand-envelope.js.map +1 -0
  26. package/dist/esm/fea/analysis/post/envelope.js.map +1 -0
  27. package/dist/esm/fea/{frame → analysis}/post/present-state.js +6 -6
  28. package/dist/esm/fea/analysis/post/present-state.js.map +1 -0
  29. package/dist/esm/fea/{frame/solver/frame-system.js → analysis/solver/analysis-system.js} +17 -90
  30. package/dist/esm/fea/analysis/solver/analysis-system.js.map +1 -0
  31. package/dist/esm/fea/{frame/solver/analyze-frame.js → analysis/solver/analyze.js} +28 -18
  32. package/dist/esm/fea/analysis/solver/analyze.js.map +1 -0
  33. package/dist/esm/fea/{frame → analysis}/solver/combinations.js +8 -8
  34. package/dist/esm/fea/analysis/solver/combinations.js.map +1 -0
  35. package/dist/esm/fea/analysis/solver/distribute-area-loads.js +25 -0
  36. package/dist/esm/fea/analysis/solver/distribute-area-loads.js.map +1 -0
  37. package/dist/esm/fea/analysis/solver/load-case-solver.js +103 -0
  38. package/dist/esm/fea/analysis/solver/load-case-solver.js.map +1 -0
  39. package/dist/esm/fea/analysis/types/model.type.js +2 -0
  40. package/dist/esm/fea/analysis/types/model.type.js.map +1 -0
  41. package/dist/esm/fea/analysis/types/results.type.js +2 -0
  42. package/dist/esm/fea/analysis/types/results.type.js.map +1 -0
  43. package/dist/esm/fea/analysis/validation/validate-model.js +263 -0
  44. package/dist/esm/fea/analysis/validation/validate-model.js.map +1 -0
  45. package/dist/esm/fea/deprecated.js +9 -0
  46. package/dist/esm/fea/deprecated.js.map +1 -0
  47. package/dist/esm/fea/frame/area/{distribute-area-loads.js → area-member-loads.js} +7 -28
  48. package/dist/esm/fea/frame/area/area-member-loads.js.map +1 -0
  49. package/dist/esm/fea/frame/area/edge-members.js.map +1 -1
  50. package/dist/esm/fea/frame/elements/end-releases.js +2 -6
  51. package/dist/esm/fea/frame/elements/end-releases.js.map +1 -1
  52. package/dist/esm/fea/frame/elements/fixed-end-forces.js +5 -5
  53. package/dist/esm/fea/frame/elements/fixed-end-forces.js.map +1 -1
  54. package/dist/esm/fea/frame/elements/static-condensation.js +3 -3
  55. package/dist/esm/fea/frame/elements/static-condensation.js.map +1 -1
  56. package/dist/esm/fea/frame/index.js +1 -4
  57. package/dist/esm/fea/frame/index.js.map +1 -1
  58. package/dist/esm/fea/frame/post/member-diagram.js +4 -4
  59. package/dist/esm/fea/frame/post/member-diagram.js.map +1 -1
  60. package/dist/esm/fea/frame/solver/{global-assembly.js → member-assembly.js} +2 -10
  61. package/dist/esm/fea/frame/solver/member-assembly.js.map +1 -0
  62. package/dist/esm/fea/frame/solver/member-loads.js +141 -0
  63. package/dist/esm/fea/frame/solver/member-loads.js.map +1 -0
  64. package/dist/esm/fea/frame/solver/nodes-along-members.js +73 -0
  65. package/dist/esm/fea/frame/solver/nodes-along-members.js.map +1 -0
  66. package/dist/esm/fea/frame/solver/system-member.js +66 -0
  67. package/dist/esm/fea/frame/solver/system-member.js.map +1 -0
  68. package/dist/esm/fea/frame/transformation/coordinate-transform.js +3 -3
  69. package/dist/esm/fea/frame/transformation/coordinate-transform.js.map +1 -1
  70. package/dist/esm/fea/frame/validation/validate-members.js +164 -0
  71. package/dist/esm/fea/frame/validation/validate-members.js.map +1 -0
  72. package/dist/esm/fea/frame/validation/validate-null-areas.js +88 -0
  73. package/dist/esm/fea/frame/validation/validate-null-areas.js.map +1 -0
  74. package/dist/esm/fea/index.js +4 -1
  75. package/dist/esm/fea/index.js.map +1 -1
  76. package/dist/esm/fea/shared/index.js +2 -0
  77. package/dist/esm/fea/shared/index.js.map +1 -0
  78. package/dist/esm/fea/shared/solver/auto-restraint.js.map +1 -0
  79. package/dist/esm/fea/{frame → shared}/solver/boundary-conditions.js +5 -1
  80. package/dist/esm/fea/shared/solver/boundary-conditions.js.map +1 -0
  81. package/dist/esm/fea/shared/solver/global-assembly.js +10 -0
  82. package/dist/esm/fea/shared/solver/global-assembly.js.map +1 -0
  83. package/dist/esm/fea/shared/types/model.type.js +2 -0
  84. package/dist/esm/fea/shared/types/model.type.js.map +1 -0
  85. package/dist/esm/fea/shared/validation/issues.js +32 -0
  86. package/dist/esm/fea/shared/validation/issues.js.map +1 -0
  87. package/dist/esm/fea/{frame/elements/shell → shell/elements}/dkq-plate.js +1 -1
  88. package/dist/esm/fea/shell/elements/dkq-plate.js.map +1 -0
  89. package/dist/esm/fea/{frame/elements/shell → shell/elements}/flat-shell.js +1 -1
  90. package/dist/esm/fea/shell/elements/flat-shell.js.map +1 -0
  91. package/dist/esm/fea/{frame/elements/shell → shell/elements}/membrane-quad.js +2 -2
  92. package/dist/esm/fea/shell/elements/membrane-quad.js.map +1 -0
  93. package/dist/esm/fea/shell/elements/quad-geometry.js.map +1 -0
  94. package/dist/esm/fea/shell/elements/rigidity.js.map +1 -0
  95. package/dist/esm/fea/{frame/elements/shell → shell/elements}/shell-axes.js +1 -1
  96. package/dist/esm/fea/shell/elements/shell-axes.js.map +1 -0
  97. package/dist/esm/fea/shell/index.js +2 -0
  98. package/dist/esm/fea/shell/index.js.map +1 -0
  99. package/dist/esm/fea/{frame → shell}/mesh/mesh-shells.js +1 -1
  100. package/dist/esm/fea/shell/mesh/mesh-shells.js.map +1 -0
  101. package/dist/esm/fea/{frame → shell}/post/shell-forces.js +4 -4
  102. package/dist/esm/fea/{frame → shell}/post/shell-forces.js.map +1 -1
  103. package/dist/esm/fea/shell/solver/shell-loads.js +53 -0
  104. package/dist/esm/fea/shell/solver/shell-loads.js.map +1 -0
  105. package/dist/esm/fea/shell/solver/system-shell.js +37 -0
  106. package/dist/esm/fea/shell/solver/system-shell.js.map +1 -0
  107. package/dist/esm/fea/shell/types/model.type.js +2 -0
  108. package/dist/esm/fea/shell/types/model.type.js.map +1 -0
  109. package/dist/esm/fea/shell/types/results.type.js +2 -0
  110. package/dist/esm/fea/shell/types/results.type.js.map +1 -0
  111. package/dist/esm/fea/shell/validation/validate-shells.js +98 -0
  112. package/dist/esm/fea/shell/validation/validate-shells.js.map +1 -0
  113. package/dist/esm/index.js +5 -3
  114. package/dist/esm/index.js.map +1 -1
  115. package/dist/fea/analysis/index.d.ts +10 -0
  116. package/dist/fea/analysis/index.js +16 -0
  117. package/dist/fea/analysis/index.js.map +1 -0
  118. package/dist/fea/analysis/mesh/expand-model.d.ts +34 -0
  119. package/dist/fea/{frame → analysis}/mesh/expand-model.js +30 -41
  120. package/dist/fea/analysis/mesh/expand-model.js.map +1 -0
  121. package/dist/fea/analysis/mesh/member-connectivity.d.ts +43 -0
  122. package/dist/fea/analysis/mesh/member-connectivity.js +71 -0
  123. package/dist/fea/analysis/mesh/member-connectivity.js.map +1 -0
  124. package/dist/fea/{frame → analysis}/post/demand-envelope.d.ts +5 -5
  125. package/dist/fea/{frame → analysis}/post/demand-envelope.js +4 -4
  126. package/dist/fea/analysis/post/demand-envelope.js.map +1 -0
  127. package/dist/fea/{frame → analysis}/post/envelope.d.ts +2 -2
  128. package/dist/fea/analysis/post/envelope.js.map +1 -0
  129. package/dist/fea/analysis/post/present-state.d.ts +21 -0
  130. package/dist/fea/{frame → analysis}/post/present-state.js +7 -7
  131. package/dist/fea/analysis/post/present-state.js.map +1 -0
  132. package/dist/fea/analysis/solver/analysis-system.d.ts +46 -0
  133. package/dist/fea/{frame/solver/frame-system.js → analysis/solver/analysis-system.js} +22 -95
  134. package/dist/fea/analysis/solver/analysis-system.js.map +1 -0
  135. package/dist/fea/{frame/solver/analyze-frame.d.ts → analysis/solver/analyze.d.ts} +29 -20
  136. package/dist/fea/{frame/solver/analyze-frame.js → analysis/solver/analyze.js} +33 -23
  137. package/dist/fea/analysis/solver/analyze.js.map +1 -0
  138. package/dist/fea/{frame → analysis}/solver/combinations.d.ts +1 -1
  139. package/dist/fea/{frame → analysis}/solver/combinations.js +8 -8
  140. package/dist/fea/analysis/solver/combinations.js.map +1 -0
  141. package/dist/fea/{frame/area → analysis/solver}/distribute-area-loads.d.ts +6 -15
  142. package/dist/fea/analysis/solver/distribute-area-loads.js +29 -0
  143. package/dist/fea/analysis/solver/distribute-area-loads.js.map +1 -0
  144. package/dist/fea/{frame → analysis}/solver/load-case-solver.d.ts +9 -13
  145. package/dist/fea/analysis/solver/load-case-solver.js +108 -0
  146. package/dist/fea/analysis/solver/load-case-solver.js.map +1 -0
  147. package/dist/fea/analysis/types/model.type.d.ts +80 -0
  148. package/dist/fea/analysis/types/model.type.js +3 -0
  149. package/dist/fea/analysis/types/model.type.js.map +1 -0
  150. package/dist/fea/analysis/types/results.type.d.ts +123 -0
  151. package/dist/fea/analysis/types/results.type.js +3 -0
  152. package/dist/fea/analysis/types/results.type.js.map +1 -0
  153. package/dist/fea/analysis/validation/validate-model.d.ts +12 -0
  154. package/dist/fea/analysis/validation/validate-model.js +267 -0
  155. package/dist/fea/analysis/validation/validate-model.js.map +1 -0
  156. package/dist/fea/deprecated.d.ts +27 -0
  157. package/dist/fea/deprecated.js +12 -0
  158. package/dist/fea/deprecated.js.map +1 -0
  159. package/dist/fea/frame/area/area-member-loads.d.ts +19 -0
  160. package/dist/fea/frame/area/{distribute-area-loads.js → area-member-loads.js} +8 -30
  161. package/dist/fea/frame/area/area-member-loads.js.map +1 -0
  162. package/dist/fea/frame/area/edge-members.d.ts +5 -4
  163. package/dist/fea/frame/area/edge-members.js.map +1 -1
  164. package/dist/fea/frame/elements/end-releases.d.ts +1 -6
  165. package/dist/fea/frame/elements/end-releases.js +4 -8
  166. package/dist/fea/frame/elements/end-releases.js.map +1 -1
  167. package/dist/fea/frame/elements/fixed-end-forces.d.ts +1 -1
  168. package/dist/fea/frame/elements/fixed-end-forces.js +5 -5
  169. package/dist/fea/frame/elements/fixed-end-forces.js.map +1 -1
  170. package/dist/fea/frame/elements/static-condensation.d.ts +1 -1
  171. package/dist/fea/frame/elements/static-condensation.js +3 -3
  172. package/dist/fea/frame/elements/static-condensation.js.map +1 -1
  173. package/dist/fea/frame/index.d.ts +2 -8
  174. package/dist/fea/frame/index.js +2 -10
  175. package/dist/fea/frame/index.js.map +1 -1
  176. package/dist/fea/frame/post/member-diagram.d.ts +8 -8
  177. package/dist/fea/frame/post/member-diagram.js +4 -4
  178. package/dist/fea/frame/post/member-diagram.js.map +1 -1
  179. package/dist/fea/frame/solver/{global-assembly.d.ts → member-assembly.d.ts} +0 -11
  180. package/dist/fea/frame/solver/{global-assembly.js → member-assembly.js} +4 -13
  181. package/dist/fea/frame/solver/member-assembly.js.map +1 -0
  182. package/dist/fea/frame/solver/member-loads.d.ts +21 -0
  183. package/dist/fea/frame/solver/member-loads.js +146 -0
  184. package/dist/fea/frame/solver/member-loads.js.map +1 -0
  185. package/dist/fea/frame/solver/nodes-along-members.d.ts +31 -0
  186. package/dist/fea/frame/solver/nodes-along-members.js +77 -0
  187. package/dist/fea/frame/solver/nodes-along-members.js.map +1 -0
  188. package/dist/fea/frame/solver/system-member.d.ts +51 -0
  189. package/dist/fea/frame/solver/system-member.js +70 -0
  190. package/dist/fea/frame/solver/system-member.js.map +1 -0
  191. package/dist/fea/frame/transformation/coordinate-transform.d.ts +1 -1
  192. package/dist/fea/frame/transformation/coordinate-transform.js +3 -3
  193. package/dist/fea/frame/transformation/coordinate-transform.js.map +1 -1
  194. package/dist/fea/frame/types/model.type.d.ts +16 -175
  195. package/dist/fea/frame/types/results.type.d.ts +17 -152
  196. package/dist/fea/frame/validation/validate-members.d.ts +30 -0
  197. package/dist/fea/frame/validation/validate-members.js +169 -0
  198. package/dist/fea/frame/validation/validate-members.js.map +1 -0
  199. package/dist/fea/frame/validation/validate-null-areas.d.ts +38 -0
  200. package/dist/fea/frame/validation/validate-null-areas.js +93 -0
  201. package/dist/fea/frame/validation/validate-null-areas.js.map +1 -0
  202. package/dist/fea/index.d.ts +4 -0
  203. package/dist/fea/index.js +4 -1
  204. package/dist/fea/index.js.map +1 -1
  205. package/dist/fea/shared/index.d.ts +1 -0
  206. package/dist/fea/shared/index.js +3 -0
  207. package/dist/fea/shared/index.js.map +1 -0
  208. package/dist/fea/shared/solver/auto-restraint.js.map +1 -0
  209. package/dist/fea/{frame → shared}/solver/boundary-conditions.d.ts +5 -0
  210. package/dist/fea/{frame → shared}/solver/boundary-conditions.js +7 -3
  211. package/dist/fea/shared/solver/boundary-conditions.js.map +1 -0
  212. package/dist/fea/shared/solver/global-assembly.d.ts +12 -0
  213. package/dist/fea/shared/solver/global-assembly.js +14 -0
  214. package/dist/fea/shared/solver/global-assembly.js.map +1 -0
  215. package/dist/fea/shared/types/model.type.d.ts +34 -0
  216. package/dist/fea/shared/types/model.type.js +3 -0
  217. package/dist/fea/shared/types/model.type.js.map +1 -0
  218. package/dist/fea/shared/validation/issues.d.ts +9 -0
  219. package/dist/fea/shared/validation/issues.js +38 -0
  220. package/dist/fea/shared/validation/issues.js.map +1 -0
  221. package/dist/fea/{frame/elements/shell → shell/elements}/dkq-plate.d.ts +1 -1
  222. package/dist/fea/{frame/elements/shell → shell/elements}/dkq-plate.js +1 -1
  223. package/dist/fea/shell/elements/dkq-plate.js.map +1 -0
  224. package/dist/fea/{frame/elements/shell → shell/elements}/flat-shell.d.ts +1 -1
  225. package/dist/fea/{frame/elements/shell → shell/elements}/flat-shell.js +1 -1
  226. package/dist/fea/shell/elements/flat-shell.js.map +1 -0
  227. package/dist/fea/{frame/elements/shell → shell/elements}/membrane-quad.d.ts +1 -1
  228. package/dist/fea/{frame/elements/shell → shell/elements}/membrane-quad.js +2 -2
  229. package/dist/fea/shell/elements/membrane-quad.js.map +1 -0
  230. package/dist/fea/shell/elements/quad-geometry.js.map +1 -0
  231. package/dist/fea/{frame/elements/shell → shell/elements}/rigidity.d.ts +1 -1
  232. package/dist/fea/shell/elements/rigidity.js.map +1 -0
  233. package/dist/fea/{frame/elements/shell → shell/elements}/shell-axes.d.ts +1 -1
  234. package/dist/fea/{frame/elements/shell → shell/elements}/shell-axes.js +1 -1
  235. package/dist/fea/shell/elements/shell-axes.js.map +1 -0
  236. package/dist/fea/shell/index.d.ts +2 -0
  237. package/dist/fea/shell/index.js +3 -0
  238. package/dist/fea/shell/index.js.map +1 -0
  239. package/dist/fea/{frame → shell}/mesh/mesh-shells.d.ts +7 -6
  240. package/dist/fea/{frame → shell}/mesh/mesh-shells.js +1 -1
  241. package/dist/fea/shell/mesh/mesh-shells.js.map +1 -0
  242. package/dist/fea/{frame → shell}/post/shell-forces.d.ts +1 -1
  243. package/dist/fea/{frame → shell}/post/shell-forces.js +4 -4
  244. package/dist/fea/{frame → shell}/post/shell-forces.js.map +1 -1
  245. package/dist/fea/shell/solver/shell-loads.d.ts +17 -0
  246. package/dist/fea/shell/solver/shell-loads.js +57 -0
  247. package/dist/fea/shell/solver/shell-loads.js.map +1 -0
  248. package/dist/fea/shell/solver/system-shell.d.ts +29 -0
  249. package/dist/fea/shell/solver/system-shell.js +41 -0
  250. package/dist/fea/shell/solver/system-shell.js.map +1 -0
  251. package/dist/fea/shell/types/model.type.d.ts +57 -0
  252. package/dist/fea/shell/types/model.type.js +3 -0
  253. package/dist/fea/shell/types/model.type.js.map +1 -0
  254. package/dist/fea/shell/types/results.type.d.ts +47 -0
  255. package/dist/fea/shell/types/results.type.js +3 -0
  256. package/dist/fea/shell/types/results.type.js.map +1 -0
  257. package/dist/fea/shell/validation/validate-shells.d.ts +21 -0
  258. package/dist/fea/shell/validation/validate-shells.js +103 -0
  259. package/dist/fea/shell/validation/validate-shells.js.map +1 -0
  260. package/dist/index.d.ts +6 -4
  261. package/dist/index.js +16 -6
  262. package/dist/index.js.map +1 -1
  263. package/package.json +2 -2
  264. package/dist/core/errors/frame-analysis.error.d.ts +0 -37
  265. package/dist/core/errors/frame-analysis.error.js.map +0 -1
  266. package/dist/esm/core/errors/frame-analysis.error.js.map +0 -1
  267. package/dist/esm/fea/frame/area/distribute-area-loads.js.map +0 -1
  268. package/dist/esm/fea/frame/elements/shell/dkq-plate.js.map +0 -1
  269. package/dist/esm/fea/frame/elements/shell/flat-shell.js.map +0 -1
  270. package/dist/esm/fea/frame/elements/shell/membrane-quad.js.map +0 -1
  271. package/dist/esm/fea/frame/elements/shell/quad-geometry.js.map +0 -1
  272. package/dist/esm/fea/frame/elements/shell/rigidity.js.map +0 -1
  273. package/dist/esm/fea/frame/elements/shell/shell-axes.js.map +0 -1
  274. package/dist/esm/fea/frame/mesh/expand-model.js.map +0 -1
  275. package/dist/esm/fea/frame/mesh/mesh-shells.js.map +0 -1
  276. package/dist/esm/fea/frame/post/demand-envelope.js.map +0 -1
  277. package/dist/esm/fea/frame/post/envelope.js.map +0 -1
  278. package/dist/esm/fea/frame/post/present-state.js.map +0 -1
  279. package/dist/esm/fea/frame/solver/analyze-frame.js.map +0 -1
  280. package/dist/esm/fea/frame/solver/auto-restraint.js.map +0 -1
  281. package/dist/esm/fea/frame/solver/boundary-conditions.js.map +0 -1
  282. package/dist/esm/fea/frame/solver/combinations.js.map +0 -1
  283. package/dist/esm/fea/frame/solver/frame-system.js.map +0 -1
  284. package/dist/esm/fea/frame/solver/global-assembly.js.map +0 -1
  285. package/dist/esm/fea/frame/solver/load-case-solver.js +0 -255
  286. package/dist/esm/fea/frame/solver/load-case-solver.js.map +0 -1
  287. package/dist/esm/fea/frame/validation/validate-model.js +0 -529
  288. package/dist/esm/fea/frame/validation/validate-model.js.map +0 -1
  289. package/dist/fea/frame/area/distribute-area-loads.js.map +0 -1
  290. package/dist/fea/frame/elements/shell/dkq-plate.js.map +0 -1
  291. package/dist/fea/frame/elements/shell/flat-shell.js.map +0 -1
  292. package/dist/fea/frame/elements/shell/membrane-quad.js.map +0 -1
  293. package/dist/fea/frame/elements/shell/quad-geometry.js.map +0 -1
  294. package/dist/fea/frame/elements/shell/rigidity.js.map +0 -1
  295. package/dist/fea/frame/elements/shell/shell-axes.js.map +0 -1
  296. package/dist/fea/frame/mesh/expand-model.d.ts +0 -29
  297. package/dist/fea/frame/mesh/expand-model.js.map +0 -1
  298. package/dist/fea/frame/mesh/mesh-shells.js.map +0 -1
  299. package/dist/fea/frame/post/demand-envelope.js.map +0 -1
  300. package/dist/fea/frame/post/envelope.js.map +0 -1
  301. package/dist/fea/frame/post/present-state.d.ts +0 -20
  302. package/dist/fea/frame/post/present-state.js.map +0 -1
  303. package/dist/fea/frame/solver/analyze-frame.js.map +0 -1
  304. package/dist/fea/frame/solver/auto-restraint.js.map +0 -1
  305. package/dist/fea/frame/solver/boundary-conditions.js.map +0 -1
  306. package/dist/fea/frame/solver/combinations.js.map +0 -1
  307. package/dist/fea/frame/solver/frame-system.d.ts +0 -89
  308. package/dist/fea/frame/solver/frame-system.js.map +0 -1
  309. package/dist/fea/frame/solver/global-assembly.js.map +0 -1
  310. package/dist/fea/frame/solver/load-case-solver.js +0 -260
  311. package/dist/fea/frame/solver/load-case-solver.js.map +0 -1
  312. package/dist/fea/frame/validation/validate-model.d.ts +0 -19
  313. package/dist/fea/frame/validation/validate-model.js +0 -535
  314. package/dist/fea/frame/validation/validate-model.js.map +0 -1
  315. /package/dist/esm/fea/{frame → analysis}/post/envelope.js +0 -0
  316. /package/dist/esm/fea/{frame → shared}/solver/auto-restraint.js +0 -0
  317. /package/dist/esm/fea/{frame/elements/shell → shell/elements}/quad-geometry.js +0 -0
  318. /package/dist/esm/fea/{frame/elements/shell → shell/elements}/rigidity.js +0 -0
  319. /package/dist/fea/{frame → analysis}/post/envelope.js +0 -0
  320. /package/dist/fea/{frame → shared}/solver/auto-restraint.d.ts +0 -0
  321. /package/dist/fea/{frame → shared}/solver/auto-restraint.js +0 -0
  322. /package/dist/fea/{frame/elements/shell → shell/elements}/quad-geometry.d.ts +0 -0
  323. /package/dist/fea/{frame/elements/shell → shell/elements}/quad-geometry.js +0 -0
  324. /package/dist/fea/{frame/elements/shell → shell/elements}/rigidity.js +0 -0
@@ -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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"}
@@ -1,13 +1,5 @@
1
+ import { elementDofs } from "../../shared/solver/global-assembly.js";
1
2
  import { matMul, transpose } from "../../../utils/matrix.js";
2
- /** Global DOF numbers (6 per node, in node order) of an element connecting `nodes`. */
3
- export const elementDofs = (nodes) => {
4
- const dofs = [];
5
- for (const node of nodes) {
6
- for (let k = 0; k < 6; k++)
7
- dofs.push(6 * node + k);
8
- }
9
- return dofs;
10
- };
11
3
  /** Global DOF numbers (6 per node) of a member's 12 end DOFs. */
12
4
  export const memberDofs = (member) => elementDofs([member.startIndex, member.endIndex]);
13
5
  /** A member's stiffness in global axes, `Tᵀ·k·T` (N and mm). */
@@ -26,4 +18,4 @@ export const scatterMemberForces = (target, member, localForces, sign) => {
26
18
  target[dofs[a]] += sign * value;
27
19
  }
28
20
  };
29
- //# sourceMappingURL=global-assembly.js.map
21
+ //# sourceMappingURL=member-assembly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"member-assembly.js","sourceRoot":"","sources":["../../../../../src/fea/frame/solver/member-assembly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AASnE,iEAAiE;AACjE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAuD,EAAY,EAAE,CAC9F,WAAW,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEpD,gEAAgE;AAChE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAsB,EAAU,EAAE,CACtE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAAgB,EAChB,MAA6D,EAC7D,WAAqB,EACrB,IAAY,EACN,EAAE;IACR,MAAM,IAAI,GAAG,UAAU,CAAC,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"}
@@ -0,0 +1,141 @@
1
+ import { FeaError, FeaErrors } from "../../../core/errors/fea.error.js";
2
+ import { loadIntensity } from "../elements/fixed-end-forces.js";
3
+ const GLOBAL_DIRECTIONS = {
4
+ X: [1, 0, 0],
5
+ Y: [0, 1, 0],
6
+ Z: [0, 0, 1],
7
+ };
8
+ /** Resolves a member load into local-axis loads in N and mm. */
9
+ const toLocalLoads = (load, lambda, L) => {
10
+ const components = (direction) => {
11
+ if (direction === "1" || direction === "2" || direction === "3") {
12
+ return [{ axis: Number(direction), factor: 1 }];
13
+ }
14
+ const v = GLOBAL_DIRECTIONS[direction];
15
+ return [1, 2, 3]
16
+ .map((axis) => ({
17
+ axis,
18
+ factor: lambda[axis - 1][0] * v[0] + lambda[axis - 1][1] * v[1] + lambda[axis - 1][2] * v[2],
19
+ }))
20
+ .filter((c) => Math.abs(c.factor) > 1e-12);
21
+ };
22
+ if (load.type === "torque") {
23
+ // kN·m/m = 10³ N·mm/mm
24
+ return [{ type: "torque", t: load.t * 1e3, start: load.start ?? 0, end: load.end ?? L }];
25
+ }
26
+ // per projected length → per member length: Lproj / L = |local 1 × d| = √(1 − (local 1 · d)²)
27
+ let projection = 1;
28
+ if (load.type !== "point" && load.projected) {
29
+ const v = GLOBAL_DIRECTIONS[load.direction];
30
+ const c = lambda[0][0] * v[0] + lambda[0][1] * v[1] + lambda[0][2] * v[2];
31
+ projection = Math.sqrt(Math.max(0, 1 - c * c));
32
+ }
33
+ return components(load.direction).map(({ axis, factor }) => {
34
+ if (load.type === "point")
35
+ return { type: "point", axis, P: load.P * factor * 1e3, a: load.a };
36
+ const [w1, w2] = load.type === "udl" ? [load.w, load.w] : [load.w1, load.w2];
37
+ return {
38
+ type: "distributed",
39
+ axis,
40
+ w1: w1 * factor * projection, // kN/m = N/mm
41
+ w2: w2 * factor * projection,
42
+ start: load.start ?? 0,
43
+ end: load.end ?? L,
44
+ };
45
+ });
46
+ };
47
+ /**
48
+ * The part of a member's local loads that falls on one of its pieces, `[offset, offset + L]`,
49
+ * in the piece's own positions. A distributed load or torque is cut at the piece ends; a point
50
+ * load goes to the piece it lies in (at an interior node, to the piece that starts there).
51
+ */
52
+ const clipLoads = (loads, offset, L, last) => {
53
+ const end = offset + L;
54
+ const tolerance = 1e-9 * end;
55
+ const out = [];
56
+ for (const load of loads) {
57
+ if (load.type === "point") {
58
+ const inside = load.a >= offset - tolerance && (load.a < end - tolerance || last);
59
+ if (inside)
60
+ out.push({ ...load, a: Math.min(L, Math.max(0, load.a - offset)) });
61
+ continue;
62
+ }
63
+ const from = Math.max(load.start, offset);
64
+ const to = Math.min(load.end, end);
65
+ if (to - from <= tolerance)
66
+ continue;
67
+ if (load.type === "torque") {
68
+ out.push({ ...load, start: from - offset, end: to - offset });
69
+ }
70
+ else {
71
+ out.push({
72
+ ...load,
73
+ w1: loadIntensity(load, from),
74
+ w2: loadIntensity(load, to),
75
+ start: from - offset,
76
+ end: to - offset,
77
+ });
78
+ }
79
+ }
80
+ return out;
81
+ };
82
+ /**
83
+ * The local loads (N and mm) on every member piece in one load case: each member load, and the
84
+ * self-weight `selfWeight · unitWeight · A` per unit length along global −Z, resolved in the
85
+ * whole member's local axes, then cut at its pieces.
86
+ *
87
+ * @param groups - Model members and the pieces each is analysed as
88
+ * @param pieces - Every member piece
89
+ * @param memberIndex - Index into `groups` of each member id
90
+ * @param loads - The load case's member loads
91
+ * @param loadCaseId - The load case, which tags the self-weight load
92
+ * @param selfWeight - The load case's self-weight multiplier
93
+ * @returns The local loads of each piece, in the order of `pieces`
94
+ * @throws {FeaError} 313 if self-weight is requested for a member without `unitWeight`
95
+ */
96
+ export const memberPieceLoads = (groups, pieces, memberIndex, loads, loadCaseId, selfWeight) => {
97
+ const loadsByMember = groups.map(() => []);
98
+ for (const load of loads) {
99
+ loadsByMember[memberIndex.get(load.memberId)].push(load);
100
+ }
101
+ // local loads of each model member, then of each piece it is analysed as
102
+ const memberLoads = pieces.map(() => []);
103
+ groups.forEach((group, g) => {
104
+ const memberLoadsHere = [...loadsByMember[g]];
105
+ if (selfWeight !== 0) {
106
+ const { unitWeight, A } = group.section;
107
+ if (unitWeight === undefined)
108
+ throw new FeaError(FeaErrors.MISSING_UNIT_WEIGHT);
109
+ // kN/m³ · m² = kN/m
110
+ const w = -selfWeight * unitWeight * A * 1e-6;
111
+ if (w !== 0) {
112
+ memberLoadsHere.push({
113
+ loadCase: loadCaseId,
114
+ type: "udl",
115
+ memberId: group.id,
116
+ direction: "Z",
117
+ w,
118
+ });
119
+ }
120
+ }
121
+ const local = memberLoadsHere.flatMap((load) => toLocalLoads(load, group.lambda, group.length));
122
+ if (group.pieces.length === 1) {
123
+ memberLoads[group.pieces[0]] = local;
124
+ return;
125
+ }
126
+ group.pieces.forEach((p, k) => {
127
+ const piece = pieces[p];
128
+ memberLoads[p] = clipLoads(local, piece.offset, piece.length, k === group.pieces.length - 1);
129
+ });
130
+ });
131
+ return memberLoads;
132
+ };
133
+ /** A local member load scaled by `factor`, e.g. for a load combination. */
134
+ export const scaleMemberLoad = (load, factor) => {
135
+ if (load.type === "distributed")
136
+ return { ...load, w1: load.w1 * factor, w2: load.w2 * factor };
137
+ if (load.type === "torque")
138
+ return { ...load, t: load.t * factor };
139
+ return { ...load, P: load.P * factor };
140
+ };
141
+ //# sourceMappingURL=member-loads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"member-loads.js","sourceRoot":"","sources":["../../../../../src/fea/frame/solver/member-loads.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import { AREA_GEOMETRY_TOLERANCE } from "../../../core/constants/frame.constant.js";
2
+ /** First index of the sorted `values` that is not below `v`. */
3
+ const lowerBound = (values, v) => {
4
+ let lo = 0;
5
+ let hi = values.length;
6
+ while (lo < hi) {
7
+ const mid = (lo + hi) >> 1;
8
+ if (values[mid] < v)
9
+ lo = mid + 1;
10
+ else
11
+ hi = mid;
12
+ }
13
+ return lo;
14
+ };
15
+ /**
16
+ * For each member, the candidate nodes lying within `reach` of its axis whose projection falls
17
+ * strictly between its ends (more than the on-member tolerance from either end), in order from
18
+ * its start. A member's own end nodes are skipped.
19
+ *
20
+ * The candidates are sorted once along each global axis; each member scans only the candidates
21
+ * inside its bounding box (grown by its reach) along the axis where that box is thinnest, so
22
+ * the search stays fast for models with many nodes.
23
+ *
24
+ * @param members - Members with valid geometry (non-zero length)
25
+ * @param position - Coordinates (mm) of every member end node
26
+ * @param candidates - The nodes to look for
27
+ * @param reach - Largest distance (mm) from the axis to report for a member of the given length,
28
+ * or null to skip the member
29
+ * @returns One list per member, in member order
30
+ */
31
+ export const nodesAlongMembers = (members, position, candidates, reach) => {
32
+ const coordinate = (n, k) => (k === 0 ? n.x : k === 1 ? n.y : n.z);
33
+ const order = [0, 1, 2].map((k) => candidates
34
+ .map((_, i) => i)
35
+ .sort((a, b) => coordinate(candidates[a], k) - coordinate(candidates[b], k)));
36
+ const sorted = order.map((o, k) => Float64Array.from(o, (i) => coordinate(candidates[i], k)));
37
+ return members.map((member) => {
38
+ const P = position(member.startNodeId);
39
+ const Q = position(member.endNodeId);
40
+ const d = [Q[0] - P[0], Q[1] - P[1], Q[2] - P[2]];
41
+ const L2 = d[0] * d[0] + d[1] * d[1] + d[2] * d[2];
42
+ const L = Math.sqrt(L2);
43
+ const r = reach(member, L);
44
+ if (r === null || !(L > 0) || candidates.length === 0)
45
+ return [];
46
+ const tolerance = AREA_GEOMETRY_TOLERANCE * L;
47
+ const lo = [0, 1, 2].map((k) => Math.min(P[k], Q[k]) - r);
48
+ const hi = [0, 1, 2].map((k) => Math.max(P[k], Q[k]) + r);
49
+ const axis = [0, 1, 2].reduce((best, k) => (hi[k] - lo[k] < hi[best] - lo[best] ? k : best), 0);
50
+ const found = [];
51
+ for (let j = lowerBound(sorted[axis], lo[axis]); j < candidates.length; j++) {
52
+ if (sorted[axis][j] > hi[axis])
53
+ break;
54
+ const node = candidates[order[axis][j]];
55
+ if (node.id === member.startNodeId || node.id === member.endNodeId)
56
+ continue;
57
+ const X = [node.x, node.y, node.z];
58
+ if (X.some((v, k) => v < lo[k] || v > hi[k]))
59
+ continue;
60
+ const w = [X[0] - P[0], X[1] - P[1], X[2] - P[2]];
61
+ const t = (w[0] * d[0] + w[1] * d[1] + w[2] * d[2]) / L2;
62
+ const x = t * L;
63
+ if (x <= tolerance || x >= L - tolerance)
64
+ continue;
65
+ const distance = Math.hypot(w[0] - t * d[0], w[1] - t * d[1], w[2] - t * d[2]);
66
+ if (distance > r)
67
+ continue;
68
+ found.push({ nodeId: node.id, x, distance, on: distance <= tolerance });
69
+ }
70
+ return found.sort((a, b) => a.x - b.x);
71
+ });
72
+ };
73
+ //# sourceMappingURL=nodes-along-members.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodes-along-members.js","sourceRoot":"","sources":["../../../../../src/fea/frame/solver/nodes-along-members.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { beam3dLocalStiffnessRightHanded } from "../elements/beam-3d-stiffness.js";
2
+ import { memberEndReleases } from "../elements/end-releases.js";
3
+ import { condenseMember } from "../elements/static-condensation.js";
4
+ import { memberAxes, transformationMatrix } from "../transformation/coordinate-transform.js";
5
+ /**
6
+ * Builds the pieces of every member of a model that passed `validateModel`: local axes,
7
+ * transformation and local stiffness condensed for the end releases, which apply only at the
8
+ * member's own ends. A member is one piece unless nodes lie inside it.
9
+ *
10
+ * @param members - Members, in model order; after `expandModel` each lists the model and
11
+ * generated nodes it passes through, in order from its start
12
+ * @param nodes - The analysed nodes, generated mesh nodes included
13
+ * @param nodeIndex - Map from node id to index into `nodes`
14
+ * @returns `pieces` to assemble, and one `group` per member indexing its pieces
15
+ */
16
+ export const prepareSystemMembers = (members, nodes, nodeIndex) => {
17
+ const point = (id) => {
18
+ const n = nodes[nodeIndex.get(id)];
19
+ return [n.x, n.y, n.z];
20
+ };
21
+ const systemMembers = [];
22
+ const memberGroups = members.map((member) => {
23
+ // pieces between the member's ends and the nodes inside it (see `expandModel`)
24
+ const chain = [member.startNodeId, ...(member.through ?? []), member.endNodeId];
25
+ const whole = memberAxes(point(member.startNodeId), point(member.endNodeId), member.angle ?? 0);
26
+ const { E, G, A, I22, I33, J } = member.section;
27
+ const pieces = [];
28
+ let offset = 0;
29
+ for (let k = 0; k + 1 < chain.length; k++) {
30
+ const { length, lambda } = chain.length === 2
31
+ ? whole
32
+ : memberAxes(point(chain[k]), point(chain[k + 1]), member.angle ?? 0);
33
+ // releases only at the member's own ends
34
+ const releases = memberEndReleases({
35
+ start: k === 0 ? member.releases?.start : undefined,
36
+ end: k === chain.length - 2 ? member.releases?.end : undefined,
37
+ });
38
+ const condensed = condenseMember(beam3dLocalStiffnessRightHanded(E, G, A, I22, I33, J, length), releases);
39
+ pieces.push(systemMembers.length);
40
+ systemMembers.push({
41
+ id: member.id,
42
+ offset,
43
+ section: member.section,
44
+ startIndex: nodeIndex.get(chain[k]),
45
+ endIndex: nodeIndex.get(chain[k + 1]),
46
+ T: transformationMatrix(lambda),
47
+ k: condensed.k,
48
+ hasReleases: releases.length > 0,
49
+ condenseFixedEndForces: condensed.condenseFixedEndForces,
50
+ memberEndDisplacements: condensed.memberEndDisplacements,
51
+ length,
52
+ lambda,
53
+ });
54
+ offset += length;
55
+ }
56
+ return {
57
+ id: member.id,
58
+ pieces,
59
+ section: member.section,
60
+ length: whole.length,
61
+ lambda: whole.lambda,
62
+ };
63
+ });
64
+ return { pieces: systemMembers, groups: memberGroups };
65
+ };
66
+ //# sourceMappingURL=system-member.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-member.js","sourceRoot":"","sources":["../../../../../src/fea/frame/solver/system-member.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { VERTICAL_MEMBER_TOLERANCE } from "../../../core/constants/frame.constant.js";
2
- import { FrameAnalysisError, FrameErrors } from "../../../core/errors/frame-analysis.error.js";
2
+ import { FeaError, FeaErrors } from "../../../core/errors/fea.error.js";
3
3
  import { zeros } from "../../../utils/matrix.js";
4
4
  const cross = (a, b) => [
5
5
  a[1] * b[2] - a[2] * b[1],
@@ -20,13 +20,13 @@ const scale = (a, s) => [a[0] * s, a[1] * s, a[2] * s];
20
20
  * @param end - End node coordinates in mm
21
21
  * @param angle - Member angle in rad (default 0)
22
22
  * @returns `{ length, lambda }` with `lambda` rows = local 1, 2, 3 in global components
23
- * @throws {FrameAnalysisError} 301 if the nodes coincide
23
+ * @throws {FeaError} 301 if the nodes coincide
24
24
  */
25
25
  export const memberAxes = (start, end, angle = 0) => {
26
26
  const d = [end[0] - start[0], end[1] - start[1], end[2] - start[2]];
27
27
  const length = norm(d);
28
28
  if (!(length > 0))
29
- throw new FrameAnalysisError(FrameErrors.ZERO_LENGTH_MEMBER);
29
+ throw new FeaError(FeaErrors.ZERO_LENGTH_MEMBER);
30
30
  const e1 = scale(d, 1 / length);
31
31
  let e2;
32
32
  let e3;
@@ -1 +1 @@
1
- {"version":3,"file":"coordinate-transform.js","sourceRoot":"","sources":["../../../../../src/fea/frame/transformation/coordinate-transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordinate-transform.js","sourceRoot":"","sources":["../../../../../src/fea/frame/transformation/coordinate-transform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,164 @@
1
+ import { FeaErrors } from "../../../core/errors/fea.error.js";
2
+ import { modelIssue, isFiniteNumber } from "../../shared/validation/issues.js";
3
+ import { beam3dLocalStiffnessRightHanded } from "../elements/beam-3d-stiffness.js";
4
+ import { memberEndReleases, RELEASE_KEYS } from "../elements/end-releases.js";
5
+ import { condenseMember } from "../elements/static-condensation.js";
6
+ const SECTION_KEYS = ["E", "G", "A", "I22", "I33", "J"];
7
+ const DIRECTIONS = new Set(["1", "2", "3", "X", "Y", "Z"]);
8
+ const GLOBAL_DIRECTIONS = new Set(["X", "Y", "Z"]);
9
+ /**
10
+ * Checks each member on its own: its end nodes, section, `angle`, `connectIntermediateNodes`
11
+ * and release values, a non-zero length, and end releases that leave it stable. Ends at nodes with invalid
12
+ * coordinates are not checked further; those are reported on the node.
13
+ *
14
+ * @param members - The model's members
15
+ * @param nodeById - Model nodes by id
16
+ * @param validNode - Ids of the nodes whose coordinates are valid
17
+ * @returns `issues` (codes 301, 302, 305, 307 and 314), in model order, with `memberId`, and the
18
+ * length (mm) of every member whose geometry is valid
19
+ */
20
+ export const validateMembers = (members, nodeById, validNode) => {
21
+ const issues = [];
22
+ const add = (std, details = {}) => issues.push(modelIssue(std, details));
23
+ const memberLength = new Map(); // only for members whose geometry is valid
24
+ for (const member of members) {
25
+ const at = { memberId: member.id };
26
+ let geometryOk = true;
27
+ for (const field of ["startNodeId", "endNodeId"]) {
28
+ if (!nodeById.has(member[field])) {
29
+ add(FeaErrors.UNKNOWN_NODE_REFERENCE, { ...at, field });
30
+ geometryOk = false;
31
+ }
32
+ else if (!validNode.has(member[field])) {
33
+ geometryOk = false; // reported on the node
34
+ }
35
+ }
36
+ const section = member.section ?? {};
37
+ let sectionOk = true;
38
+ for (const field of SECTION_KEYS) {
39
+ const v = section[field];
40
+ if (!isFiniteNumber(v) || v <= 0) {
41
+ add(FeaErrors.INVALID_SECTION_PROPERTIES, { ...at, field });
42
+ sectionOk = false;
43
+ }
44
+ }
45
+ if (section.unitWeight !== undefined &&
46
+ (!isFiniteNumber(section.unitWeight) || section.unitWeight < 0)) {
47
+ add(FeaErrors.INVALID_SECTION_PROPERTIES, { ...at, field: "unitWeight" });
48
+ }
49
+ if (member.angle !== undefined && !isFiniteNumber(member.angle)) {
50
+ add(FeaErrors.INVALID_INPUT_VALUE, { ...at, field: "angle" });
51
+ }
52
+ if (member.connectIntermediateNodes !== undefined &&
53
+ typeof member.connectIntermediateNodes !== "boolean") {
54
+ add(FeaErrors.INVALID_INPUT_VALUE, { ...at, field: "connectIntermediateNodes" });
55
+ }
56
+ // each release value: true/false, or a spring stiffness ≥ 0 (0 = full release)
57
+ let releasesOk = true;
58
+ for (const end of ["start", "end"]) {
59
+ const release = member.releases?.[end];
60
+ if (release === undefined)
61
+ continue;
62
+ for (const key of RELEASE_KEYS) {
63
+ const v = release[key];
64
+ if (v === undefined || typeof v === "boolean" || (isFiniteNumber(v) && v >= 0))
65
+ continue;
66
+ add(FeaErrors.INVALID_INPUT_VALUE, { ...at, field: `releases.${end}.${key}` });
67
+ releasesOk = false;
68
+ }
69
+ }
70
+ if (!geometryOk)
71
+ continue;
72
+ const a = nodeById.get(member.startNodeId);
73
+ const b = nodeById.get(member.endNodeId);
74
+ const L = Math.hypot(b.x - a.x, b.y - a.y, b.z - a.z);
75
+ if (!(L > 0)) {
76
+ add(FeaErrors.ZERO_LENGTH_MEMBER, at);
77
+ continue;
78
+ }
79
+ memberLength.set(member.id, L);
80
+ const releases = releasesOk ? memberEndReleases(member.releases) : [];
81
+ if (sectionOk && releases.length > 0) {
82
+ const { E, G, A, I22, I33, J } = section;
83
+ try {
84
+ condenseMember(beam3dLocalStiffnessRightHanded(E, G, A, I22, I33, J, L), releases);
85
+ }
86
+ catch {
87
+ add(FeaErrors.INVALID_RELEASE, at);
88
+ }
89
+ }
90
+ }
91
+ return { issues, memberLength };
92
+ };
93
+ /**
94
+ * Checks member loads: their load case and member, `type`, direction and `projected`, finite
95
+ * intensities and positions, and an extent that lies within the member.
96
+ *
97
+ * @param loads - The model's member loads
98
+ * @param members - The model's members
99
+ * @param memberLength - Length of each member whose geometry is valid (from `validateMembers`)
100
+ * @param caseIds - Ids of the model's load cases
101
+ * @returns Every problem found (codes 302, 308, 309 and 314), in model order, with `memberId`
102
+ * and `loadCaseId`
103
+ */
104
+ export const validateMemberLoads = (loads, members, memberLength, caseIds) => {
105
+ const issues = [];
106
+ const add = (std, details = {}) => issues.push(modelIssue(std, details));
107
+ for (const load of loads) {
108
+ const at = { loadCaseId: load.loadCase, memberId: load.memberId };
109
+ if (!caseIds.has(load.loadCase))
110
+ add(FeaErrors.UNKNOWN_LOAD_CASE, { ...at, field: "loadCase" });
111
+ const memberKnown = members.some((m) => m.id === load.memberId);
112
+ if (!memberKnown)
113
+ add(FeaErrors.UNKNOWN_NODE_REFERENCE, { ...at, field: "memberId" });
114
+ if (load.type !== "torque" && !DIRECTIONS.has(load.direction))
115
+ add(FeaErrors.INVALID_INPUT_VALUE, { ...at, field: "direction" });
116
+ // a projected length needs a distributed load in a global direction
117
+ const projected = load.projected;
118
+ if ((projected !== undefined && typeof projected !== "boolean") ||
119
+ (projected === true &&
120
+ ((load.type !== "udl" && load.type !== "trapezoidal") ||
121
+ !GLOBAL_DIRECTIONS.has(load.direction)))) {
122
+ add(FeaErrors.INVALID_INPUT_VALUE, { ...at, field: "projected" });
123
+ }
124
+ const L = memberLength.get(load.memberId);
125
+ if (load.type === "udl" || load.type === "trapezoidal" || load.type === "torque") {
126
+ const intensities = load.type === "udl"
127
+ ? { w: load.w }
128
+ : load.type === "trapezoidal"
129
+ ? { w1: load.w1, w2: load.w2 }
130
+ : { t: load.t };
131
+ const extent = { start: load.start, end: load.end };
132
+ let ok = true;
133
+ for (const [field, v] of [...Object.entries(intensities), ...Object.entries(extent)]) {
134
+ if ((field in intensities || v !== undefined) && !isFiniteNumber(v)) {
135
+ add(FeaErrors.INVALID_INPUT_VALUE, { ...at, field });
136
+ ok = false;
137
+ }
138
+ }
139
+ if (ok && L !== undefined) {
140
+ const start = load.start ?? 0;
141
+ const end = load.end ?? L;
142
+ if (!(start >= 0 && end <= L && start < end))
143
+ add(FeaErrors.LOAD_OUTSIDE_MEMBER, at);
144
+ }
145
+ }
146
+ else if (load.type === "point") {
147
+ let ok = true;
148
+ for (const field of ["P", "a"]) {
149
+ if (!isFiniteNumber(load[field])) {
150
+ add(FeaErrors.INVALID_INPUT_VALUE, { ...at, field });
151
+ ok = false;
152
+ }
153
+ }
154
+ if (ok && L !== undefined && !(load.a >= 0 && load.a <= L)) {
155
+ add(FeaErrors.LOAD_OUTSIDE_MEMBER, at);
156
+ }
157
+ }
158
+ else {
159
+ add(FeaErrors.INVALID_INPUT_VALUE, { ...at, field: "type" });
160
+ }
161
+ }
162
+ return issues;
163
+ };
164
+ //# sourceMappingURL=validate-members.js.map