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)
convex_hull: optimize orth basis generation 4ebfde2955aa792fb31075bf9ac8af718ae07b29 I am 2022-11-26 15:35:21
voronoi: WIP 8f7f3bca7c4333ab579e057438c8c64208d1f60e I am 2022-11-26 11:22:55
voronoi: remove the code already moved to wireframe module fe57b4b699e8689d35afb510f704019152566f09 I am 2022-11-25 09:25:55
qt_gui.qt_pairwise.ContactWidget: show Qhull request at most once. db6af332a70786759692175384f4b7e779b4caca I am 2022-11-16 13:26:04
wireframe.LinearSolver: polytope handle hotfix bc48de3193ce9be482cc4dd068a26f48ea1e0203 I am 2022-11-16 13:24:41
qt_gui.qt_pairwise.ContactWidget: add LP methods 8dbd480ca80aabe1c7e0e689780767b78c86c1d1 I am 2022-11-16 11:33:32
wireframe: implement two LP solvers 8aecd55104ce85ccccf872ebef0052a5937415b5 I am 2022-11-16 11:32:31
qt_gui.qt_pairwise.ContactWidget: add Gabriel adjacency 86eaf302b176612fad072a2248e2c724d32be755 I am 2022-11-16 06:17:53
wireframe: implement Gabriel adjacency f0a74b4f28cec6c2ddc68d6811e0a812fc829d63 I am 2022-11-16 06:16:58
qt_gui.qt_pairwise.ContactWidget: reflect updated wireframe b00a9be23d92d999e0020426a7a5caa1206c5862 I am 2022-11-16 03:56:57
wireframe: implement LocalizedHull class 95c19144c5144461db241df1b2bd20d8950c8d57 I am 2022-11-16 03:55:59
qt_gui.qt_pairwise.ContactWidget: polish UI bd48c8a6342e20dac1d635b963dd44e62c371379 I am 2022-11-13 20:03:39
wireframe: add convex_slice() method efada4c62f88b6106c687217472e0b8c52374fed I am 2022-11-13 19:51:49
qt_gui.qt_pairwise.ContactWidget: finish widget and clean up 10753a104879d6b9c109735e959b18b5a60a4616 I am 2022-11-10 05:02:01
wireframe: finish and clean up module. implement DirectContact. f7ff9c02f25a3ed8fe04e99036da69766afa5a49 I am 2022-11-10 04:58:58
qt_gui.qt_pairwise.ContactWidget: implement Qhull check e362df1f8b87ab7c6a27643cd6f4091b9caec9a3 I am 2022-11-09 21:35:10
wireframe: add Qframe class cf52d85dd1663537cd8c52a98514c7d041913979 I am 2022-11-09 21:34:12
qt_gui.qt_pairwise: add auto arnge and auto levels controls 9bc2cf10a9a1695c2c1a5f6a9959f375d3808a71 I am 2022-11-09 18:16:47
qt_gui.qt_pairwise: set blue -1 by default. Add force_update option in Contact widget 7371575784df7fd41bd76ad29caf38f474a06a26 I am 2022-11-09 15:39:03
qt_gui.qt_pairwise: prepare Contact widget bfa78d7493f5eb04b6bd3a4ad26dd1a92d17a895 I am 2022-11-09 03:36:05
Commit 4ebfde2955aa792fb31075bf9ac8af718ae07b29 - convex_hull: optimize orth basis generation
Author: I am
Author date (UTC): 2022-11-26 15:35
Committer name: I am
Committer date (UTC): 2022-11-26 15:35
Parent(s): 8f7f3bca7c4333ab579e057438c8c64208d1f60e
Signer:
Signing key:
Signing status: N
Tree: f498b9edb404a08eac3fed6327cbe96ebe35bafe
File Lines added Lines deleted
wellmet/convex_hull.py 5 26
File wellmet/convex_hull.py changed (mode: 100644) (index c6a9832..8ed6168)
... ... def _get_nD_orth_basis_from_normals(A, b):
187 187 to_fire = np.nanargmax(b) to_fire = np.nanargmax(b)
188 188 a = A[to_fire] a = A[to_fire]
189 189
190 Acos = a * A
191 190
192 191 #č QR rozklad jede po sloupcich #č QR rozklad jede po sloupcich
193 192 basis_T = np.empty((ndim, ndim)) basis_T = np.empty((ndim, ndim))
194 193 basis_T[:,0] = a basis_T[:,0] = a
195 194
196 195 #č skalarní součín #č skalarní součín
197 cos = np.sum(Acos, axis=1)
196 cos = A @ a
198 197 bcos = b * (1 + np.abs(cos)) bcos = b * (1 + np.abs(cos))
199 198
200 199 for i in range(1, ndim-2): for i in range(1, ndim-2):
 
... ... def _get_nD_orth_basis_from_normals(A, b):
204 203
205 204 #č QR rozklad komplikuje život transponovanim matic #č QR rozklad komplikuje život transponovanim matic
206 205 basis_T[:,i] = next_vector basis_T[:,i] = next_vector
207 #č není hezky pouštět v cyklu QR rozklad, ale zatím tak
208 ##č (jednotka dočasnosti - jeden furt)
209 basis_T, __R = np.linalg.qr(basis_T)
206 basis_T[:, :i+1], __R = np.linalg.qr(basis_T[:, :i+1])
210 207
211 208 next_orth_vector = basis_T[:,i] next_orth_vector = basis_T[:,i]
212 209
213 Acos = next_orth_vector * A
214
215 210 #č skalarní součín #č skalarní součín
216 cos = np.sum(Acos, axis=1)
217 bcos = bcos * (1 + np.abs(cos))
218
219 #č vzít ndim-1 nejbližších ke středu hyperrovin
220 #č (nepotřebuje nejlepší řešení, potřebuji jen porazit draka)
221 #_dim = dim - 1
222 #č předpokládám, že vzdálenost je záporná
223 #č (hledáme zde tedy ndim největších čísel)
224 #index = np.argpartition(bcos, -_dim)[-_dim:]
225 # sort
226 #č dostaneme index indexů
227 #č argsort třídí od nějměnšího k většímu
228 #index2 = np.argsort(-bcos[index])
211 cos = A @ next_orth_vector
212 bcos *= (1 + np.abs(cos))
213
229 214
230 215 to_fire = np.nanargmax(bcos) to_fire = np.nanargmax(bcos)
231 216 #č předposlední vektor #č předposlední vektor
 
... ... def _get_nD_orth_basis_from_normals(A, b):
234 219 #č a už ready. Poslední vektor je určen předchozími #č a už ready. Poslední vektor je určen předchozími
235 220 basis_T, __R = np.linalg.qr(basis_T) basis_T, __R = np.linalg.qr(basis_T)
236 221
237 #č udělám to zjednodušeně - zvolim první největší vektor
238 #č a přídam k tomu co nejlepší nejortogonálnější další
239 #index3 = np.concatenate(([to_fire], index[index2]))
240 #č pomocí indexu indexů z normálových (směrových) vektorů uděláme maticu
241 #basis = hull.A[index3]
242
243 222 #č QR rozklad jede po sloupcich #č QR rozklad jede po sloupcich
244 223 #č co jsem viděl, numpy matici Q normalizuje #č co jsem viděl, numpy matici Q normalizuje
245 224 #č a první sloupec zůstavá (skoro) tím samým, co byl před tím #č a první sloupec zůstavá (skoro) tím samým, co byl před tím
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