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)
mplot: add quiver plots a32b3d850fef99d6798b778140867416e17c16db I am 2023-03-30 13:21:30
mplot.mart: add simplex_vectors() function 7a90003e40bd459d2a3ef45a4867dfa392bd3fc8 I am 2023-03-30 13:20:10
simplex: use shares instead of probabilities in sinsitivity analysis 75ff4258b95fd568d1b4d163cdc04d40952e0029 I am 2023-03-16 18:46:44
whitebox.get_sensitivities: mask nans and infinities 1a754c51b3a1ef535e86b5b4cb6b75fe9e90840f I am 2023-03-14 22:33:52
simplex.SeparationAxis: fix previous commit 61abd70e69d2fecd74535738c96e74a634af0ad1 I am 2023-03-12 16:49:22
simplex.SeparationAxis: print linprog solution in case of an unexpected status af1aaac1dce3fbc51dc48418685d948a27cf72c6 I am 2023-03-12 15:18:07
g_models: add hyperbola LSF 5f6df35b4280a11c0df1d3cd110250305805ce66 I am 2023-03-12 15:07:20
simplex._Sense: implement piece of postprocessing to get unique vectors 4088852e703947643a8388b2ba8839a694211566 I am 2023-03-10 17:22:29
simplex.SeparationAxis: in case of an unexpected linprog status print result message too 1c9346233693533afb07022c78308b3be6ea9ec7 I am 2023-03-10 15:40:06
whitebox: implement method to .get_sensitivities() from 2D boundary 5729723cfe5c93658c3739fbfec384e135b44073 I am 2023-03-09 22:14:27
simplex.SeparationAxis: make an perfectionism-driven change 8278c48915c326e7731f1934732550c5b9c18e64 I am 2023-03-09 21:51:18
simplex.SeparationAxis: little fix for an hypotetical issue 838e476387c31f9c6847cf7ae8a2a01514038a03 I am 2023-03-09 15:19:48
simplex._Sense: bugfix 3ae53e8b178107b8beb6ad960ec683c8d38a3b3c I am 2023-03-07 23:23:36
simplex._Sense: totally rework, finalized vectors are introduced 829ba58a93481541a58cd4a9f6dae0ba9fb611c6 I am 2023-03-07 13:33:38
simplex: preliminary commit of an _Sense's auxiliary class - brand new SeparationAxis c0bbb714400df48abf7a398e018c5626803bf024 I am 2023-03-04 10:17:12
simplex._Sense: one more optimization a51f4ba65ad4a55ecc74fd82a6e011a4eeed8a5d I am 2023-02-26 15:21:23
qt_gui.qt_plot: implement sensitivity-related Arrows class b5365ae3ca3ab0ed8018e60d4e8711c5c30e4d96 I am 2023-02-26 14:31:10
simplex._Sense: rename "sensibility" to sensitivity a9d56d5386730263eb27e6e31f07b99bab0620fb I am 2023-02-26 14:29:54
g_models: add quadratic 013b4ddc108b94061eaebc1a10d18427f10a34d4 I am 2023-02-24 08:04:12
simplex._Sense: one more performance trick 59b423cca53b9975da67d876110927f233506de8 I am 2023-02-24 08:03:23
Commit a32b3d850fef99d6798b778140867416e17c16db - mplot: add quiver plots
Author: I am
Author date (UTC): 2023-03-30 13:21
Committer name: I am
Committer date (UTC): 2023-03-30 13:21
Parent(s): 7a90003e40bd459d2a3ef45a4867dfa392bd3fc8
Signer:
Signing key:
Signing status: N
Tree: 3c7ef6db8a6a4d9460e5695d0d61109b09092ddc
File Lines added Lines deleted
wellmet/mplot/maxes.py 42 1
wellmet/mplot/mfigs.py 23 3
File wellmet/mplot/maxes.py changed (mode: 100644) (index 2f2a0ed..6bc245a)
... ... from matplotlib import lines as mlines
24 24
25 25 # it is mostly for qt_plot, it offers availiable options to user # it is mostly for qt_plot, it offers availiable options to user
26 26 __all__ = [ __all__ = [
27 'tri_vector_plot',
27 28 'GRaph', 'GRaph',
28 29 'rbf_plot', 'rbf_density_plot', 'rbf_diagram', 'rbf_plot', 'rbf_density_plot', 'rbf_diagram',
29 30 'candidates_plot', 'rejection_sampling_plot', 'candidates_plot', 'rejection_sampling_plot',
 
... ... __all__ = [
42 43 'completehull_plot' 'completehull_plot'
43 44 ] ]
44 45
46 #č ten [plot] zásadně vytvaří své struktury, nepouzívá oné ze skříňky,
47 #č protože já vím, že v těch obrázcích, ve kterých chcu ho použit,
48 #č můde být třeba použit řez a skříňka tedy potřebné struktury může nemít
49 def tri_vector_plot(ax, tri_space=None, linewidths=[0.7, 0.5, 0.4, 0.3, 0.2, 0.1],
50 ms=3, mew=0.6, lw=0.7, data_offset=1, nrid=200):
51 from .. import simplex as six
52 if tri_space is None:
53 tri_space = ax.space
54
55 import quadpy
56 tn_scheme = quadpy.tn.stroud_tn_3_6b(2)
57
58 Tri = six.GaussCubatureIntegration(ax.sample_box, tn_scheme, incremental=False)
59 Tri.get_pf_estimation()
60 ax.sample_box.Tri = Tri
61 mart.setup(ax)
62 if tri_space == ax.space:
63 #mart.triplot(ax, color="#B2B2B2", lw=lw/1.4, zorder=100)
64 s = (1, 1, 1, 0) #'xkcd:light seafoam green' #a7ffb5
65 f = '#fdc1c500' #(253/255, 193/255, 197/255, 1) # '#fdc1c5' #'xkcd: pale rose' # (#fdc1c5)
66 m = '#FFF39A00'#(255/255, 243/255, 154/255, 1)#'#FFF39A' #'xkcd: dark cream' # (255, 243, 154, 255)
67 sfm_colors = [s, f, m]
68 mart.tripcolor(ax, sfm_colors=sfm_colors, color="#B2B2B200",
69 linewidth=lw/1.4/2, zorder=100)
70 else:
71 mart.tri_plot(ax, Tri=Tri, color="#B2B2B2", lw=lw/1.4, zorder=100, rasterized=True)
72
73 mart.simplex_vectors(ax, color='grey', zorder=10500)#, scale_units='height', scale=0.0025) #width=0.003,
74
75 mart.plot_points(ax, ms=ms, mew=mew, zorder=100500)
76 #č curly a boundaries raději nakreslíme co nejpozději
77 mart.curly(ax, nrid=nrid, linewidths=linewidths)
78 try:
79 mart.plot_boundaries(ax, lw=lw, zorder=1050, nrod=nrid)
80 except:
81 pass
82 min_coord = np.abs(np.min(getattr(ax.sample_box, ax.space)))
83 mart.setup_labels(ax, data_offset=data_offset * min_coord)
84
85
45 86
46 87 def GRaph(ax, df=None, ls='', **kwargs): def GRaph(ax, df=None, ls='', **kwargs):
47 88 from .. import sball from .. import sball
 
... ... def convergence_legend(ax):
324 365
325 366 proxy_handles.append(mlines.Line2D([], [], color='b', label=r'$p_{\pazocal{F}}$')) proxy_handles.append(mlines.Line2D([], [], color='b', label=r'$p_{\pazocal{F}}$'))
326 367 #proxy_handles.append(mlines.Line2D([], [], color='m', label=r"$p_{\mathrm{f,v}}^{\left(N_{\mathrm{sim}}\right)}$")) #proxy_handles.append(mlines.Line2D([], [], color='m', label=r"$p_{\mathrm{f,v}}^{\left(N_{\mathrm{sim}}\right)}$"))
327 proxy_handles.append(mlines.Line2D([], [], color='r', label=r"$p_{\mathrm{f}}^{\left(N_{\mathrm{sim}}\right)}$"))
368 proxy_handles.append(mlines.Line2D([], [], color='r', label=r"$p_{\mathrm{f,v}}^{\left(N_{\mathrm{sim}}\right)}$"))
328 369 proxy_handles.append(mlines.Line2D([], [], color='#AAAAAA', \ proxy_handles.append(mlines.Line2D([], [], color='#AAAAAA', \
329 370 label=r"$p_{\pazocal{O}}^{\left(N_{\mathrm{sim}}\right)}$")) label=r"$p_{\pazocal{O}}^{\left(N_{\mathrm{sim}}\right)}$"))
330 371
File wellmet/mplot/mfigs.py changed (mode: 100644) (index e84d507..d6a20c5)
... ... from matplotlib import ticker
16 16 __all__ = [ __all__ = [
17 17 'convergence_diagram', 'convergence_legend', 'double_proxy_diagram', 'convergence_diagram', 'convergence_legend', 'double_proxy_diagram',
18 18 'four_branch_convergence', 'beta_diagram', 'double_diagram', 'suspension_3d', 'four_branch_convergence', 'beta_diagram', 'double_diagram', 'suspension_3d',
19 'double_tri_R_plot', 'double_tri_R_twins_plot', 'double_plot', 'G_U_distortion',
19 'double_tri_R_plot', 'double_tri_R_twins_plot', 'double_100_plot', 'G_U_distortion',
20 20 'double_pprod_R_plot', 'double_mprod_R_plot', 'double_pprod_R_plot', 'double_mprod_R_plot',
21 'triple_vector_plot',
21 22 'triple_plot', 'triple_wide', 'triple_wide_50_100', 'triple_plot_50_100', 'triple_plot', 'triple_wide', 'triple_wide_50_100', 'triple_plot_50_100',
22 23 'triple_nodes_plot', 'triple_wide_25_50', 'triple_nodes_plot', 'triple_wide_25_50',
23 24 'triple_plot_35_50', 'convex_plot_7', 'quadruple_plot', 'triple_plot_35_50', 'convex_plot_7', 'quadruple_plot',
 
... ... def G_U_distortion(fig, sample_box, space):
314 315
315 316
316 317
317 def double_plot(fig, sample_box, space, lim=100):
318 def double_100_plot(fig, sample_box, space, lim=100):
318 319 #fig.set_figwidth(19/2.54) #fig.set_figwidth(19/2.54)
319 320 ax = fig.add_subplot(122) ax = fig.add_subplot(122)
320 321 ax.sample_box = sample_box ax.sample_box = sample_box
 
... ... def triple_plot_35_50(fig, sample_box, space):
389 390 triple_plot(fig, sample_box, space, npoints=[35, 50]) triple_plot(fig, sample_box, space, npoints=[35, 50])
390 391
391 392 def triple_wide_25_50(fig, sample_box, space): def triple_wide_25_50(fig, sample_box, space):
392 triple_nodes_plot(fig, sample_box, space, npoints=[25, 50])
393 triple_vector_plot(fig, sample_box, space, npoints=[25, 50])
393 394 fig.set_figwidth(19/2.54) fig.set_figwidth(19/2.54)
394 395
395 396 def triple_nodes_plot(fig, sample_box, space, npoints=[25, 50]): def triple_nodes_plot(fig, sample_box, space, npoints=[25, 50]):
 
... ... def triple_nodes_plot(fig, sample_box, space, npoints=[25, 50]):
416 417 maxes.tri_nodes_plot(ax, tri_space=None, tn_scheme=tn_scheme) maxes.tri_nodes_plot(ax, tri_space=None, tn_scheme=tn_scheme)
417 418 ax.set_title(space_labels[space], pad=10) ax.set_title(space_labels[space], pad=10)
418 419
420 def triple_vector_plot(fig, sample_box, space, npoints=[25, 50]):
421 ax = fig.add_subplot(131)
422 ax.sample_box = sample_box[0:npoints[0]]
423 ax.space = space
424
425 maxes.tri_vector_plot(ax, tri_space=None)
426 ax.set_title(space_labels[space], pad=10)
427
428 ax = fig.add_subplot(132, sharex=ax, sharey=ax)
429 ax.sample_box = sample_box[0:npoints[1]]
430 ax.space = space
431 maxes.tri_vector_plot(ax, tri_space=None)
432 ax.set_title(space_labels[space], pad=10)
433
434 ax = fig.add_subplot(133, sharex=ax, sharey=ax)
435 ax.sample_box = sample_box
436 ax.space = space
437 maxes.tri_vector_plot(ax, tri_space=None)
438 ax.set_title(space_labels[space], pad=10)
419 439
420 440 def triple_plot(fig, sample_box, space, npoints=[100, 200]): def triple_plot(fig, sample_box, space, npoints=[100, 200]):
421 441 ax = fig.add_subplot(133) ax = fig.add_subplot(133)
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