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)
f_models.Nataf: prevent from nans in pdfs a4119069f7fdaf11b794f0623daff3dba8997b82 Alex 2020-12-15 08:03:00
f_model.Nataf: fixes 53912fc25e9d048f1ee32039dce32f0b011e470f Alex 2020-12-15 06:55:47
f_models.Nataf: fixes 1bc1d5128d60016be0f29e7c18a818c5a5a243af Alex 2020-12-15 03:56:15
f_models: Nataf model added 914dc13921a65c4bd197c106e57f430b8adca66d Alex 2020-12-15 03:20:47
Juniorstav related commit 31fc92d38d41b7256ba000114237421201af12b9 Aleksei Gerasimov 2020-11-27 21:57:44
gl_plot: allow grid in any space 4c66ae078ad1360198738d0c5ea034d56ee1f6d6 Aleksei Gerasimov 2020-11-14 13:50:09
qt_plot.SimpleSimplexEstimationGraph: zero pf_exact crashfix 7c1e8b475fea406e1bae16f7a5927fc4633bebda Aleksei Gerasimov 2020-11-14 13:35:36
qt_plot.SimpleSimplexEstimationGraph: show labels option added to contex menu d47279afa1e8557f565de75fc6d96fbad60f9e85 Aleksei Gerasimov 2020-11-14 11:49:30
qt_plot.SimpleSimplexEstimationGraph: LogPlot filling fix 560fb62533c39e2d1f91070cad0d0d8b11d815b1 Aleksei Gerasimov 2020-11-14 10:44:20
qt_plot: little improvements 9ea46d85fc2490c7fcdd29c5418c2068d4887575 I am 2020-11-06 04:35:07
dicebox.Chrt: nan issues fix 4fc930a186bc7df6e24d13804c51bb6ccc4b01f1 I am 2020-11-06 04:34:20
qt_plot.SimpleSimplexEstimationGraph: Log plot fix 9197230fb1d133ea371485f7a21c8a9aff1a2591 I am 2020-11-05 07:50:05
qt_plot.SimpleSimplexEstimationGraph: proxy support is ready 58e1c80eb227cc174aac2e8ecae7e741ce951060 I am 2020-11-05 04:47:24
qt_plot.SimpleSimplexEstimationGraph: export to excel is enabled 8590bf8910466f3fa4cac3d013add2688151e96c I am 2020-11-05 01:34:38
qt_plot.SimpleSimplexEstimationGraph: WIP, aspoň teď něco kreslí... a5ea95acfd15369943cd8bc132281322ccf7c1f1 I am 2020-11-05 00:16:19
qt_plot.SimpleSimplexEstimationGraph: WIP f31cd7aad0e351ef7dafcf9d1326d3221c8a9833 I am 2020-11-04 05:37:16
qt_plot.SimpleSimplexEstimationGraph: no more that unbearable colors! 4f4211e8d0c242f5aa06bbab42d8b360078cee38 I am 2020-11-04 04:29:34
qt_plot: add progress dialog ba5f738745100fbbb4b657910fed610e61039ee0 I am 2020-11-04 03:34:21
qt_plot:TriEstimationGraph: WIP 58d98e0775b55bda449c4c7b7e7eac1a2f573097 I am 2020-11-04 02:32:37
plot: messages fix 336481a61c2d8ac302437b65f641c7d39767c7ea I am 2020-11-04 02:32:08
Commit a4119069f7fdaf11b794f0623daff3dba8997b82 - f_models.Nataf: prevent from nans in pdfs
Author: Alex
Author date (UTC): 2020-12-15 08:03
Committer name: Alex
Committer date (UTC): 2020-12-15 08:03
Parent(s): 53912fc25e9d048f1ee32039dce32f0b011e470f
Signer:
Signing key:
Signing status: N
Tree: dc630f8174d7f03ffd415f0d43f38fffe00806e6
File Lines added Lines deleted
f_models.py 6 6
File f_models.py changed (mode: 100644) (index 31b9237..8bb687b)
... ... class Nataf: # quick'n dirty
896 896 def _get_pdf_U(f, slice=None): def _get_pdf_U(f, slice=None):
897 897 U = f.U[slice] U = f.U[slice]
898 898 pdf_U = np.where(np.all((U >= 0) & (U <= 1), axis=1), 1, 0) pdf_U = np.where(np.all((U >= 0) & (U <= 1), axis=1), 1, 0)
899 return pdf_U
899 return np.nan_to_num(pdf_U, copy=False)
900 900
901 901
902 902 def _get_pdf_G(f, slice=None): def _get_pdf_G(f, slice=None):
903 903 G = f.G[slice] G = f.G[slice]
904 904 pdf_G = np.prod(stats.norm.pdf(G), axis=1) pdf_G = np.prod(stats.norm.pdf(G), axis=1)
905 return pdf_G
905 return np.nan_to_num(pdf_G, copy=False)
906 906
907 907 def _get_pdf_GK(f, slice=None): def _get_pdf_GK(f, slice=None):
908 908 GK = f.GK[slice] GK = f.GK[slice]
909 909 right_part = np.exp(-0.5 * np.sum((GK @ f._inv_cor)*GK, axis=1)) right_part = np.exp(-0.5 * np.sum((GK @ f._inv_cor)*GK, axis=1))
910 910 pdf_GK = f._pdf_left_part * right_part pdf_GK = f._pdf_left_part * right_part
911 return pdf_GK
911 return np.nan_to_num(pdf_GK, copy=False)
912 912
913 913 def _get_pdf_P(f, slice=None): def _get_pdf_P(f, slice=None):
914 914 P = f.P[slice] P = f.P[slice]
 
... ... class Nataf: # quick'n dirty
917 917 pdf_GK_indep = np.prod(stats.norm.pdf(GK), axis=1) pdf_GK_indep = np.prod(stats.norm.pdf(GK), axis=1)
918 918 pdf_P = pdf_GK/pdf_GK_indep pdf_P = pdf_GK/pdf_GK_indep
919 919 pdf_P = np.where(np.all((P >= 0) & (P <= 1), axis=1), pdf_P, 0) pdf_P = np.where(np.all((P >= 0) & (P <= 1), axis=1), pdf_P, 0)
920 return pdf_P
920 return np.nan_to_num(pdf_P, copy=False)
921 921
922 922 def _get_pdf_R(f, slice=None): def _get_pdf_R(f, slice=None):
923 923 pdf_P = f.pdf_P[slice] pdf_P = f.pdf_P[slice]
 
... ... class Nataf: # quick'n dirty
925 925 pdfs_R = [f.marginals[i].pdf(R[:, i]) for i in range(f.nvar)] pdfs_R = [f.marginals[i].pdf(R[:, i]) for i in range(f.nvar)]
926 926 # je tu fakt axis=0. Dochazí totíž v iterátoru k převracení # je tu fakt axis=0. Dochazí totíž v iterátoru k převracení
927 927 pdf_R = np.prod(pdfs_R, axis=0) * pdf_P pdf_R = np.prod(pdfs_R, axis=0) * pdf_P
928 return pdf_R
928 return np.nan_to_num(pdf_R, copy=False)
929 929
930 930 def _get_pdf_Rn(f, slice=None): def _get_pdf_Rn(f, slice=None):
931 931 pdf_R = f.pdf_R[slice] pdf_R = f.pdf_R[slice]
932 932 pdf_Rn = pdf_R * f._pdf_Rn_coef pdf_Rn = pdf_R * f._pdf_Rn_coef
933 return pdf_Rn
933 return np.nan_to_num(pdf_Rn, copy=False)
934 934
935 935
936 936 def pdf(f, space='R'): def pdf(f, space='R'):
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