structuralcodes 0.5.0__py3-none-any.whl → 0.6.1__py3-none-any.whl

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.

Potentially problematic release.


This version of structuralcodes might be problematic. Click here for more details.

Files changed (48) hide show
  1. structuralcodes/__init__.py +1 -1
  2. structuralcodes/codes/ec2_2004/shear.py +3 -2
  3. structuralcodes/codes/mc2010/_concrete_creep_and_shrinkage.py +2 -2
  4. structuralcodes/core/base.py +138 -12
  5. structuralcodes/geometry/__init__.py +2 -8
  6. structuralcodes/geometry/_geometry.py +103 -19
  7. structuralcodes/geometry/_reinforcement.py +1 -3
  8. structuralcodes/geometry/profiles/__init__.py +33 -0
  9. structuralcodes/geometry/profiles/_base_profile.py +305 -0
  10. structuralcodes/geometry/profiles/_common_functions.py +307 -0
  11. structuralcodes/geometry/profiles/_hd.py +374 -0
  12. structuralcodes/geometry/profiles/_he.py +192 -0
  13. structuralcodes/geometry/profiles/_hp.py +319 -0
  14. structuralcodes/geometry/profiles/_ipe.py +130 -0
  15. structuralcodes/geometry/profiles/_ipn.py +329 -0
  16. structuralcodes/geometry/profiles/_l.py +528 -0
  17. structuralcodes/geometry/profiles/_li.py +217 -0
  18. structuralcodes/geometry/profiles/_u.py +173 -0
  19. structuralcodes/geometry/profiles/_ub.py +1356 -0
  20. structuralcodes/geometry/profiles/_ubp.py +227 -0
  21. structuralcodes/geometry/profiles/_uc.py +276 -0
  22. structuralcodes/geometry/profiles/_upe.py +133 -0
  23. structuralcodes/geometry/profiles/_upn.py +315 -0
  24. structuralcodes/geometry/profiles/_w.py +2157 -0
  25. structuralcodes/materials/basic/_elastic.py +18 -1
  26. structuralcodes/materials/basic/_elasticplastic.py +18 -1
  27. structuralcodes/materials/basic/_generic.py +18 -1
  28. structuralcodes/materials/concrete/__init__.py +3 -0
  29. structuralcodes/materials/concrete/_concrete.py +10 -1
  30. structuralcodes/materials/concrete/_concreteEC2_2004.py +15 -1
  31. structuralcodes/materials/concrete/_concreteEC2_2023.py +15 -1
  32. structuralcodes/materials/concrete/_concreteMC2010.py +20 -1
  33. structuralcodes/materials/constitutive_laws/__init__.py +3 -0
  34. structuralcodes/materials/constitutive_laws/_elasticplastic.py +2 -2
  35. structuralcodes/materials/constitutive_laws/_initial_strain.py +130 -0
  36. structuralcodes/materials/reinforcement/__init__.py +6 -0
  37. structuralcodes/materials/reinforcement/_reinforcement.py +10 -1
  38. structuralcodes/materials/reinforcement/_reinforcementEC2_2004.py +14 -0
  39. structuralcodes/materials/reinforcement/_reinforcementEC2_2023.py +14 -0
  40. structuralcodes/materials/reinforcement/_reinforcementMC2010.py +14 -0
  41. structuralcodes/sections/section_integrators/__init__.py +3 -1
  42. structuralcodes/sections/section_integrators/_marin_integrator.py +1 -1
  43. {structuralcodes-0.5.0.dist-info → structuralcodes-0.6.1.dist-info}/METADATA +2 -2
  44. {structuralcodes-0.5.0.dist-info → structuralcodes-0.6.1.dist-info}/RECORD +47 -30
  45. structuralcodes/geometry/_steel_sections.py +0 -2155
  46. /structuralcodes/{sections/section_integrators → core}/_marin_integration.py +0 -0
  47. {structuralcodes-0.5.0.dist-info → structuralcodes-0.6.1.dist-info}/WHEEL +0 -0
  48. {structuralcodes-0.5.0.dist-info → structuralcodes-0.6.1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,528 @@
1
+ """L profiles."""
2
+
3
+ from shapely import (
4
+ Polygon,
5
+ )
6
+
7
+ from ._base_profile import BaseProfile
8
+ from ._common_functions import (
9
+ _create_L_section,
10
+ )
11
+
12
+
13
+ class L(BaseProfile):
14
+ """Simple class for representing a L profile.
15
+
16
+ European standard equal side angle L20x20 - L250x250.
17
+
18
+ """
19
+
20
+ parameters = {
21
+ 'L20x20x3': {'h': 20.0, 'b': 20.0, 't': 3.0, 'r1': 3.5, 'r2': 2.0},
22
+ 'L25x25x3': {'h': 25.0, 'b': 25.0, 't': 3.0, 'r1': 3.5, 'r2': 2.0},
23
+ 'L25x25x4': {'h': 25.0, 'b': 25.0, 't': 4.0, 'r1': 3.5, 'r2': 2.0},
24
+ 'L30x30x3': {'h': 30.0, 'b': 30.0, 't': 3.0, 'r1': 5.0, 'r2': 2.5},
25
+ 'L30x30x4': {'h': 30.0, 'b': 30.0, 't': 4.0, 'r1': 5.0, 'r2': 2.5},
26
+ 'L35x35x4': {'h': 35.0, 'b': 35.0, 't': 4.0, 'r1': 5.0, 'r2': 2.5},
27
+ 'L40x40x4': {'h': 40.0, 'b': 40.0, 't': 4.0, 'r1': 6.0, 'r2': 3.0},
28
+ 'L40x40x5': {'h': 40.0, 'b': 40.0, 't': 5.0, 'r1': 6.0, 'r2': 3.0},
29
+ 'L45x45x4.5': {'h': 45.0, 'b': 45.0, 't': 4.5, 'r1': 7.0, 'r2': 3.5},
30
+ 'L50x50x4': {'h': 50.0, 'b': 50.0, 't': 4.0, 'r1': 7.0, 'r2': 3.5},
31
+ 'L50x50x5': {'h': 50.0, 'b': 50.0, 't': 5.0, 'r1': 7.0, 'r2': 3.5},
32
+ 'L50x50x6': {'h': 50.0, 'b': 50.0, 't': 6.0, 'r1': 7.0, 'r2': 3.5},
33
+ 'L60x60x5': {'h': 60.0, 'b': 60.0, 't': 5.0, 'r1': 8.0, 'r2': 4.0},
34
+ 'L60x60x6': {'h': 60.0, 'b': 60.0, 't': 6.0, 'r1': 8.0, 'r2': 4.0},
35
+ 'L60x60x8': {'h': 60.0, 'b': 60.0, 't': 8.0, 'r1': 8.0, 'r2': 4.0},
36
+ 'L65x65x7': {'h': 65.0, 'b': 65.0, 't': 7.0, 'r1': 9.0, 'r2': 4.5},
37
+ 'L70x70x6': {'h': 70.0, 'b': 70.0, 't': 6.0, 'r1': 9.0, 'r2': 4.5},
38
+ 'L70x70x7': {'h': 70.0, 'b': 70.0, 't': 7.0, 'r1': 9.0, 'r2': 4.5},
39
+ 'L75x75x6': {'h': 75.0, 'b': 75.0, 't': 6.0, 'r1': 10.0, 'r2': 5.0},
40
+ 'L75x75x8': {'h': 75.0, 'b': 75.0, 't': 8.0, 'r1': 10.0, 'r2': 5.0},
41
+ 'L80x80x8': {'h': 80.0, 'b': 80.0, 't': 8.0, 'r1': 10.0, 'r2': 5.0},
42
+ 'L80x80x10': {'h': 80.0, 'b': 80.0, 't': 10.0, 'r1': 10.0, 'r2': 5.0},
43
+ 'L90x90x7': {'h': 90.0, 'b': 90.0, 't': 7.0, 'r1': 11.0, 'r2': 5.5},
44
+ 'L90x90x8': {'h': 90.0, 'b': 90.0, 't': 8.0, 'r1': 11.0, 'r2': 5.5},
45
+ 'L90x90x9': {'h': 90.0, 'b': 90.0, 't': 9.0, 'r1': 11.0, 'r2': 5.5},
46
+ 'L90x90x10': {'h': 90.0, 'b': 90.0, 't': 10.0, 'r1': 11.0, 'r2': 5.5},
47
+ 'L100x100x8': {
48
+ 'h': 100.0,
49
+ 'b': 100.0,
50
+ 't': 8.0,
51
+ 'r1': 12.0,
52
+ 'r2': 6.0,
53
+ },
54
+ 'L100x100x10': {
55
+ 'h': 100.0,
56
+ 'b': 100.0,
57
+ 't': 10.0,
58
+ 'r1': 12.0,
59
+ 'r2': 6.0,
60
+ },
61
+ 'L100x100x12': {
62
+ 'h': 100.0,
63
+ 'b': 100.0,
64
+ 't': 12.0,
65
+ 'r1': 12.0,
66
+ 'r2': 6.0,
67
+ },
68
+ 'L110x110x10': {
69
+ 'h': 110.0,
70
+ 'b': 110.0,
71
+ 't': 10.0,
72
+ 'r1': 13.0,
73
+ 'r2': 6.5,
74
+ },
75
+ 'L110x110x12': {
76
+ 'h': 110.0,
77
+ 'b': 110.0,
78
+ 't': 12.0,
79
+ 'r1': 13.0,
80
+ 'r2': 6.5,
81
+ },
82
+ 'L120x120x10': {
83
+ 'h': 120.0,
84
+ 'b': 120.0,
85
+ 't': 10.0,
86
+ 'r1': 13.0,
87
+ 'r2': 6.5,
88
+ },
89
+ 'L120x120x11': {
90
+ 'h': 120.0,
91
+ 'b': 120.0,
92
+ 't': 11.0,
93
+ 'r1': 13.0,
94
+ 'r2': 6.5,
95
+ },
96
+ 'L120x120x12': {
97
+ 'h': 120.0,
98
+ 'b': 120.0,
99
+ 't': 12.0,
100
+ 'r1': 13.0,
101
+ 'r2': 6.5,
102
+ },
103
+ 'L120x120x13': {
104
+ 'h': 120.0,
105
+ 'b': 120.0,
106
+ 't': 13.0,
107
+ 'r1': 13.0,
108
+ 'r2': 6.5,
109
+ },
110
+ 'L120x120x15': {
111
+ 'h': 120.0,
112
+ 'b': 120.0,
113
+ 't': 15.0,
114
+ 'r1': 13.0,
115
+ 'r2': 6.5,
116
+ },
117
+ 'L130x130x12': {
118
+ 'h': 130.0,
119
+ 'b': 130.0,
120
+ 't': 12.0,
121
+ 'r1': 14.0,
122
+ 'r2': 7.0,
123
+ },
124
+ 'L150x150x10': {
125
+ 'h': 150.0,
126
+ 'b': 150.0,
127
+ 't': 10.0,
128
+ 'r1': 16.0,
129
+ 'r2': 8.0,
130
+ },
131
+ 'L150x150x12': {
132
+ 'h': 150.0,
133
+ 'b': 150.0,
134
+ 't': 12.0,
135
+ 'r1': 16.0,
136
+ 'r2': 8.0,
137
+ },
138
+ 'L150x150x14': {
139
+ 'h': 150.0,
140
+ 'b': 150.0,
141
+ 't': 14.0,
142
+ 'r1': 16.0,
143
+ 'r2': 8.0,
144
+ },
145
+ 'L150x150x15': {
146
+ 'h': 150.0,
147
+ 'b': 150.0,
148
+ 't': 15.0,
149
+ 'r1': 16.0,
150
+ 'r2': 8.0,
151
+ },
152
+ 'L150x150x18': {
153
+ 'h': 150.0,
154
+ 'b': 150.0,
155
+ 't': 18.0,
156
+ 'r1': 16.0,
157
+ 'r2': 8.0,
158
+ },
159
+ 'L160x160x14': {
160
+ 'h': 160.0,
161
+ 'b': 160.0,
162
+ 't': 14.0,
163
+ 'r1': 17.0,
164
+ 'r2': 8.5,
165
+ },
166
+ 'L160x160x15': {
167
+ 'h': 160.0,
168
+ 'b': 160.0,
169
+ 't': 15.0,
170
+ 'r1': 17.0,
171
+ 'r2': 8.5,
172
+ },
173
+ 'L160x160x16': {
174
+ 'h': 160.0,
175
+ 'b': 160.0,
176
+ 't': 16.0,
177
+ 'r1': 17.0,
178
+ 'r2': 8.5,
179
+ },
180
+ 'L160x160x17': {
181
+ 'h': 160.0,
182
+ 'b': 160.0,
183
+ 't': 17.0,
184
+ 'r1': 17.0,
185
+ 'r2': 8.5,
186
+ },
187
+ 'L180x180x13': {
188
+ 'h': 180.0,
189
+ 'b': 180.0,
190
+ 't': 13.0,
191
+ 'r1': 18.0,
192
+ 'r2': 9.0,
193
+ },
194
+ 'L180x180x14': {
195
+ 'h': 180.0,
196
+ 'b': 180.0,
197
+ 't': 14.0,
198
+ 'r1': 18.0,
199
+ 'r2': 9.0,
200
+ },
201
+ 'L180x180x15': {
202
+ 'h': 180.0,
203
+ 'b': 180.0,
204
+ 't': 15.0,
205
+ 'r1': 18.0,
206
+ 'r2': 9.0,
207
+ },
208
+ 'L180x180x16': {
209
+ 'h': 180.0,
210
+ 'b': 180.0,
211
+ 't': 16.0,
212
+ 'r1': 18.0,
213
+ 'r2': 9.0,
214
+ },
215
+ 'L180x180x17': {
216
+ 'h': 180.0,
217
+ 'b': 180.0,
218
+ 't': 17.0,
219
+ 'r1': 18.0,
220
+ 'r2': 9.0,
221
+ },
222
+ 'L180x180x18': {
223
+ 'h': 180.0,
224
+ 'b': 180.0,
225
+ 't': 18.0,
226
+ 'r1': 18.0,
227
+ 'r2': 9.0,
228
+ },
229
+ 'L180x180x19': {
230
+ 'h': 180.0,
231
+ 'b': 180.0,
232
+ 't': 19.0,
233
+ 'r1': 18.0,
234
+ 'r2': 9.0,
235
+ },
236
+ 'L180x180x20': {
237
+ 'h': 180.0,
238
+ 'b': 180.0,
239
+ 't': 20.0,
240
+ 'r1': 18.0,
241
+ 'r2': 9.0,
242
+ },
243
+ 'L200x200x15': {
244
+ 'h': 200.0,
245
+ 'b': 200.0,
246
+ 't': 15.0,
247
+ 'r1': 18.0,
248
+ 'r2': 9.0,
249
+ },
250
+ 'L200x200x16': {
251
+ 'h': 200.0,
252
+ 'b': 200.0,
253
+ 't': 16.0,
254
+ 'r1': 18.0,
255
+ 'r2': 9.0,
256
+ },
257
+ 'L200x200x17': {
258
+ 'h': 200.0,
259
+ 'b': 200.0,
260
+ 't': 17.0,
261
+ 'r1': 18.0,
262
+ 'r2': 9.0,
263
+ },
264
+ 'L200x200x18': {
265
+ 'h': 200.0,
266
+ 'b': 200.0,
267
+ 't': 18.0,
268
+ 'r1': 18.0,
269
+ 'r2': 9.0,
270
+ },
271
+ 'L200x200x19': {
272
+ 'h': 200.0,
273
+ 'b': 200.0,
274
+ 't': 19.0,
275
+ 'r1': 18.0,
276
+ 'r2': 9.0,
277
+ },
278
+ 'L200x200x20': {
279
+ 'h': 200.0,
280
+ 'b': 200.0,
281
+ 't': 20.0,
282
+ 'r1': 18.0,
283
+ 'r2': 9.0,
284
+ },
285
+ 'L200x200x21': {
286
+ 'h': 200.0,
287
+ 'b': 200.0,
288
+ 't': 21.0,
289
+ 'r1': 18.0,
290
+ 'r2': 9.0,
291
+ },
292
+ 'L200x200x22': {
293
+ 'h': 200.0,
294
+ 'b': 200.0,
295
+ 't': 22.0,
296
+ 'r1': 18.0,
297
+ 'r2': 9.0,
298
+ },
299
+ 'L200x200x23': {
300
+ 'h': 200.0,
301
+ 'b': 200.0,
302
+ 't': 23.0,
303
+ 'r1': 18.0,
304
+ 'r2': 9.0,
305
+ },
306
+ 'L200x200x24': {
307
+ 'h': 200.0,
308
+ 'b': 200.0,
309
+ 't': 24.0,
310
+ 'r1': 18.0,
311
+ 'r2': 9.0,
312
+ },
313
+ 'L200x200x25': {
314
+ 'h': 200.0,
315
+ 'b': 200.0,
316
+ 't': 25.0,
317
+ 'r1': 18.0,
318
+ 'r2': 9.0,
319
+ },
320
+ 'L200x200x26': {
321
+ 'h': 200.0,
322
+ 'b': 200.0,
323
+ 't': 26.0,
324
+ 'r1': 18.0,
325
+ 'r2': 9.0,
326
+ },
327
+ 'L250x250x20': {
328
+ 'h': 250.0,
329
+ 'b': 250.0,
330
+ 't': 20.0,
331
+ 'r1': 18.0,
332
+ 'r2': 9.0,
333
+ },
334
+ 'L250x250x21': {
335
+ 'h': 250.0,
336
+ 'b': 250.0,
337
+ 't': 21.0,
338
+ 'r1': 18.0,
339
+ 'r2': 9.0,
340
+ },
341
+ 'L250x250x22': {
342
+ 'h': 250.0,
343
+ 'b': 250.0,
344
+ 't': 22.0,
345
+ 'r1': 18.0,
346
+ 'r2': 9.0,
347
+ },
348
+ 'L250x250x23': {
349
+ 'h': 250.0,
350
+ 'b': 250.0,
351
+ 't': 23.0,
352
+ 'r1': 18.0,
353
+ 'r2': 9.0,
354
+ },
355
+ 'L250x250x24': {
356
+ 'h': 250.0,
357
+ 'b': 250.0,
358
+ 't': 24.0,
359
+ 'r1': 18.0,
360
+ 'r2': 9.0,
361
+ },
362
+ 'L250x250x25': {
363
+ 'h': 250.0,
364
+ 'b': 250.0,
365
+ 't': 25.0,
366
+ 'r1': 18.0,
367
+ 'r2': 9.0,
368
+ },
369
+ 'L250x250x26': {
370
+ 'h': 250.0,
371
+ 'b': 250.0,
372
+ 't': 26.0,
373
+ 'r1': 18.0,
374
+ 'r2': 9.0,
375
+ },
376
+ 'L250x250x27': {
377
+ 'h': 250.0,
378
+ 'b': 250.0,
379
+ 't': 27.0,
380
+ 'r1': 18.0,
381
+ 'r2': 9.0,
382
+ },
383
+ 'L250x250x28': {
384
+ 'h': 250.0,
385
+ 'b': 250.0,
386
+ 't': 28.0,
387
+ 'r1': 18.0,
388
+ 'r2': 9.0,
389
+ },
390
+ 'L250x250x35': {
391
+ 'h': 250.0,
392
+ 'b': 250.0,
393
+ 't': 35.0,
394
+ 'r1': 18.0,
395
+ 'r2': 9.0,
396
+ },
397
+ 'L203x203x19': {
398
+ 'h': 203.0,
399
+ 'b': 203.0,
400
+ 't': 19.0,
401
+ 'r1': 8.0,
402
+ 'r2': 4.0,
403
+ },
404
+ 'L203x203x22.2': {
405
+ 'h': 203.0,
406
+ 'b': 203.0,
407
+ 't': 22.2,
408
+ 'r1': 8.0,
409
+ 'r2': 4.0,
410
+ },
411
+ 'L203x203x25.4': {
412
+ 'h': 203.0,
413
+ 'b': 203.0,
414
+ 't': 25.4,
415
+ 'r1': 8.0,
416
+ 'r2': 4.0,
417
+ },
418
+ 'L203x203x28.6': {
419
+ 'h': 203.0,
420
+ 'b': 203.0,
421
+ 't': 28.6,
422
+ 'r1': 8.0,
423
+ 'r2': 4.0,
424
+ },
425
+ }
426
+
427
+ @classmethod
428
+ def get_polygon(cls, name: str) -> Polygon:
429
+ """Returns a shapely polygon representing an L section."""
430
+ parameters = cls.parameters.get(name)
431
+ if parameters is None:
432
+ raise ValueError(
433
+ f"Profile '{name}' not found in L sections. "
434
+ "Select a valid profile (available ones: "
435
+ f"{cls.profiles()})"
436
+ )
437
+ parameters['t1'] = parameters['t']
438
+ parameters['t2'] = parameters['t']
439
+ return _create_L_section(
440
+ **{
441
+ key: parameters[key]
442
+ for key in parameters
443
+ if key in ['h', 'b', 't1', 't2', 'r1', 'r2']
444
+ }
445
+ )
446
+
447
+ @classmethod
448
+ def profiles(cls) -> list:
449
+ """Returns a list containing all available profiles."""
450
+ return list(cls.parameters.keys())
451
+
452
+ def __init__(self, name: str) -> None:
453
+ """Creates a new L object."""
454
+ parameters = self.parameters.get(name)
455
+ if parameters is None:
456
+ raise ValueError(
457
+ f"Profile '{name}' not found in L sections. "
458
+ "Select a valid profile (available ones: "
459
+ f"{self.profiles()})"
460
+ )
461
+ super().__init__()
462
+ self._h = parameters.get('h')
463
+ self._b = parameters.get('b')
464
+ self._t = parameters.get('t')
465
+ self._r1 = parameters.get('r1')
466
+ self._r2 = parameters.get('r2')
467
+ self._polygon = _create_L_section(
468
+ h=self._h,
469
+ b=self._b,
470
+ t1=self._t,
471
+ t2=self._t,
472
+ r1=self._r1,
473
+ r2=self._r2,
474
+ )
475
+
476
+ @property
477
+ def polygon(self) -> Polygon:
478
+ """Returns shapely Polygon of section.
479
+
480
+ Returns:
481
+ Polygon: The represention of the L section.
482
+ """
483
+ return self._polygon
484
+
485
+ @property
486
+ def h(self) -> float:
487
+ """Returns height of L section.
488
+
489
+ Returns:
490
+ float: Height h of L section.
491
+ """
492
+ return self._h
493
+
494
+ @property
495
+ def b(self) -> float:
496
+ """Returns width of L section.
497
+
498
+ Returns:
499
+ float: Width b of L section.
500
+ """
501
+ return self._b
502
+
503
+ @property
504
+ def t(self) -> float:
505
+ """Returns thickness of L section.
506
+
507
+ Returns:
508
+ float: Thickness t of L section.
509
+ """
510
+ return self._t
511
+
512
+ @property
513
+ def r1(self) -> float:
514
+ """Returns fillet radius of L section.
515
+
516
+ Returns:
517
+ float: Fillet radius r1 of L section.
518
+ """
519
+ return self._r1
520
+
521
+ @property
522
+ def r2(self) -> float:
523
+ """Returns fillet radius of L section.
524
+
525
+ Returns:
526
+ float: Fillet radius r2 of L section.
527
+ """
528
+ return self._r2