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)
simplex: use advanced indexing instead of isin function 568c8623ad4cfaa343df05ae880d099556037cf0 I am 2023-01-06 13:41:00
dicebox.circumtri: fill in global simplex index only in case of full integration 065668f1810396f55be0860416f1c6ad507a9573 I am 2023-01-04 21:44:57
dicebox.circumtri: implement "holyday", breaks the greatest safe simplex 14f067d43cde14f990e7a4136b61c548f3acde92 I am 2023-01-04 16:28:51
simplex: implement FullCubatureIntegration 072927115a8a641f89b39265085eb6cac27aa492 I am 2023-01-04 16:27:39
dicebox.circumtri: use mixed facet outside nodes as candidates only. 03c1c974dafa8ff041f032c89149da7fc5b90b39 I am 2023-01-03 15:55:57
shell: use query() method of the convex hull 321a3fab33684cb9bef3c2344200c6519b595bb0 I am 2023-01-03 15:54:45
convex_hull.QHull: implement query() method. Use myshovskych sheme as fallback bc79a6fbee4d488211bf55c88702f39a0126be1b I am 2023-01-03 15:53:00
dicebox.circumtri: handle singular matrix error of CircumCenter 8207789777268039e7a866a594191063c6429c04 I am 2023-01-02 23:56:40
simplex.CubatureIntegration: check for non-finite simplex volumes 3a1473c7452c7dc3a9299ed88520412eb31924c1 I am 2023-01-02 22:51:14
dicebox.circumtri: return to psi potential 9db1f5b0e412ae871ae5f5fbb5ff214a8ddd7f45 I am 2023-01-02 22:20:28
dicebox.circumtri: bughunting 5f9d2b9e4d8077c9e4552d47bf1da789d8cfbcf8 I am 2022-12-29 15:02:14
dicebox.circumtri: process filtered integration nodes as candidates too 315e2f9700d93f1379985dafa818b44df53422a2 I am 2022-12-29 13:51:52
dicebox.circumtri: return back weighted entropy 0424243e29a600ecb1d046631badbc9797e11369 I am 2022-12-28 19:11:30
qt_gui.qt_graph_widgets: reflect renewed simplex estimators 90c83c7c7e6e58d6b9044db1a5e55f9a8a7dd7cd I am 2022-12-28 16:15:40
dicebox: rework CircumTri e360b2f092c11a42b5ac1081061f2891bff3d8de I am 2022-12-28 15:52:28
simplex: make _Triangulation more clean; rework CubatureIntegration fb7dd9fef8592944fbd93a3f07b44c2355d45e20 I am 2022-12-28 15:48:20
introduce shell module, clean version of ghull b13e9b2b15d109770e0c3fbdd5bb7b2a3b5bf5fc I am 2022-12-28 15:45:27
qt_gui.qt_plot.CandidatesWidget: regression fix a75874b5a53e7b420672b582f3ff415b17a32e9b I am 2022-12-23 12:19:51
qt_gui.qt_pairwise.ContactWidget: add mask function 6f88fec7db92e5cd21826a06f42a609a3e03cb6b I am 2022-12-21 15:20:01
qt_gui.qt_pairwise.ContactWidget: add option for mixed pairs only adjacency search. 2f87e8a18908de607b8abc0779448ca3095c134c I am 2022-12-21 14:30:23
Commit 568c8623ad4cfaa343df05ae880d099556037cf0 - simplex: use advanced indexing instead of isin function
Author: I am
Author date (UTC): 2023-01-06 13:41
Committer name: I am
Committer date (UTC): 2023-01-06 13:41
Parent(s): 065668f1810396f55be0860416f1c6ad507a9573
Signer:
Signing key:
Signing status: N
Tree: 18f227f7bfd00f3edc9dc629b45f0a15d97b19e7
File Lines added Lines deleted
wellmet/simplex.py 7 7
File wellmet/simplex.py changed (mode: 100644) (index 4f90d6d..1e0d2c2)
... ... class _Triangulation:
288 288 if simplices is None: if simplices is None:
289 289 simplices = sx.tri.simplices simplices = sx.tri.simplices
290 290
291 in_failure = np.isin(simplices, sx.sample_box.failure_points)
291 in_failure = sx.sample_box.failsi[simplices]
292 292 has_failure = in_failure.any(axis=1) has_failure = in_failure.any(axis=1)
293 293 all_failure = in_failure.all(axis=1) all_failure = in_failure.all(axis=1)
294 294 return np.int8(np.where(has_failure, np.where(all_failure, 1, 2), 0)) return np.int8(np.where(has_failure, np.where(all_failure, 1, 2), 0))
 
... ... class _Triangulation:
298 298 if simplices is None: if simplices is None:
299 299 simplices = sx.tri.simplices simplices = sx.tri.simplices
300 300
301 in_failure = np.isin(simplices, sx.sample_box.failure_points)
301 in_failure = sx.sample_box.failsi[simplices]
302 302 return np.sum(in_failure, axis=1) return np.sum(in_failure, axis=1)
303 303
304 304
 
... ... class _Triangulation:
392 392 if simplices is None: if simplices is None:
393 393 simplices = bx.tri.simplices simplices = bx.tri.simplices
394 394
395 in_failure = np.isin(simplices, bx.failure_points)
395 in_failure = bx.sample_box.failsi[simplices]
396 396 has_failure = in_failure.any(axis=1) has_failure = in_failure.any(axis=1)
397 397 all_failure = in_failure.all(axis=1) all_failure = in_failure.all(axis=1)
398 398 return np.logical_xor(has_failure, all_failure) return np.logical_xor(has_failure, all_failure)
399 399
400 400
401
401
402 402
403 403
404 404
 
... ... class FullCubatureIntegration(_Triangulation):
1087 1087
1088 1088 def integrate(sx): def integrate(sx):
1089 1089 simplices = sx.tri.simplices simplices = sx.tri.simplices
1090 in_failure = np.isin(simplices, sx.sample_box.failure_points)
1090 in_failure = sx.failsi[simplices]
1091 1091
1092 1092 has_failure = in_failure.any(axis=1) has_failure = in_failure.any(axis=1)
1093 1093 all_failure = in_failure.all(axis=1) all_failure = in_failure.all(axis=1)
 
... ... class FastCubatureIntegration(FullCubatureIntegration):
1386 1386
1387 1387 def integrate(sx): def integrate(sx):
1388 1388 simplices = sx.tri.simplices simplices = sx.tri.simplices
1389 in_failure = np.isin(simplices, sx.sample_box.failure_points)
1389 in_failure = sx.failsi[simplices]
1390 1390
1391 1391 has_failure = in_failure.any(axis=1) has_failure = in_failure.any(axis=1)
1392 1392 simplices = simplices[has_failure] simplices = simplices[has_failure]
 
... ... def get_events(sb, simplices): #simplices = bx.tri.simplices
1485 1485 """ """
1486 1486
1487 1487
1488 in_failure = np.isin(simplices, sb.failure_points)
1488 in_failure = sb.failsi[simplices]
1489 1489 has_failure = in_failure.any(axis=1) has_failure = in_failure.any(axis=1)
1490 1490 all_failure = in_failure.all(axis=1) all_failure = in_failure.all(axis=1)
1491 1491 return np.int8(np.where(has_failure, np.where(all_failure, 1, 2), 0)) return np.int8(np.where(has_failure, np.where(all_failure, 1, 2), 0))
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