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)
qt_gui: prepare setup Goal setup dialog e53197a0b5d5a994dddbcbfb02042c5383f79ec7 Aleksei Gerasimov 2021-10-29 16:47:09
schemes: add conventional functions for tn schemes 9a32048dc342604291f1b7d17efc71be755d3810 Aleksei Gerasimov 2021-10-29 16:45:24
reader: make Reader callable 5cdd55d11ff846f9116fb0e00f54a7830ef3c276 Aleksei Gerasimov 2021-10-27 16:30:05
make WellMet standalone runnable 1fe983d633d7194a64cf6928044082936790ce4d Aleksei Gerasimov 2021-10-27 16:21:51
qt_gui: prepare qt_box_functions module c500fcd20e7b296262a0566d04aabb7bd1ae9cfa Aleksei Gerasimov 2021-10-25 15:39:56
shapeshare: keep empty file to reserve the name b11f17e13dafc3d58db5ad9f101c0126e0bfd871 Aleksei Gerasimov 2021-10-21 14:48:03
delete sball_old :( 792d9d83fde0f38e7396162788ec8aa922b0fd0c Aleksei Gerasimov 2021-10-21 14:47:06
whitebox: add Z_sum, Z_prod, small clean up faec934bb03c20906c9091fc196cc0daf824b54f Aleksei Gerasimov 2021-10-21 13:48:07
g_models: add neverfall, add sign parameter to Z_prod 129abf19da15a5dfcb5a02614d92a233f914d146 Aleksei Gerasimov 2021-10-21 13:45:47
mplot: add one more qhull plot 32e7003aac4887bd83bfff640093f755b4f6cffe I am 2021-09-14 11:42:56
mplot: add ESREL-related figures cba805ba8e7f3c2337027eec6e760aa9234dfdc2 I am 2021-09-12 10:17:21
mplot.mart: allow set up fill keyword cf94410513091b5f96e0e17e8de2f7a3feee1a03 I am 2021-09-12 10:15:55
mplot: add qhull&density figure a36fb606e9f425742925aa4953c0ae07d6b51409 I am 2021-09-10 15:17:58
qt_plot: send sliced sample box to matplotlib fda486b90c56e77bc88b38d0d94d08a751277cfb I am 2021-09-10 15:01:55
mplot: include Axes3d patch 8f5dc7f04b6c804b5ec169ec7b744a8618b3bb69 I am 2021-09-10 11:05:20
rework mplot module considerably 5343602c63032f6f7fd06701b0883eaabb4fc6c1 I am 2021-09-09 13:24:45
convex_hull: reduce max R to that not overflows everything everytime 2108df698e4d45bfae9d9882d4b4cc62340b03cc Aleksei Gerasimov 2021-07-21 13:56:41
sball: make Sball a little bit more scipy.stats-compatible 9414aceedf826e7fc6e35c722b2eecee81dead1e Aleksei Gerasimov 2021-07-21 13:40:28
convex_hull: fire() function has been reworked. shot() function is introduced 4e6b7546f163a9a32fdb4bf5790f416300b2c1ec Aleksei Gerasimov 2021-07-21 13:11:52
ghull: 1DS integration scheme has been implemented. convex_hull has been divided into convex_hull itself and separated ghull module. 29b21b4fc1396384bf8c9bb21b91f82005850574 Aleksei Gerasimov 2021-07-20 13:26:47
Commit e53197a0b5d5a994dddbcbfb02042c5383f79ec7 - qt_gui: prepare setup Goal setup dialog
Author: Aleksei Gerasimov
Author date (UTC): 2021-10-29 16:47
Committer name: Aleksei Gerasimov
Committer date (UTC): 2021-10-29 16:47
Parent(s): 9a32048dc342604291f1b7d17efc71be755d3810
Signer:
Signing key:
Signing status: N
Tree: 0097a8c7323fc9f037b490627f0eaf445815851b
File Lines added Lines deleted
qt_gui/qt_box_functions.py 1 1
qt_gui/qt_dicebox.py 130 0
File qt_gui/qt_box_functions.py changed (mode: 100644) (index 3e9aa36..b79ed6c)
... ... def read_box(wt):
24 24 filename, __filter = pg.FileDialog.getSaveFileName( filename, __filter = pg.FileDialog.getSaveFileName(
25 25 parent=None, parent=None,
26 26 caption="open/store", caption="open/store",
27 directory="store",
27 directory="store/%s_%sD.csv" % (wt.gm_signature, wt.nvar),
28 28 #filter=csv_filter, #filter=csv_filter,
29 29 filter=csv_filter + ";;All files(*)", filter=csv_filter + ";;All files(*)",
30 30 initialFilter=csv_filter, initialFilter=csv_filter,
File qt_gui/qt_dicebox.py added (mode: 100644) (index 0000000..af6121d)
1 import sys
2 import numpy as np
3 from ..dicebox import Goal
4 import pyqtgraph as pg
5 from pyqtgraph.Qt import QtGui, QtCore, QtWidgets
6
7 spaces = ['R', 'aR', 'Rn', 'aRn', 'P', 'GK', 'G', 'aG', 'U', 'aU']
8
9 class GoalWidget(pg.parametertree.ParameterTree):
10 def __init__(self, wt, parent=None):
11 self.box = wt
12 super().__init__(parent=parent, showHeader=False)
13 self._set_param()
14 self.setParameters(self.param, showTop=False)
15
16 def _set_param(self):
17 params = list()
18 if self.box.nvar < 6:
19 self.schemes =
20 params.append({'name': 'scheme', 'type': 'list', \
21 'values': schemes, 'value': schemes[0]})
22
23
24 params.append({'name': 'tri_space', 'type': 'list', 'value': 'G', \
25 'title': "triangulation space", 'values': spaces})
26 params.append({'name': 'tree_space', 'type': 'list', 'value': 'G', \
27 'title': "potential space", 'values': spaces+['None'], \
28 'tip': """Space where distances (and densities) are
29 calculated. 'None' means triangulation space will be used"""})
30 params.append({'name': 'kechato_space', 'type': 'list', 'value': 'U', \
31 'title': "kechato space", 'values': spaces, \
32 'tip': "Only used with ksee potential"})
33 params.append({'name': 'potential', 'type': 'list', 'value': 'q_psee', \
34 'title': "potential", \
35 'values': ['q_psee', 'psee', 'fee', 'fee2' 'ksee', 'dd']})
36 q = np.log(self.box.nvar) / self.box.nvar**2
37 params.append({'name': 'q', 'type': 'float', \
38 'title': "q", \
39 'limits': (0, 1), 'value': q, 'default': q,\
40 'tip': "Only used with q_psee potential"})
41 params.append({'name': 'p_norm', 'type': 'float', \
42 'title': "p norm", \
43 'limits': (0, 1), 'value': q, 'default': q,\
44 'tip': "Space metric - used for distance calculations"})
45
46 params.append({'name': 'shell_budget', 'type': 'int', \
47 'title': "shell budget" \
48 'limits': (1, float('inf')), 'value': 1000, 'default': 1000,\
49 'tip': "Number of annulus candidates"})
50
51 params.append({'name': 'outer_budget', 'type': 'int', \
52 'title': "Outer budget" \
53 'limits': (1, float('inf')), 'value': 100, 'default': 100,\
54 'tip': "Number of candidates nodes outside of circumscribed d-ball"})
55
56 params.append({'name': 'LHS_correction', 'title': "LHS-like placement",\
57 'type': 'bool', 'value': False })
58
59 ### Create tree of Parameter objects
60 # I don't know why that signals do not work for me
61 # Only sigTreeStateChanged works, but I don't want to struggle with it
62 # May be I'll report the issue
63 #self.param.sigValueChanged.connect(self.param_changed)
64 #self.param.sigValueChanging.connect(self.param_changing)
65 self.param = pg.parametertree.Parameter.create(name='params', type='group', children=params)
66
67 def extract_selected_item(self):
68 item = self.currentItem()
69 if item is None:
70 return getattr(self.module, self.module.__all__[0])()
71 else:
72 item_str = self.currentItem().text()
73 return getattr(self.module, item_str)()
74
75
76 class SetupDiceBoxWidget(pg.LayoutWidget):
77 def __init__(self, wt, parent=None):
78 self.box = wt
79 #č nejdřív vytvořiť apku
80 self.app = pg.mkQApp("WellMet")
81 #
82 super().__init__(parent)
83
84 self.setup()
85
86 #č zobraziť
87 self.show()
88 #č a spustit smyčku
89 self.app.exec_()
90
91 def setup(self):
92 self.setWindowTitle("Set up sequential algorithm")
93
94 self.setup_tabs()
95 self.addWidget(self.tabs, row=0, col=0, rowspan=1, colspan=2)
96
97 self.btn_skip = QtGui.QPushButton('Skip')
98 self.addWidget(self.btn_skip, row=1, col=0)
99 self.btn_skip.clicked.connect(self.skip)
100
101 self.btn_choose = QtGui.QPushButton('Create')
102 self.addWidget(self.btn_choose, row=1, col=1)
103 self.btn_choose.clicked.connect(self.create)
104
105 def exit(self):
106 self.app.quit()
107 sys.exit()
108
109 def create(self):
110 tab_index = self.tabs.currentIndex()
111 if tab_index == 0:
112 self.box = self.tab_2d_papers.extract_selected_item()
113 elif tab_index == 1:
114 self.box = self.tab_2d.extract_selected_item()
115 else:
116 raise
117 self.app.quit()
118
119 def setup_tabs(self):
120 # Initialize tab screen
121 self.tabs = QtWidgets.QTabWidget(self)
122
123 # Add tabs
124 self.tab_2d_papers = TestCasesListWidget(testcases_2D_papers, self)
125 self.tabs.addTab(self.tab_2d_papers,"Well-known 2D testcases")
126
127 self.tab_2d = TestCasesListWidget(testcases_2D, self)
128 self.tabs.addTab(self.tab_2d,"2D testcases")
129
130
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