iam-git / WellMet (public) (License: MIT) (since 2021-08-31) (hash sha1)
WellMet is pure Python framework for spatial structural reliability analysis. Or, more specifically, for "failure probability estimation and detection of failure surfaces by adaptive sequential decomposition of the design domain".
List of commits:
Subject Hash Author Date (UTC)
testcases.testcases_nD_papers: add low pf nonlinear oscillator setting 4a75d5ec830f88c35a91e53898e416e568e3913c I am 2023-01-30 16:13:17
qt_gui.qt_plot: replace dropped np.int by int 197cbc3f6cf7ef92fc092a1e026cbace609eaabe I am 2023-01-28 18:07:43
dicebox.circumtri.increment: treat sample as an exploration sample if lies in a critical direction 95158c4f2e450ddc9bf3e4d1c4151e33d901c4b3 I am 2023-01-28 12:13:54
simplex.TopologyAnalysis: integration fix 5e520d41715c5260dd297b1356de9ea17ebef4ba I am 2023-01-27 21:22:43
simplex: preliminary work on topology analysis 72aeb80bd3469fe8ed0ec56e1cb6bbb83ecfc396 I am 2023-01-26 21:52:08
dicebox.circumtri.QTri: use different cubature degrees for facets and simplices inside aa77a812954891fae171db6c5a6b25ee0aac2275 I am 2023-01-25 12:08:20
convex_hull.QHull.get_chi_outside: count negative-valued facets c3f645977e19d66f7a402001485254ba30fdb2ce I am 2023-01-25 10:22:00
convex_hull.QHull.get_chi_outside: check and mask negative valued integrals 861f9bfdf5dab31c5c6b81566eb8db7d338307e9 I am 2023-01-24 22:27:43
dicebox.circumtri: estimation export hotfix 4f86660297b643446bacd3e254ded9faca148542 I am 2023-01-24 15:02:34
dicebox.circumtri: assemble QTri box 9e2114c0c6d5defcf3509a30fda3b6230eb9b9d1 I am 2023-01-24 14:48:48
dicebox._exploration: rework explore() af54a2693f6da4d874ade55f02990c87ed7ce9c7 I am 2023-01-24 09:54:51
convex_hull.QHull: implement erfc and gammaincc-based outside integrations for now ad0a665b53b6c8ca24a215c0e4ca73a5c1d145ad I am 2023-01-23 19:29:09
convex_hull.QHull: accept integrational crime 788f3ffe604a4cac9d19382250dd5ebe3cd5befc I am 2023-01-21 13:09:31
convex_hull.QHull: normal fix 083bbdc4cb41fdb3e357b1d0359705a2a65d6d27 I am 2023-01-20 19:07:17
convex_hull.QHull: implement chi cubature integration 7537b642967b7dd5d8475c20aff2a930a5bcd3ad I am 2023-01-20 15:54:05
convex_hull: implement QHullCubature class 6f1b51ba6fe281f7cae4f44889db96787d916a99 I am 2023-01-20 10:46:54
convex_hull.QHull: add proof-of-concept get_inside() method 6013fbac742d6070771d7798c928538ebc54495e I am 2023-01-19 10:19:32
whitebox: add r exact for common nD boxes 7c4ab62f069f0efeb48a403dac5d27033003ded2 I am 2023-01-17 15:09:08
qt_gui: improve GRaph to show r-R bounds 59fa5bde7be2197b1f739bd1f829f927cef62603 I am 2023-01-17 14:26:16
dicebox.circumtri: calculate event's radia c6868cfbde7c8a86b73217da544f60e94a117bd8 I am 2023-01-16 06:12:34
Commit 4a75d5ec830f88c35a91e53898e416e568e3913c - testcases.testcases_nD_papers: add low pf nonlinear oscillator setting
Author: I am
Author date (UTC): 2023-01-30 16:13
Committer name: I am
Committer date (UTC): 2023-01-30 16:13
Parent(s): 197cbc3f6cf7ef92fc092a1e026cbace609eaabe
Signer:
Signing key:
Signing status: N
Tree: 0f35a138680f216c416eacb0d2d65aad75cfa08a
File Lines added Lines deleted
wellmet/testcases/testcases_nD_papers.py 99 1
File wellmet/testcases/testcases_nD_papers.py changed (mode: 100644) (index 381acb7..9e35aa2)
... ... def nonlinear_oscilator_6D():
36 36 wt.pf_exact_method = 'known value' wt.pf_exact_method = 'known value'
37 37 return wt return wt
38 38
39
40 39 def single_spring_nonlinear_oscilator_5D(): def single_spring_nonlinear_oscilator_5D():
41 40 c_mean = 1 + 0.1 c_mean = 1 + 0.1
42 41 c_std = np.sqrt(0.10**2 + 0.01**2) c_std = np.sqrt(0.10**2 + 0.01**2)
 
... ... def single_spring_nonlinear_oscilator_5D():
48 47 return wt return wt
49 48
50 49
50 __all__.append("nonlinear_oscilator_pf6_6D")
51 def nonlinear_oscilator_pf6_6D():
52 """
53 @article{ECHARD2013232,
54 title = {A combined Importance Sampling and Kriging reliability method for small failure probabilities with time-demanding numerical models},
55 journal = {Reliability Engineering & System Safety},
56 volume = {111},
57 pages = {232-240},
58 year = {2013},
59 issn = {0951-8320},
60 doi = {https://doi.org/10.1016/j.ress.2012.10.008},
61 url = {https://www.sciencedirect.com/science/article/pii/S0951832012002086},
62 author = {B. Echard and N. Gayton and M. Lemaire and N. Relun},
63 keywords = {Reliability, Kriging metamodel, Surrogate model, Small failure probability, Importance sampling},
64 abstract = {Applying reliability methods to a complex structure is often delicate for two main reasons. First, such a structure is fortunately designed with codified rules leading to a large safety margin which means that failure is a small probability event. Such a probability level is difficult to assess efficiently. Second, the structure mechanical behaviour is modelled numerically in an attempt to reproduce the real response and numerical model tends to be more and more time-demanding as its complexity is increased to improve accuracy and to consider particular mechanical behaviour. As a consequence, performing a large number of model computations cannot be considered in order to assess the failure probability. To overcome these issues, this paper proposes an original and easily implementable method called AK-IS for active learning and Kriging-based Importance Sampling. This new method is based on the AK-MCS algorithm previously published by Echard et al. [AK-MCS: an active learning reliability method combining Kriging and Monte Carlo simulation. Structural Safety 2011;33(2):145–54]. It associates the Kriging metamodel and its advantageous stochastic property with the Importance Sampling method to assess small failure probabilities. It enables the correction or validation of the FORM approximation with only a very few mechanical model computations. The efficiency of the method is, first, proved on two academic applications. It is then conducted for assessing the reliability of a challenging aerospace case study submitted to fatigue.}
65 }
66 """
67
68 T1_mean = 1
69 T1_std = 0.2 * T1_mean
70 F1_mean = 0.6
71 F1_std = F1_mean / 6
72 #m, c1, c2, r, F1, t1 = sample.T
73 f = f_models.Norm(np.array([1, 1, 0.1, 0.5, F1_mean, T1_mean]),
74 np.array([0.05, 0.10, 0.01, 0.05, F1_std, T1_std]))
75 wt = WhiteBox(f, gm.nonlinear_oscilator)
76 wt.pf_exact = 9.09e-6
77 wt.pf_exact_method = 'known value'
78 return wt
79
80
81 __all__.append("single_spring_nonlinear_oscilator_pf6_5D")
82 def single_spring_nonlinear_oscilator_pf6_5D():
83 c_mean = 1 + 0.1
84 c_std = np.sqrt(0.10**2 + 0.01**2)
85 T1_mean = 1
86 T1_std = 0.2 * T1_mean
87 F1_mean = 0.6
88 F1_std = F1_mean / 6
89 f = f_models.Norm(np.array([1, c_mean, 0.5, F1_mean, T1_mean]),
90 np.array([0.05, c_std , 0.05, F1_std, T1_std]))
91 wt = WhiteBox(f, gm.single_spring_nonlinear_oscilator)
92 wt.pf_exact = 9.09e-6
93 wt.pf_exact_method = 'known value'
94 return wt
95
96
97
98
99
100
101 __all__.append("nonlinear_oscilator_pf8_6D")
102 def nonlinear_oscilator_pf8_6D():
103 """
104 @article{ECHARD2013232,
105 title = {A combined Importance Sampling and Kriging reliability method for small failure probabilities with time-demanding numerical models},
106 journal = {Reliability Engineering & System Safety},
107 volume = {111},
108 pages = {232-240},
109 year = {2013},
110 issn = {0951-8320},
111 doi = {https://doi.org/10.1016/j.ress.2012.10.008},
112 url = {https://www.sciencedirect.com/science/article/pii/S0951832012002086},
113 author = {B. Echard and N. Gayton and M. Lemaire and N. Relun},
114 keywords = {Reliability, Kriging metamodel, Surrogate model, Small failure probability, Importance sampling},
115 abstract = {Applying reliability methods to a complex structure is often delicate for two main reasons. First, such a structure is fortunately designed with codified rules leading to a large safety margin which means that failure is a small probability event. Such a probability level is difficult to assess efficiently. Second, the structure mechanical behaviour is modelled numerically in an attempt to reproduce the real response and numerical model tends to be more and more time-demanding as its complexity is increased to improve accuracy and to consider particular mechanical behaviour. As a consequence, performing a large number of model computations cannot be considered in order to assess the failure probability. To overcome these issues, this paper proposes an original and easily implementable method called AK-IS for active learning and Kriging-based Importance Sampling. This new method is based on the AK-MCS algorithm previously published by Echard et al. [AK-MCS: an active learning reliability method combining Kriging and Monte Carlo simulation. Structural Safety 2011;33(2):145–54]. It associates the Kriging metamodel and its advantageous stochastic property with the Importance Sampling method to assess small failure probabilities. It enables the correction or validation of the FORM approximation with only a very few mechanical model computations. The efficiency of the method is, first, proved on two academic applications. It is then conducted for assessing the reliability of a challenging aerospace case study submitted to fatigue.}
116 }
117 """
118
119 T1_mean = 1
120 T1_std = 0.2 * T1_mean
121 F1_mean = 0.45
122 F1_std = F1_mean / 6
123 #m, c1, c2, r, F1, t1 = sample.T
124 f = f_models.Norm(np.array([1, 1, 0.1, 0.5, F1_mean, T1_mean]),
125 np.array([0.05, 0.10, 0.01, 0.05, F1_std, T1_std]))
126 wt = WhiteBox(f, gm.nonlinear_oscilator)
127 wt.pf_exact = 1.55e-8
128 wt.pf_exact_method = 'known value'
129 return wt
130
131
132 __all__.append("single_spring_nonlinear_oscilator_pf8_5D")
133 def single_spring_nonlinear_oscilator_pf8_5D():
134 c_mean = 1 + 0.1
135 c_std = np.sqrt(0.10**2 + 0.01**2)
136 T1_mean = 1
137 T1_std = 0.2 * T1_mean
138 F1_mean = 0.45
139 F1_std = F1_mean / 6
140 f = f_models.Norm(np.array([1, c_mean, 0.5, F1_mean, T1_mean]),
141 np.array([0.05, c_std , 0.05, F1_std, T1_std]))
142 wt = WhiteBox(f, gm.single_spring_nonlinear_oscilator)
143 wt.pf_exact = 1.55e-8
144 wt.pf_exact_method = 'known value'
145 return wt
146
147
148
51 149
52 150 def noisy_lsf_Papaioannou_6D(): def noisy_lsf_Papaioannou_6D():
53 151 """ """
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/iam-git/WellMet

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/iam-git/WellMet

Clone this repository using git:
git clone git://git.rocketgit.com/user/iam-git/WellMet

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main