Commit Graph

3319 Commits

Author SHA1 Message Date
Sharan Roongta 776901cb81 microstructure --> material 2020-10-01 12:43:05 +02:00
Sharan Roongta 85b96209e3 use existing error description 2020-10-01 01:51:31 +02:00
Sharan Roongta 898306f82e sanity check for key mismatch 2020-09-30 23:33:09 +02:00
Martin Diehl a3674d9318 Merge remote-tracking branch 'origin/YAML-improvements' into development 2020-09-30 20:55:09 +02:00
Martin Diehl 57174d0aba do not store dPdF at the crystallite level 2020-09-30 11:23:49 +02:00
Martin Diehl 7f8613f6ad always update dPdF (was the default anyways) 2020-09-30 10:24:24 +02:00
Martin Diehl bd5d557fbb untangling the spaghetti
subLp and subLi are local variables
2020-09-30 06:14:24 +02:00
Sharan Roongta 15ef6c8ceb more fortran like 2020-09-30 01:50:10 +02:00
Sharan Roongta 385cda9224 remove unnecessary variables 2020-09-29 20:13:02 +02:00
Sharan Roongta 45b906906d test before reading config files 2020-09-29 20:07:33 +02:00
Sharan Roongta a61bf3bb26 file endings, file header can be added, take care of EOF 2020-09-29 19:55:25 +02:00
Franz Roters 63f2419e92 Merge branch 'crystallite-private-data' into 'development'
Crystallite private data

See merge request damask/DAMASK!241
2020-09-29 16:32:45 +02:00
Martin Diehl d0df748fc1 cleaning 2020-09-29 13:46:12 +02:00
Martin Diehl 587d5ee445 no need for two loops 2020-09-29 13:13:53 +02:00
Martin Diehl f1e96489cc better readable
somehow on the cost of the nonlocal performance
2020-09-29 12:56:12 +02:00
Martin Diehl c46b4d90a6 modularizing 2020-09-29 12:48:29 +02:00
Martin Diehl 3ad63cb966 don't open closed units (MPI) 2020-09-29 09:22:15 +02:00
Martin Diehl b5eaf2cb50 sorted 2020-09-29 09:03:58 +02:00
Martin Diehl c254472346 restrict write access 2020-09-28 19:26:46 +02:00
Martin Diehl d805887ef7 smaller, readable functions 2020-09-28 17:56:48 +02:00
Martin Diehl 20b393ac06 Merge branch 'development' into stress-ramp-loadcase 2020-09-28 09:36:38 +02:00
Philip Eisenlohr c982658b11 [skip ci] Avoid "error: type name is not allowed" 2020-09-27 22:42:40 +02:00
Philip Eisenlohr 7786a9892e [skip ci] Output 'worldsize' only after it has been determined... 2020-09-27 22:28:22 +02:00
Martin Diehl 002fe04d35 test for stress ramp 2020-09-26 12:09:45 +02:00
Martin Diehl 32b81770d9 shorter 2020-09-25 21:35:47 +02:00
Martin Diehl 8396af5aec not needed 2020-09-25 15:19:31 +02:00
Martin Diehl 421d4b8f37 forgotten renames 2020-09-25 15:12:56 +02:00
Martin Diehl 8081ed3693 Merge remote-tracking branch 'origin/development' into stress-ramp-loadcase 2020-09-25 15:05:45 +02:00
Sharan Roongta 08f5851c82 take care of empty lines in this slightly new setup 2020-09-25 10:59:03 +02:00
Martin Diehl 455e221a92 Merge branch 'variableName=ParameterName' into development 2020-09-25 10:53:01 +02:00
Sharan Roongta 21ff587e17 better logic 2020-09-25 04:52:03 +02:00
Sharan Roongta 0de54404ee skip empty lines; yaml file optional start/stop indicator can be added 2020-09-25 04:07:40 +02:00
Philip Eisenlohr 792e5045b8 fixed grid size assignments for MPI layers 2020-09-24 19:05:10 +02:00
Martin Diehl 79d672f4a7 cleaning 2020-09-24 17:04:06 +02:00
Martin Diehl f8816a6e0c Merge remote-tracking branch 'origin/development' into stress-ramp-loadcase 2020-09-24 16:57:07 +02:00
Sharan Roongta 40d28456af Merge branch 'development' into variableName=ParameterName 2020-09-24 13:13:19 +02:00
Martin Diehl 0f64954300 whitespace adjustment 2020-09-24 09:36:19 +02:00
Martin Diehl b995f34834 Merge branch 'development' into geom-fully-out-of-place 2020-09-23 22:50:20 +02:00
Martin Diehl fa413efcbb microstructure -> material 2020-09-23 21:25:14 +02:00
Martin Diehl cfeec53178 dataset is called 'material', not 'materialpoint'
avoid infinite loop in case it is not found
2020-09-23 21:10:39 +02:00
Sharan Roongta 50b43a7878 Merge branch 'development' into YAML-improvements 2020-09-23 16:03:15 +02:00
Sharan Roongta cc019f9af4 [skip ci] burgers ---> Burgers 2020-09-23 02:06:03 +02:00
Sharan Roongta c72240323e applied to lattice variables 2020-09-23 01:50:13 +02:00
Sharan Roongta fb908a5f56 homogenization modules made consistent 2020-09-23 01:33:19 +02:00
Sharan Roongta 13cbd1c42e all kinematics modules made consistent 2020-09-23 01:16:12 +02:00
Sharan Roongta 190b90d3d4 all source mechanisms covered 2020-09-23 01:08:13 +02:00
Sharan Roongta de3e13df88 improved parameter names 2020-09-23 00:55:19 +02:00
Sharan Roongta c8dcd4b4ae 'decide' function should handle everything
bug fixed in case of only flow yaml
2020-09-22 23:51:47 +02:00
Martin Diehl 881167a37c [skip ci] small whitespace adjustments 2020-09-22 19:26:39 +02:00
Sharan Roongta 0eef0cad0c all plastic laws covered 2020-09-22 18:11:09 +02:00
Sharan Roongta 711506df37 extended to phenopower law 2020-09-22 16:04:14 +02:00
Sharan Roongta ac54bd7eb5 extended to kinehardening 2020-09-22 15:26:34 +02:00
Sharan Roongta 8f3bb82b27 continue with parameter name change
Names with conflicts not changed yet
2020-09-22 15:09:16 +02:00
Sharan Roongta 87ae2447b9 variable name = parameter name 2020-09-22 14:35:05 +02:00
Martin Diehl 41fbc58c1b standard conforming name 2020-09-22 13:09:12 +02:00
Martin Diehl 53ce4e07d2 forgotten renames in subfolders 2020-09-22 13:02:33 +02:00
Martin Diehl f26c3ca1ea Merge branch 'development' into Fortran-simplifications 2020-09-22 12:45:18 +02:00
Martin Diehl 63f9078f04 don' hardcode output unit
replaced remaining write(6,..), flush(6) with write(OUTPUT_UNIT,...),
flush(OUTPUT_UNIT)
2020-09-22 12:15:36 +02:00
Martin Diehl 9ed9278183 polishing 2020-09-20 19:46:33 +02:00
Martin Diehl 329cc1c953 tighter tolerance for stress 2020-09-20 17:36:11 +02:00
Martin Diehl c4d0ac71a9 silences GNU10 compilation warning
only for 'DEFENSIVE'. Does not cause any harm
2020-09-20 17:15:39 +02:00
Martin Diehl 0a7d4f61ac Need only logical mask
'merge' substitutes multiplication with float mask
2020-09-20 16:54:58 +02:00
Martin Diehl 6367cb8fcb consistent handling of boundary conditions
A stress boundary condition 'P' indicates the stress at the end of the
load case (same as for 'F') 'Pdot' for given increase of (technical)
strain is not implemented.
Does not change anything for the most common case of zero-stress
boundary conditions, but simplifies the specification of stress ramps
2020-09-20 15:48:41 +02:00
Martin Diehl d584207e0a same layout for easy diff 2020-09-20 13:01:56 +02:00
Martin Diehl 8dfb972ac1 private is already default (module wide) 2020-09-20 11:49:20 +02:00
Martin Diehl 593a40b392 Merge branch 'Fortran-simplifications' into stress-ramp-loadcase 2020-09-20 11:42:04 +02:00
Martin Diehl 053c3f39ea solution completely relies on state defined by 'forward' 2020-09-19 23:40:17 +02:00
Martin Diehl 42186b9f87 fixed typo 2020-09-19 22:08:38 +02:00
Martin Diehl c108b4df66 concise description 2020-09-19 11:41:16 +02:00
Martin Diehl d0b5905544 remaining write(6,...) without advance='no' 2020-09-19 11:02:40 +02:00
Martin Diehl 139eecec0a polishing 2020-09-19 10:56:41 +02:00
Martin Diehl 1d2e9324f1 do not rely on 6=STDOUT, 0=STDERR 2020-09-19 10:51:07 +02:00
Martin Diehl c34bf83e35 variable names better reflect their content 2020-09-19 10:27:15 +02:00
Martin Diehl 201303f35f clarified logic 2020-09-19 10:00:49 +02:00
Martin Diehl c4ce28e63f untangling 2020-09-19 09:41:48 +02:00
Martin Diehl 51f43ddc09 small polishing 2020-09-19 09:24:27 +02:00
Martin Diehl c6c34ccf7e Merge remote-tracking branch 'origin/development' into stress-ramp-loadcase 2020-09-19 08:46:38 +02:00
Martin Diehl e639fa981d Merge remote-tracking branch 'origin/development' into Fortran-simplifications 2020-09-19 08:30:22 +02:00
Martin Diehl cc92b0ad84 print is more appropriate than write 2020-09-19 08:29:50 +02:00
Philip Eisenlohr 6880ad42c1 Merge branch 'Marc-use-statev-2' into 'development'
Marc use statev 2

See merge request damask/DAMASK!223
2020-09-18 16:46:20 +02:00
Martin Diehl 4a913c83e5 simplified print and format strings 2020-09-17 22:57:56 +02:00
Martin Diehl e848590c5c Merge remote-tracking branch 'origin/development' into Fortran-simplifications 2020-09-17 19:39:31 +02:00
Martin Diehl 797073b015 print choses output unit automatically, no need to rely on 6
also shorter...
2020-09-17 19:28:41 +02:00
Vitesh b51a1b7b93 Merge branch 'Marc2020' into 'development'
Marc2020

See merge request damask/DAMASK!226
2020-09-17 10:52:26 +02:00
Franz Roters fe58a56e17 Merge branch 'development' into Marc2020 2020-09-16 16:13:35 +02:00
Franz Roters b09b500159 Merge branch 'development' into Marc2020 2020-09-16 09:00:02 +02:00
Martin Diehl 1ff098d004 Merge remote-tracking branch 'origin/development' into Fortran-simplifications 2020-09-15 19:36:59 +02:00
Martin Diehl 5b104417a9 polishing 2020-09-15 19:36:21 +02:00
Martin Diehl b83f2e5444 Merge branch 'development' into Marc-use-statev-2 2020-09-15 07:41:38 +02:00
Martin Diehl 50599bc5c5 Merge branch 'development' into fix-vtr-sanity-check 2020-09-15 07:20:44 +02:00
Philip Eisenlohr df548e95fc [skip ci] added reference to explain Fp_0 = O_0 2020-09-14 15:11:48 +02:00
Martin Diehl a2e9420336 boundary conditions to not change during iteration 2020-09-14 14:58:44 +02:00
Martin Diehl 89f25eb7d7 use reasonable tolerances for checking regular grid spacing 2020-09-14 14:06:09 +02:00
Martin Diehl 3ebba9b3c0 more sensible locations for reporting 2020-09-13 21:21:55 +02:00
Martin Diehl 5558d95886 print is better suited for output to screen then write 2020-09-13 21:15:08 +02:00
Martin Diehl 0153bca277 better print then write
- shorter, always writes to STDOUT

also, report only details (paper) of active models
2020-09-13 21:00:34 +02:00
Martin Diehl 84b9104302 clearly indicate origin of functions
also supresses (flawed) error message of gfortran related to
non-standard type 'bytes'
2020-09-13 20:14:34 +02:00
Martin Diehl f266def906 Merge branch 'vtr-as-input' into Fortran-simplifications 2020-09-13 19:34:48 +02:00
Philip Eisenlohr 507910ffcd improved language/descriptions 2020-09-13 18:32:49 +02:00
Martin Diehl bb6b91e857 simpler 2020-09-13 13:04:54 +02:00
Martin Diehl b497ec4371 use print instead of write
https://www.scivision.dev/print-vs-write-fortran/
2020-09-13 13:01:38 +02:00
Martin Diehl 7d929122af forgotten renames 2020-09-13 12:45:35 +02:00
Martin Diehl 22544d6978 systematic naming 2020-09-13 12:43:49 +02:00
Martin Diehl c14241a8e9 no need to store variables that are used only during init 2020-09-13 12:31:01 +02:00
Martin Diehl 316c5f7d20 internal errors (do not depend on user input) 2020-09-13 12:20:44 +02:00
Martin Diehl 0f0dfb4c04 0-base counting for MPI 2020-09-13 12:13:59 +02:00
Martin Diehl e6dd118a1d not needed anymore 2020-09-13 12:11:26 +02:00
Martin Diehl 5b83c8ad3c use 'error stop'
- does not require IO
- prints stack trace
2020-09-13 12:09:32 +02:00
Martin Diehl 16f8df3420 standard "docstring"
- start with capital
- active form
- end with full stop
2020-09-13 11:32:36 +02:00
Martin Diehl 3c5b89ac78 not needed anymore 2020-09-13 11:28:48 +02:00
Martin Diehl 07f23d3d1d no need for alias 2020-09-13 11:21:43 +02:00
Martin Diehl 74b35f5612 short numpy name 2020-09-13 11:18:57 +02:00
Martin Diehl e5c2382f73 missing renames ... 2020-09-13 11:17:49 +02:00
Martin Diehl 38a4118dc5 prefix to global variables increases readability 2020-09-13 11:05:42 +02:00
Martin Diehl b499578a95 prefix should be name of the module
poor substitute for namespace
2020-09-13 10:39:17 +02:00
Martin Diehl da0e16520c handling of MPI in 'parallelization' 2020-09-13 10:26:33 +02:00
Martin Diehl e2ded43636 polishing
- unified style (CamelCase)
- more sanity checks
- simplified determination of grid
2020-09-13 06:58:34 +02:00
Martin Diehl 81063046c4 improved error handling, potentially faster algorithm 2020-09-12 22:55:30 +02:00
Martin Diehl 126ef8be9f separating functionality
- config: reads config files
- parallelization: determines parallelization environment
2020-09-12 16:25:58 +02:00
Martin Diehl a46b888cff WIP: introducing separate module for parallelization 2020-09-12 16:07:49 +02:00
Martin Diehl 3f9e9a120a simplified 2020-09-12 15:56:59 +02:00
Martin Diehl 7b414454f0 nicer reporting 2020-09-12 15:42:03 +02:00
Martin Diehl 307b1b20cc forgotten rename for ifort workaround 2020-09-12 15:26:16 +02:00
Martin Diehl 767e0506df older Fortran compilers are not supported anymore 2020-09-12 15:05:07 +02:00
Martin Diehl 566ab7e7d9 reading in VTR files
will replace geom file in the near future
2020-09-12 14:43:04 +02:00
Martin Diehl a6ac875db8 short and clear names for integer precision 2020-09-12 11:02:39 +02:00
Martin Diehl 7a6ada9ad7 clearer name 2020-09-12 08:47:46 +02:00
Franz Roters c5bce78faf [skip ci] corrected error number 2020-09-10 08:55:56 +02:00
Philip Eisenlohr d7932aeacb Merge branch 'vtr-as-input-prerequisites' into 'development'
prerequisites for using VTR as input format for spectral solver

See merge request damask/DAMASK!214
2020-09-09 18:13:09 +02:00
Martin Diehl a5f9ef118a feature complete test 2020-09-09 12:38:02 +02:00
Martin Diehl 85d9e843f0 better readable 2020-09-09 07:50:12 +02:00
Martin Diehl 95af422d5f complain about invalid microstructure
many error messages are not needed any more
2020-09-08 23:49:44 +02:00
Martin Diehl b1b556fc08 Merge remote-tracking branch 'origin/development' into Marc-use-statev-2
PRIVATE repository is synced again (including changes to RGC test)
2020-09-08 23:24:57 +02:00
Martin Diehl 0368fdafc1 keyword was missing 2020-09-08 23:21:45 +02:00
Martin Diehl 6d42d13321 Merge branch 'base64-simplification' into vtr-as-input-prerequisites 2020-09-08 23:16:53 +02:00
Martin Diehl fb68d430ec decode only relevant part of the base64 string 2020-09-08 23:15:43 +02:00
Sharan Roongta f38e32572f Merge branch 'modernize-testing' into development 2020-09-08 12:30:13 +02:00
Martin Diehl a70819e458 simplified base64 encoding
- ensure valid Base64 string (needs to be padded correctly)
- background routine expects proper Base64 string (length = N*4)
- user routine ensures correct length of byte representation
2020-09-08 10:36:22 +02:00
Martin Diehl 049ad4e202 simplify base64 handling
require valid base64 string, which allows to calculate output size
automatically
2020-09-08 07:03:23 +02:00
Martin Diehl 1f28592fcd improved documentation
Python/numpy style: Active description, start with capital, end with
full stop
2020-09-08 06:55:04 +02:00
Martin Diehl 43e9ea352a typo 2020-09-08 05:56:10 +02:00
Martin Diehl cfad4a71f6 clearer logic 2020-09-08 05:56:01 +02:00
Franz Roters 44f5f2cc01 only statevar 2 is used for material definition 2020-09-07 17:01:38 +02:00
Martin Diehl d176a89c78 ensure defined initital state 2020-09-07 13:20:00 +02:00
Martin Diehl 751bf7862d variable name = parameter name 2020-09-07 11:48:26 +02:00
Martin Diehl 2f7414de22 only m=1 makes sense for isobrittle 2020-09-07 11:46:12 +02:00
Martin Diehl 3fdcebc0a0 following python recommendation
functions have "active" docstring
2020-09-06 17:50:32 +02:00
Martin Diehl 9ce406ed11 wrapper for zlib library
assume that zlib is available for linking. This is usually the case
(zlib is a stable standard library), but there is currently no check
that gives a nice error message or the possibility to use zlib from a
non-standard location
2020-09-06 17:49:00 +02:00
Martin Diehl a931625be0 functionality to decode base64 strings into bytes 2020-09-06 17:44:02 +02:00
Martin Diehl 54207760db conversion byte -> float/int with 4/8 byte length 2020-09-06 17:36:05 +02:00
Martin Diehl d66cdc8324 fixed incomplete rename 2020-08-30 06:52:15 +02:00
Martin Diehl 80b84cf76a fixed hickup of state variables
two times the wrong location resulted in the correct behavior before
2020-08-29 23:37:59 +02:00
Martin Diehl 23bf51cca0 homogenizationAt from discretization not needed anymore 2020-08-29 16:45:18 +02:00
Martin Diehl 44bb99c57a not needed 2020-08-29 16:34:19 +02:00
Martin Diehl 4fe4190ee0 mapping renamed
now we have two mappings, 'phase' and 'homogenization'. They `unwind`
the definition in 'materialpoint' in 'material.yaml'. Since we
never introduced the inverse mapping, I have removed the cellResults
subfolder.
2020-08-25 11:02:51 +02:00
Martin Diehl 55443a3ff5 reflect change of variable names in file layout version 2020-08-24 22:54:09 +02:00
Martin Diehl 8ef473b71c new names in output
- constituent -> phase
- materialpoint -> homogenization

this gives a one-to-one correspondence to the material.yaml definition

next steps
1) adjust damask.Result python class
2) implement materialpoint output (homogeneous over the whole domain)
   for homogenized quantities (currently T,F,P,phi)
2020-08-24 19:22:53 +02:00
Sharan Roongta 7754a1ea56 Restructuring for material.yaml 2020-08-15 16:08:46 +02:00
Philip Eisenlohr c1358294f7 Corrected Kirchoff --> Kirchhoff 2020-08-12 15:14:00 -04:00
Martin Diehl e6f1b17149 Gfortran 8 failed with
At line 115 of file DAMASK/src/system_routines.f90
Fortran runtime error: Unequal character lengths (93/52) in MERGE intrinsic

not sure whether this is a false alarm or not ...
2020-08-09 08:53:10 +02:00
Martin Diehl 68bf21c900 can use string of dynamic length 2020-08-09 06:40:43 +02:00
Martin Diehl 93adee2581 no need to have fixed string here 2020-08-09 06:27:29 +02:00
Martin Diehl 28bc1fae50 don't repeat code 2020-08-09 06:17:14 +02:00
Martin Diehl 2db8ba13fc better reporting: show small values 2020-08-08 20:01:32 +02:00
Franz Roters 8f79338889 support for Marc2020
Mentat does not work for now
2020-08-01 12:03:12 +02:00
Martin Diehl c55e6edbf3 removed duplicate 2020-07-25 09:59:22 +02:00
Martin Diehl 86bef605e3 polishing 2020-07-24 23:40:42 +02:00
Martin Diehl 3ed1850d68 calculate R directly from F
no detour via inverse of U/V needed.
Determinant of R seems to deviate less from 1.0 with this version
2020-07-24 23:08:05 +02:00
Martin Diehl 0f2c0cf4b2 indentation fix 2020-07-24 22:44:41 +02:00
Martin Diehl 57b4236be8 more stable version
tests need to consider that quaternion definition is not unique for
Re(q) = 0.
2020-07-24 22:43:59 +02:00
Martin Diehl ed16cb087e Merge branch 'development' into marc-python-modifications 2020-07-22 14:10:56 +02:00
Franz Roters fb02c69ac2 Merge branch 'Marc-IP-neighborhood' into 'development'
Marc ip neighborhood

See merge request damask/DAMASK!192
2020-07-20 11:07:04 +02:00
Martin Diehl 4860f9c9ce drop support for parallel marc versions
can still be handled by the user, but is a niche use case
2020-07-18 09:51:53 +02:00
Franz Roters d47273f564 Merge branch 'Marc-2019.1' into 'development'
Marc 2019.1

See merge request damask/DAMASK!191
2020-07-17 15:48:11 +02:00
Martin Diehl d8e112c042 phaseAt needs constituent/element tuple
constituent is always 1 for nonlocal
2020-07-16 23:38:37 +02:00
Martin Diehl ec56316683 IPneighborhood for MSC.Marc
tested for 8 ip hexahedaron
2020-07-16 15:26:00 +02:00
Martin Diehl e1b018c47a symlink was missing 2020-07-16 09:34:53 +02:00
Martin Diehl 190c9a1b0d Merge branch 'misc-improvements' into Marc-2019.1 2020-07-16 09:28:11 +02:00
Sharan Roongta 98d0da8e31 Merge branch 'development' into using-submodules 2020-07-16 00:13:41 +02:00
Vitesh f0fdcd0dee Merge branch 'misc-improvements' into 'development'
Misc improvements

See merge request damask/DAMASK!189
2020-07-15 19:15:29 +02:00
Sharan Roongta 50a7caa61a cleaning 2020-07-15 14:35:21 +02:00
Sharan Roongta 78eee9fe96 unnecessary debug output 2020-07-15 00:54:16 +02:00
Franz Roters 78c1b9c745 Marc 2019.1 is new standard version 2020-07-14 12:10:43 +02:00
Martin Diehl b16508dd6c clean namespace 2020-07-14 07:40:42 +02:00
Martin Diehl 133aa9111c small polishing 2020-07-14 07:18:32 +02:00
Martin Diehl 2b58b3df97 closer to thoroughly tested python code
but with extra safety measures to prevent invalid operations
2020-07-14 06:55:40 +02:00
Martin Diehl 9f79faf819 using tolerances as in python results in invalid operations 2020-07-13 22:48:08 +02:00
Martin Diehl 8de3b67c26 no silent crash 2020-07-13 21:13:53 +02:00
Martin Diehl fcaa319f56 polishing 2020-07-13 14:48:23 +02:00
Martin Diehl 696da9865b Merge branch 'development' into misc-improvements 2020-07-13 13:56:04 +02:00
Martin Diehl dbca47f113 better handling of corner cases
copy and paste from python code
2020-07-13 12:38:21 +02:00
Sharan Roongta 0067b44a0d wrong logic 2020-07-12 18:38:52 +02:00
Sharan Roongta 70fb68d224 cleaning 2020-07-12 16:44:26 +02:00
Sharan Roongta debe096a53 results placed where it belongs; cleaning 2020-07-12 15:22:40 +02:00
Sharan Roongta 5602abe690 generic interfaces makes sense 2020-07-12 13:27:28 +02:00
Sharan Roongta 3a5e3b36c1 better function name, crystallite should not know which physics is involved 2020-07-12 13:04:26 +02:00
Sharan Roongta 77567bd398 To circumvent Marc internal compiler error 2020-07-10 23:41:56 +02:00
Sharan Roongta 3563bce6cb better 2020-07-10 19:17:54 +02:00
Sharan Roongta 4145ac90d7 more cleaning 2020-07-10 18:19:07 +02:00
Sharan Roongta 80fb571fb4 common functions to be clubbed together 2020-07-10 17:10:23 +02:00