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.Chrt: add design support 7426717fe5b3bbf299e44a92b2aca2672b752042 Alex 2021-01-15 09:30:28
design_proof_of_concept a1c9fc6ce6739e745382bdc1bfc6183a8c2a2f16 Alex 2021-01-14 22:58:01
estimation: rework simplex estimations, add cubature and design support 01dc64d5fa9afeda8326b90a71af71ede46fd8f8 Alex 2021-01-14 21:41:12
simplex.Triangulation: WIP 44bdae7876aac717f3d34c4bc6c818fc4ec65169 Alex 2021-01-13 10:43:59
simplex.Triangulation: WIP 47fe5e817878bc6bfd43db208d256a60ee573f9c Alex 2021-01-12 15:41:32
simplex.Triangulation: WIP 57f90b4ae9608d3f2fb5bc081934fa17523998f5 Alex 2021-01-10 11:12:30
simplex.get_failure_ratio() added 65e2940cfa549236cfb09a0e7cadb576a471070f Alex 2021-01-09 09:40:12
simplex.Shull: design support added fe2c0c6b23b32ce99aaa0f824424b32694978615 Alex 2021-01-07 14:22:58
IS_stat: add IS_norm() method 6d1d11c4591143a26c92551ec3f722ea642711ae Alex 2021-01-07 05:33:21
misc: add comment 3d735585d49ac9d5f831b860cf95d3f41fd0d93e I am 2021-01-04 10:29:24
stm_df added (as is for now) 55402101bfabf4b9fe7d70fbd8f1469aea401bc7 Alex 2020-12-26 01:26:17
qt_plot.Isocurves: Isocurves-isolevels reworked 330b3387cfe46f75be6bf70f41c3f289303bdba2 I am 2020-12-23 02:36:39
qt_plot.Isocurves: infs issue fix 276a727723579be523e43b9748b7d36f6d151b0d I am 2020-12-18 00:14:14
qt_plot.Isocurves: extendEdge fix (there was an issue in P and U) 6a836879cc5d280862f4534dc824be86d34bfb4c I am 2020-12-17 23:49:44
qt_plot.Isocurves: bias fix 7c13581235e8e1bac726381b22db46057d1ac188 I am 2020-12-17 14:42:39
qt_plot: Isocurves nan check added + simplex error graph committed (as is) 3b2882661f7af4bb51e518bcd3a37dba6c67f7b2 I am 2020-12-17 03:55:44
f_models.Nataf: little clean up d2b0bba458847b7ef42cf68174311847d438bc84 I am 2020-12-17 03:19:35
qt_plot.Isocurves: dal jsem ty isočáry do pořádku b7ef4ed093c25f84e581000878d9f2d1b8d686c5 I am 2020-12-17 02:16:18
qt_plot: Isocurves added (with issues) b35517b3372f77a6efbeb1a10d6b0e994c7d0082 Alex 2020-12-16 10:13:07
f_models: .alpha init fix 5b5a518be135627bc70354be287f0a36c84cb088 Alex 2020-12-15 20:55:43
Commit 7426717fe5b3bbf299e44a92b2aca2672b752042 - dicebox.Chrt: add design support
Author: Alex
Author date (UTC): 2021-01-15 09:30
Committer name: Alex
Committer date (UTC): 2021-01-15 09:30
Parent(s): a1c9fc6ce6739e745382bdc1bfc6183a8c2a2f16
Signer:
Signing key:
Signing status: N
Tree: d4b45f8f5f57828c78c27719e077a7c1966db697
File Lines added Lines deleted
dicebox.py 20 8
File dicebox.py changed (mode: 100644) (index 36d7255..5d2342f)
... ... class Chrt(DiceBox):
249 249 #ё без поллитры было не разобраться, что этот слоёный пирог делал #ё без поллитры было не разобраться, что этот слоёный пирог делал
250 250 def __init__(bx, sample_object, tri_space='Rn', tree_space=None,\ def __init__(bx, sample_object, tri_space='Rn', tree_space=None,\
251 251 sampling_space=None, kechato_space='U', potencial='psee',\ sampling_space=None, kechato_space='U', potencial='psee',\
252 p_norm=2, budget=1000, simplex_budget=100, LHS_correction=False):
252 p_norm=2, budget=1000, simplex_budget=100, \
253 LHS_correction=False, design=None):
253 254
254 255
255 256 bx.tri_space = tri_space bx.tri_space = tri_space
 
... ... class Chrt(DiceBox):
270 271 bx.p_norm = p_norm bx.p_norm = p_norm
271 272 bx.potencial = potencial bx.potencial = potencial
272 273 bx.LHS_correction = LHS_correction bx.LHS_correction = LHS_correction
274 bx.design = design
273 275
274 276 # for current candidates # for current candidates
275 277 # kandidaty musí být 'judged' a 'assessed' # kandidaty musí být 'judged' a 'assessed'
 
... ... class Chrt(DiceBox):
290 292 'tri_space':bx.tri_space, 'tree_space':bx.tree_space,\ 'tri_space':bx.tri_space, 'tree_space':bx.tree_space,\
291 293 'sampling_space':bx.sampling_space, 'kechato_space':bx.kechato_space,\ 'sampling_space':bx.sampling_space, 'kechato_space':bx.kechato_space,\
292 294 'potencial':bx.potencial, 'p_norm':bx.p_norm, 'budget':bx.budget,\ 'potencial':bx.potencial, 'p_norm':bx.p_norm, 'budget':bx.budget,\
293 'simplex_budget':bx.simplex_budget, 'LHS_correction':bx.LHS_correction}
295 'simplex_budget':bx.simplex_budget, \
296 'LHS_correction':bx.LHS_correction, 'design':str(bx.design)}
294 297
295 298
296 299 def __repr__(bx): def __repr__(bx):
 
... ... class Chrt(DiceBox):
342 345 def _regen_outside(bx): def _regen_outside(bx):
343 346 if bx.nsim >= bx.nvar + 1: if bx.nsim >= bx.nvar + 1:
344 347 try: try:
345 bx.shull = sx.Shull(bx.f_model, bx.tri_space, bx.sampling_space, powerset_correction=True)
348 bx.shull = sx.Shull(bx.f_model, bx.tri_space, bx.sampling_space,\
349 powerset_correction=True, design=bx.design)
346 350 bx.siss = bx.shull.oiss bx.siss = bx.shull.oiss
347 351 bx.convex_hull = bx.shull.convex_hull # for gl_plot bx.convex_hull = bx.shull.convex_hull # for gl_plot
348 352 bx.estimate_outside() bx.estimate_outside()
 
... ... class Chrt(DiceBox):
359 363 # nothing happened? We are still here? # nothing happened? We are still here?
360 364 # we need to generate at least something # we need to generate at least something
361 365 if bx.nsim > 0: #č požaduji, aby nějaké těčíčky byly vždy pritomné if bx.nsim > 0: #č požaduji, aby nějaké těčíčky byly vždy pritomné
366 if bx.design is None:
367 nodes = bx.f_model(bx.budget)
368 else:
369 nodes = bx.f_model.new_sample(bx.design(bx.budget, bx.nvar), 'U')
362 370 #č současný CandyBox odmítne vytvořit neprazdný object bez atributů #č současný CandyBox odmítne vytvořit neprazdný object bez atributů
363 candidates = CandyBox(bx.f_model(bx.budget), event_id=np.full(bx.budget, -1, dtype=np.int8))
371 candidates = CandyBox(nodes, event_id=np.full(bx.budget, -1, dtype=np.int8))
364 372 bx.assess_candidates(candidates) bx.assess_candidates(candidates)
365 373 #č uložíme #č uložíme
366 374 bx.candidates_index[-1] = candidates bx.candidates_index[-1] = candidates
 
... ... class Chrt(DiceBox):
374 382 try: try:
375 383
376 384 #č tri - Deloneho triangulace #č tri - Deloneho triangulace
377 bx.tri = spatial.Delaunay(getattr(bx.sampled_plan, bx.tri_space), incremental=True)
385 tri_plan = getattr(bx.sampled_plan, bx.tri_space)
386 bx.tri = spatial.Delaunay(tri_plan, incremental=True)
378 387 if len(bx.tri.coplanar): if len(bx.tri.coplanar):
379 388 #print('triangulace v pořádku není') #print('triangulace v pořádku není')
380 389 bx._logger(msg='triangulation is coplanar') bx._logger(msg='triangulation is coplanar')
 
... ... class Chrt(DiceBox):
390 399 # zde jen počítame # zde jen počítame
391 400 bx.estimate_simplex(simplex) bx.estimate_simplex(simplex)
392 401 except BaseException as e: except BaseException as e:
393 #č chcu zachytit spadnuti QHull na začatku, kdy ještě není dostatek teček.
402 #č chcu zachytit spadnuti QHull na začatku,
403 #č kdy ještě není dostatek teček.
394 404 #č Jinak je třeba nechat QHull spadnout #č Jinak je třeba nechat QHull spadnout
395 405 if bx.nsim > 2*bx.nvar + 3: if bx.nsim > 2*bx.nvar + 3:
396 406 #č no to teda ne! #č no to teda ne!
 
... ... class Chrt(DiceBox):
770 780 vertices = bx.f_model[indices] vertices = bx.f_model[indices]
771 781 print("estimate", indices) print("estimate", indices)
772 782 h_plan, convex_hull, simplex_measure = sx.sample_simplex(vertices,\ h_plan, convex_hull, simplex_measure = sx.sample_simplex(vertices,\
773 model_space=bx.tri_space, sampling_space=bx.sampling_space, nis=bx.simplex_budget)
783 model_space=bx.tri_space, design=bx.design,\
784 sampling_space=bx.sampling_space, nis=bx.simplex_budget)
774 785
775 786
776 787 fm = simplex_measure * fr fm = simplex_measure * fr
 
... ... class Chrt(DiceBox):
784 795
785 796 candidates = h_plan[mask] candidates = h_plan[mask]
786 797 #bx._former_candidates_recovering(candidates, convex_hull, bx.unjudged_candidates) #bx._former_candidates_recovering(candidates, convex_hull, bx.unjudged_candidates)
787 bx._former_candidates_recovering(candidates, convex_hull, bx.former_candidates)
798 bx._former_candidates_recovering(candidates, convex_hull, \
799 bx.former_candidates)
788 800
789 801 candidates.event_id = np.full(len(candidates), event_id, dtype=np.int8) candidates.event_id = np.full(len(candidates), event_id, dtype=np.int8)
790 802 #candidates.simplex = np.full((len(candidates), bx.nvar+1), indices) #candidates.simplex = np.full((len(candidates), bx.nvar+1), indices)
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