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: 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
convex_hull: small fix for QHull under single simplex integration b0b236cd14ae614ecd1310b8c7cfcafe8d1b0851 I am 2021-05-30 05:57:45
convex_hull: ensure Ghull to always have some nodes for expansion 7110d521d9fece58639a359c83773df904b1177f I am 2021-05-29 07:03:49
dicebox: throw away plot dependency, simplify increment function 1cf0c481b8df1937ff7eda6e0373d5d6a72387db I am 2021-05-28 16:42:19
simplex: add JustCubatureTriangulation class separated from Shull ea291f9deee9f3b5b8615ae1f14a49aecd327461 I am 2021-05-28 16:39:58
mart: add convex_hull routines 90105552e7aecf3df8e84a1f5c4bdc1b04be249b I am 2021-04-25 20:11:34
Commit c4aae036362d93c8a0a5bde9f30537d1b549adaa - dicebox: replace everywhere "potencial" typo by correct "potential" word. Save English eyes!
Author: I am
Author date (UTC): 2021-06-30 14:30
Committer name: I am
Committer date (UTC): 2021-06-30 14:30
Parent(s): c9dd961c58243ac890b9a518cfff5901dd6a5789
Signer:
Signing key:
Signing status: N
Tree: bf0167ff0051b00abed52e5c30b29037da10c920
File Lines added Lines deleted
dicebox.py 23 23
File dicebox.py changed (mode: 100644) (index 8bcf826..fb33661)
... ... class Chrt(DiceBox):
308 308 #č už mě to dědění nebaví #č už mě to dědění nebaví
309 309 #ё без поллитры было не разобраться, что этот слоёный пирог делал #ё без поллитры было не разобраться, что этот слоёный пирог делал
310 310 def __init__(bx, sample_object, tri_space='Rn', tree_space=None,\ def __init__(bx, sample_object, tri_space='Rn', tree_space=None,\
311 sampling_space=None, kechato_space='U', potencial='psee',\
311 sampling_space=None, kechato_space='U', potential='psee',\
312 312 p_norm=2, budget=1000, simplex_budget=100, \ p_norm=2, budget=1000, simplex_budget=100, \
313 313 LHS_correction=False, design=None): LHS_correction=False, design=None):
314 314
 
... ... class Chrt(DiceBox):
329 329 bx.budget = budget bx.budget = budget
330 330 bx.simplex_budget = simplex_budget bx.simplex_budget = simplex_budget
331 331 bx.p_norm = p_norm bx.p_norm = p_norm
332 bx.potencial = potencial
332 bx.potential = potential
333 333 bx.LHS_correction = LHS_correction bx.LHS_correction = LHS_correction
334 334 bx.design = design bx.design = design
335 335
 
... ... class Chrt(DiceBox):
351 351 return {'sample_object':bx.sample_box, \ return {'sample_object':bx.sample_box, \
352 352 'tri_space':bx.tri_space, 'tree_space':bx.tree_space,\ 'tri_space':bx.tri_space, 'tree_space':bx.tree_space,\
353 353 'sampling_space':bx.sampling_space, 'kechato_space':bx.kechato_space,\ 'sampling_space':bx.sampling_space, 'kechato_space':bx.kechato_space,\
354 'potencial':bx.potencial, 'p_norm':bx.p_norm, 'budget':bx.budget,\
354 'potential':bx.potential, 'p_norm':bx.p_norm, 'budget':bx.budget,\
355 355 'simplex_budget':bx.simplex_budget, \ 'simplex_budget':bx.simplex_budget, \
356 356 'LHS_correction':bx.LHS_correction, 'design':str(bx.design)} 'LHS_correction':bx.LHS_correction, 'design':str(bx.design)}
357 357
 
... ... class Chrt(DiceBox):
392 392 bx.candidates_index = dict() bx.candidates_index = dict()
393 393
394 394 if bx.nsim > 0: if bx.nsim > 0:
395 # needed for potencial calculation
395 # needed for potential calculation
396 396 sampled_plan_tree = getattr(bx.sample_box, bx.tree_space) sampled_plan_tree = getattr(bx.sample_box, bx.tree_space)
397 397 bx.tree = spatial.cKDTree(sampled_plan_tree) bx.tree = spatial.cKDTree(sampled_plan_tree)
398 398 bx.highest_bid = 0 bx.highest_bid = 0
 
... ... class Chrt(DiceBox):
480 480 bx._LHS_increment(input_sample) bx._LHS_increment(input_sample)
481 481
482 482 #č strom posuneme sem #č strom posuneme sem
483 # cKDTree is used for potencial calculation
483 # cKDTree is used for potential calculation
484 484 # we need everytime regenerate it # we need everytime regenerate it
485 485 sampled_plan_tree = getattr(bx.sample_box, bx.tree_space) sampled_plan_tree = getattr(bx.sample_box, bx.tree_space)
486 486 bx.tree = spatial.cKDTree(sampled_plan_tree) bx.tree = spatial.cKDTree(sampled_plan_tree)
 
... ... class Chrt(DiceBox):
588 588 #č A ještě... AUKCE, AUCTION #č A ještě... AUKCE, AUCTION
589 589 # Election - selection # Election - selection
590 590 for candidates in bx.candidates_index.values(): for candidates in bx.candidates_index.values():
591 bids = getattr(candidates, bx.potencial)
591 bids = getattr(candidates, bx.potential)
592 592 if len(bids): if len(bids):
593 593 bid = np.nanmax(bids) bid = np.nanmax(bids)
594 594 # side effect # side effect
 
... ... class Chrt(DiceBox):
608 608 """ """
609 609 function should be only runned by .assess_candidates() function should be only runned by .assess_candidates()
610 610 """ """
611 bids = getattr(candidates, bx.potencial)
611 bids = getattr(candidates, bx.potential)
612 612 # -1 = 'out', 0=success, 1=failure, 2=mix # -1 = 'out', 0=success, 1=failure, 2=mix
613 613 #č -1 a 2 jsou samozrejmě disjunktní #č -1 a 2 jsou samozrejmě disjunktní
614 614 bids *= (candidates.event_id == -1) + (candidates.event_id == 2) bids *= (candidates.event_id == -1) + (candidates.event_id == 2)
 
... ... class Chrt(DiceBox):
699 699 candidates.ii = ii candidates.ii = ii
700 700
701 701
702 if bx.potencial in ('psee', 'fee', 'fee2'):
702 if bx.potential in ('psee', 'fee', 'fee2'):
703 703 #оӵ кучапи #оӵ кучапи
704 704 #č pejskovej potenciál #č pejskovej potenciál
705 705 #č psí-kučapí není invariántní vůči lineárním transformácím #č psí-kučapí není invariántní vůči lineárním transformácím
 
... ... class Chrt(DiceBox):
725 725 candidates.fee = candidates.tree_Pdf_mean * candidates.volume * np.power(pdf/PDF, 1/(bx.nvar+1)) candidates.fee = candidates.tree_Pdf_mean * candidates.volume * np.power(pdf/PDF, 1/(bx.nvar+1))
726 726 candidates.fee2 = candidates.tree_Pdf_mean * candidates.volume * np.power(pdf/PDF, 1/(bx.nvar*2)) candidates.fee2 = candidates.tree_Pdf_mean * candidates.volume * np.power(pdf/PDF, 1/(bx.nvar*2))
727 727
728 elif bx.potencial == 'ksee': # ksee
728 elif bx.potential == 'ksee': # ksee
729 729 #оӵ кечато #оӵ кечато
730 730 #č koťatko-káčátkovej potenciál #č koťatko-káčátkovej potenciál
731 731 #č ksí-kěčató není invariántní vůčí rotacím #č ksí-kěčató není invariántní vůčí rotacím
 
... ... class Chrt(DiceBox):
752 752 #č vyhodnotíme #č vyhodnotíme
753 753 bx.assess_candidates(candidates) bx.assess_candidates(candidates)
754 754 #č půlku prýč #č půlku prýč
755 bids = getattr(candidates, bx.potencial)
755 bids = getattr(candidates, bx.potential)
756 756 mask = np.isfinite(bids) mask = np.isfinite(bids)
757 757 if np.any(mask): #č hmm... if np.any(mask): #č hmm...
758 758 candidates = candidates[mask] candidates = candidates[mask]
 
... ... class Erjee(Chrt):
952 952 bx._LHS_increment(input_sample) bx._LHS_increment(input_sample)
953 953
954 954 #č strom posuneme sem #č strom posuneme sem
955 # cKDTree is used for potencial calculation
955 # cKDTree is used for potential calculation
956 956 # we need everytime regenerate it # we need everytime regenerate it
957 957 sampled_plan_tree = getattr(bx.sample_box, bx.tree_space) sampled_plan_tree = getattr(bx.sample_box, bx.tree_space)
958 958 bx.tree = spatial.cKDTree(sampled_plan_tree) bx.tree = spatial.cKDTree(sampled_plan_tree)
 
... ... class Razitko(Erjee):
993 993 #č už mě to dědění nebaví #č už mě to dědění nebaví
994 994 #ё без поллитры было не разобраться, что этот слоёный пирог делал #ё без поллитры было не разобраться, что этот слоёный пирог делал
995 995 def __init__(bx, sample_object, scheme, tri_space='Rn', tree_space=None,\ def __init__(bx, sample_object, scheme, tri_space='Rn', tree_space=None,\
996 sampling_space=None, kechato_space='U', potencial='psee',\
996 sampling_space=None, kechato_space='U', potential='psee',\
997 997 p_norm=2, budget=1000, \ p_norm=2, budget=1000, \
998 998 LHS_correction=False, design=None): LHS_correction=False, design=None):
999 999
 
... ... class Razitko(Erjee):
1013 1013 bx.kechato_space = kechato_space bx.kechato_space = kechato_space
1014 1014 bx.budget = budget bx.budget = budget
1015 1015 bx.p_norm = p_norm bx.p_norm = p_norm
1016 bx.potencial = potencial
1016 bx.potential = potential
1017 1017 bx.LHS_correction = LHS_correction bx.LHS_correction = LHS_correction
1018 1018 bx.design = design bx.design = design
1019 1019
 
... ... class Razitko(Erjee):
1042 1042 return {'sample_object':bx.sample_box, 'scheme':bx.scheme.name,\ return {'sample_object':bx.sample_box, 'scheme':bx.scheme.name,\
1043 1043 'tri_space':bx.tri_space, 'tree_space':bx.tree_space,\ 'tri_space':bx.tri_space, 'tree_space':bx.tree_space,\
1044 1044 'sampling_space':bx.sampling_space, 'kechato_space':bx.kechato_space,\ 'sampling_space':bx.sampling_space, 'kechato_space':bx.kechato_space,\
1045 'potencial':bx.potencial, 'p_norm':bx.p_norm, 'budget':bx.budget,\
1045 'potential':bx.potential, 'p_norm':bx.p_norm, 'budget':bx.budget,\
1046 1046 'LHS_correction':bx.LHS_correction, 'design':str(bx.design)} 'LHS_correction':bx.LHS_correction, 'design':str(bx.design)}
1047 1047
1048 1048 def _regen_inside(bx): def _regen_inside(bx):
 
... ... class Goal(DiceBox):
1235 1235 #č míží nám sampling_space: Ghull umí vzorkovat outside pouze v G prostoru #č míží nám sampling_space: Ghull umí vzorkovat outside pouze v G prostoru
1236 1236 #č quadpy umístí integráční bodíky v prostoru triangulace. #č quadpy umístí integráční bodíky v prostoru triangulace.
1237 1237 def __init__(bx, sample_object, scheme, tri_space='G', tree_space=None,\ def __init__(bx, sample_object, scheme, tri_space='G', tree_space=None,\
1238 kechato_space='U', potencial='psee',\
1238 kechato_space='U', potential='psee',\
1239 1239 p_norm=2, shell_budget=1000, outer_budget=100,\ p_norm=2, shell_budget=1000, outer_budget=100,\
1240 1240 LHS_correction=False, stm_filename=None): LHS_correction=False, stm_filename=None):
1241 1241
 
... ... class Goal(DiceBox):
1251 1251 bx.shell_budget = shell_budget bx.shell_budget = shell_budget
1252 1252 bx.outer_budget = outer_budget bx.outer_budget = outer_budget
1253 1253 bx.p_norm = p_norm bx.p_norm = p_norm
1254 bx.potencial = potencial
1254 bx.potential = potential
1255 1255 bx.LHS_correction = LHS_correction bx.LHS_correction = LHS_correction
1256 1256
1257 1257 bx.stm_filename = stm_filename bx.stm_filename = stm_filename
 
... ... class Goal(DiceBox):
1265 1265 """ """
1266 1266 return {'sample_object':bx.sample_box, 'scheme':bx.scheme.name,\ return {'sample_object':bx.sample_box, 'scheme':bx.scheme.name,\
1267 1267 'tri_space':bx.tri_space, 'tree_space':bx.tree_space,\ 'tri_space':bx.tri_space, 'tree_space':bx.tree_space,\
1268 'kechato_space':bx.kechato_space, 'potencial':bx.potencial,\
1268 'kechato_space':bx.kechato_space, 'potential':bx.potential,\
1269 1269 'p_norm':bx.p_norm, 'shell_budget':bx.shell_budget,\ 'p_norm':bx.p_norm, 'shell_budget':bx.shell_budget,\
1270 1270 'outer_budget':bx.outer_budget, 'LHS_correction':bx.LHS_correction} 'outer_budget':bx.outer_budget, 'LHS_correction':bx.LHS_correction}
1271 1271
 
... ... class Goal(DiceBox):
1332 1332 bx._LHS_increment(input_sample) bx._LHS_increment(input_sample)
1333 1333
1334 1334 #č strom posuneme sem #č strom posuneme sem
1335 # cKDTree is used for potencial calculation
1335 # cKDTree is used for potential calculation
1336 1336 # we need everytime regenerate it # we need everytime regenerate it
1337 1337 sampled_plan_tree = getattr(bx.sample_box, bx.tree_space) sampled_plan_tree = getattr(bx.sample_box, bx.tree_space)
1338 1338 bx.tree = spatial.cKDTree(sampled_plan_tree) bx.tree = spatial.cKDTree(sampled_plan_tree)
 
... ... class Goal(DiceBox):
1389 1389 #č A ještě... AUKCE, AUCTION #č A ještě... AUKCE, AUCTION
1390 1390 # Election - selection # Election - selection
1391 1391 for candidates in bx.candidates_index.values(): for candidates in bx.candidates_index.values():
1392 bids = getattr(candidates, bx.potencial)
1392 bids = getattr(candidates, bx.potential)
1393 1393 if len(bids): if len(bids):
1394 1394 bid = np.nanmax(bids) bid = np.nanmax(bids)
1395 1395 # side effect # side effect
 
... ... class DiceSimpleX:
1807 1807 # #
1808 1808 highest_bid = 0 highest_bid = 0
1809 1809 for i, candidates in bx.candidates_index.items(): for i, candidates in bx.candidates_index.items():
1810 bids = getattr(candidates, bx.potencial)
1810 bids = getattr(candidates, bx.potential)
1811 1811 bid = np.max(bids) bid = np.max(bids)
1812 1812 # side effect # side effect
1813 1813 if bid > highest_bid: if bid > highest_bid:
 
... ... class DiceSimpleX:
1819 1819 candidates = bx.candidates_index[i] candidates = bx.candidates_index[i]
1820 1820
1821 1821 #š a eště ráz #š a eště ráz
1822 bids = getattr(candidates, bx.potencial)
1822 bids = getattr(candidates, bx.potential)
1823 1823 bid = np.max(bids) bid = np.max(bids)
1824 1824 if bid > highest_bid: if bid > highest_bid:
1825 1825 highest_bid = bid highest_bid = bid
 
... ... class DiceSimpleX:
1893 1893 Objective function for optimalization Objective function for optimalization
1894 1894 """ """
1895 1895
1896 if (bx.tri_space == bx.tree_space) and (bx.potencial == 'psee'):
1896 if (bx.tri_space == bx.tree_space) and (bx.potential == 'psee'):
1897 1897 x_tree = x x_tree = x
1898 1898 pdf = float(bx.f_model.sample_pdf(x, bx.tree_space)) pdf = float(bx.f_model.sample_pdf(x, bx.tree_space))
1899 1899 else:#č máme smulu else:#č máme smulu
 
... ... class DiceSimpleX:
1908 1908 # teď máme hustoty kandidatů a prislušejicích jím vzorků # teď máme hustoty kandidatů a prislušejicích jím vzorků
1909 1909 PDF = PDFs[ii] PDF = PDFs[ii]
1910 1910
1911 if bx.potencial == 'psee':
1911 if bx.potential == 'psee':
1912 1912 #оӵ кучапи #оӵ кучапи
1913 1913 #č pejskovej potenciál #č pejskovej potenciál
1914 1914 #č psí-kučapí není invariántní vůči lineárním transformácím #č psí-kučapí není invariántní vůči lineárním transformácím
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