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)
add Z_min g_model and general testcase 806fa2dfea2042cda04cff9020b891d3e033b9aa I am 2022-01-27 17:17:19
mplot.mgraph.tri_estimation_plot: draw p_mixed line navíc b59ec8cbaeb671a130edee5df206d57099ecb9bf I am 2022-01-27 16:41:53
testcases.gaussian_2D: fix four branch pf_exact f9d0f71ad6a4e6af6843c6b36688b8a002495bdc I am 2022-01-27 06:14:40
mplot: add mprod plot, polish pprod 045c5401dad6abca019da21fd42da5bfb671b909 I am 2022-01-26 04:16:00
mplot.mfigs: add quadruple plot 8ef6b85bedc31f1908ce25634bda84bdc07edef9 I am 2022-01-26 01:30:01
testcases.gaussian_2D: add final pf value to metaball case 5be29e59b1cd789da32d62caff1dcfb9c231a40e I am 2022-01-26 01:28:52
g_models: add boundary finding for metaball function 5ea3011d11572d2fa98d77819cc1ba333e6b4016 I am 2022-01-26 00:38:21
mplot: polish ad5819ced9f1be64c8d731813c575c1ec854421d I am 2022-01-25 03:39:22
testcases.gaussian_2D: add pf_exact to the black swan 38e19e42884234afc467a0ee7af9699af1f84e96 I am 2022-01-25 03:37:59
mplot.maxes: pass nrod to plot_boundaries() b87c6c58900b2b7f9a11f238eb9b7f2b054e9abf I am 2022-01-24 21:06:35
mplot: fix global settings overwrite 28a6304a895b0f2f53482ae086f0f2900adfd65e I am 2022-01-24 21:02:56
qt_gui.qt_dicebox: add dumb DiceBox widget d609cbbd928859a7c2ebf05ecdec2878d5356f9c I am 2022-01-24 18:43:53
mplot.maxes: parametrize tri plots 395bbad17802accecdc978462b0aed5a8828534b I am 2022-01-23 04:35:10
mplot.maxes: adjust triple plot marker sizes and lineweights 7e8b6eea3a27569542b5d15a2002ee1b77205672 I am 2022-01-22 21:39:02
mplot.maxes: add convergence legend 59405e29e76faf2a74d5bddd994c0252f7dfdb7d I am 2022-01-22 01:48:40
mplot.mart: keep frame in U space b6fda7b143da2c7a129ac0db12cf33e5325547d5 I am 2022-01-21 03:22:38
mplot.mfigs: add more of that points + triangulation plots, you know... 68072e812fb7ed4a39cfbf138cd216e7d4214d8a I am 2022-01-20 19:25:43
testcases.gaussian_2D: add fajvka, circle, parabola. Justify sinball 330595743710deee9924cd077302f5c45fae7f83 I am 2022-01-20 19:24:41
mplot: šťourání s diagramy 4831d87d7bfb953656ed68028bffe73597752a66 I am 2022-01-20 01:34:22
mplot: use empty markers for proxy points dd9e0c8f79977a92615ef408862298ed5ee0d000 I am 2022-01-19 22:30:37
Commit 806fa2dfea2042cda04cff9020b891d3e033b9aa - add Z_min g_model and general testcase
Author: I am
Author date (UTC): 2022-01-27 17:17
Committer name: I am
Committer date (UTC): 2022-01-27 17:17
Parent(s): b59ec8cbaeb671a130edee5df206d57099ecb9bf
Signer:
Signing key:
Signing status: N
Tree: 371380f23f74d304b71420f402be237aaf9d8061
File Lines added Lines deleted
g_models.py 24 0
testcases/gaussian_2D.py 5 0
testcases/testcases_nD.py 3 0
whitebox.py 28 0
File g_models.py changed (mode: 100644) (index 9cf6b77..b3bd1d0)
... ... class Z_min:
299 299 def get_2D_R_boundary(): return None def get_2D_R_boundary(): return None
300 300
301 301
302 class Z_max:
303 """
304 max velicin plus nějaká konstanta
305 # g= max(X1, X2, X3, X4) + c
306 """
307 def __init__(self, const):
308 self._const = const
309 self.get_2D_R_boundary = GetQuadrantBoundary2D(center_point=(-const,-const), quadrant='III')
310
311 # sign
312 def __repr__(self):
313 return 'Z_max(%s)' % repr(self._const)
314
315 def __call__(self, input_sample):
316 #č očekávam, že get_R_coordinates mně vrátí 2D pole
317 sample = get_R_coordinates(input_sample)
318 g = np.max(sample, axis=1) + self._const
319 return SampleBox(input_sample, g, repr(self))
320
321 #č samotná "volaná" se určí v __init__
322 #č trik aby se nezabindila
323 @staticmethod
324 def get_2D_R_boundary(): return None
325
302 326
303 327 class Z_sumexp: class Z_sumexp:
304 328 """ """
File testcases/gaussian_2D.py changed (mode: 100644) (index 38b146f..a635e8f)
... ... from .. import samplebox #č pro proxy_prod # pro parabolu
13 13 from ..whitebox import WhiteBox, Gaussian_Z_prod_2D from ..whitebox import WhiteBox, Gaussian_Z_prod_2D
14 14 from ..whitebox import Gaussian_ProdFourBetas_2D from ..whitebox import Gaussian_ProdFourBetas_2D
15 15 from ..whitebox import Gaussian_Z_sumexp_2D from ..whitebox import Gaussian_Z_sumexp_2D
16 from ..whitebox import Gaussian_Z_max
16 17
17 18 __all__ = [] __all__ = []
18 19
 
... ... def sumexp():
305 306 return Gaussian_Z_sumexp_2D(-0.003) return Gaussian_Z_sumexp_2D(-0.003)
306 307
307 308
309
310 add('max')
311 def max():
312 return Gaussian_Z_max(2, const=4)
File testcases/testcases_nD.py changed (mode: 100644) (index 1099397..f7f2f22)
... ... add('lognorm_mprod_pf6')
44 44 def lognorm_mprod_pf6(ndim): def lognorm_mprod_pf6(ndim):
45 45 return whitebox.Lognormal_Z_prod(ndim, beta_exact=beta_pf6, sign=-1) return whitebox.Lognormal_Z_prod(ndim, beta_exact=beta_pf6, sign=-1)
46 46
47 add('snorm_max_pf6')
48 def snorm_max_pf6(ndim):
49 return whitebox.Gaussian_Z_max(ndim=ndim, pf_exact=1e-6)
47 50
48 51 add('snorm_min_pf6') add('snorm_min_pf6')
49 52 def snorm_min_pf6(ndim): def snorm_min_pf6(ndim):
File whitebox.py changed (mode: 100644) (index 9b916e4..fcdabd8)
... ... class Weibull_Z_min(WhiteBox):
490 490 return 'Weibull_Z_min(%s, %s, pf_exact=%s)' % (repr(self.wb_scales), repr(self.shape), repr(self.pf_exact)) return 'Weibull_Z_min(%s, %s, pf_exact=%s)' % (repr(self.wb_scales), repr(self.shape), repr(self.pf_exact))
491 491
492 492
493 class Gaussian_Z_max(WhiteBox):
494 def __init__(self, ndim=2, **kwargs):
495 "je třeba zadat buď pf_exact, nebo konštantu u funkce maxima Z_max"
496
497 self.f = f_models.SNorm(ndim)
498 self.ndim = ndim
499
500
501 self.pf_exact_method = 'exact solution'
502 if 'pf_exact' in kwargs:
503 self.pf_exact = kwargs['pf_exact']
504 cdf = mpmath.root(self.pf_exact, ndim)
505 self.const = -stats.norm.ppf(float(cdf))
506 elif 'const' in kwargs:
507 self.const = kwargs['const']
508 self.pf_exact = float(mpmath.ncdf(-self.const)**ndim)
509 else:
510 raise ValueError
511 self.gm = g_models.Z_max(self.const) # min(X1, X2, XN) + const
512 # na začatku nemáme vzorky - pouze rozdělení a podpís
513 self.sample_box = SampleBox(self.f(), gm_signature=self.gm_signature)
514
515 def __str__(self):
516 return 'Gaussian_Z_max%sD'%(self.ndim)
517
518 def __repr__(self):
519 return 'Gaussian_Z_max(%s, pf_exact=%s)' % (repr(self.ndim), repr(self.pf_exact))
520
493 521
494 522 #č masturbace #č masturbace
495 523 class Gaussian_Z_sumexp_2D(WhiteBox): class Gaussian_Z_sumexp_2D(WhiteBox):
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