Commit Graph

1796 Commits

Author SHA1 Message Date
Martin Diehl 26c242b997 not needed anymore
conceptually, having the quaternion class is nice but performance-wise
it is a nightmare and prevents vectorization
2020-01-14 09:03:50 +01:00
Martin Diehl 99684c3e86 Merge branch 'vectorized-orientation-conversion' into no-python-quaternion 2020-01-14 09:02:43 +01:00
Martin Diehl 3fc616bc7d Merge branch 'development' into vectorized-orientation-conversion 2020-01-14 09:00:10 +01:00
Martin Diehl af42eae9c1 Merge branch 'development' into python-module 2020-01-14 08:58:19 +01:00
Martin Diehl c7e92c672d avoid code duplication 2020-01-14 07:30:17 +01:00
Martin Diehl ecb8510217 leaner (and hopefully faster) code 2020-01-14 05:32:42 +01:00
Philip Eisenlohr 86f27df0b2 damask.Environment reads from os.environ; python module is packaging-ready 2020-01-13 17:28:28 -05:00
Martin Diehl f7d0b75f06 Merge branch 'development' into marc-improvements 2020-01-13 22:06:52 +01:00
Philip Eisenlohr edbee3a419 Merge branch 'development' into python-module 2020-01-13 15:24:08 -05:00
Martin Diehl 7b3015c6bd relaxed tolerances.
one out of multiple thousand tests failed ...
2020-01-13 18:44:50 +01:00
Martin Diehl 47bcdfc22c [skip sc] vtk output working and tested
need to check syntax check because ifort 17.0 has problems with new
mesh. Works, however, with Intel 17.8
2020-01-13 11:53:37 +01:00
Martin Diehl 76d0383c2f Merge branch 'MoreImprovements' into marc-improvements 2020-01-13 10:04:27 +01:00
Martin Diehl bd4db68a12 support for non QUAD cell type 2020-01-13 10:03:13 +01:00
Martin Diehl f9772a3df8 more descriptive name 2020-01-13 02:51:49 +01:00
Martin Diehl 26442ee783 bugfixes
missing import/outdated test
2020-01-12 19:35:45 +01:00
Martin Diehl 70b73762ed avoid warning due to change in default parameter 2020-01-12 19:21:16 +01:00
Martin Diehl 19e88df571 polishing 2020-01-12 07:53:41 +01:00
Martin Diehl 1315029196 do not clutter comments 2020-01-12 02:06:53 +01:00
Martin Diehl 1bb94f03b8 polishing (prospector was complaining) 2020-01-12 00:21:14 +01:00
Martin Diehl 97ddd56540 avoid strange deformation gradients
otherwise, the test fails in a few cases (determinants were in the range
1e-5 to 1e16)
2020-01-11 23:44:11 +01:00
Martin Diehl 3938f34978 Merge branch 'MiscImprovements' into MoreImprovements 2020-01-11 22:37:41 +01:00
Martin Diehl 2d9c25f8e5 Merge branch 'development' into MiscImprovements 2020-01-11 20:34:35 +01:00
Philip Eisenlohr 300f1b7015 added options to return "natural" versions of asQ, asRodrig, and asAxisAngle 2020-01-11 11:36:22 -05:00
Martin Diehl 09f42a3991 ang files might have more columns 2020-01-08 15:34:21 +01:00
Martin Diehl 385085de73 correct names for numpy (differ from math) 2020-01-04 01:05:40 +01:00
Martin Diehl e692118ec5 easier to use for single output label 2020-01-03 15:41:15 +01:00
Martin Diehl b5e4e42505 splitext includes leading dot 2020-01-03 14:44:31 +01:00
Martin Diehl 49f3de44b9 limit import statements (numpy already in use) 2020-01-02 18:02:13 +01:00
Martin Diehl 97e7f510e2 wrong time was reported in case of trailing inactive increments 2020-01-02 16:27:42 +01:00
Martin Diehl f5c58517a7 enable one grid point along all directions 2019-12-24 15:59:09 +01:00
Martin Diehl aec9c601d6 some insights from continuum mechanics formulated as test 2019-12-23 15:34:13 +01:00
Martin Diehl 60580cc45a mixed up left/right stretch tensor 2019-12-23 07:16:50 +01:00
Martin Diehl 2cb3213e37 improvements to Table class
- string comparison  should be '!=' not 'is not', latter compares
object, not value
- functions for common operations: append (vstack, growTable) and join
(hstack, addTable)
2019-12-22 22:21:32 +01:00
Martin Diehl 48c21045d7 centralized functionality for ang import 2019-12-22 14:57:57 +01:00
Martin Diehl e08b096f08 just to make sure ... 2019-12-21 23:43:56 +01:00
Martin Diehl a7d60dc52a not used anymore
geom class has own report function
2019-12-21 19:10:41 +01:00
Martin Diehl 5b7139dc22 using specialized class 2019-12-21 19:09:28 +01:00
Martin Diehl 6989679d3b using central functionality
- Table class for table data
- grid_filters for grid related functions
2019-12-21 19:03:36 +01:00
Martin Diehl 2cd2d6f506 cell_2_node/node_2_cell work only for periodic data
hence, coordinates and displacements cannot be converted easily
2019-12-21 18:07:04 +01:00
Martin Diehl 3bf9a4deb5 Merge branch 'grid-filters' into MiscImprovements 2019-12-21 17:39:39 +01:00
Martin Diehl 503626473a bugfix: wrong grid order
for x fast, z slow, the shape of the array needs to be reversed
2019-12-21 17:38:16 +01:00
Martin Diehl 0d1ff72c45 Merge branch 'grid-filters' into MiscImprovements 2019-12-21 06:57:38 +01:00
Martin Diehl f0d3b29b82 Merge branch 'development' into MiscImprovements 2019-12-21 06:53:56 +01:00
Martin Diehl 2c5f7d3b5a Merge branch 'development' into grid-filters 2019-12-20 14:32:20 +01:00
Franz Roters 034367fa6a Merge remote-tracking branch 'remotes/origin/noPostResults' into development 2019-12-20 11:40:57 +01:00
Martin Diehl 2fe163be31 Merge branch 'development' into MiscImprovements 2019-12-18 19:57:00 +01:00
Francisco Jose Gallardo Basile 80b559dc00 Merge branch 'no_phase_name_for_genericoutput' into 'development'
No phase name for genericoutput

See merge request damask/DAMASK!113
2019-12-18 18:54:46 +01:00
Martin Diehl 3c42368f66 also use newer regex 2019-12-18 11:29:13 +01:00
Martin Diehl 6a8783bab8 these functions are static
class methods change are allowed to change the attributes of the class.
This is not what we do here
2019-12-13 15:46:40 +01:00
Martin Diehl 5b376712ef bugfix: wrong coordinates 2019-12-13 14:39:10 +01:00
Martin Diehl e5448fc381 avoid code duplication 2019-12-13 14:36:52 +01:00
Vitesh Shah 7d849b639b Point based vtk file in DADF5 class 2019-12-13 14:20:18 +01:00
f.basile 57a69ad4c9 Reupload PDF pole figures. 2019-12-13 13:32:16 +01:00
f.basile 0c30f6b1df Polishing Mtex script for plotting pole figures. 2019-12-13 12:52:33 +01:00
Martin Diehl b14c15fd9e directly output DADF5 to vtk from python 2019-12-13 12:15:45 +01:00
Martin Diehl 63fc125398 include origin do DADF5
requires updat of file version
2019-12-13 09:12:07 +01:00
Philip Eisenlohr cc6f771368 [skip ci] strip whitespace from VERSION 2019-12-12 18:10:22 -05:00
Philip Eisenlohr 582f895d18 restored Solver module functionality 2019-12-12 16:58:37 -05:00
Philip Eisenlohr e37daadaff restored environment functionality 2019-12-12 14:57:07 -05:00
Philip Eisenlohr 41ed7ce462 "pip install damask" either locally or from PyPI after upload 2019-12-12 14:32:51 -05:00
Martin Diehl 1d7010778e [skip ci] silence annoying warnings 2019-12-11 19:43:23 +01:00
Martin Diehl fcbe4ee5a2 [skip ci] polishing 2019-12-11 18:08:51 +01:00
Martin Diehl bd12ef83b9 parametrizing 2019-12-11 18:01:24 +01:00
Martin Diehl 37e52fd81f polishing 2019-12-11 16:51:13 +01:00
f.basile 562d216fa9 bcc is passive rotation and fcc is active rotation 2019-12-11 09:23:12 +01:00
Martin Diehl 0b04843c91 pandas is needed for Table class 2019-12-11 08:11:00 +01:00
Martin Diehl e142d00d02 test now sensible to wrong rename 2019-12-10 20:05:24 +01:00
Martin Diehl 4c1281b4fc rename changed order in shapes dict.
This resulted in wrong column names when writing to ASCII file

two fixes (one would be enough):
1) keep order (build new directory)
2) write in order of labels in pandas dataframe, not in order in shapes
dict
2019-12-10 20:04:03 +01:00
f.basile ca06c1d3a2 Fix bugs in relatedOperations for NW,GT and GTprime. 2019-12-10 13:49:33 +01:00
Martin Diehl d1fa2a14dc was used only for yield surface fitting 2019-12-09 05:28:00 +01:00
Martin Diehl 5a9173ccf4 might simplify plotting in MTEX 2019-12-08 21:57:07 +01:00
Martin Diehl fa9ee6b116 using reference results for orientation relationships 2019-12-08 21:48:32 +01:00
Martin Diehl 53cb59fc47 use pytest instead of hand-written test class 2019-12-08 21:29:26 +01:00
Martin Diehl 6dfe24290c Merge remote-tracking branch 'origin/development' into fix-orientation-relationship-2 2019-12-08 21:10:50 +01:00
Martin Diehl b56864552f testing forward <-> backward conversion 2019-12-08 21:05:34 +01:00
Martin Diehl 21431295fb documenting 2019-12-08 20:20:13 +01:00
Martin Diehl 4e2e7d02f6 more sensible interface 2019-12-08 18:54:41 +01:00
Martin Diehl 7dc128ad12 polishing 2019-12-08 18:33:43 +01:00
Martin Diehl 828e82605e ensure that data is correctly ordered 2019-12-08 18:13:45 +01:00
Martin Diehl 8d0c4310cf improvements to grid generation
- handling of origin
- inverse functions: calculate grid,size,origin from regular coordinates
(cell or node). should replace corresponding functionality in util
2019-12-08 18:12:22 +01:00
Martin Diehl 9dc726ff53 polishing 2019-12-08 09:17:57 +01:00
Martin Diehl ba69f5a631 polishing 2019-12-07 22:33:31 +01:00
Sharan Roongta 96710a238d Merge branch 'development' of magit1.mpie.de:damask/DAMASK into incs-no-leading-zero 2019-12-06 15:25:21 +01:00
Martin Diehl 4ddfd82304 better names 2019-12-05 18:32:21 +01:00
Martin Diehl b1ff178109 Merge branch 'new-ASCII' into grid-filters 2019-12-05 18:06:56 +01:00
Philip Eisenlohr 2648a67dcd fixed sort_by to respect updated index (upon subsequent adding of new data) 2019-12-05 12:02:10 -05:00
Philip Eisenlohr 3caf2c1296 condensing code 2019-12-05 09:05:50 -05:00
Martin Diehl e7358746dc taking care of prospector complaints
variables in 'eval' are hidden
2019-12-05 10:54:35 +01:00
Martin Diehl 274aaa7359 Merge branch 'new-ASCII' into grid-filters 2019-12-05 10:50:56 +01:00
Martin Diehl 1018b89296 nice to have.. 2019-12-05 10:48:42 +01:00
Martin Diehl f885748a58 variable was never used 2019-12-05 08:43:14 +01:00
Martin Diehl 1bf4946e67 invalid escape sequence 2019-12-05 08:37:39 +01:00
Martin Diehl 469d638afb making table class feature complete 2019-12-05 06:57:09 +01:00
Martin Diehl ee8e3386f4 shorter but still descriptive names 2019-12-05 06:16:29 +01:00
Martin Diehl e7a67262f8 clear enough 2019-12-05 06:00:49 +01:00
Martin Diehl 2172e92e7e test exotic input files 2019-12-05 05:57:47 +01:00
Martin Diehl 5fdf112f78 allow strings as data in ASCII file 2019-12-05 05:45:27 +01:00
Martin Diehl 1c83572589 more descriptive names 2019-12-05 05:11:58 +01:00
Martin Diehl 381c95bd1e WIP: regrid functionality 2019-12-04 10:41:02 +01:00
Martin Diehl 07e9778798 one more test 2019-12-04 10:20:57 +01:00
Martin Diehl bc41bbbec5 test coordinates-related functions 2019-12-04 09:23:08 +01:00
Martin Diehl 999321e588 Merge branch 'new-ASCII' into grid-filters 2019-12-04 07:45:01 +01:00
Martin Diehl 285075bb6b ordered alphabetically 2019-12-04 06:15:32 +01:00
Martin Diehl 6902d3dd0a repeated test
better sort alphabetically
2019-12-04 06:04:06 +01:00
Martin Diehl 6c31e22855 testing new style DADF5 file 2019-12-04 05:59:52 +01:00
Martin Diehl 32ebcea207 more tests 2019-12-04 05:49:43 +01:00
Martin Diehl fecd4632b4 correct reporting of time 2019-12-04 05:49:17 +01:00
Martin Diehl 58a190ede8 Merge branch 'development' into incs-no-leading-zero 2019-12-04 05:19:38 +01:00
Martin Diehl 1110affec2 Merge branch 'new-ASCII' of magit1.mpie.de:/damask/DAMASK into new-ASCII 2019-12-04 05:10:01 +01:00
Martin Diehl 9ad8743396 using central functionality 2019-12-03 22:00:21 +01:00
Martin Diehl e006e0ebec functions for spatial coordinates on regular grids 2019-12-03 18:59:59 +01:00
Martin Diehl 3effea8e1d also check operations that should NOT work 2019-12-03 17:03:03 +01:00
Martin Diehl f5bbd3cf22 ensure functionality through unit testing 2019-12-03 16:39:54 +01:00
Martin Diehl ff1778d149 Merge branch 'development' into new-ASCII 2019-12-03 15:56:49 +01:00
Martin Diehl 8f77843b0f improved naming
- clearer variable names
- no '-' in attributes
- single source of truth
2019-11-30 09:01:37 +01:00
Martin Diehl 354c0123a1 backward compatibility 2019-11-30 08:40:59 +01:00
Martin Diehl 4185fcb4c3 adjust to new naming 2019-11-29 21:40:54 +01:00
Martin Diehl dc3fc8f70c do not clutter with leading zeros 2019-11-29 17:00:48 +01:00
Martin Diehl 76a1506893 small improvements
bugfix: writing correct labels (now consistent with readin)
error handling for inconsistent initialization
2019-11-28 20:18:54 +01:00
Martin Diehl f2e722ed2e polishing 2019-11-28 18:22:34 +01:00
Martin Diehl 3e65d44e07 centralized facilities for differential operations
note the need to reverse the grid shape in data from the ASCII table. If x is fastest,
z is slowest we require x to be the rightmost index
2019-11-28 15:46:22 +01:00
Martin Diehl 80b50f460e cleaning
trying to get rid of strange re-ordering related to ASCII table data
layout
2019-11-28 10:09:22 +01:00
Martin Diehl ca92400c2f polishing
columns is the term used py pandas
2019-11-28 05:58:28 +01:00
Martin Diehl b85049cb81 use brackets for line continuation with comments 2019-11-28 05:41:53 +01:00
Martin Diehl 98d5738fe6 Merge branch 'new-ASCII' into grid-filters 2019-11-28 05:12:36 +01:00
Martin Diehl 80002e6cfd proper capitalization 2019-11-27 13:21:41 +01:00
Martin Diehl cee095b58e better use centralized code 2019-11-27 12:22:28 +01:00
Martin Diehl 7d4b982c73 make information on modifications mandatory 2019-11-27 12:08:23 +01:00
Martin Diehl 76c3577378 pandas.DataFrame needs to be a 2nd order array 2019-11-27 12:03:35 +01:00
Martin Diehl 39734ef53c alter data
allows to access multiple columns ('f') and individual components
('1_f')
2019-11-27 10:56:29 +01:00
Martin Diehl 96714089b1 documented and tested handling of multi-dimensional data
more precise regex expressions. get_array can handle individual
components
2019-11-27 09:58:58 +01:00
Martin Diehl 882a11c5f8 get labels without shape information 2019-11-27 08:43:20 +01:00
Martin Diehl 2d96136a0d more general constructor for Table
reading from file is just one case (now handled by static method).
General constructor needs data and header information as dictionary.
Works only with python 3.7 where dict keeps the insertion order. Earlier
python versions/other implementations might fail.
2019-11-26 22:53:46 +01:00
Martin Diehl 5661f60552 fname seems to be the common name 2019-11-26 21:36:24 +01:00
Martin Diehl 925a4f73d6 staticmethod better suited than class method
a classmethod changes the class, i.e. it assigns attributes and gives
them specific values.
a staticmethod does not alter the class

https://www.geeksforgeeks.org/class-method-vs-static-method-python
2019-11-26 20:32:54 +01:00
Martin Diehl 845cfc34ec similar logic as in geom class
- filename is not part of the object
- transparent handling of files, strings, and path-like objects for file
IO
2019-11-26 14:26:25 +01:00
Martin Diehl 81abc43920 Merge branch 'development' into new-ASCII 2019-11-26 10:29:05 +01:00
Martin Diehl 23f5e0fa58 filters for operations on regular grids (in fourier space) 2019-11-26 10:25:39 +01:00
Martin Diehl af78aaf2f1 testing rescale 2019-11-25 14:01:40 +01:00
Martin Diehl e16024ddf9 Merge branch 'PythonImprovements' into pytest 2019-11-25 14:00:24 +01:00
Martin Diehl 476569390a enable use of path objects, strings, and opened files 2019-11-25 13:47:14 +01:00
Martin Diehl b757f02649 avoid repetitions 2019-11-25 12:04:57 +01:00
Martin Diehl 6d25506204 test for new pack functionality 2019-11-25 09:28:59 +01:00
Martin Diehl 969fa9bbc7 Merge branch 'PythonImprovements' into pytest 2019-11-25 09:15:06 +01:00
Martin Diehl 3e8518d861 following prospector guidelines 2019-11-24 19:30:00 +01:00
Martin Diehl c9f9f7c681 pack causes trouble with tests .. 2019-11-24 19:02:19 +01:00
Martin Diehl b2cdabd009 getting rid of shell scripts 2019-11-24 18:25:53 +01:00
Martin Diehl 816e86ae5f phasing out python shell scripts 2019-11-24 15:13:26 +01:00
Martin Diehl 8186be6293 compress functionality should be part of the geom class
automated decision is base on heuristic whether compression is memory
efficient
2019-11-24 14:27:24 +01:00
Martin Diehl 02df55b9bd bugfix
casting to plain array works only (and makes sense only) for a derived
type
2019-11-24 11:18:41 +01:00
Martin Diehl 6060abb375 cleaning 2019-11-24 09:10:47 +01:00
Martin Diehl c9b1944493 handling of derived datatypes/structs
currently required for orientation
2019-11-24 08:50:27 +01:00
Martin Diehl f30cbde99e use first constituent as default 2019-11-24 08:04:40 +01:00
Martin Diehl 928a5c2e55 better use fixtures 2019-11-24 06:29:00 +01:00
Martin Diehl 2b392241f9 Merge branch 'PythonImprovements' into pytest 2019-11-23 19:25:22 +01:00
Martin Diehl 406ae29897 adopting rename in mechanics 2019-11-23 19:22:18 +01:00
Martin Diehl 3be1caa4ef read_dataset has at least two dimensions 2019-11-23 19:21:41 +01:00
Martin Diehl eb80a82e05 first idea how to test pointwise operations 2019-11-23 18:58:44 +01:00
Martin Diehl e3f8195621 no not change line endings 2019-11-23 17:08:36 +01:00
Martin Diehl 4dc4442fae small DADF5 file for testing 2019-11-23 16:15:08 +01:00
Martin Diehl 510e4752fd using parametrized tests for better coverage 2019-11-23 14:03:47 +01:00
Martin Diehl 2810531c97 a test with reference results 2019-11-23 13:37:03 +01:00
Martin Diehl 834cd43b66 intention not clear
any ideas why __transforms__ was used?
2019-11-23 08:06:26 +01:00
Martin Diehl ea4c4b6636 Merge branch 'PythonImprovements' into pytest 2019-11-22 22:10:20 +01:00
Martin Diehl dfb95df689 migrating shell scripts to python class 2019-11-22 21:48:41 +01:00
Martin Diehl c00af5c402 4 space indents are common practice 2019-11-22 20:52:36 +01:00
Martin Diehl e5e3db8286 Merge branch 'PythonImprovements' into pytest 2019-11-22 15:42:27 +01:00
Martin Diehl fad679a9a5 need to catch IOError 2019-11-22 15:19:20 +01:00
Martin Diehl 6e0b2a4fab following prospector rules 2019-11-22 13:16:53 +01:00
Martin Diehl dac63f7d92 subfolders not needed 2019-11-22 12:55:56 +01:00
Martin Diehl 77e410d7d1 follow prospector rules 2019-11-22 12:17:44 +01:00
Martin Diehl a26a5738dd polishing 2019-11-21 21:48:54 +01:00
Martin Diehl e0f3fe3cc0 ported from hand written test class 2019-11-21 21:01:01 +01:00
Martin Diehl a3376a35b7 testing mechanics module with pytest 2019-11-21 20:00:28 +01:00
Martin Diehl cf88c1f907 correct syntax for integer comparison 2019-11-21 19:49:46 +01:00
Martin Diehl a5ae82fe90 handle deprecation warning in python 3.8 2019-11-21 19:47:27 +01:00
Martin Diehl 7a7eea47b5 correct handling of arrays
all strains measures except for logarithmic had wrong off-diagonal
components
2019-11-21 19:46:05 +01:00
Martin Diehl fb286af354 [skip sc] first draft 2019-10-31 10:47:40 +01:00
Martin Diehl 1c10459a5a also use fast operation order 2019-10-30 21:09:17 +01:00
Martin Diehl 8a85123abc 4 space indent is python standard 2019-10-30 18:05:44 +01:00
Martin Diehl b733bd3038 polar decomposition 2019-10-28 11:18:26 +01:00
navyanthkusam fca288ae8a performance improvement
this mapping is faster for large volumes
2019-10-25 14:47:36 +02:00
Philip Eisenlohr 894b646283 corrected name of U,V; fixed Mises_strain factor from 3/2 to 2/3; 2019-10-23 15:03:24 +02:00
Martin Diehl 2d08eb68b1 bugfix for (3x3) version of Cauchy 2019-10-23 14:39:52 +02:00
Martin Diehl 5e7f9a223b should be a passive rotation 2019-10-21 23:17:58 +02:00
Martin Diehl 9489c04ccb less confusing 2019-10-21 23:02:31 +02:00
Martin Diehl ecc51e34d3 rouding should affect color calculation
avoid NaN in math.power(x,0.5). math.power(-0.0,0.5) is ok
2019-10-21 22:44:12 +02:00
Martin Diehl 578cbf9bbf bugfixes:
- vonMises calculation was wrong
- wrong type of data used in some add_XXX
2019-10-21 18:07:35 +02:00
Martin Diehl 78a2941436 avoid numerical issues 2019-10-21 16:59:49 +02:00
Martin Diehl 51ed4d68e6 more info 2019-10-20 13:13:48 +02:00
Martin Diehl b593dfbfd9 better layout 2019-10-20 11:34:05 +02:00
Martin Diehl f00f6952c0 selecting by increment is a common task
https://www.python.org/dev/peps/pep-0257/
The docstring is a phrase ending in a period. It prescribes the function or method's effect as
a command ("Do this", "Return that"), not as a description; e.g. don't write "Returns the pathname ...".
2019-10-20 11:00:10 +02:00
Martin Diehl 8f315836b0 easier to use if end time is included: 2019-10-20 10:42:45 +02:00
Martin Diehl 64731369e3 general definition for strain tensors 2019-10-19 16:05:53 +02:00
Martin Diehl a665d5726d polishing 2019-10-19 13:22:37 +02:00
Martin Diehl b31de5d0f6 outsourcing tensor math to mechanics class
strain calculation is generalize to arbitrary order and simplified: No
need for svd, F^T F/F F^T does the job.
2019-10-19 12:54:16 +02:00
Martin Diehl e51f6cee72 improved handling of string types for HDF5
- convert bytes to string when reading
- convert string to bytes when writing
2019-10-19 09:47:26 +02:00
Martin Diehl 5f0a48fae7 enhanced and documented 2019-10-19 08:51:51 +02:00
Martin Diehl dc9aca5710 copy and paste error/invalid syntax 2019-10-18 20:57:36 +02:00
Martin Diehl 5858d03a6b prospector complaints for stupid reasons 2019-10-18 20:55:39 +02:00
Martin Diehl 3336cfc3da better have tensor functions available
allows in-memory evaluation of results
2019-10-18 20:50:03 +02:00
Martin Diehl 1a34a6f7b5 some useful tensor operations 2019-10-18 20:41:39 +02:00
Martin Diehl 47ba7d49b5 allow to use the same label twice in a function 2019-10-18 20:39:00 +02:00
Martin Diehl de912c22b4 Merge branch 'development' into HDF5-spectral-displacements 2019-10-18 12:54:12 +02:00
Franz Roters 91691744c6 Merge branch 'Marc-No-nonlocal' into 'development'
Marc no nonlocal

See merge request damask/DAMASK!98
2019-10-15 10:35:37 +02:00
Martin Diehl 708bbd3cb9 mesh/grid type transparent handling of coordinates 2019-10-12 16:15:04 +02:00
Martin Diehl b208fa6565 takeover from Vitesh's work with small adoptions to current DADF5 2019-10-12 08:02:57 +02:00
Martin Diehl 0eef73935e handling of derived types (orientation for the moment) 2019-10-11 08:35:21 +02:00
Martin Diehl b8a1a5bb7d v 0.2 is ok, not sure what the future brings so better check 2019-10-03 20:23:49 +02:00
Martin Diehl 0b29d08109 bump to DADF5 v0.3
contains displacements (for grid solver)
2019-10-03 19:02:17 +02:00
Martin Diehl 62fb4d2ea9 polishing 2019-10-01 14:30:09 -07:00
Martin Diehl e96eb55edd calculate different strain tensors 2019-09-30 14:28:58 -07:00
Martin Diehl 0e3b09adc1 negative eigenvalues are not possible
left/right Cauchy-Green Deformation Tensors are positive definit
https://de.wikipedia.org/wiki/Deformationsgradient
2019-09-30 14:12:15 -07:00
Martin Diehl d95a795e3b Merge branch 'MiscImprovements' into HDF5-spectral-displacements 2019-09-30 13:53:24 -07:00
Martin Diehl 0dd14a0652 correct reporting of version 2019-09-30 09:07:56 -07:00
Martin Diehl 457f9aa4e3 prospector found duplicated key 2019-09-30 08:53:53 -07:00
Martin Diehl 3206ee04bc nodal displacements for grid solver
currently for non-MPI only
2019-09-27 20:38:02 -07:00
Martin Diehl 970d172160 correct message 2019-09-27 17:52:01 -07:00
Martin Diehl ad83c8541d same names as in python 2019-09-20 17:18:09 -07:00
Martin Diehl fb61899c5f seems that testing has Marc 2018.1 already 2019-09-20 20:54:30 +02:00
Martin Diehl 0b6620bfb7 Merge branch 'development' into MiscImprovements
F***ing commits to development!
2019-09-20 07:40:52 -07:00
Martin Diehl 4b2263bebe conversion to float causes issues
test only current version of MSC.Marc
2019-09-20 03:21:53 +02:00
Yang Su 6fdab024b6 ensure that integer inputs to Rotation.fromX() translate into float quantities 2019-09-19 17:03:31 -04:00
Martin Diehl 7fd4b8bff6 more prospector hints 2019-09-19 12:51:16 -07:00
Martin Diehl f1f88610dd documenting 2019-09-19 12:32:15 -07:00
Martin Diehl 2e25a03d13 adopting to new prospector 2019-09-19 11:56:58 -07:00
Martin Diehl 35a009f513 prospector complaind
help details were anyway pretty useless
2019-09-19 11:41:41 -07:00
Martin Diehl 32639caec2 better readable 2019-09-19 11:12:44 -07:00
Martin Diehl bf7db26680 Merge branch 'even-more-HDF5-postprocessing' into MiscImprovements 2019-09-19 10:49:14 -07:00
Philip Eisenlohr 76b08e10bd following stricter Python docstring standards 2019-09-18 21:43:43 -04:00
Martin Diehl 4994c86e67 bugfix: hard-wired keyword resulted in missing materialpoint results 2019-09-16 13:31:49 -07:00
Martin Diehl ee1327c519 [skip ci] typo 2019-09-16 11:21:06 -07:00
Martin Diehl 28bb92021d avoid code duplication 2019-09-16 11:04:05 -07:00
Martin Diehl 980c02b0c3 selected increments by simulation time 2019-09-15 20:19:14 -07:00
Martin Diehl 86fb0a7942 time info needed for filtering of increments 2019-09-15 20:04:52 -07:00
Martin Diehl b3b710c848 polishing 2019-09-15 19:56:07 -07:00
Martin Diehl 4cedcee0b4 handling of increments follows handling of other 'visible'-items 2019-09-15 17:08:03 -07:00
Martin Diehl f6ac8c995f simplified and selected better names 2019-09-15 16:00:19 -07:00
Martin Diehl c76d4d3f87 avoid unneeded arguments 2019-09-15 15:24:23 -07:00
Martin Diehl 88eba27cec avoid name duplication + polishing 2019-09-15 15:10:32 -07:00
Martin Diehl 04aefa84bc more appropriate names 2019-09-15 15:02:16 -07:00
Martin Diehl d413aef7c3 functionality for general calculations on datasets
currently limited to vectorized expressions.
2019-09-14 12:00:23 -07:00
Martin Diehl 8251725bce WIP: different norm types 2019-09-14 10:53:33 -07:00
Martin Diehl e4e9c5f558 support glob matching
more flexibility in selecting active datasets and groups
2019-09-14 09:55:42 -07:00
Martin Diehl b85ac11c49 implemented ideas from discussion with Philip
group matching unified and with wildcard support
time step handling should become more convenient (WIP)
add_norm can not compute abs of scalar, added function for that
general polishing here and there
2019-09-14 09:07:23 -07:00
Martin Diehl c13db4b3ca renaming
on_air/active are not clear. visible seems to be the most appropriate
name
2019-09-13 21:49:22 -07:00
Martin Diehl 898f53295d iter functions for groups
restore original selection after iterating (i.e. temp setting of active)

polishing: correct names and more details for HDF5 meta data
2019-09-13 21:14:52 -07:00
Martin Diehl 69462f8190 polished
strain calculation agrees up to 1e-4 with results from addStrainTensors.
Not too exciting, but ok
2019-09-13 19:37:25 -07:00
Martin Diehl 38f6609ad7 high level functions for selecting output
tested Cauchy stress calculation (comparison with addCauchy.py)
2019-09-13 18:36:06 -07:00
Martin Diehl c5006e264b handling prospector complaints 2019-09-13 16:07:39 -07:00
Martin Diehl 002383afc2 solved problem with postprocessing
- to not 'try' with h5py library, it might have another 'try'. Check
explicitly for empty argument

also some polishing
2019-09-13 16:01:30 -07:00
Martin Diehl b2b625af3e notes from discussion with Philip 2019-09-13 15:17:46 -07:00
Martin Diehl f83a167414 file mode for high level funtion not useful 2019-09-13 09:49:30 -07:00
Martin Diehl 6f008c5d5f rewrite pointwise add function
- all vectorized: Much faster
- passing in all relevant information allows to do sanity checks and add
useful meta data in HDF5
- improved readability
2019-09-13 06:02:42 -07:00
Martin Diehl 3db3e9e762 preparing for use of optional arguments to function 2019-09-11 21:20:14 -07:00
Martin Diehl de313269d9 bugfix 2019-09-11 18:54:54 -07:00
Martin Diehl 953ba53211 adjusting for strict prospector checking 2019-09-11 18:22:33 -07:00
Martin Diehl a6c69a744b do operations vectorized 2019-09-11 17:57:24 -07:00
Martin Diehl 462bb07efd Merge branch 'development' into even-more-HDF5-postprocessing 2019-09-11 16:29:44 -07:00
Martin Diehl bc893762ec no need to inverse a rotation, transpose is faster 2019-09-11 07:29:34 -07:00
Martin Diehl fa2c100d6a need to update microstructure to get grid update 2019-09-04 20:20:55 -07:00
Martin Diehl f415a8cad2 Merge branch 'PythonProspectorRules' into even-more-HDF5-postprocessing 2019-09-04 14:23:07 -07:00
Martin Diehl 28c11cc373 bugfix
-update function was resetting size if not given
-dim does not work an all terminals, therefore also emph new values in
addition to dim old ones
2019-09-04 11:14:44 -07:00
Martin Diehl ef285b482f more references + citation style correction 2019-09-04 08:55:05 -07:00
Martin Diehl 6f07a20919 not sure what this code was intended to do 2019-09-03 17:23:26 -07:00
Martin Diehl 3657f81c59 documenting (in accordance with new prospector rules) 2019-09-03 17:18:06 -07:00
Martin Diehl a428a924eb DAMASK default citation style 2019-09-03 16:34:02 -07:00
Martin Diehl 97fc8a4029 following python3 recommendations 2019-09-03 15:44:28 -07:00
Martin Diehl 234019bb4d dummy stuff not needed 2019-09-03 15:41:16 -07:00
Martin Diehl b0d3615d67 more detailed documentation 2019-09-03 15:32:01 -07:00
Martin Diehl 7d48764999 added documentation and references 2019-09-03 15:25:25 -07:00
Martin Diehl a073f36471 update for solver wrappers 2019-09-03 09:48:42 -07:00
Martin Diehl fea16327ac now properly escaped 2019-09-02 23:42:34 -07:00
Martin Diehl d84cef4fab pep8: W605 / invalid escape sequence '\ ' seems to be a false positive 2019-09-02 23:37:52 -07:00
Martin Diehl 9cf4f9537e documenting 2019-09-02 23:23:46 -07:00
Martin Diehl ba395977db adjusting to new prospector 2019-09-02 11:09:03 -07:00
Martin Diehl 34b3beda27 DefaultMap needed for newer paraview 2019-09-02 10:51:32 -07:00
Martin Diehl c51cf8d506 transferring post processing capabilities 2019-07-15 13:55:14 -07:00
Martin Diehl b6bb8a4650 simple strain calculation for DADF5
further enhancement requires to give optional arguments to
add_genericpontwise
2019-07-06 21:41:29 -07:00
Martin Diehl b6830b3ac1 Merge branch 'development' into even-more-HDF5-postprocessing 2019-06-14 10:28:22 +02:00
Martin Diehl cede188e76 enable to explicitly set the environment
required for running MPI processes when mpi4py is imported
2019-06-07 17:51:27 +02:00
Martin Diehl 1186bd16f5 Merge branch 'development' into even-more-HDF5-postprocessing 2019-06-04 22:39:10 +02:00
Philip Eisenlohr dff690611e fixed origin bug in VTK; VTK can be float; size defaults to 1 as longest dimension 2019-06-03 13:29:30 -04:00
Martin Diehl bf27505faa Merge branch 'development' into geometry-class 2019-05-31 16:21:50 +02:00
Martin Diehl 37de73535d following PEP style guide 2019-05-30 20:08:39 +02:00
Martin Diehl 4cb0ba3803 not needed anymore 2019-05-30 19:26:41 +02:00
Martin Diehl 46f0ad052e direct support for vtk output
- geom_check can now handle multiple files
- microstructure index is stored as integer in vtk file
2019-05-30 15:35:45 +02:00
Martin Diehl b00581f1be less picky on allowed datatypes 2019-05-30 13:29:29 +02:00
Martin Diehl 931fa9d36a standardized and cleaned
-write to file if given
-type casting is done in the geom class
2019-05-30 10:20:07 +02:00
Martin Diehl f30eda0267 no need to loop over files
will procude the same file over and over again
2019-05-30 09:32:37 +02:00
Philip Eisenlohr 17168525b6 use srepr in __repr__ 2019-05-29 18:14:30 -06:00
Martin Diehl 6e790e845a correct rescaling 2019-05-29 19:36:02 +02:00
Martin Diehl 669ca82ce1 formatted return message also on interactive shells 2019-05-28 09:05:10 +02:00
Philip Eisenlohr 1f56ac6a4a streamlining and bugfixing of geom-class 2019-05-27 22:45:34 -06:00
Martin Diehl b69f0efbbc improved and simplified reporting 2019-05-27 22:00:26 +02:00
Martin Diehl 615a4ab40f keep float datatype
based on the assumption, that no mixed float/int data is stored
2019-05-27 09:56:15 +02:00
Martin Diehl 6e06764e2d using (enhanced) central functionality 2019-05-27 08:38:02 +02:00
Martin Diehl b5cec797c0 cleaned 2019-05-26 23:03:31 +02:00
Martin Diehl c8dfba89e5 using class
still a very complex script
2019-05-26 22:49:05 +02:00
Martin Diehl 0da39b0c69 copy and paste error 2019-05-26 22:08:42 +02:00
Martin Diehl 0039ac9551 always add comment at beginning
usually, comments are related to the file history
2019-05-26 21:32:48 +02:00
Martin Diehl 7a500e77b1 not needed (DADF5 is the modern alternative) 2019-05-26 20:53:59 +02:00
Martin Diehl 07c9b8b8f0 avoiding unwanted changes 2019-05-26 20:28:19 +02:00
Martin Diehl feb2340935 self-reporting functionality for updating 2019-05-26 17:58:54 +02:00
Martin Diehl dcb79afc84 more user friendly errors 2019-05-26 12:03:21 +02:00
Martin Diehl be3513d1e0 polishing.
python imports follow PEP8
2019-05-26 09:49:56 +02:00
Martin Diehl 9f63d768de do not keep whitespaces 2019-05-25 13:48:38 +02:00
Martin Diehl 875643c363 same style 2019-05-25 10:24:45 +02:00
Martin Diehl 4788fc6046 making use of new class
@philip: 1D arrangement needed?
2019-05-25 08:37:02 +02:00
Martin Diehl cf374a04dc using new class 2019-05-25 08:21:00 +02:00
Martin Diehl 7b6003fb32 no need for numpy.loadtxt (not compatible with 'to' and 'of' compression 2019-05-25 08:17:51 +02:00
Martin Diehl 420abfa162 use new class 2019-05-24 22:34:27 +02:00
Martin Diehl f20c8fcffd easier generation and modificaton of grid geometries
fits better than the general ASCII table class
2019-05-24 22:30:25 +02:00
Martin Diehl a280f9a4a2 polishing 2019-05-23 17:26:38 +02:00
Martin Diehl f6dda99bfb more post processing functionality 2019-05-23 08:54:20 +02:00
Martin Diehl e7ca371b14 routines to do pointwise operations 2019-05-20 19:56:45 +02:00
Martin Diehl 118c74a268 enable materialpoint output again
accidently lost during a former commit
2019-05-16 22:01:12 +02:00
Martin Diehl 339b86f784 bugfix + more verbose reporting 2019-05-16 11:44:03 +02:00
Martin Diehl 9f7fa5393a fix for scalar datasets 2019-05-16 09:31:13 +02:00
Martin Diehl 3c0c0a2cd1 more flexible in selecting data 2019-05-16 00:27:06 +02:00
Martin Diehl c6863a6124 also consider homogenization/materialpoint results 2019-05-15 23:38:24 +02:00
Philip Eisenlohr 4c7af713f1 added explicit method Rotation.fromBasis, which can treat real and reciprocal basis sets 2019-05-14 12:59:21 -04:00
Martin Diehl f3c77cde87 Merge branch 'development' into MiscImprovements 2019-05-06 16:16:39 +02:00
Martin Diehl 9b0d3def1d small changes suggested by Franz 2019-05-05 22:38:06 +02:00
Martin Diehl 39cc9e35ae Merge branch 'development' into orientation_with_averaging 2019-05-05 22:12:09 +02:00
Martin Diehl ebf01dee4f store grid/size at geometry group
as outlined in the DAMASK results paper
2019-05-03 06:46:22 +02:00
Martin Diehl b8bf329a74 Merge branch 'development' into MiscImprovements 2019-04-30 00:02:35 +02:00
Martin Diehl 327a8ab757 more details 2019-04-28 12:04:11 +02:00
Martin Diehl c72518e52b reflects current temp files 2019-04-28 07:22:12 +02:00
Martin Diehl a5c620379b tools to build a python wheel distribution 2019-04-26 20:54:58 +02:00
Martin Diehl 1ccc967544 enables auto include 2019-04-26 19:24:22 +02:00
Martin Diehl 1b9355327a WIP: preparing for PIP package 2019-04-26 19:08:59 +02:00
Martin Diehl 009a47ad72 make python package independent from rest of DAMASK
https://packaging.python.org/guides/single-sourcing-package-version/
2019-04-25 20:05:42 +02:00
Martin Diehl 64c9a367c0 always install post processing scripts into {$DAMASK_ROOT}/bin
custom installation directions will be made available by more standard
approaches
2019-04-25 07:21:42 +02:00
Martin Diehl 53f6a4e030 too specific
- only works at MPIE
2019-04-25 06:00:56 +02:00
Martin Diehl 1330730717 inFZ needs 'proper' Rodriques--Franck vector 2019-04-19 09:04:54 +02:00
Martin Diehl b97f10b6ff forgotten changes in last commit + fromRandom 2019-04-19 08:17:02 +02:00
Martin Diehl feca9fe0a0 Again changes to the return values.
A python function with no return value returns 'None'
2019-04-19 08:04:04 +02:00
Martin Diehl 9a43c2e4c5 fixed return values
- homomorph, standardize, etc. are silent in-place operations (return
None)
- homomorphed, standardized, etc. are out-of place operations that
report
2019-04-19 01:05:48 +02:00
Martin Diehl 25518df80c fixes to quaternion class
- always store data as float (solves issues with truediv)
- fixed in-place multiplication and division
- consistent handling of "..ed()" functions
2019-04-19 00:44:12 +02:00
Philip Eisenlohr 4183eeaeca [skip ci] disorientation may return full-fledged orientation obj and aux info, added rotation.standardize(d) 2019-04-18 18:06:00 -04:00
Martin Diehl c4f56703a4 proper definition of homomorph 2019-04-18 17:11:51 +02:00
Martin Diehl 7570b187e7 do explicit homomorphing
only in cases when the underlying math cannot guarantee that the
resulting quaternion follows the convention
2019-04-18 16:26:05 +02:00
Martin Diehl e8464814ae explicit is better than implicit
- if the quaternion does not follow the convention, use
"fromQuaternion(acceptHomomorph=True)"
2019-04-18 14:46:12 +02:00
Martin Diehl 71b0036323 return rotation as misorientation 2019-04-18 14:26:53 +02:00
Martin Diehl 481aac7952 misorientation calculation did not always follow convention
- return homomorphed quaternion to ensure that real component is > 0
(equivalent to have axis angle limited to [0, pi]
2019-04-18 13:46:58 +02:00
Martin Diehl b746b841f7 not needed 2019-04-18 12:04:36 +02:00
Martin Diehl 6b7fd6b7ea visualizing data from DADF5: first prototype 2019-04-18 11:58:17 +02:00
Martin Diehl 7177813710 adding data to geometry 2019-04-17 19:57:16 +02:00
Martin Diehl fdd5b93e7c avoid FPE exceptions 2019-04-17 15:19:41 +02:00
Martin Diehl a6e6db0559 more stable/robust conversions 2019-04-17 12:52:48 +02:00
Martin Diehl 079e683dd1 disorientation returns Orientation, not Rotation 2019-04-17 10:48:18 +02:00
Martin Diehl 3f8c16262e fixed import statement
previous form only worked in python/damask folder
2019-04-17 09:45:18 +02:00
Martin Diehl 8609eb6eb7 improved names and layout 2019-04-17 09:34:49 +02:00
Martin Diehl c7c6627dfb don't try to figure out the input 2019-04-17 08:49:26 +02:00
Martin Diehl fa18200447 quaternion is now in separate module
avoid long modules with multiple, only loosely related classes
2019-04-17 08:46:03 +02:00
Martin Diehl d842902a76 consistent ordering
- qu, om, eu, ax, ro, ho, cu
2019-04-16 21:47:29 +02:00
Martin Diehl 8eb1a35dfb first version of a library to parse HDF5
- preliminarly called DADF5 (DAMASK HDF5)
- script to write (empty undeformed) geometries is also added
2019-04-13 11:25:53 +02:00
Philip Eisenlohr 3a7408a213 averaging possible for rotations and orientations; Rodrigues 3Dvector output only at top-level; code reordering 2019-04-12 09:03:47 -04:00
Philip Eisenlohr 3d6eb76da3 equivalentOrientations accepts scalar argument to directly return single rotation object (not single element list) 2019-04-11 19:07:41 -04:00
Philip Eisenlohr 2190c3ef46 fixed serious disorientation bug; sorted transformation functions 2019-04-11 18:32:07 -04:00
Philip Eisenlohr b8285d5749 restored orientation averaging capability 2019-04-11 17:23:04 -04:00
Martin Diehl 019d1a9c5c [skip ci] reference was wrong 2019-04-08 22:23:40 +02:00
Martin Diehl dd51945570 checking for input errors 2019-03-28 07:25:20 +01:00
Martin Diehl 85a535b99c is not used anymore 2019-03-07 22:35:43 +01:00
Martin Diehl 12587be595 was not used anymore
status bar can be used as a replacement, it does to flood log files as
extensively as the background thread
2019-03-07 20:48:09 +01:00
Philip Eisenlohr eada10548e [skip ci] no blank line after progress bars 2019-02-27 08:38:06 -05:00
Martin Diehl e88182b007 improved converte, now with test
still needs to figure out how +P is handled
2019-02-24 14:39:34 +01:00
Martin Diehl 56781dfa5b fiber was never used here and will be remove anyway
more user friendly formatting
2019-02-24 10:32:28 +01:00
Martin Diehl 73f6cb7020 fixed datatype 2019-02-24 09:12:21 +01:00
Martin Diehl d3ac3cc0f5 using new Orientation class 2019-02-24 08:34:20 +01:00
Martin Diehl 9dc8dff4b1 cleaning and adding compatibility layer 2019-02-23 22:35:04 +01:00
Martin Diehl b3455c825e transition to new orientation class
forward-backward conversion quite stable
2019-02-23 21:49:05 +01:00
Martin Diehl 93ae5cbd07 Merge remote-tracking branch 'origin/development' into 10-consistent-orientation-conversions-3 2019-02-22 23:05:36 +01:00
Martin Diehl 43376c39d8 addGrainID parses in quaternion 2019-02-22 11:25:39 +01:00
Martin Diehl 907f7ca560 transition to new class 2019-02-21 13:33:22 +01:00
Martin Diehl 88fc37d8a7 some more work on python3 compatible scripts 2019-02-15 16:22:52 +01:00
Martin Diehl 8b82941014 only Abaqus 2019 is available 2019-02-15 14:26:08 +01:00
Martin Diehl c50078bafc short version not needed any more
Abaqus version is year
2019-02-15 14:22:26 +01:00
Martin Diehl 608852df83 rotation paper has angle as last component 2019-02-12 10:58:38 +01:00
Martin Diehl 7da8980cc0 bugfixes: wrong shape, wrong conversion 2019-02-12 09:04:35 +01:00
Martin Diehl 336a80091f rodrigues is 4-vector with rotation being the last component
established a single source of truth for length
2019-02-12 08:59:26 +01:00
Martin Diehl 97ac437686 more user friendly constructors 2019-02-12 08:14:27 +01:00
Martin Diehl ef3fc0b58a bugfix: wrong array indexing
rotation of meshgrid tuple implemented
2019-02-12 07:42:46 +01:00
Martin Diehl 4215ae3888 rotation of matrix is defined in class 2019-02-12 06:32:26 +01:00
Martin Diehl e47c275e0c unknown encoding caused problem (on python2?) 2019-02-12 06:18:21 +01:00
Martin Diehl 48b0307fab using new rotation class
cannot rotate matrices (3,3) and (3,3,3,3) at the moment
2019-02-12 00:27:13 +01:00
Martin Diehl 7ee933b79d Rotation class
uses (and hides) Quaternion2. Should replace Quaternion class.
Orientation class should inherit from Rotation and adds symmetry.
2019-02-11 23:50:02 +01:00
Martin Diehl e931b716fd conversion routines from Marc de Graefs 3D rotation repository
Python version available on https://github.com/MarDiehl/3Drotations
2019-02-11 23:15:19 +01:00
Martin Diehl 40740b831e reverted code removal
was not "just commented out" but served as documentation. now easier to
see
2019-02-04 00:10:49 +01:00
Martin Diehl 9a4e9e62b6 using new rotation class 2019-02-01 20:28:51 +01:00
Martin Diehl 878331e5e9 this code was never used and is quite old 2019-02-01 19:29:19 +01:00
Philip Eisenlohr e6fe312f85 Corrected documented value for P (= -1!). Instead of repeating the assignment P=-1 in multiple internal functions, it might be advisable to define a class-wide parameter? 2019-02-01 14:04:55 +01:00
Martin Diehl 11a509970b some comments 2019-02-01 10:17:20 +01:00
Martin Diehl 45d11f81b0 python cleaning 2019-01-05 10:55:28 +01:00
Martin Diehl 02ab55d4b3 python reflects content better than lib 2019-01-05 10:52:39 +01:00