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)
convex_hull.fire: use sf instead of cdf function to fix precision issue in distant areas. e3b9f036f9d50994357e32827586fb98d85d43a7 I am 2021-07-15 09:13:58
qt_plot: add matplotlib menu 73835a59908b82f08d618a06c4c05a96703715b1 I am 2021-07-14 17:01:54
mart: add candidates plot functions 56b3f5320e83071886c0d8f65a3d9df7c5a231a8 I am 2021-07-13 10:55:13
dicebox.Goal.assess_candidates: put back dd attribute 5da7c67800b8cd6eb3f221273a8270393a571e2b I am 2021-07-12 08:47:00
sball: fix Radial pdf 830fbf3119e2e54e42ea48640dfe553ffa2b3c1f I am 2021-07-08 19:50:42
spring: try to fix infinite loop 0e9a6161996c1b078698b1631d10f1a171332818 I am 2021-07-08 17:54:04
dicebox.Goal: add q_psee potential 4c151252460f6e96f7c1ac5662f81474eae305a0 I am 2021-07-08 00:34:27
dicebox.Goal: Goal is back after the breakage! 19c3c63001ebc19ed5e17892e4b11edb4dbfe828 I am 2021-07-06 16:14:14
IS_stat.PushAndPull: small variance fix, spíše formální 7b5b87655b6978828ed06ba3743ada46a2bfde6b I am 2021-07-06 04:31:43
qt_plot.Ghull: update Ghull related code. A lot of fixes. Вроде фурычит. 29cd8fce14cecc872e1be856d73d9669a6395b08 I am 2021-07-05 18:47:53
IS_stat: new class added (for Ghull, actually) 27b2685694655cb75657c6629d10706669d1f2e2 I am 2021-07-04 22:05:48
convex_hull.Ghull: integrovaní memikruží je hodně překopano. Breakage. není zatím testováno 2d39dcd67948a99028013b0f7f420adf86eb19e9 I am 2021-07-04 22:02:48
dicebox: replace everywhere "potencial" typo by correct "potential" word. Save English eyes! c4aae036362d93c8a0a5bde9f30537d1b549adaa I am 2021-06-30 14:30:26
welford: add method for sparse data c9dd961c58243ac890b9a518cfff5901dd6a5789 I am 2021-06-28 13:47:09
welford: yet another Welford's algoritm implementation ec31907d6727c408306f4b25c09b7f87632b0ecf I am 2021-06-27 22:27:06
IS_stat.TrueIS: pridal jsem do komentářu vzpomínky 1c5b4596a4da1206b02ed91954cbe8147ec1e208 I am 2021-06-27 15:23:42
IS_stat: add get_IS_estimation() function d048b4cd4e90d8440e7ff2a3ad86bc0f3c160d4f I am 2021-06-26 19:55:14
spring: new brand hustý modul pro vyrovnání odhadů 3fc5eb00de1eb65cff2db71640c340602687f52f I am 2021-06-25 00:52:06
convex_hull.Ghull.rvs: hloupá chyba 7494eef4e2621ac9651037cd4a99e9f570704dee I am 2021-06-21 01:37:49
convex_hull.Ghull.rvs: ensure at least one node outside 1c6d05935c83d11637ae566528cf65eb384215b5 I am 2021-06-19 19:04:40
Commit e3b9f036f9d50994357e32827586fb98d85d43a7 - convex_hull.fire: use sf instead of cdf function to fix precision issue in distant areas.
Author: I am
Author date (UTC): 2021-07-15 09:13
Committer name: I am
Committer date (UTC): 2021-07-15 09:13
Parent(s): 73835a59908b82f08d618a06c4c05a96703715b1
Signer:
Signing key:
Signing status: N
Tree: ca9c22be24ad3ebf60f0f20ffb51aea71f0f6a59
File Lines added Lines deleted
convex_hull.py 23 50
File convex_hull.py changed (mode: 100644) (index 01bb901..ec8d9e7)
... ... from .IS_stat import PushAndPull # for Shell_IS
24 24 #č nepodařílo se mi nějak rozumně zobecnit pro libovolný prostor #č nepodařílo se mi nějak rozumně zobecnit pro libovolný prostor
25 25 #č takže Gauss #č takže Gauss
26 26 #č (každá třida implementuje zvlášť) #č (každá třida implementuje zvlášť)
27 #def fire(design_point_G, ns):
28 # to_fire_G = design_point.G[0]
29 # r = np.sqrt(np.sum(np.square(to_fire_G)))
30 # a = to_fire_G / r
31 # fire_from = stats.norm.cdf(r)
32 # t = np.linspace(fire_from, 1, ns)
33 # t = stats.norm.ppf(t)
34 # fire_G = t.reshape(-1,1) @ a.reshape(1,-1)
35 # return design_point.
27
28 def fire(hull, ns):
29 if hull.space == 'G':
30 to_fire = np.nanargmax(hull.b)
31 a = hull.A[to_fire]
32 fire_from = stats.norm.sf(hull.get_r())
33 t = np.linspace(fire_from, 0, ns, endpoint=False)
34 t = stats.norm.isf(t)
35 fire_G = t.reshape(-1,1) @ a.reshape(1,-1)
36
37 return hull.sample.f_model.new_sample(fire_G, space='G')
36 38
37 39 #č jistě musíme mít nějaký zbytečný kus kódu #č jistě musíme mít nějaký zbytečný kus kódu
38 40 #č třida jen pro formu, jen tak na hračku #č třida jen pro formu, jen tak na hračku
 
... ... class BrickHull: #č nebo BoundingBrick
203 205
204 206
205 207 class DirectHull: class DirectHull:
208 # take global function for fire()
209 fire = fire
210
206 211 def __init__(hull, sample, direct_plan, space='G'): def __init__(hull, sample, direct_plan, space='G'):
207 212 hull.sample = sample hull.sample = sample
208 213 hull.direct_plan = direct_plan hull.direct_plan = direct_plan
 
... ... class DirectHull:
285 290 else: else:
286 291 return 0 return 0
287 292
288 def fire(hull, ns):
289 if hull.space == 'G':
290 A = hull.equations[:,:-1]
291 b = hull.equations[:,-1]
292
293 to_fire = np.nanargmax(b)
294 a = A[to_fire]
295 fire_from = stats.norm.cdf(hull.get_r())
296 t = np.linspace(fire_from, 1, ns, endpoint=False)
297 t = stats.norm.ppf(t)
298 fire_G = t.reshape(-1,1) @ a.reshape(1,-1)
299
300 return hull.sample.f_model.new_sample(fire_G, space='G')
293
301 294
302 295
303 296 class CompleteHull: class CompleteHull:
297 # take global function for fire()
298 fire = fire
299
304 300 def __init__(hull, sample, direct_plan, space='G'): def __init__(hull, sample, direct_plan, space='G'):
305 301 hull.sample = sample hull.sample = sample
306 302 hull.direct_plan = direct_plan hull.direct_plan = direct_plan
 
... ... class CompleteHull:
411 407 else: else:
412 408 return 0 return 0
413 409
414 def fire(hull, ns):
415 if hull.space == 'G':
416 A = hull.equations[:,:-1]
417 b = hull.equations[:,-1]
418
419 to_fire = np.nanargmax(b)
420 a = A[to_fire]
421 fire_from = stats.norm.cdf(hull.get_r())
422 t = np.linspace(fire_from, 1, ns, endpoint=False)
423 t = stats.norm.ppf(t)
424 fire_G = t.reshape(-1,1) @ a.reshape(1,-1)
425
426 return hull.sample.f_model.new_sample(fire_G, space='G')
427 410
428 411
429 412 class QHull: class QHull:
 
... ... class QHull:
538 521 return 0 return 0
539 522
540 523 def fire(hull, ns): def fire(hull, ns):
541 if hull.space == 'G':
542 try:
543 A = hull.equations[:,:-1]
544 b = hull.equations[:,-1]
545
546 to_fire = np.nanargmax(b) #č tak, pro jistotu
547 a = A[to_fire]
548 fire_from = stats.norm.cdf(hull.get_r())
549 t = np.linspace(fire_from, 1, ns, endpoint=False)
550 t = stats.norm.ppf(t)
551 fire_G = t.reshape(-1,1) @ a.reshape(1,-1)
552
553 return hull.sample.f_model.new_sample(fire_G, space='G')
554 except:
555 pass
524 try:
525 # take global function for fire()
526 return fire(hull, ns)
527 except:
528 pass
556 529
557 530
558 531 #č mým úkolem při návrhu této třidy je pořádně všecko zkomplikovat. #č mým úkolem při návrhu této třidy je pořádně všecko zkomplikovat.
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