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.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
simplex: implement separability-based sensibility analysis (new brand _Sense class) 9c5d58f2301893ceaec1b0e90bff76035cfa15b2 I am 2023-02-23 18:49:11
Commit 7a90003e40bd459d2a3ef45a4867dfa392bd3fc8 - mplot.mart: add simplex_vectors() function
Author: I am
Author date (UTC): 2023-03-30 13:20
Committer name: I am
Committer date (UTC): 2023-03-30 13:20
Parent(s): 75ff4258b95fd568d1b4d163cdc04d40952e0029
Signer:
Signing key:
Signing status: N
Tree: 136272c4e431090d0fe3b3c61eeaeb90e5e59e90
File Lines added Lines deleted
wellmet/mplot/mart.py 38 0
File wellmet/mplot/mart.py changed (mode: 100644) (index a621ed0..06fa561)
... ... def plot_the_best_candidate(ax, *args, **kwargs):
251 251
252 252
253 253
254 def simplex_vectors(ax, **kwargs):
255 Tri = ax.sample_box.Tri
256 if ax.space != Tri.tri_space:
257 raise
258
259 result = Tri.perform_sensitivity_analysis()
260 vectors = result.vectors
261 probabilities = result.shares
262
263 ED = Tri.tri.points
264 simplices = Tri.tri.simplices
265 #pos = getattr(self.w.sample_box, self.w.space)[:,:2]
266
267 # offsets = {}
268 # for key, vector in result.unique_id_vectors.items():
269 # offsets[key] = np.mean(Tri.get_finalized_supports(vector))
270
271
272 X = []
273 Y = []
274 U = []
275 V = []
276 for simplex_id, vector in vectors.items():
277 centroid = np.mean(ED[simplices[simplex_id]], axis=0)
278 #offset_fix = (offsets[id(vector)] - np.inner(centroid, vector.normal))
279 #placement = centroid + vector.normal * offset_fix
280 x, y = centroid #placement
281 X.append(x)
282 Y.append(y)
283 u, v = -vector.normal * probabilities[simplex_id]
284 U.append(u)
285 V.append(v)
286
287
288 return ax.quiver(X, Y, U, V, **kwargs)
289
290
291
254 292 def qhull_polygon(ax, qhull, **kwargs): def qhull_polygon(ax, qhull, **kwargs):
255 293 x, y = qhull.points[qhull.vertices].T x, y = qhull.points[qhull.vertices].T
256 294 return ax.fill(x, y, **kwargs) return ax.fill(x, y, **kwargs)
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