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.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
qt_gui.qt_pairwise: prepare more mouse event signals c60e613508480c68483b3d0d6ad6c876b27f539c I am 2022-11-08 01:55:14
qt_gui: introduce reworked matrix view window e28b95c5f418a7a3cea0cb84ca82b40275a71061 I am 2022-11-07 02:20:45
introduce wireframe module for the contacts finding functionality b6068dd92663699859ea7cbf3aac00178d120e0f I am 2022-10-25 14:24:37
voronoi.TwoPoints: atleast_2d() one line fix 9f8bd9e5370ccf30887b6218331ee664788a3b91 I am 2022-10-25 07:09:57
voronoi: implement faster TwoPoints class. c0af78f64bc78a6b8cf06e3ea244339549318b66 I am 2022-10-24 13:03:26
voronoi: implement TwoHorses class. Třída je, bohužel, bezcenná :( 4f6fe186f3f344fa7ee9e518798499099615b466 I am 2022-10-23 10:00:43
voronoi: WIP 23c63ede5bc2ec51d25aed850dc59299db438e34 I am 2022-10-21 12:27:01
IS_stat.sample_alike: use any possible fallback options to sample 80fb6d086e9f17350a1725a319e40bf29591869e I am 2022-10-20 08:56:42
voronoi: WIP ba912d406de12142f2e15a73090118184a0166a4 I am 2022-10-20 02:43:12
IS_stat: add sample_alike() function 2e5394d264b7aaaf5f2486c736ed8cc37afbd030 I am 2022-10-19 13:00:17
voronoi: WIP c3bfa60b6db2042df11528fe95a51d7cc88d3c6b I am 2022-10-19 11:18:13
voronoi: WIP baff3c5ccaf857f60194917fe5d6e33c40b01265 I am 2022-10-19 09:28:33
voronoi.ConvexSpline: little fix of np.sign() for better sleep 968f649e54d97abd596cd60749872fa3ef788c06 I am 2022-10-19 06:28:46
Commit 10753a104879d6b9c109735e959b18b5a60a4616 - qt_gui.qt_pairwise.ContactWidget: finish widget and clean up
Author: I am
Author date (UTC): 2022-11-10 05:02
Committer name: I am
Committer date (UTC): 2022-11-10 05:02
Parent(s): f7ff9c02f25a3ed8fe04e99036da69766afa5a49
Signer:
Signing key:
Signing status: N
Tree: 806e36f265ec9175b2b54c46212e0edff4abd0bc
File Lines added Lines deleted
wellmet/qt_gui/qt_pairwise.py 47 60
File wellmet/qt_gui/qt_pairwise.py changed (mode: 100644) (index 46b7402..cf0ec32)
... ... class ContactWidget(pg.LayoutWidget):
873 873 params.append({'name': 'force_update', 'title': 'reevaluate', params.append({'name': 'force_update', 'title': 'reevaluate',
874 874 'type': 'bool', 'value': False, 'type': 'bool', 'value': False,
875 875 'tip': "always reevaluate even discovered contacts"}) 'tip': "always reevaluate even discovered contacts"})
876 params.append({'name': 'method', 'type': 'list', 'value': 'DirectHull', \
877 'values': ['SBall', 'BrickHull', 'DirectHull', 'CompleteHull', 'QHull', 'Grick']})
876 params.append({'name': 'method', 'type': 'list', 'value': 'ConvexSolver',
877 'values': ['DirectContact', 'ConvexSolver', 'Qhull'],
878 'title': "method"})
879
880 params.append({'name': 'solver', 'title': "solver", 'type': 'list', 'value': 'convex_sprite',
881 'values': ['convex_solver', 'convex_spline', 'convex_sort', 'convex_sprite'],
882 'tip': "Versions from the earliest (the worst) to the latest (the best). Names have no any special meaning."})
878 883
879 params.append({'name': 'ndir', 'type': 'int', \
880 'limits': (1, float('inf')), 'value': 1000, 'default': 1000, \
881 'title': "number of random directions", \
882 'tip': "Used only for Grick or for random scheme in DirectHull (or CompleteHull)"})
884 params.append({'name': 'tries_to_fix', 'type': 'int',
885 'limits': (0, float('inf')), 'value': 1, 'default': 1,
886 'title': "additional tries",
887 'tip': "Number of additional (over required ndim) tries to rotate hyperplane and find the contact."})
883 888
884 params.append({'name': 'integrator', 'title': "integrator", 'type': 'list', \
885 'values': ['MC', 'IS', '1DS'], 'value': '1DS' })
886 params.append({'name': 'tol', 'type': 'float', \
887 'title': "tolerance", \
888 'limits': (0, float('inf')), 'value': 0.9, 'default': 0.9,\
889 'tip': "Applied when Ghull integrates non Gaussian convex hulls"})
890
891 params.append({'name': 'use_MC', 'title': "use MC", 'type': 'bool', 'value': False, \
892 'tip': "Used for shot(), fire() and boom() functions"})
893
894 params.append({'name': 'budget', 'type': 'int', \
895 'limits': (1, float('inf')), 'value': 1000, 'default': 1000,\
896 'tip': "Number of simulations for optimal importance sampling"})
897
898 params.append({'name': 'Update as the box runned', 'type': 'bool', 'value': False }) # 'tip': "This is a checkbox"
899 params.append({'name': 'index', 'title': "replace previous", 'type': 'bool', 'value': True })
900
889 params.append({'name': 'tol', 'type': 'float',
890 'title': "tolerance",
891 'limits': (0, float('inf')), 'value': 1e-7, 'default': 1e-7})
892
901 893 self.param = pg.parametertree.Parameter.create(name='params', type='group', children=params) self.param = pg.parametertree.Parameter.create(name='params', type='group', children=params)
902
894
895 #č chlapi tomu svému stromu dali zabrat
896 #č udělali i signaly
897 contact_finder = self.param.child('method')
898 contact_finder.sigValueChanged.connect(self.method_changed)
899
900 def method_changed(self, parameter):
901 if parameter.value() == 'ConvexSolver':
902 self.param.child('solver').show()
903 self.param.child('tries_to_fix').show()
904 self.param.child('tol').show()
905 else:
906 self.param.child('solver').hide()
907 self.param.child('tries_to_fix').hide()
908 self.param.child('tol').hide()
909
903 910
904 911 def setup_CS(self): def setup_CS(self):
905 912 sample_box = self.w.get_sample_box() sample_box = self.w.get_sample_box()
906 913 sample_space = getattr(sample_box, self.w.space) sample_space = getattr(sample_box, self.w.space)
907 self.CS = wireframe.ConvexSpline(sample_space)
908
914 self.kwargs.clear()
915
916
917 method = self.param.child('method').value()
918 if method == 'Qhull':
919 self.CS = wireframe.Qframe(sample_space)
920 elif method == 'DirectContact':
921 self.CS = wireframe.DirectContact(sample_space)
922 elif method == 'ConvexSolver':
923 solver = getattr(wireframe, self.param.child('solver').value())
924 self.CS = wireframe.ConvexSolver(sample_space, convex_solver=solver)
925 self.kwargs['tries_to_fix'] = self.param.getValues()['tries_to_fix'][0]
926 self.kwargs['tol'] = self.param.getValues()['tol'][0]
927 else:
928 raise ValueError("ContactWidget: unknown method")
929
909 930 if self.param.getValues()['force_update'][0]: if self.param.getValues()['force_update'][0]:
910 931 self.check_contact = self.force_check_contact self.check_contact = self.force_check_contact
911 932 else: else:
912 933 self.check_contact = self.peacefully_check_contact self.check_contact = self.peacefully_check_contact
913 934
914 #
915 #
916 # #č bez semplu se neobejde
917 # nsim = self.sb_item.slider.value()
918 # sample = self.sb_item.sample_box.f_model[:nsim]
919 #
920 # # ['SBall', 'BrickHull', 'DirectHull', 'QHull', 'Grick']
921 # hull_model = self.param.getValues()['method'][0]
922 # if hull_model == 'SBall':
923 # return khull.GBall(sample)
924 # elif hull_model == 'BrickHull':
925 # space = self.param.getValues()['check_all'][0]
926 # return khull.BrickHull(sample, space)
927 # elif hull_model == 'DirectHull':
928 # space = self.param.getValues()['space'][0]
929 # direct_plan = self.get_scheme()
930 # return khull.DirectHull(sample, direct_plan, space)
931 # elif hull_model == 'CompleteHull':
932 # space = self.param.getValues()['space'][0]
933 # direct_plan = self.get_scheme()
934 # return khull.CompleteHull(sample, direct_plan, space)
935 # elif hull_model == 'QHull':
936 # space = self.param.getValues()['space'][0]
937 # #č tento widget pokažde generuje obálku znovu
938 # return khull.QHull(sample, space, incremental=False)
939 # elif hull_model == 'Grick':
940 # direct_plan = self.get_scheme()
941 # ndir = self.param.getValues()['ndir'][0]
942 # return khull.Grick(sample, direct_plan, nrandom=ndir, auto_update=True)
943 # else:
944 # raise ValueError("HullEstimationWidget: co to je za obálku?")
945
946
947
948 935
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