delta-theory 6.10.1__py3-none-any.whl → 6.10.5__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.
- core/__init__.py +9 -5
- core/unified_yield_fatigue_v6_9.py +18 -5
- {delta_theory-6.10.1.dist-info → delta_theory-6.10.5.dist-info}/METADATA +2 -2
- {delta_theory-6.10.1.dist-info → delta_theory-6.10.5.dist-info}/RECORD +8 -8
- {delta_theory-6.10.1.dist-info → delta_theory-6.10.5.dist-info}/WHEEL +0 -0
- {delta_theory-6.10.1.dist-info → delta_theory-6.10.5.dist-info}/entry_points.txt +0 -0
- {delta_theory-6.10.1.dist-info → delta_theory-6.10.5.dist-info}/licenses/LICENSE +0 -0
- {delta_theory-6.10.1.dist-info → delta_theory-6.10.5.dist-info}/top_level.txt +0 -0
core/__init__.py
CHANGED
|
@@ -7,7 +7,7 @@ Modules:
|
|
|
7
7
|
- unified_yield_fatigue_v6_9: Main yield + fatigue model (v6.9b)
|
|
8
8
|
- dbt_unified: Ductile-Brittle Transition Temperature prediction
|
|
9
9
|
- materials: Material database
|
|
10
|
-
- fatigue_redis_api: FatigueData-AM2022 Redis API
|
|
10
|
+
- fatigue_redis_api: FatigueData-AM2022 Redis API (optional)
|
|
11
11
|
"""
|
|
12
12
|
|
|
13
13
|
from .unified_yield_fatigue_v6_9 import (
|
|
@@ -31,9 +31,13 @@ from .dbt_unified import (
|
|
|
31
31
|
|
|
32
32
|
from .materials import MaterialGPU
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
# Optional: FatigueDB (requires upstash-redis)
|
|
35
|
+
try:
|
|
36
|
+
from .fatigue_redis_api import FatigueDB
|
|
37
|
+
except ImportError:
|
|
38
|
+
FatigueDB = None # upstash-redis not installed
|
|
35
39
|
|
|
36
|
-
__version__ = "6.10.1"
|
|
40
|
+
__version__ = "6.10.1"
|
|
37
41
|
__author__ = "Masamichi Iizumi & Tamaki"
|
|
38
42
|
|
|
39
43
|
__all__ = [
|
|
@@ -54,6 +58,6 @@ __all__ = [
|
|
|
54
58
|
"MATERIAL_FE",
|
|
55
59
|
# Materials
|
|
56
60
|
"MaterialGPU",
|
|
57
|
-
# FatigueDB
|
|
58
|
-
"FatigueDB",
|
|
61
|
+
# FatigueDB (optional)
|
|
62
|
+
"FatigueDB",
|
|
59
63
|
]
|
|
@@ -432,12 +432,14 @@ def fatigue_life_const_amp(
|
|
|
432
432
|
C_class: float = C_CLASS_DEFAULT,
|
|
433
433
|
bcc_w110: float = DEFAULT_BCC_W110,
|
|
434
434
|
apply_C_class_hcp: bool = False,
|
|
435
|
+
r_th_override: float | None = None,
|
|
436
|
+
n_override: float | None = None,
|
|
435
437
|
) -> Dict[str, float | str]:
|
|
436
438
|
"""Fatigue life under constant amplitude for the chosen loading mode."""
|
|
437
439
|
|
|
438
|
-
preset = FATIGUE_CLASS_PRESET
|
|
439
|
-
r_th = preset['r_th']
|
|
440
|
-
n = preset['n']
|
|
440
|
+
preset = FATIGUE_CLASS_PRESET[mat.structure]
|
|
441
|
+
r_th = r_th_override if r_th_override is not None else preset['r_th']
|
|
442
|
+
n = n_override if n_override is not None else preset['n']
|
|
441
443
|
|
|
442
444
|
A_int = A_INT_DB.get(mat.name, 1.0)
|
|
443
445
|
A_eff = A_int * A_ext
|
|
@@ -485,6 +487,8 @@ def generate_sn_curve(
|
|
|
485
487
|
C_class: float = C_CLASS_DEFAULT,
|
|
486
488
|
bcc_w110: float = DEFAULT_BCC_W110,
|
|
487
489
|
apply_C_class_hcp: bool = False,
|
|
490
|
+
r_th_override: float | None = None,
|
|
491
|
+
n_override: float | None = None,
|
|
488
492
|
) -> np.ndarray:
|
|
489
493
|
Ns = []
|
|
490
494
|
for s in sigmas_MPa:
|
|
@@ -498,6 +502,8 @@ def generate_sn_curve(
|
|
|
498
502
|
C_class=C_class,
|
|
499
503
|
bcc_w110=bcc_w110,
|
|
500
504
|
apply_C_class_hcp=apply_C_class_hcp,
|
|
505
|
+
r_th_override=r_th_override,
|
|
506
|
+
n_override=n_override,
|
|
501
507
|
)
|
|
502
508
|
Ns.append(out['N_fail'])
|
|
503
509
|
return np.array(Ns, dtype=float)
|
|
@@ -576,6 +582,8 @@ def cmd_point(args: argparse.Namespace) -> None:
|
|
|
576
582
|
C_class=args.C_class,
|
|
577
583
|
bcc_w110=args.bcc_w110,
|
|
578
584
|
apply_C_class_hcp=args.apply_C_class_hcp,
|
|
585
|
+
r_th_override=args.r_th,
|
|
586
|
+
n_override=args.n_exp,
|
|
579
587
|
)
|
|
580
588
|
else:
|
|
581
589
|
out = None
|
|
@@ -670,8 +678,9 @@ def cmd_calibrate(args: argparse.Namespace) -> None:
|
|
|
670
678
|
)
|
|
671
679
|
sigma_y = y['sigma_y']
|
|
672
680
|
|
|
673
|
-
preset = FATIGUE_CLASS_PRESET
|
|
674
|
-
r_th
|
|
681
|
+
preset = FATIGUE_CLASS_PRESET[mat.structure]
|
|
682
|
+
r_th = args.r_th if args.r_th is not None else preset['r_th']
|
|
683
|
+
n = args.n_exp if args.n_exp is not None else preset['n']
|
|
675
684
|
|
|
676
685
|
y_mode, _ = yield_by_mode(
|
|
677
686
|
mat,
|
|
@@ -755,6 +764,8 @@ def cmd_sn(args: argparse.Namespace) -> None:
|
|
|
755
764
|
C_class=args.C_class,
|
|
756
765
|
bcc_w110=args.bcc_w110,
|
|
757
766
|
apply_C_class_hcp=args.apply_C_class_hcp,
|
|
767
|
+
r_th_override=args.r_th,
|
|
768
|
+
n_override=args.n_exp,
|
|
758
769
|
)
|
|
759
770
|
|
|
760
771
|
label = f"structure={mat.structure}" if args.structure_only else f"metal={mat.name} ({mat.structure})"
|
|
@@ -818,6 +829,8 @@ def build_parser() -> argparse.ArgumentParser:
|
|
|
818
829
|
sp.add_argument('--mode', choices=['tensile', 'compression', 'shear'], default='tensile')
|
|
819
830
|
sp.add_argument('--A_ext', type=float, default=2.46e-4, help='external factor (1-point calibration)')
|
|
820
831
|
sp.add_argument('--D_fail', type=float, default=0.5)
|
|
832
|
+
sp.add_argument('--r_th', type=float, default=None, help='Override r_th (fatigue threshold ratio)')
|
|
833
|
+
sp.add_argument('--n_exp', type=float, default=None, help='Override n (fatigue exponent)')
|
|
821
834
|
|
|
822
835
|
sp_point = sub.add_parser('point', help='compute yield (+ optional fatigue life)')
|
|
823
836
|
add_common(sp_point)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: delta-theory
|
|
3
|
-
Version: 6.10.
|
|
3
|
+
Version: 6.10.5
|
|
4
4
|
Summary: Unified materials strength and fatigue prediction based on geometric first principles
|
|
5
5
|
Author: Tamaki
|
|
6
6
|
Author-email: Masamichi Iizumi <m.iizumi@miosync.email>
|
|
7
|
-
Maintainer-email: Masamichi Iizumi <
|
|
7
|
+
Maintainer-email: Masamichi Iizumi <m.iizumi@miosync.email>
|
|
8
8
|
License: MIT
|
|
9
9
|
Project-URL: Homepage, https://github.com/miosync/delta-theory
|
|
10
10
|
Project-URL: Documentation, https://github.com/miosync/delta-theory#readme
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
apps/__init__.py,sha256=Jjt0FwRjaPFkffK1I4OUp2M0IR2oeh9yaeLPRhyPCxw,95
|
|
2
2
|
apps/delta_fatigue_app.py,sha256=2lDdKF9NeyzQB7VyH0-vSZF7IveSrNAIwtRpYPekFNM,12448
|
|
3
3
|
core/Universal_Lindemann.py,sha256=lEDhhSzE3sVhwSqaG1EeNCr1PuCRLaYj0C6faISGaO0,14227
|
|
4
|
-
core/__init__.py,sha256=
|
|
4
|
+
core/__init__.py,sha256=ALNGXTtGoiq0lQaQ67PMxEL6HrWRr7KlEMvId9Se8yg,1375
|
|
5
5
|
core/dbt_unified.py,sha256=m-tO6mDnEmpWfmuWKSAyX_0wLhPiXJ5VWQ0uUpNWuSY,23042
|
|
6
6
|
core/fatigue_redis_api.py,sha256=4fXVhDuXPads_CjBkqQex2YUOjw2WxdTgZo2SxpbWvc,16274
|
|
7
7
|
core/materials.py,sha256=FLVQWOrQ_CooDr-wi3S6GJnTGDV15RpHGCnbVIEy0q0,17051
|
|
8
|
-
core/unified_yield_fatigue_v6_9.py,sha256=
|
|
9
|
-
delta_theory-6.10.
|
|
10
|
-
delta_theory-6.10.
|
|
11
|
-
delta_theory-6.10.
|
|
12
|
-
delta_theory-6.10.
|
|
13
|
-
delta_theory-6.10.
|
|
14
|
-
delta_theory-6.10.
|
|
8
|
+
core/unified_yield_fatigue_v6_9.py,sha256=r9QfN8SjFG9G-NGRNPRMnV45Gu9s8ug3iXHyHcG0R-w,33516
|
|
9
|
+
delta_theory-6.10.5.dist-info/licenses/LICENSE,sha256=8dVpjRFTkE7BbLXxN9C2jwYio3jR9mD3q-DRcnqsQQo,1211
|
|
10
|
+
delta_theory-6.10.5.dist-info/METADATA,sha256=nyNFcYVOXFdZQMMeYLsXjEA-XcjPPxYs-kPwsv3e7RY,16830
|
|
11
|
+
delta_theory-6.10.5.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
12
|
+
delta_theory-6.10.5.dist-info/entry_points.txt,sha256=SbfW_U3JII-Ygfnfx1qRw7-zdXUf7f2h8ZAUxxKxWu0,103
|
|
13
|
+
delta_theory-6.10.5.dist-info/top_level.txt,sha256=y2DGPXIOL_UZHy6CTjK7_CvOytT9zdBpsg7BW5R6mxQ,10
|
|
14
|
+
delta_theory-6.10.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|