Commit Graph

441 Commits

Author SHA1 Message Date
Martin Diehl a3a3388855 decouple DAMASK default integer from MPI default integer 2022-01-13 10:25:45 +01:00
Martin Diehl 8223dc7fa7 polishing
MPI, HDF5, PETSc, and DAMASK might have different integer kinds ..
2022-01-13 08:17:31 +01:00
Martin Diehl 3fb5bd459c pInt leftovers 2022-01-13 07:44:15 +01:00
Sharan Roongta 236f0297ac test added 2022-01-12 20:42:37 +01:00
Sharan Roongta e80d91e30a thermal restart (WIP) 2022-01-11 16:11:18 +01:00
Martin Diehl 1e965c42b7 don't rely on ML
avoid dependencies to external packages as much as possible
2021-12-27 17:44:22 +01:00
Martin Diehl 1ddf1e5694 support for PETSc with 64bit integers
compiles, but untested
2021-12-21 23:53:46 +01:00
Martin Diehl 6ba2a08e5a easier to read 2021-12-11 11:50:40 +01:00
Martin Diehl f51633d43a forall is deprecated
do concurrent is the successor but ifort had problems and generated
faulty code
2021-12-11 09:01:42 +01:00
Martin Diehl 7d7d0c2659 only local variable are good variables 2021-12-11 08:49:30 +01:00
Martin Diehl 2f067b544e use variables, not descriptors 2021-12-06 07:55:13 +01:00
Nikhil Prabhu 96e4cb591c Merge branch 'integer-exponents' into 'development'
Using integer exponent

See merge request damask/DAMASK!467
2021-11-29 07:32:04 +00:00
Philip Eisenlohr a531b7ccae transitioned remaining real exponents to int 2021-11-28 12:46:26 -05:00
Martin Diehl ccd6e44b6b Merge remote-tracking branch 'origin/development' into 134-output_none 2021-11-27 19:17:27 +01:00
Martin Diehl bfc6b69ee2 integer exponents: faster and shorter 2021-11-25 20:52:22 +01:00
Philip Eisenlohr 43ae4983ed fixed misaligned/too short "writing..." statements 2021-11-15 12:58:59 -05:00
Philip Eisenlohr 69843d0833 Merge branch 'development' into pretty-print-init 2021-11-15 12:39:14 -05:00
Philip Eisenlohr da9fdf53d2 consistent indentation and line-spacings in reporting 2021-11-15 12:35:44 -05:00
Nikhil Prabhu 64d70d9be3 user option to have no output
f_out = none
2021-11-15 14:39:29 +01:00
Martin Diehl b7ad5b3167 'standard' style 2021-11-10 20:53:20 +01:00
Philip Eisenlohr 186b688b04 only look for opening part of <CellData> tag 2021-11-09 15:10:19 -05:00
Martin Diehl 256c48831e better readable 2021-10-19 23:08:21 +02:00
Martin Diehl 29431eb8c5 same reporting as in python 2021-09-12 21:55:14 +02:00
Martin Diehl 949eea1624 bugfix: did not work with VTK 8 2021-09-01 11:07:39 +02:00
Martin Diehl 4160c4fdb4 fix for parallel HDF5
if filters are applied, writing from one process does not work if the
file is opened for parallel write
2021-08-15 13:26:15 +02:00
Philip Eisenlohr f75235f6a9 Merge branch 'more-flexible-L' into 'development'
more flexibility for the L in the load case

See merge request damask/DAMASK!420
2021-08-09 21:27:13 +00:00
Martin Diehl 044a048944 taking care of corner cases (e.g. restart)
adjusting tests to take care of new 'setup' group
2021-08-01 22:46:11 +02:00
Martin Diehl b9d4eb23cc only rank 0 reads file for MPI 2021-07-27 08:54:17 +02:00
Martin Diehl 812b0f07f5 read file only once (per process) 2021-07-27 08:35:52 +02:00
Martin Diehl ddb0429a1d store load case (full reproducibility for grid solver) 2021-07-27 07:57:04 +02:00
Martin Diehl e01d271ee4 store geometry (for full reproducibility) 2021-07-27 07:43:35 +02:00
Martin Diehl 574cfd7034 Merge remote-tracking branch 'origin/development' into more-flexible-L 2021-07-22 00:20:33 +02:00
Martin Diehl 9d349f8a7c symbolic notation 2021-07-21 06:50:28 +02:00
Martin Diehl 6f19113072 L, P, F, etc. are second order tensors 2021-07-21 06:19:04 +02:00
Martin Diehl 85735605f8 more flexibility for the L in the load case
Note that mixed boundary conditions for L introduce an ambiguity.
Consider:

L = [[1.0, x, x],
     [  0, 0, 0],
     [  0, 0, 0]]
P = [[x, 0, 0],
     [x, x, x],
     [x, x, x]]

What we need is F^(n+1)=F_dot^(n+1) x Delta_t, where F_dot^(n+1) is
F_dot^(n+1)_ij = L_ik F^n_kj.

So component F_11 has contributions from L_12 and L_13. We first assume
L_12=L_13=0 and then choose F^(n+1)_12 and F^(n+1)_13 to get
P_12=P_13=0. This implicitly gives a solution for L_12 and L_13, which
is however only one out of infinitely many.
2021-07-20 07:10:28 +02:00
Martin Diehl 03b7532cc5 numpy.MaskedArray behavior 2021-07-19 23:27:10 +02:00
Martin Diehl 1c1dc9383e symbolic names 2021-07-19 22:30:20 +02:00
Martin Diehl f9edeb40a5 descriptive names 2021-07-17 11:50:21 +02:00
Martin Diehl ed6b1be352 solver handles terminally ill 2021-07-16 20:43:08 +02:00
Martin Diehl 2a84aa7ae4 obvious, no need for comment 2021-07-16 20:32:21 +02:00
Martin Diehl 5f78f1753c split up thermal
only for grid at the moment
2021-07-16 18:03:38 +02:00
Martin Diehl 3f0eafd640 first step towards separating of mechanics, thermal, and damage 2021-07-16 17:53:11 +02:00
Martin Diehl 2f1fa8292b unify style to majority of occurences 2021-07-16 10:30:45 +02:00
Martin Diehl 136a4b1377 PETSc defines are rather complicated
now mpi_f08 can be used on newer PETSc installations if old MPI modules
are not exposed
2021-07-09 18:48:25 +02:00
Martin Diehl 637f78bd52 old name (for PETSc < 3.15) 2021-07-09 14:50:29 +02:00
Martin Diehl 8e75e87ad9 Merge branch 'MPI_F08' into polishing-for-beta 2021-07-09 11:32:32 +02:00
Martin Diehl 139f2c177a use MPI_f08 if possible
most PETSc installations provide outdated MPI (f90 version)

MPI_COMM_WORLD is now of derived type (Fortran 08 style)
PETSC_COMM_WORLD is the plain integer (f90 style) alias.
Note that HDF5 is assumed to have f90 interfaces
2021-07-08 16:27:37 +02:00
Martin Diehl 58bc6e2ba6 avoid chained inclusions 2021-07-08 14:27:04 +02:00
Martin Diehl a13e02da44 easier to follow 2021-07-06 22:33:12 +02:00
Martin Diehl 06e76c1a81 consistent default absolute tolerances
better use conservative values, users can easily relax if needed
2021-06-25 10:13:03 +02:00
Martin Diehl ae9a48c124 polishing 2021-06-24 15:23:24 +02:00
Martin Diehl 1bfbd30ae2 polishing 2021-06-15 19:53:05 +02:00
Martin Diehl 218e6a79a8 VTK image data is the appropriate type, not VTK rectilinear grid
FFTs require constant spacing in all three directions, this is
guaranteed by the vtkImageData but not by vtkRectilinearGrid
2021-06-15 19:02:26 +02:00
Martin Diehl 3705f1d3a2 F,P, ... in loadcase are 2nd order tensors 2021-06-03 08:21:16 +02:00
Martin Diehl 5d0fc4fca3 more meaningful order
and intent(out) variables for read are at the front
2021-06-01 16:46:24 +02:00
Sharan Roongta d1a6607782 Merge branch 'load2Dtensor' into 'development'
support for 2D tensor in load case

See merge request damask/DAMASK!391
2021-05-29 13:21:47 +00:00
Martin Diehl adb1e51e24 support for 2D tensor in load case
currently optional, but should become mandatory after a transition
period
2021-05-26 08:04:14 +02:00
Martin Diehl d2855913b5 new mappings 2021-05-22 11:48:42 +02:00
Martin Diehl c8cdd7e622 better numerical parameters for thermal solver/PETSc
works for realistic values for thermal problems
parameters copied from spectral_damage
2021-05-05 18:14:53 +02:00
Martin Diehl 887524bcc1 polishing 2021-04-11 16:09:29 +02:00
Martin Diehl b67e837548 needs broadcast, otherwise rank>0 fail 2021-04-11 09:58:40 +02:00
Martin Diehl 547f2ffa69 cleaning 2021-04-11 09:46:11 +02:00
Martin Diehl 5f608ed572 only 2 and 3 dimension can be 1 2021-04-09 08:25:30 +02:00
Martin Diehl 1b89032086 names as in DAMASK paper 2021-04-08 23:45:26 +02:00
Martin Diehl c4765d3742 following paper 2021-04-08 13:31:21 +02:00
Martin Diehl d59051f576 systematic names 2021-04-07 22:42:10 +02:00
Martin Diehl 0fc7f66ef8 consistent names 2021-04-07 21:25:11 +02:00
Martin Diehl c53927ad6f not needed 2021-04-07 08:47:46 +02:00
Martin Diehl 1fbf14c148 encapsulation and namespace-like names 2021-04-07 07:53:24 +02:00
Martin Diehl 2e96fcf768 Merge branch 'development' into spring-cleaning 2021-03-29 07:26:17 +02:00
Martin Diehl 710f5b74b2 Merge remote-tracking branch 'origin/development' into 2d-table-yaml 2021-03-29 00:00:39 +02:00
Martin Diehl 0072ebfa64 polishing 2021-03-27 23:17:04 +01:00
Martin Diehl 7072ab0984 non-converging simulation is an error 2021-03-27 17:07:36 +01:00
Martin Diehl 6a2c107723 consistent names for debugging 2021-03-26 12:34:16 +01:00
Martin Diehl 4cc0dedf9f Merge branch 'avoid_data_copy_restart_MPI' into spring-cleaning 2021-03-26 08:58:44 +01:00
Martin Diehl 7320120c5d Merge branch 'development' into avoid_data_copy_restart_MPI 2021-03-26 08:58:03 +01:00
Martin Diehl a72e2db678 Merge branch 'development' into output-rename 2021-03-25 21:03:20 +01:00
Martin Diehl 3b392281e4 consistent naming in HDF5 output 2021-03-25 19:22:59 +01:00
Sharan Roongta fc172921fb unified citation style continued 2021-03-19 10:41:47 +01:00
Martin Diehl 07d79ef4ba unifying style 2021-03-17 11:25:21 +01:00
Vitesh Shah 4912342b1b added missing arguments 2021-03-15 11:46:30 +01:00
Vitesh Shah a59af55f1a read data by one process and broadcast it 2021-03-15 10:58:59 +01:00
Sharan Roongta ce91537b0f get_asXXs --> get_as1dXX 2021-03-11 18:40:16 +01:00
Vitesh Shah adcb24d2e1 write data of average quantities non parallel 2021-03-10 16:33:02 +01:00
Philip Eisenlohr e4271537c5 syntax polishing; use of YAML defaults to avoid if%contains 2021-03-04 15:14:16 -05:00
Martin Diehl 2f68c43755 new style configuration for damage 2021-03-01 06:16:16 +01:00
Martin Diehl 8af0c8dbc3 using initial temperature from load case file 2021-02-28 21:51:07 +01:00
Martin Diehl 0cde43198f modernizing:
- 'pass' for dummy thermal homogenization
- setting temperature in load case
2021-02-28 20:49:51 +01:00
Martin Diehl ef543a5b49 thermal solver is defined in load case
not in numerics.yaml
2021-02-28 20:09:08 +01:00
Martin Diehl b2fea6b149 solver not specific to load case number 2021-02-28 19:24:44 +01:00
Martin Diehl 4dd99d4c39 solver is selected in load case, not numerics.yaml 2021-02-28 19:13:20 +01:00
Sharan Roongta 9679c5403e continue with cell based map (solver + homog) 2021-02-23 15:44:58 +01:00
Sharan Roongta 5348305ac8 restart key part of loadstep and not time discretization 2021-02-22 14:42:54 +01:00
Sharan Roongta 4d5e5cfb70 Merge branch 'fix-IntelMPI' into 'development'
Bugfix for access of unallocated variable

See merge request damask/DAMASK!342
2021-02-22 12:40:37 +00:00
Vitesh d54e49e3bc restore functionality to write non-parallel
not needed at the moment, but in general useful. If PETSc = parallel
should always hold, we can simplify much more
2021-02-22 13:37:21 +01:00
Martin Diehl 6c7201610e Bugfix for access of unallocated variable
IntelMPI seems to access sendbuf for root!=0 in MPI_Scatterv
2021-02-17 17:56:39 +01:00
Martin Diehl 4eb2a981ca keeping variables local 2021-02-12 15:31:43 +01:00
Martin Diehl e855083964 systematic names 2021-02-11 14:19:04 +01:00
Franz Roters 8048d69a97 [skip ci] logic inverted 2021-02-05 16:59:28 +01:00
Sharan Roongta ba2e8b3c63 variable name follows label 2021-02-05 11:57:18 +01:00
Sharan Roongta a1a7a339d4 specify solver,initial and boundary conditions in load file 2021-02-05 11:20:28 +01:00
Sharan Roongta 2e173b4b7b 'estimate_rate' better describes what we want to do than 'drop_guessing'
true by default
2021-02-04 19:17:32 +01:00
Martin Diehl b58465415b store damage parameter like temperature 2021-01-24 18:20:47 +01:00
Martin Diehl 26c7969837 not needed anymore 2021-01-24 17:12:34 +01:00
Martin Diehl c2ae2c919b use new structure 2021-01-24 15:19:57 +01:00
Martin Diehl e22d76be9e using new structure for thermal 2021-01-24 13:26:01 +01:00
Martin Diehl 4f059910ab fix broken statistics reporting in case of multi-physics 2021-01-24 10:39:32 +01:00
Franz Roters 6fe8077b81 Merge remote-tracking branch 'origin/separate-damage' into development 2021-01-22 14:25:32 +01:00
Franz Roters da93031cbc Merge branch 'signal_input_handling_1' into 'development'
Enabling signal input handling in DAMASK

See merge request damask/DAMASK!325
2021-01-22 14:07:09 +01:00
Martin Diehl 32bb0d8c6e new variables for damage 2021-01-20 21:37:43 +01:00
Martin Diehl a2b5178b45 polishing 2021-01-17 21:56:19 +01:00
Martin Diehl 8af53472ee Merge remote-tracking branch 'origin/development' into signal_input_handling_1 2021-01-17 16:52:48 +01:00
Martin Diehl d2ae859b1c use new structure 2021-01-17 15:26:01 +01:00
Martin Diehl 6b452a73bb not needed 2021-01-17 12:45:28 +01:00
Martin Diehl 9b698e78c1 standard name 2021-01-17 12:35:47 +01:00
Martin Diehl b5bfb1dba9 tangent is not included anymore 2021-01-11 16:34:43 +01:00
Martin Diehl 350466dd5f not needed 2021-01-08 09:01:38 +01:00
Martin Diehl e8ea815d92 simplified 2020-12-27 11:48:02 +01:00
Martin Diehl 0a3d43e0fc only one process gets the signal: use OR, not AND 2020-12-17 15:17:20 +01:00
Martin Diehl d83e8dac59 need to share variable before if 2020-12-17 13:20:18 +01:00
Vitesh Shah da1b006315 MPI communication for SIGUSRXXX 2020-12-17 12:47:33 +01:00
Martin Diehl 3884549e19 store field variables as 1D array
first step of simplifying layout:
1) Solver translates from ip,el tuple (FEM) or cells(1),cells(2),cells(3) triple to list.
2) DAMASK iterates over all points
3) homogenization knows mapping (point,constituent) -> (instance,member)
2020-12-16 21:56:02 +01:00
Martin Diehl f8756ad95a simplifying
no extral handling for homogeneous temperature (the memory that was
saved was consumed by the extra mapping)
2020-12-15 19:05:01 +01:00
Martin Diehl afbcb82502 Merge remote-tracking branch 'origin/development' into misc-improvements 2020-12-15 10:32:59 +01:00
Martin Diehl 2dd520b4a2 P_aim should be independent from P_av
P_av is not defined after restart or cutback. Restart with change of
load case is probably still an issue
2020-12-15 08:06:50 +01:00
Martin Diehl 8fbadef524 print instead of write 2020-12-14 22:37:14 +01:00
Vitesh Shah 768d139768 reset the signal terms to false after task is done 2020-12-14 09:34:35 +01:00
Vitesh Shah 40bd5db361 signals enabling writing results,restart and termination 2020-12-14 09:17:15 +01:00
Martin Diehl a881e6e57a Merge remote-tracking branch 'origin/development' into misc-improvements 2020-12-10 23:41:59 +01:00
Martin Diehl 97ee7e6ee5 not needed anymore 2020-12-07 17:26:50 +01:00
Martin Diehl 78a246b44a avoid constant reallocation, it is slow for large vtr files 2020-12-05 12:46:48 +01:00
Martin Diehl 42eb802126 not needed anymore 2020-12-05 11:29:23 +01:00
Martin Diehl ac0a20696c rename: grid -> cells 2020-12-03 22:16:34 +01:00
Martin Diehl 80c8c9e51e fixing use for new Intel Fortran
visibility of use associated entities can now be limited
2020-11-28 07:23:55 +01:00
Martin Diehl 5bed0787ed replace log scaling with geometric regression scaling
more flexibility in time discretization via parameter 'r'.
Also, changed variable names to reflect names in loadcase.yaml
2020-11-25 18:56:03 +01:00
Sharan Roongta 2157bf50cd mech --> mechanics 2020-11-17 22:21:35 +01:00
Franz Roters 523a0979eb Merge branch 'mpi-single-process-read' into 'development'
MPI single process read of grid

See merge request damask/DAMASK!277
2020-11-17 17:00:09 +01:00
Sharan Roongta c16ad845bc Merge branch 'modernize-testing' into 'development'
Modernize testing

See merge request damask/DAMASK!280
2020-11-16 20:10:38 +01:00
Martin Diehl cf3a28952a fixed tests 2020-11-16 16:38:17 +01:00
Martin Diehl 0bd8a410ad check all errors, avoid intermediate wait 2020-11-16 09:22:55 +01:00
Martin Diehl e419eea507 read vtr file only by process 1 2020-11-12 14:40:25 +01:00
Martin Diehl bb471cb923 it's a process, not a thread 2020-11-12 07:51:07 +01:00
Martin Diehl cd7ada0da9 use Fortran internals for error handling 2020-11-11 20:09:14 +01:00
Martin Diehl 3dd5eaf1c1 clean exit with stack trace 2020-11-11 14:06:21 +01:00
Martin Diehl 5531f892c3 z = 0 for invalid number of processes
e.g. using 24 processes for a 128x128x128 grid would need 21 processes
with z=6 and 1 process with z=2
2020-11-11 12:47:13 +01:00
Martin Diehl 429c226008 IO is not inherited when using ifort 19
this is intented, public modules should only bring their own functions
and variables into global scope
2020-11-11 12:19:39 +01:00
Martin Diehl b46a25a7d2 C capitalization 2020-11-11 11:47:23 +01:00
Martin Diehl 9119254210 materialpoint => homogenization
especially as prefix for global data (clear name spaces)
2020-10-24 17:26:42 +02:00
Martin Diehl a1ab526456 avoid global variables 2020-10-24 16:01:56 +02:00
Martin Diehl 1c13737935 better readable 2020-10-21 21:12:55 +02:00