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)
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
convex_hull.Ghull: add nonGaussian hulls support, fix MC integration 3e10c2cefff5f3e204c1d4118b195e37023a5a57 I am 2021-06-19 17:44:09
mart: add qhull polygon c3da6bdd1b6412f178c828c1eb1a6368a02eb74c I am 2021-06-18 23:27:48
dicebox.Goal: implement csv export odhadů abdb28f509e664c039a6e5ca4bf1036d00957349 I am 2021-06-15 15:06:15
reader: add export_estimation function. Jednoduchý jako busy ef8fcada4b01be8db29836aa09459d8a7ef382b6 I am 2021-06-15 03:08:53
convex_hull: add meaningless method 96a86b7eabceb15e6c937932c2002409c2df0178 I am 2021-06-14 16:35:39
dicebox: new brand box named Goal is ready 725c2561b62769af6034c690005d1d22e6af41c7 I am 2021-06-05 13:40:15
convex_hull: last node fix in fire() function ca938c11398dfb2e16441b989902dab1558336b3 I am 2021-06-05 13:25:55
Commit 19c3c63001ebc19ed5e17892e4b11edb4dbfe828 - dicebox.Goal: Goal is back after the breakage!
Author: I am
Author date (UTC): 2021-07-06 16:14
Committer name: I am
Committer date (UTC): 2021-07-06 16:14
Parent(s): 7b5b87655b6978828ed06ba3743ada46a2bfde6b
Signer:
Signing key:
Signing status: N
Tree: 5f25e85bec129db39984b3436aa729738d116916
File Lines added Lines deleted
convex_hull.py 14 7
dicebox.py 32 15
File convex_hull.py changed (mode: 100644) (index b5c83a1..640d7da)
... ... class Ghull:
609 609 if self.hull.space == 'G': if self.hull.space == 'G':
610 610 return self.hull.get_r() return self.hull.get_r()
611 611 else: else:
612 #č get_design_points() nemusí být. Ale zatím to neřeším
613 hull_points = self.hull.get_design_points()
614 sum_squared = np.sum(np.square(hull_points.G), axis=1)
615 hull_r = np.sqrt(np.nanmin(sum_squared))
612 #č get_design_points() nemusí být.
613 #č QHull může nemít dostatek teček
614 try:
615 hull_points = self.hull.get_design_points()
616 sum_squared = np.sum(np.square(hull_points.G), axis=1)
617 hull_r = np.sqrt(np.nanmin(sum_squared))
618 except BaseException as e:
619 msg = "cannot get hull points from the convex hull"
620 print(self.__class__.__name__ +":", msg, repr(e))
621 hull_r = np.inf
622
616 623
617 624 # ask our experimentation team # ask our experimentation team
618 625 gint_r = self.gint.get_r() gint_r = self.gint.get_r()
 
... ... class Shell_MC:
708 715 #č vrací odhad r na základě předchozích integrací #č vrací odhad r na základě předchozích integrací
709 716 #č metoda je navržena tak, aby Shell_IS jú mohl zdědit. #č metoda je navržena tak, aby Shell_IS jú mohl zdědit.
710 717 def get_r(self): def get_r(self):
711 #č bojim sa, rerukce bude aplikována dycky
712 #č Bacha, metoda bude vracet nuly pro obálky v Gaussovskem prostoru!
713 return self.r * self.non_Gaussian_reduction
718 #č bojim sa, rerukce bude aplikována dycky
719 #č Bacha, metoda bude vracet nuly pro obálky v Gaussovskem prostoru!
720 return self.r * self.non_Gaussian_reduction
714 721
715 722 # stateless # stateless
716 723 def rvs(self, nsampled, seats, ns): def rvs(self, nsampled, seats, ns):
File dicebox.py changed (mode: 100644) (index fb33661..25bb15e)
... ... class Razitko(Erjee):
1160 1160 #č Je třeba dávát bacha na odlišnosti v (staré) Triangulation třídě a nové Ghull třídě. #č Je třeba dávát bacha na odlišnosti v (staré) Triangulation třídě a nové Ghull třídě.
1161 1161 #č Zatímco Triangulation drží starý stáv, dokud .update() není spustěn, #č Zatímco Triangulation drží starý stáv, dokud .update() není spustěn,
1162 1162 #č Ghull, ale hlavně, odpovídající modely konvexních obálek jíž žádný .update() nemájí, #č Ghull, ale hlavně, odpovídající modely konvexních obálek jíž žádný .update() nemájí,
1163 #č nové tečky uvidí sami dřív než se naší skříňka probere.
1163 #č nové tečky uvidí sami dřív než se naše skříňka probere.
1164 1164 #č Takže teď odhady nově budeme ukladať hned pri incrementu. #č Takže teď odhady nově budeme ukladať hned pri incrementu.
1165 1165 #č Triangulation používá i jínej kód, samotné třídy beztak zbytečně komplikováné, #č Triangulation používá i jínej kód, samotné třídy beztak zbytečně komplikováné,
1166 1166 #č nechci teď to toho lezt. #č nechci teď to toho lezt.
 
... ... class Goal(DiceBox):
1405 1405 # bx.judge_candidates(bx.candidates) # bx.judge_candidates(bx.candidates)
1406 1406 # bx.assess_candidates(bx.candidates) # bx.assess_candidates(bx.candidates)
1407 1407
1408
1409 1408
1409 def _ghull_outside_callback(bx, outside_nodes):
1410 #č sice získáme filtrovaný outside,
1411 #č musíme sami zabalit bodíky do CandyBoxu
1412 # -2 = 'inside' -1 = 'outside'
1413 event_ids = np.full(len(outside_nodes), -1, dtype=np.int8)
1414 candidates = CandyBox(outside_nodes, event_id=event_ids)
1415 bx.assess_candidates(candidates)
1416
1417 bids = getattr(candidates, bx.potential)
1418 #č nie třeba kontrolovat jevy, tam je pouze outside
1419 #bids *= (candidates.event_id == -1) + (candidates.event_id == 2)
1420 bid = np.nanmax(bids)
1421 if bid > bx._highest_outside:
1422 #č uložíme varku bodíku pouze když
1423 #č majú větší potenciál,
1424 bx._highest_outside = bid
1425 #č čo tam připadně bylo - přepíšeme
1426 #č uložíme s indexem dle ghull_estimation:
1427 # -22: inner, -21: shell inside, -12: shell outside, -11: outer
1428 bx.candidates_index[-12] = candidates
1429
1410 1430
1411 1431 def estimate_outside(bx): def estimate_outside(bx):
1412 1432 #č konečně mám pořádnou stejtful třídu #č konečně mám pořádnou stejtful třídu
 
... ... class Goal(DiceBox):
1421 1441 #č b. fire, to co navrhne QHull (-1) #č b. fire, to co navrhne QHull (-1)
1422 1442 #č c. boom, doporuření QHull můžou i zklamat (-11) #č c. boom, doporuření QHull můžou i zklamat (-11)
1423 1443
1444 #č prace s tečkami v mezikruži se změnila
1445 #č teď tečky dostávám přes kolbek po částech
1446 #č a není předem známo, kolik těch částí bude.
1447 #č Na začátku radší, pro jistotu, vyhodíme stare bodíky z mezikruži (-12)
1448 bx.candidates_index.pop(-12, "Nejsou? Nevadí...")
1449 bx._highest_outside = 0
1450
1424 1451 # get candidates! # get candidates!
1425 1452 #č explicitně (pokažde) počtem teček zadavám přesnost integrace #č explicitně (pokažde) počtem teček zadavám přesnost integrace
1426 1453 #č takže změny bx.shell_budget budou při dálším spuštění aplikovány #č takže změny bx.shell_budget budou při dálším spuštění aplikovány
1427 data = bx.ghull.integrate(bx.shell_budget)
1428 candidates, ghull_estimation, convex_hull_estimation, global_stats = data
1454 data = bx.ghull.integrate(bx.shell_budget, \
1455 callback_outside=bx._ghull_outside_callback)
1456 ghull_estimation, convex_hull_estimation, global_stats = data
1429 1457 #č uložíme. Не жалко. #č uložíme. Не жалко.
1430 1458 #č první úkol máme splněný #č první úkol máme splněný
1431 1459 bx.ghull_estimation = ghull_estimation bx.ghull_estimation = ghull_estimation
 
... ... class Goal(DiceBox):
1433 1461 bx.global_stats = global_stats bx.global_stats = global_stats
1434 1462 bx._logger(msg="outside estimation:", ghull_stats=global_stats) bx._logger(msg="outside estimation:", ghull_stats=global_stats)
1435 1463
1436 #č kendinody už májú atribut is_outside a mají nastavený event_id
1437 # -2 = 'inside' -1 = 'outside'
1438 candidates = candidates[candidates.is_outside]
1439
1440
1441 #č vzorky je třeba přidát ke kandidatům
1442 #č jako, nic nepokazí, ale čo tam připadně bylo - přepíše
1443 #č uložíme s indexem dle ghull_estimation:
1444 # -22: inner, -21: shell inside, -12: shell outside, -11: outer
1445 bx.assess_candidates(candidates) # nic nevrácí, to je procedura
1446 bx.candidates_index[-12] = candidates
1447 1464
1448 1465
1449 1466 #č zde už nám jde pouze o kandidaty #č zde už nám jde pouze o kandidaty
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