Commit Graph

552 Commits

Author SHA1 Message Date
Martin Diehl 6db3b72c89 avoid global variables
extra memory (one vector field) required
2022-11-19 13:05:12 +01:00
Martin Diehl f22ff8fa25 avoid state-changing functions
requires explicit padding, i.e. a little bit of code duplication
2022-11-19 12:36:56 +01:00
Martin Diehl ad3c18b29b avoid use of global variables 2022-11-19 12:24:16 +01:00
Martin Diehl 7de3da50e7 include weighting operation into Gamma operator
avoids point-wise multiplication.
2022-11-19 12:05:31 +01:00
Martin Diehl cb6df618fe avoid global variables 2022-11-19 11:47:44 +01:00
Martin Diehl 18b8923929 centralize FFTs 2022-11-19 09:37:26 +01:00
Martin Diehl cd2a21509a avoid depenencies on global state
requires on extra forward FFT pre iteration for basic scheme
2022-11-19 09:01:57 +01:00
Martin Diehl 20da5663c0 simplified, avoid intermediate writes 2022-11-19 08:14:38 +01:00
Martin Diehl ce98cfdd5e padding is handled centrally in the FFT forward routines 2022-11-19 07:58:45 +01:00
Martin Diehl df5487e1a9 Re-written YAML types
Strict typing for YAML

New access pattern requires to specify the expected type, i.e. 'scalar', 'list', or 'dict'. This ensures that the node offers the expected functionality instead of polluting 'tNode' with dummy functions which throw error messages if not overwritten.

The restructuring of the code allows to hierarchically construct methods without much code duplication.

Some aspects of the error messaging system have been improved.
2022-10-25 16:09:36 +00:00
Martin Diehl d315aac163 use sourced allocation 2022-10-15 21:54:03 +02:00
Daniel Otto de Mentock 592936f21f missing allocation statement was causing gnu and intel debug compiler to fail 2022-10-14 11:44:42 +02:00
Sharan Roongta dd3b385ae5 correct dotT passed 2022-09-29 15:04:57 +02:00
Yi Hu bb65d58214 add read-in init phi, correct write-out damage result 2022-09-21 08:50:00 +02:00
Martin Diehl 043415c4bb unused and untested 2022-08-31 09:06:11 +00:00
Martin Diehl 0b9597e74e better error message/simpler code 2022-08-16 18:26:50 +02:00
Martin Diehl fbc6a1ebbf following naming convention
the variable is NOT related to the base64 module
2022-08-16 17:10:49 +02:00
Martin Diehl 237bda5ccf ensuring matching domain decomposition for all transforms 2022-07-29 07:29:20 +02:00
Martin Diehl aee8ecd43d Merge remote-tracking branch 'origin/development' into prepare-transposed-FFTW 2022-07-29 07:27:12 +02:00
Daniel Otto de Mentock 27a8610d92 loops over tensors in fourier space need to correspond to transposed structure 2022-07-22 14:58:30 +02:00
Daniel Otto de Mentock b1257d6b54 correcting wrong access to scalarfield_fourier 2022-07-19 14:47:05 +02:00
Daniel Otto de Mentock dda157aa5a accesses to fourier space tensors now need to correspond to transposed structure 2022-07-13 14:10:13 +02:00
Sharan Roongta bb63048a0f Merge branch 'implicit-none-external' into 'development'
implicit none cover external

See merge request damask/DAMASK!610
2022-07-08 11:43:19 +00:00
Martin Diehl ec0c486a2c transition to transposed storage 2022-07-06 18:01:39 +02:00
Martin Diehl 771ccb4485 testing average behavior 2022-07-01 14:33:10 +02:00
Martin Diehl fc76f9f60f preparing for use of transposed data in Fourier space 2022-06-30 22:23:27 +02:00
Martin Diehl 44ecedc7b0 unified names 2022-06-30 22:01:35 +02:00
Martin Diehl af2eb3e51d systematic names 2022-06-30 21:59:21 +02:00
Martin Diehl ef8f0becd4 only used within module 2022-06-30 21:45:49 +02:00
Martin Diehl de1633f420 limit access 2022-06-27 21:51:44 +02:00
Martin Diehl 61dc14e0b9 Merge remote-tracking branch 'origin/development' into implicit-none-external 2022-06-27 15:13:20 +02:00
Martin Diehl 3b57934d6e Marc precision handling 2022-06-27 08:37:41 +00:00
Martin Diehl 2f1904efec only MPI_f08 is standard conforming 2022-06-21 23:11:22 +02:00
Martin Diehl b8c3d75700 [skip sc] enforce interfaces (quick fix: declare as external) 2022-06-21 22:59:01 +02:00
Franz Roters 5155a3f958 Merge branch 'MPI-FFTW-fix' into 'development'
bugfix: prevent segmentation fault

Closes #192

See merge request damask/DAMASK!595
2022-06-02 16:13:24 +00:00
Martin Diehl b8530bbcc9 Merge branch 'implicit-none-in-interface' into 'development'
implicit none does not propagate

See merge request damask/DAMASK!596
2022-05-31 12:06:03 +00:00
Martin Diehl d858d753e3 implicit none does not propagate
each subroutine/function is independent and not part of a scope
2022-05-27 22:38:47 +02:00
Philip Eisenlohr f85e8a3ff4 more precise warning for fftw_plan_mode 2022-05-27 12:00:53 -04:00
Philip Eisenlohr 75bd643258 more precise warning for fftw_plan_mode 2022-05-27 11:58:10 -04:00
Martin Diehl dc59beb59c following advince from FFTW3 manual
silences a lot of gfortran warnings about unused variables
2022-05-27 09:54:00 +02:00
Martin Diehl 064b9c5cc4 bugfix: prevent segmentation fault
need to rely on FFTWs calculation for amount of storage needed
2022-05-27 09:53:04 +02:00
Martin Diehl 6c6b3e64b3 more flexible reporting 2022-05-27 09:38:47 +02:00
Martin Diehl f90523eb07 more flexible reporting 2022-05-27 08:33:50 +02:00
Martin Diehl d5db083fec more convenient to see all invalid parameters 2022-05-27 00:25:25 +02:00
Martin Diehl 19b78cb647 easier to read 2022-05-26 23:29:06 +02:00
Martin Diehl 82cad00f81 simplified interface 2022-05-26 19:07:23 +02:00
Martin Diehl a514d30060 standardized names 2022-05-26 19:03:29 +02:00
Martin Diehl 3f85027b9e better use SIGINT for actions triggered by the user
SIGTERM is send by MPI if one process fails, catching it results in
deadlocks
2022-05-13 11:58:03 +02:00
Franz Roters 6236ad52d1 consistent naming 2022-05-03 13:00:28 +02:00
Martin Diehl bb83d20fe9 Merge branch 'development' into structure-improvements 2022-04-27 05:55:19 +02:00
Martin Diehl d41d03015a better matching name 2022-04-24 17:38:59 +02:00
Martin Diehl 26ab0365be only used by the grid solver 2022-04-24 17:30:37 +02:00
Martin Diehl 91b71fdff8 systematic naming scheme 2022-04-24 04:45:41 +02:00
Martin Diehl b80b406ad5 more specific name
'interface' can be an interface to anything, 'CLI' is an established
abbreviation for 'command line interface'
2022-04-23 16:09:31 +02:00
Martin Diehl 0e65d44bdc separating functionality
signal handling and CLI handling are not really related
2022-04-23 14:46:26 +02:00
Martin Diehl 690b2e9c21 tolerances were to strict for certain operations 2022-04-22 07:18:53 +02:00
Martin Diehl 745f5348cd running new tests 2022-04-22 00:01:54 +02:00
Martin Diehl df3f4d9480 testing forward/backward FFT 2022-04-20 07:02:59 +02:00
Martin Diehl 8f9ba9d6e4 test with initial conditions in grid file 2022-03-10 18:51:27 +01:00
Martin Diehl e8383cec69 Merge remote-tracking branch 'origin/development' into initial-temp 2022-03-10 08:52:05 +01:00
Martin Diehl 790ca57ea0 specify initial temperature per point 2022-03-09 21:29:40 +01:00
Martin Diehl da5ba82299 initial condition can be specified per point/cell 2022-03-09 20:40:03 +01:00
Martin Diehl c2453c56f1 Merge remote-tracking branch 'origin/development' into polishing 2022-03-09 15:22:22 +01:00
Philip Eisenlohr 73f01c07d0 clarified colormap default; accept string as colormap name 2022-03-08 09:31:08 -05:00
Martin Diehl f7b18981c9 shorter names (w/o loss of clarity) 2022-03-04 20:17:08 +01:00
Martin Diehl 802957f61e Merge remote-tracking branch 'origin/development' into separate-vtk 2022-03-01 22:52:36 +01:00
Martin Diehl 954b720992 Merge remote-tracking branch 'origin/development' into polishing 2022-03-01 21:41:27 +01:00
Martin Diehl ad8758b340 better don't have unlimited time for planning as default 2022-02-28 16:15:07 +01:00
Martin Diehl 7ee440c1b1 separating functionality for more flexibility 2022-02-28 01:35:39 +01:00
Martin Diehl 1cae6c4533 keep functionality separated 2022-02-27 17:02:13 +01:00
Martin Diehl 53fe11484d not used 2022-02-27 15:50:55 +01:00
Martin Diehl 8a84f6b07f origin can be negative 2022-02-24 11:24:54 +01:00
Martin Diehl cf3f869877 make clear that mechanical is always initialized 2022-02-23 06:19:16 +01:00
Sharan Roongta e26e8c715f pass data to homogenization and phase level at the same time 2022-02-21 22:40:41 +01:00
Martin Diehl 89a914bbe7 correct reporting of units 2022-02-17 07:13:39 +01:00
Martin Diehl c66e2336c2 some versions of ifort have problems with 'do concurrent' 2022-02-14 15:08:35 +01:00
Martin Diehl 466682e978 missing rename grid -> cells 2022-02-14 08:32:48 +01:00
Martin Diehl 61e11a0529 use openMP for operations in Fourier space 2022-02-14 08:30:24 +01:00
Martin Diehl 0008ad1bf8 easier to understand 2022-02-14 05:57:48 +01:00
Martin Diehl ac4beea14b use precalculated dyad 2022-02-14 05:47:50 +01:00
Martin Diehl b43695067d Merge remote-tracking branch 'origin/development' into nonlocal-standard-access 2022-02-11 12:53:58 +01:00
Martin Diehl bd657e6c62 fixed style and corrected copy and paste errors 2022-02-09 12:29:55 +01:00
Martin Diehl 4ca0ea6af2 avoid linking issues with gfortran+MPI
most likely related to the fact that HDF5 uses the old Fortran
inferface, not MPI_f08 as DAMASK
2022-02-05 18:38:06 +01:00
Martin Diehl 6d78400f87 the concept of IP/element_ID should not be used at the DAMASK core 2022-02-05 07:29:00 +01:00
Martin Diehl a243e10641 Merge remote-tracking branch 'origin/development' into Fortran-polishing 2022-02-03 09:01:33 +01:00
Sharan 3e73d28631 Merge remote-tracking branch 'origin/development' into thermal-restart 2022-02-01 23:07:55 +01:00
Martin Diehl f70df11b67 consistent reporting 2022-01-29 15:59:22 +01:00
Martin Diehl 762f93d724 following naming convention 2022-01-29 15:30:59 +01:00
Martin Diehl 487912cfb0 following Python notation 2022-01-29 15:14:40 +01:00
Martin Diehl dd0f2cfa3c tau is often easier to use than pi
https://tauday.com/tau-manifesto
2022-01-29 14:46:09 +01:00
Martin Diehl 68ea33c591 start at 1 for the same loop pattern 2022-01-26 12:21:08 +01:00
Martin Diehl a86dc322fb consistently put the check on the next line 2022-01-26 12:18:26 +01:00
Martin Diehl 96fed368ad name adjustments 2022-01-21 14:51:46 +01:00
Martin Diehl 292cbdee30 consistent name 2022-01-20 14:56:21 +01:00
Martin Diehl 7bd8452bf8 set return value 2022-01-20 07:56:45 +01:00
Martin Diehl 7b1080fdb7 better and consistent variable name 2022-01-20 07:42:16 +01:00
Martin Diehl 1f86111f57 call SNESSetDM after DMDASNESSetFunctionLocal
following example ex5f.F90, seems to resolve segmentation fault
2022-01-19 22:57:22 +01:00
Martin Diehl fe094939e6 better to understand 2022-01-19 19:43:54 +01:00
Martin Diehl 0f4f2b6717 use only grid, not (x/y/z) start and end 2022-01-19 19:38:07 +01:00
Martin Diehl 89cb018189 polishing 2022-01-19 18:58:46 +01:00
Martin Diehl 3d6dcad385 Merge remote-tracking branch 'origin/thermal-solver-improvements' into 146_grid-indexing+allocation 2022-01-19 18:50:55 +01:00
Martin Diehl 25ddec76e7 avoid (x/y/z)end and (x/y/z)start, same information is in grid 2022-01-19 17:41:16 +01:00
Martin Diehl 96ff3314a3 simplified 2022-01-19 17:10:47 +01:00
Martin Diehl 642df40634 one-based counting 2022-01-19 16:56:54 +01:00
Sharan Roongta 1ad537b60c better to use global grid dimensions
also checking early allocation of Temperature field
2022-01-19 16:54:10 +01:00
Martin Diehl b18483cc6e simplify MPI debugging
needs manual modification in the source code
2022-01-19 16:45:14 +01:00
Martin Diehl 869fdc847a Merge branch 'development' into misc-improvements 2022-01-18 11:02:18 +01:00
Martin Diehl d1cd125a5b direct array reversal, don't duplicate FFTW manual 2022-01-15 12:27:07 +01:00
Martin Diehl 29530da579 use correct kind of constants for calls to MPI/PETSc 2022-01-13 13:50:30 +01:00
Martin Diehl 91a3ea96ec final MPI-DAMASK integer kind decoupling
bugfix: set error for openMP-calucations
2022-01-13 13:21:44 +01:00
Martin Diehl a7417a7ad7 default integer, PETSc integer, and MPI integer might be different 2022-01-13 12:02:33 +01:00
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