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: add chee and chee2 potentials 1b7e1af9932a9761652b57f2445daa7612f8f09e I am 2022-04-11 00:34:30
ghull.Ghull: fix NaN in get_r() method 654d4d32ebf8d14f88bc78dbee27567e9aa9564e I am 2022-04-10 16:06:24
estimation: nahradit zastaralou hlavičku 00b7aa07abc3072261da2cc7ba775d5228eefdf7 I am 2022-04-04 03:34:36
testcases.testcases_2D: add more nataf ceses ff4873afb1722500e3faed3c7a7f2552496b6e08 I am 2022-04-02 18:48:42
dicebox.Goal._handle_candidates: trigger cache update 80d401d5c4aaab0894d92e6df5390aff12738880 I am 2022-03-30 22:11:24
mplot.mfigs: add G_U_distortion plot 6ed034375dfd042706a91a368c9483270095e75c I am 2022-03-20 14:42:50
mplot.mart: add number_points function dab89bdb9e5190600aa394c9b65cfa24d162be0e I am 2022-03-20 14:42:23
testcases:testcases_nD: add hyperplane_pf3 87176287101b0a15a86c7999ba9626674400d225 I am 2022-03-20 14:41:26
testcases:gaussian_2D: add pf estimation for sinshilds case 889b5aebae164ea3fb1f9375ae58d1afa4687696 I am 2022-03-17 20:42:13
mplot: add rbf_density_plot() 62ce990cb9418418879d0f5e084a26043b5bfdeb I am 2022-03-04 03:00:32
misc: little changes to the rbf class 058a0401db09f4e9e68af72c987c3b879077864d I am 2022-03-03 22:53:48
mplot.maxes: rbf, one more try 8303470585507772e8170504989835f04a7828b9 I am 2022-03-02 22:13:08
mplot.maxes: add rbf_plot 3485da2191b2f64fac76813d072a6b6f6e2fba71 I am 2022-03-02 03:35:27
mplot.maxes: add rbf plot bd5055adced9e0d8887fa213baa0ff9f9e038ba4 I am 2022-03-02 02:17:18
misc: add small class for rbf surrogate model f8beecf63302ceae6d3462ed279b796b54149bdf I am 2022-03-02 02:16:01
testcases: pf_exact fix for suspension 3d case 0f3318cac398c9195e0b21a6f13edc9475156b0d I am 2022-03-02 02:14:55
g_models.CosExp2D: add pf_expression() method 3ebf3098bcff1a73a649059b1539d622d58b7439 I am 2022-02-06 19:38:37
mplot.mfigs.double_diagram(): do not share x axis. User can set up limits itself after all e74145928c028479070af2fe766d55f180828cdf I am 2022-02-06 05:02:59
testcases: add reference solution bounds to the whitebox 3358b3ff7903417f6484a875abb154d3a7c04a06 I am 2022-02-06 05:00:50
mplot: we need more rasterization! 46df5af418dcab84e8e7e7e23724a74e86575806 I am 2022-02-05 02:20:22
Commit 1b7e1af9932a9761652b57f2445daa7612f8f09e - dicebox.Goal: add chee and chee2 potentials
Author: I am
Author date (UTC): 2022-04-11 00:34
Committer name: I am
Committer date (UTC): 2022-04-11 00:34
Parent(s): 654d4d32ebf8d14f88bc78dbee27567e9aa9564e
Signer:
Signing key:
Signing status: N
Tree: a91d97a7461c1797207dc36f50d5e11a651f0797
File Lines added Lines deleted
dicebox.py 34 1
qt_gui/qt_dicebox.py 1 1
File dicebox.py changed (mode: 100644) (index 76afe27..e18d534)
... ... teďkom je to spíše jen krabička pro krámy
13 13
14 14 import numpy as np import numpy as np
15 15 from scipy import spatial from scipy import spatial
16 from scipy import stats
16 17 import pickle import pickle
17 18 from . import IS_stat from . import IS_stat
18 19 from .candybox import CandyBox from .candybox import CandyBox
 
... ... class Goal(DiceBox):
1438 1439 # bx.judge_candidates(bx.candidates) # bx.judge_candidates(bx.candidates)
1439 1440 # bx.assess_candidates(bx.candidates) # bx.assess_candidates(bx.candidates)
1440 1441
1441
1442 #ё пранк вышел из под контроля
1443 #č jako, byl to takovej vtipeček označit potenciál dvojitým e
1444 #č stala se z toho ale konvence, ne že by všal byla ničím nepodložena
1445 #č algorithmus se sestavá ze dvou částí:
1446 #č tri - triangulace,
1447 #č tree - stromovej cKDTree scipy algorithmus, který hledá nejblížší body
1448 #č (nechám bokem otázku, že ten asi hned na začátku nepřepiná do banalního brute force)
1449 #č Každopadně, davá smysl, že psee, chee atd. potenciály spadají do tree části.
1442 1450 def assess_candidates(bx, candidates): def assess_candidates(bx, candidates):
1443 1451 #č nikdo to nepouživá, ale se mi nějaký takový parameter libí. #č nikdo to nepouživá, ale se mi nějaký takový parameter libí.
1444 1452 candidates.nsim_stamp = np.full(len(candidates), bx.nsim) candidates.nsim_stamp = np.full(len(candidates), bx.nsim)
 
... ... class Goal(DiceBox):
1502 1510 volume = np.power(dd, bx.nvar) volume = np.power(dd, bx.nvar)
1503 1511 candidates.psee = np.sqrt(pdf*PDF) * volume candidates.psee = np.sqrt(pdf*PDF) * volume
1504 1512 candidates.q_psee = pdf**bx.q * PDF**(1-bx.q) * volume candidates.q_psee = pdf**bx.q * PDF**(1-bx.q) * volume
1513
1514
1515 elif bx.potential in ('chee', 'chee2'):
1516 PDFs = bx.sample_box.pdf(bx.tree_space)
1517 # teď máme hustoty kandidatů a prislušejicích jím vzorků
1518 PDF = PDFs[ii]
1519 candidates.PDF = PDF
1520 pdf = candidates.pdf(bx.tree_space)
1521 candidates.Pdf = pdf #č pdf() je funkce f_modelu
1522
1523
1524 tree_Pdf_gmean = np.sqrt(pdf*PDF)
1525 volume = np.power(dd, bx.nvar)
1526 candidates.psee = tree_Pdf_gmean * volume
1527
1528 sum_squares = np.sqrt(np.sum(np.square(candidates.G), axis=1))
1529 chi2 = stats.chi2.pdf(sum_squares, bx.nvar)
1530 candidates.chi2 = chi2
1531 candidates.chee2 = np.sqrt(chi2*PDF) * volume
1532
1533 r = np.sqrt(sum_squares)
1534 candidates.r = r
1535 chi = stats.chi.pdf(r, bx.nvar)
1536 candidates.chi = chi
1537 candidates.chee = np.sqrt(chi*PDF) * volume
1505 1538
1506 1539
1507 1540
File qt_gui/qt_dicebox.py changed (mode: 100644) (index f9f925f..9639b40)
... ... class GoalWidget(pg.parametertree.ParameterTree):
45 45 'tip': "Only used with ksee potential"}) 'tip': "Only used with ksee potential"})
46 46 params.append({'name': 'potential', 'type': 'list', 'value': 'q_psee', \ params.append({'name': 'potential', 'type': 'list', 'value': 'q_psee', \
47 47 'title': "potential", \ 'title': "potential", \
48 'values': ['q_psee', 'psee', 'fee', 'fee2', 'ksee', 'dd']})
48 'values': ['q_psee', 'psee', 'fee', 'fee2', 'ksee', 'chee', 'chee2', 'dd']})
49 49 q = np.log(self.box.nvar) / self.box.nvar**2 q = np.log(self.box.nvar) / self.box.nvar**2
50 50 params.append({'name': 'q', 'type': 'float', \ params.append({'name': 'q', 'type': 'float', \
51 51 'title': "q", \ 'title': "q", \
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