Commit Graph

674 Commits

Author SHA1 Message Date
Philip Eisenlohr ab7b9247c7 final merge with edits dropped intermediately from rev 1190. 2012-01-16 15:10:16 +00:00
Martin Diehl 3a22bf7e27 changed fftw from legacy fortran to new (2003) fortran (calling c routines directly)
renamed "steps" consequently to "incs"
moved kdtree2 to math.f90, put original source to private folder
2012-01-13 16:18:16 +00:00
Martin Diehl c644b2c24d corrected rectifyPath function (did not work in case of more than one /../..) 2012-01-13 15:22:42 +00:00
Martin Diehl 2259f44cb1 added parameter for debugging of FFTW in spectral method 2012-01-13 15:21:24 +00:00
Martin Diehl 07186e0751 added output of precision to init 2012-01-13 15:20:29 +00:00
Philip Eisenlohr f3bb2271c9 parsing of spectral geom file now accepts two-dimensional microstructure definition (plus range indications by 'x to y')
For instance:
1 2 3 4
5 6 7 8
9 10 11 12
...
2012-01-12 17:01:24 +00:00
Pratheek Shanthraj 11c71aae86 bugfix release 2012-01-12 16:31:23 +00:00
Philip Eisenlohr 83ff05c8e8 fixed bugs (sorry...) 2012-01-12 15:08:44 +00:00
Pratheek Shanthraj 2ea3c68d3f removed spectralPicturemode 2012-01-12 10:36:17 +00:00
Philip Eisenlohr 7103a44d45 renamed debug variables, plus additional "beautification".
renamed "logscale" header info to "log scales" in accordance with plural versions of similar variables.
2012-01-12 10:23:05 +00:00
Philip Eisenlohr a7d9d711f6 edited lines exceeding 132 chars (before any comment started) 2012-01-11 16:56:35 +00:00
Martin Diehl c54600fd1f added kdtree2 source and changed makefile to compile it.
started to implement the nearest neighbor search for regridding
corrected calculation of divergence in real space.
corrected handling of maximum stress deviation (removed mask)
2012-01-04 17:43:26 +00:00
Martin Diehl ee401520d7 corrected divergence calculation. Still some open questions, but improved understanding a lot 2011-12-23 12:30:35 +00:00
Martin Diehl 6dee2616f5 added help info how to use the executable 2011-12-23 12:29:04 +00:00
Martin Diehl 99fa0e0be8 corrected calculation of curl (last version was more a dummy function) 2011-12-23 12:23:13 +00:00
Philip Eisenlohr e62d083f7a removed (virtually) dead single-precision branch of the spectral solver. 2011-12-22 13:19:27 +00:00
Philip Eisenlohr 35bd460e39 added "core" package capability to processing
(renamed former f2py modules)

reverted pathinfo...
2011-12-22 10:36:59 +00:00
Krishna Komerla f463c2da70 added addCurl.py, not sure if it works correctly. still in old (eq. to addDivergence.py) style 2011-12-21 17:25:31 +00:00
Philip Eisenlohr b0ba5f7ba3 code setup now takes BLAS in order of precedence from IKML, ACML, and LAPACK.
Leave pathinfo blank for BLAS-options that are not available (like IKML typically)
2011-12-20 10:58:51 +00:00
Franz Roters c4a4c5cdca corrected error in apply_DAMASK_modifications
added support for Marc/Mentat2011 (classic)
2011-12-19 16:06:03 +00:00
Philip Eisenlohr 739c524848 makefile substitution now based on regexp match.
condensed makefile syntax.
can now use a system-defined LAPACK instead of ACML (required for OS X...).
fixed bug that 'ULTRA' was not using -O3 for most of the compiling...
2011-12-16 09:11:03 +00:00
Philip Eisenlohr a8dece8694 adopted use of general damask package ("import damask" instead of "damask_tools") 2011-12-15 08:52:41 +00:00
Christoph Kords b2547e0117 Math inversion used to return zero (math_inv3x3) or error (math_invert3x3) for negative determinant. Now checking whether the absolute(!) value of the determinant is close to zero to avoid singularities, negative determinants are very well allowed. 2011-12-14 08:55:24 +00:00
Martin Diehl 031a00237f improved makefile, no directly linking to files of acml
corrected default pathinfo
improved test for intel compiler
2011-12-09 16:34:53 +00:00
Martin Diehl 7d1d2b6229 corrected small mistake in setup_code and makefile
test no. 1500, spectral compile test with intel compiler is now working. adjusted run_test and tamask_test
2011-12-09 15:13:27 +00:00
Philip Eisenlohr 2ceb78c337 introduced new damask_tools method "relPath" and adopted it in setup_processing.py and setup_code.py 2011-12-06 18:38:03 +00:00
Martin Diehl ea0fe7b406 corrected 3D visualize (math.f90 part was not working)
small polishing of voronoi_tessellation.f90
2011-12-06 17:46:33 +00:00
Martin Diehl 5ebeb96e85 made DAMASK to work with gfortran:
-removed to long lines
-restructured f2py modules and merged make_DAMASK2Python into setup processing
-setup_code.py now sets library path in makefile and asks for compile switches for spectral code
-substituted \ in format strings with $

restructured DAMASK_spectral:
-more logical output and structure of code
-better input for spectral debug parameters
2011-12-06 16:58:17 +00:00
Philip Eisenlohr efadf9f728 mainly fixed error in output of spectral results (1:N,…) instead of (N,…)
rearranged some logic here and there.

(hopefully) improved readability of debug/standard output.

restarting logic would need some discussion with Martin/Krishna still…
2011-12-04 10:01:32 +00:00
Martin Diehl ace6851389 moved all routines from postprocessingMath to math.90, renamed the module to DAMASK, changed scripts and interfaces accordingly.
polished math.f90 (mainly added _pInt/_pReal and intent(in/out))
curl_fft is still a dummy function
2011-12-01 12:01:13 +00:00
Franz Roters e738bee1e3 moved todolist to private tree 2011-11-28 08:18:07 +00:00
Franz Roters 515986c4d6 renamed w0 and w0_slip to a and a_slip 2011-11-23 14:48:39 +00:00
Philip Eisenlohr f685bbba0e exchanged location of "graincount" in user block.
now matches wiki entry:
1. homogenization block
2. grain block
  (grain count
   sub-block[s] of crystallite and constitutive)
2011-11-23 09:09:00 +00:00
Martin Diehl 5a1e73b53d added set_timelimit functionality to fortran-wrapper of FFTW and introcudec it to DAMASK_spectral.f90 2011-11-21 18:48:38 +00:00
Martin Diehl 566f16b6e9 implemented calculation of divergence in real space, polished spectral debugging 2011-11-21 18:12:40 +00:00
Martin Diehl dc6c29a910 important bugfix for reading in results in case of restart 2011-11-17 22:11:05 +00:00
Martin Diehl 5ef73e164a restructured algorithm: moved into loop to reallocate fields and replan FFTW in case resolution changes during runtime ==> regridding
introduced parameters for selective debugging of spectral code and partly introduced the advanced divergence calculation again which is controlled by debug.config
added switch in numerics to control divergence behavior (uncorrected and corrected by phenomenological factor)
added precision directive to all values I found
2011-11-15 17:54:18 +00:00
Krishna Komerla 60c9293baf restarting seems to work, spectral solver writes own defgrad to disk.
step counting rectified
added additional output of deformation gradient volume min and max
2011-11-11 14:17:43 +00:00
Christoph Kords 860594d9a4 forgot to multiply shearrate with timestep in order to get accumulated shear 2011-11-09 10:26:00 +00:00
Christoph Kords 6dc8a4d530 check for LFC only if there is any slip activity at all; also increased safety factor from 1.2 to 1.5 2011-11-09 09:55:39 +00:00
Christoph Kords 7033e84fc7 new outputs "accumulatedshear", "velocity_edge", and "velocity_screw" (the latter two replace the output "dislocationvelocity") 2011-11-09 09:22:52 +00:00
Martin Diehl de96e99bca corrected determination of restartRead from commandline (now done by FEsolving instead of DAMASK_spectral_interface)
recompiled fftw libraries with --enable-shared to make them work with f2py
added draft for compilation test of spectral solver
2011-11-07 18:25:10 +00:00
Christoph Kords 8bc39fcd48 immobile density output keeps its sign 2011-11-07 15:46:40 +00:00
Christoph Kords 34adec74e8 corrected wrong indices into state array for velocity 2011-11-07 15:17:58 +00:00
Krishna Komerla 49c0b8a3fd restructured restarting capabilities 2011-11-07 11:04:57 +00:00
Christoph Kords 7dfb96a3da constitutive_nonlocal:
dislocation velocities are stored in the state, so we actually now have three "parts" of the state, the basic states that are updated by "constitutive_dotState" come first, then the dependent states that are calculated by "constitutive_microstructure" follow, and finally we have a last part reserved for other variables that just use the memory reserved by the state array and are updated somewhere else.

constitutive:

LpAndItsTangent does not need the full state, but only the local state, so changed that at least for the nonlocal constitutive law
2011-11-04 13:12:17 +00:00
Christoph Kords 9d1bc584d0 corrected stress integration scheme: now use norm(Lpresiduum) as a target function for Armijo's rule instead of whole tensor Lp; also corrected the guess for the improvement in Lp 2011-11-04 12:57:12 +00:00
Christoph Kords ca3d21a3b6 Depending on which state integrator one uses for the stiffness calculation, the initial state has to be chosen accordingly: e.g. for FPI choose last converged state, but for explicit RK choose converged state from start of increment (in case of explicit euler no state integration at all, but only stress integration). For this purpose we also need to remember "Fe" which now follows the cutbacking procedure as it is used for "Fp". 2011-11-04 12:44:50 +00:00
Martin Diehl ee7022d8cf correctet random seed generation to work with gfortran. 2011-11-04 10:29:35 +00:00
Martin Diehl c2eac36b48 started to implement restart facilities for spectral solver.
restart write is on per default
restart read is switched on by using --restart or -r INT where INT gives step at which the calculation should restart
setting INT to a value <1 will turn restart write off
2011-11-03 19:32:11 +00:00
Philip Eisenlohr b9647b2584 moved parts into new "lib" folder 2011-11-03 13:21:11 +00:00
Martin Diehl 680ba9082f removed deadlock when calling IO_warning(33)
polished IO_error and IO_warning
checked OpenMP critical statements in DAMASK_spectral.f90
corrected writing of headed in DAMASK_spectral.f90
2011-11-02 14:38:42 +00:00
Claudio Zambaldi 447e69019c Introduced environment variable DAMASK_ROOT.
It is set in the DAMASK root folder by running damask_env.sh
Much needed in the testing routines so far (try ./testing/run_tests.py)
damask_env.sh could also trigger other scripts to get to a working setup after fresh checkout. For example it could run 
./processing/setup/setup_processing.py
./code/setup/setup_code.py
if it finds that we have a fresh checkout.
2011-10-27 17:55:42 +00:00
Martin Diehl 15c356c3a7 some small improvements regarding the rotation of the loadcase frame 2011-10-25 13:38:24 +00:00
Martin Diehl c13aa2a829 first try of implementing a rotation of the loadcase coordinate system. Seems to work so far for one loadcase and homogeneous materials. 2011-10-24 18:26:34 +00:00
Martin Diehl 0f34d14bee again edited the makefile, no there is more flexibility in defining the libraries (FFTW and ACML)
added the source of fftw-3.3.tar.gz to fulfill the GPL
set_python_env.py was forgotten during last commit (for testing)
2011-10-24 16:57:51 +00:00
Martin Diehl 8ac1891b3c moved DAMASK_NaN to prec.f90 respectively prec_single.f90 as it is precision dependent 2011-10-20 16:46:11 +00:00
Martin Diehl ac342ad682 worked on the updating on increments, does not work properly until now 2011-10-19 09:05:02 +00:00
Krishna Komerla 0a46741a77 changing header to correct number of increments 2011-10-18 16:42:06 +00:00
Martin Diehl 9d3f74ce5f polishing 2011-10-18 14:46:07 +00:00
Martin Diehl 7746390688 using keywords to indicate geometry and loadcase
enabled finetuning of FFTW
added some debugging options
reading in rotation of boundary conditions
using header in geometry file
corrected error in calculating tolerance for stress BC
polishing of output, variable declaration, and variable names
2011-10-18 14:45:32 +00:00
Martin Diehl 9a6977b024 changed commandline parameters into a keyword driven form
use "-l, --load, --loadcase" to specify loadcase file and 
"-g, --geom, --geometry" to specify geometry file
!incremental update, wait for commit of damask_spectral.f90 before checking out
2011-10-18 09:25:17 +00:00
Martin Diehl ea2ba1573c polishing
!incremental update, wait for commit of damask_spectral.f90 before checking out
2011-10-18 09:22:33 +00:00
Martin Diehl 7604a8aeb4 corrected calculation of NaN, renamed variable to 'DAMASK_NaN'
!incremental update, wait for commit of damask_spectral.f90 before checking out
2011-10-18 09:21:38 +00:00
Martin Diehl 6cf464b8a9 added 'spectralPictureMode' for reading in geometries with 1to1 mapping (e.g. EBSD pattern)
polishing
!incremental update, wait for commit of damask_spectral.f90 before checking out
2011-10-18 09:20:29 +00:00
Martin Diehl 6ed27a2a13 added 'spectralPictureMode' for reading in geometries with 1to1 mapping (e.g. EBSD pattern)
!incremental update, wait for commit of damask_spectral.f90 before checking out
2011-10-18 09:18:05 +00:00
Martin Diehl a8a53ee525 added two parameters to control behavior of FFTW, timelimit is not working at the moment
remove fftw3.f as it is not needed anymore
!incremental update, wait for commit of damask_spectral.f90 before checking out
2011-10-18 09:16:18 +00:00
Martin Diehl 4989535500 new version 3.3 of FFTW. Compiled with gfortran but only for multicore support (single core library is still the old version 3.2.2). Now either POSIX threads or OMP can be used by choosing the corresponding library file
Some further polishing (besides of new description for FFTW) of the makefile
2011-10-13 12:41:01 +00:00
Franz Roters 8edb59d50c removed some unused variables 2011-09-26 09:55:38 +00:00
Franz Roters 58917b5abe corrected error messages
you can now switch of shear banding by seting sb_velocity to zero
stacking fault energy parameters are now read from material.config
2011-09-26 09:55:08 +00:00
Franz Roters 2e263dee90 merged in the shear band code, it compiles but is not otherwise tested yet 2011-09-16 15:55:18 +00:00
Franz Roters 9d091bdc3f added parameters for shear band model 2011-09-14 13:35:28 +00:00
Franz Roters ee83904548 added math_spectralDecompositionSym3x3 used by shear band model 2011-09-14 13:26:00 +00:00
Martin Diehl 483b483816 dummy update because those messages got lost:
Date: Tue, 13 Sep 2011 17:46:44 +0200
From: m.diehl@mpie.de
To: wangleyu@msu.edu, lebenso@lanl.gov, denny.tjahjanto@imdea.org,
 o.guevenc@mpie.de, n.jia@mpie.de, m.diehl@mpie.de, c.kords@mpie.de,
 c.zambaldi@mpie.de, p.eisenlohr@mpie.de, f.roters@mpie.de
Subject: update: /home/svn/repos/DAMASK to 1000
Message-ID: <4e6f7ae4.Xjnd/szYAh8QCXTo%m.diehl@mpie.de>
User-Agent: Heirloom mailx 12.2 01/07/07
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

A   processing/pre/FromEBSD/
A   processing/pre/FromEBSD/Hex2Cub.cpp
A   processing/pre/FromEBSD/SpectralMethodFromEBDS
A   processing/pre/FromEBSD/patchFromReconstructedBoundaries
D   processing/pre/patchFromReconstructedBoundaries

added two small (quick and dirty) tools to convert data from EBSD to input files for spectral method, put them together with patchFromReconstructedBoundaries into new folder.
Date: Tue, 13 Sep 2011 17:54:06 +0200
From: m.diehl@mpie.de
To: wangleyu@msu.edu, lebenso@lanl.gov, denny.tjahjanto@imdea.org,
 o.guevenc@mpie.de, n.jia@mpie.de, m.diehl@mpie.de, c.kords@mpie.de,
 c.zambaldi@mpie.de, p.eisenlohr@mpie.de, f.roters@mpie.de
Subject: update: /home/svn/repos/DAMASK to 1001
Message-ID: <4e6f7c9e.v9E4JVN2a6bg5tL8%m.diehl@mpie.de>
User-Agent: Heirloom mailx 12.2 01/07/07
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

U   code/DAMASK_spectral.f90
U   code/DAMASK_spectral_interface.f90
U   code/IO.f90
U   code/crystallite.f90
U   code/homogenization_RGC.f90
U   code/lattice.f90
U   code/makefile
U   code/material.f90
U   code/mesh.f90

did a lot of polishing:
- removed unnecessary "return" before end of subroutine or function:
- changed undetermined array length (:) to (1:3)

To prevent problems with some code analysing tools:
- "3D oneliner loops" (with ";) only for "do" and "enddo" at the same time
- removed line continuation in OMP statements

made the makefile more flexible, removed heap-arrays switch
Date: Tue, 13 Sep 2011 17:57:07 +0200
From: m.diehl@mpie.de
To: wangleyu@msu.edu, lebenso@lanl.gov, denny.tjahjanto@imdea.org,
 o.guevenc@mpie.de, n.jia@mpie.de, m.diehl@mpie.de, c.kords@mpie.de,
 c.zambaldi@mpie.de, p.eisenlohr@mpie.de, f.roters@mpie.de
Subject: update: /home/svn/repos/DAMASK to 1002
Message-ID: <4e6f7d53.IEDDzo+JSzDWNSBr%m.diehl@mpie.de>
User-Agent: Heirloom mailx 12.2 01/07/07
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

A   documentation/Compiling/
A   documentation/Compiling/Stack+usage.pdf
A   documentation/ParallelizationAndTuning/
A   documentation/ParallelizationAndTuning/BSC_tools_Overview.pdf
A   documentation/ParallelizationAndTuning/Intro_Perf.pdf
A   documentation/ParallelizationAndTuning/Kcachegrind.pdf
A   documentation/ParallelizationAndTuning/LRZ210703_1.pdf
A   documentation/ParallelizationAndTuning/LRZ210703_2.pdf
A   documentation/ParallelizationAndTuning/MUST_Overview.pdf
A   documentation/ParallelizationAndTuning/NPB-MZ-MPI-BT_Exercise.pdf
A   documentation/ParallelizationAndTuning/PAPI.pdf
A   documentation/ParallelizationAndTuning/PSC_Exercise_BT-MPI.pdf
A   documentation/ParallelizationAndTuning/Paraver_Exercise.pdf
A   documentation/ParallelizationAndTuning/Periscope_Overview.pdf
A   documentation/ParallelizationAndTuning/SIONlib.pdf
A   documentation/ParallelizationAndTuning/Scalasca_Examples.pdf
A   documentation/ParallelizationAndTuning/Scalasca_Exercise_BTMZ.pdf
A   documentation/ParallelizationAndTuning/Scalasca_Overview.pdf
A   documentation/ParallelizationAndTuning/Scalasca_Patterns.pdf
A   documentation/ParallelizationAndTuning/TAU.pdf
A   documentation/ParallelizationAndTuning/VIHPS-TW8.pdf
A   documentation/ParallelizationAndTuning/Vampir_Exercise.pdf
A   documentation/ParallelizationAndTuning/Vampir_Overview.pdf
A   documentation/ParallelizationAndTuning/instructions_periscope.pdf
A   documentation/ParallelizationAndTuning/manualf06.pdf

added some information from Tuning workshop in Aachen regarding tuning/parallelization

added slides with information how to prevent segmentation fauld
2011-09-14 08:16:42 +00:00
Philip Eisenlohr c7c541f393 corrected typos and such 2011-09-13 15:57:58 +00:00
Martin Diehl c35ea33f8e did a lot of polishing:
- removed unnecessary "return" before end of subroutine or function:
- changed undetermined array length (:) to (1:3)

To prevent problems with some code analysing tools:
- "3D oneliner loops" (with ";) only for "do" and "enddo" at the same time
- removed line continuation in OMP statements

made the makefile more flexible, removed heap-arrays switch
2011-09-13 15:54:06 +00:00
Franz Roters cbbc3e84fe solved argument mismatch 2011-09-13 14:15:17 +00:00
Franz Roters 1dd2591982 corrected wrong check of twin systems 2011-09-13 08:18:43 +00:00
Christoph Kords 7be2701989 * new output variable "internalstress", which gives the internal stress tensor
* use "math_invert3x3" instead of "math_inv3x3" for inversion of Fe
* for dislocation stress calculation: first regular case, then special case of dead dislocations in central ip
* "dv_dtau" now given for each dislocation type, so is a (ns,4) array
* deleted unused variables in "_LpAndItsTangent"
* corrected contribution of deads in "_LpAndItsTangent"
* the NaN variables defined in math did not give a proper NaN value, so use 0.0/0.0 again
* neighbors with nonlocal constitution but local properties (i.e. /nonlocal/ flag not set) are also considered for incoming fluxes
2011-09-07 11:30:28 +00:00
Martin Diehl e8628996ff added IO error in case mixed BC that allow rotation are given 2011-09-02 13:50:05 +00:00
Martin Diehl fe9754a41c previous commit was wrong file 2011-09-02 10:46:37 +00:00
Martin Diehl 43e2684cfb added new glide system for hex lattice 2011-09-02 10:43:49 +00:00
Martin Diehl 0469d37fc3 cleaned and restructured output on screen, changed L_inf norm to L_2 for calculation of error in Fourier space.
removed unnecessary function from math.f90
added some documents/manuals regarding spectral method
2011-08-31 14:37:01 +00:00
Martin Diehl f527bdcc78 changed standard values according to numerics.f90 2011-08-30 11:21:39 +00:00
Martin Diehl 8f90f1f1f9 corrected description of algorithm to invert matrix 2011-08-30 07:29:13 +00:00
Martin Diehl 4fb1cb8f87 merged calcmodes, i.e. equilibrium and fulfilling of stress BC is done in one step,
made convergence independent of size and resolution,
polishing output in DAMASK_spectral.f90
added function to compute eigenvalues without eigenvectors and function to convert a 3x3 logical to a 9 vector in math.f90
removed obsolete variable in numerics.f90
2011-08-26 14:06:37 +00:00
Martin Diehl 380a536b45 homogenization_*, constitutive_*, DAMASK_spectral_interface: did some polishing regarding init output
makefile: corrected spelling mistake
2011-08-26 13:57:29 +00:00
Christoph Kords b300cc7faa ip volume is now based on the determinant of F. "mesh_ipVolume" represents the initial volume and is multiplied with det(F) wherever the current volume is needed. Since this works for all solver types, the "volume" output in crystallite is now also correct for spectral method and abaqus. 2011-08-19 11:18:56 +00:00
Martin Diehl f99bf63397 removed functions added for debugging of divergence calculation to math.f90
corrected calculation of stress BC condition. Depending on given BC, the stiffness matrix is reduced and than inversed. Then it is filled with zeros and used for the calculation of the correct change of deformation gradient. All calculation is done using dP/dF
2011-08-10 17:45:37 +00:00
Christoph Kords 1ffb59a96a Calculation of current ip volumes now working. Crystallite output also reflects current grain volume, not reference volume. However, this is only available for Marc. Abaqus and spectral method still return the reference ip volume. The ip coordinates though are correctly updated for all solver types. 2011-08-10 16:37:17 +00:00
Martin Diehl 34de2e301b DEBUGGING VERSION for calculation of Divergence (various methods implemented). DO NOT USE. Wait for next update coming in a few minutes 2011-08-10 16:02:13 +00:00
Martin Diehl bb1ca2330b added option to enable use of AMD math core library, added comments on the various parameters 2011-08-10 16:00:02 +00:00
Onur Guevenc 31b60b8814 changed debug intensity so that the artificially high stress and stiffness values in collection cycles do not get printed out anymore... 2011-08-03 17:59:31 +00:00
Onur Guevenc 4f1cb3a8af exchanged forall with nested do loops... Bye, bye smatrix warning, will miss you!! 2011-08-03 17:58:16 +00:00
Onur Guevenc 907965272b added option to build DAMASK_spectral without openMP (make OPENMP=OFF)
fixed bug in bc_temperature assignment that was hitting memory.
Temperature is taken from the first loadcase and evolves from there in an adiabatic fashion for the moment. I.e. T-specifications from later loadcases are ignored...
2011-08-03 17:57:28 +00:00
Martin Diehl b5abd6f203 adding new option OPTIMIZATION with values OFF, DEFENSIVE and AGGRESSIVE to makefile. Polishing of makefile and DAMASK_spectral.f90 2011-08-03 07:54:32 +00:00
Onur Guevenc 64435b8a97 loadcase takes 'temperature' (or 'temp') as input. Previously it was hard-wired. 2011-08-02 13:58:28 +00:00
Christoph Kords 422d6d9c6c slight correction of debugging output 2011-08-02 12:36:08 +00:00
Christoph Kords ef7405fe21 Stress integration now uses Armijo rule to find an appropriate correction of Lp: decreases step in case that residuum does not improve significantly, accelerates as usual in case of good convergence. This turned out to improve convergence behavior. 2011-08-02 11:29:08 +00:00
Christoph Kords 6f859e99de * internal stress calculation now considers dead dislocations always at the interface, not at the center of the IP volume; used to merge them together with "normal" dislocations for stress calculation.
* dislocation flux is blocked if we encounter a sign change in the resolved shear stress from the central ip to the neighbor
* do not set density to zero if below certain threshold; this creates an artificial sink term
2011-08-02 11:17:45 +00:00
Christoph Kords 0373fa64e4 have to initialize constitutive_state during constitutive_init, since the first call to constitutive_microstructure (where we already need the state) is done before the cutback scheme starts. 2011-08-02 11:10:41 +00:00
Martin Diehl 75c67f53f7 introduced alternative location for material configuration.
If present, the >>>JOB.materialConfig<<< file takes precedence over the standard >>>material.config<<<
2011-08-02 10:14:16 +00:00
Martin Diehl 564eb5009f shape mismatch in crystallite, invalid names for variables(pos, size) in homogenization corrected. polishing of DAMASK_spectral_interface and makefile 2011-08-01 18:10:55 +00:00
Martin Diehl 3adb7ab382 corrected makefile, now working again without giving standard values explicitly.
did some small modification in order to make it possible to compile with gfortran. Changed NaN=0.0/0.0 to bitwise representation (3 different ways)
2011-08-01 10:11:32 +00:00
Philip Eisenlohr 06a4ac2565 fixed bug (segmentation fault) occurring for non-renumbered meshes: ipNeighborhood building did use FE IDs of twin nodes to address memory -- dangerous..! 2011-07-31 15:42:59 +00:00
Christoph Kords fb121b1435 * boundary condition masking changed
* damper initialized with one 
* inversion of Mandelized stiffness tensor does not work, have to use plain tensor
* new functions in math that allow for conversion between Mandel and Plain tensors
2011-07-29 15:57:39 +00:00
Franz Roters aa714a3d84 some textconstants were wider than specified in the format string, this might have caused Abaqus to crash due to an illegal memory reference (signal 11) 2011-07-29 14:54:26 +00:00
Martin Diehl 72d20875de added some switches and variables to the makefile to make it more flexible
DAMASK_spectral.f90 is a "debug version" with a number of different criteria to determine divergence. will be removed later on.
2011-07-25 16:30:21 +00:00
Philip Eisenlohr 2e9c605571 somehow forgot to move the numerics.config into the config subdir... 2011-07-21 08:40:45 +00:00
Franz Roters e92e5cae53 restarting now works with Abaqus (standard, cannot test explicit due to lack of license)
you have to specify the job you are restarting from in the job description (cae), if you prepare your input file by hand this is the first line after *Heading
example: if the first job was using Oldjob.inp the first entry in the job description needs to be Oldjob (without the .inp)
as for Marc restart works only from last converged increment, i.e. ther restart writing should be specified like this:
*retsart, write, frequency=1, overlay
Overlay is not essential but saves a lot of disk space and as stated before you can only restart from the last converged increment anyway
2011-07-18 09:15:20 +00:00
Philip Eisenlohr 8c65cb9ea6 small output polishing 2011-07-15 12:25:38 +00:00
Martin Diehl 09ba92c26e added and rearranged error messages, polished output and simplified calculation of f depending on fdot or L
guessing along former trajectory is now on per default, 'guessreset' and 'dropguessing' switch it off.
2011-07-14 09:37:31 +00:00
Martin Diehl 56340fd487 changed input of loadcase. Now fdot (time derivative) can be used instead of velocity gradient. Velocity gradient needs to have each line fully or not at all defined, as for other loadcases the stress BCs are not known in advance. Also added the possibility to keep guessing along trajectory of former loadcase.
changed back to use the compliance of initial linear material behavior.
added counter of non-converged steps
renamed compiler flags in makefile
2011-07-13 16:33:12 +00:00
Martin Diehl 8153cd50b4 added spectral numeric parameters to numerics.config, changed values for spectral numeric parameters in numerics.f90 to more suitable values for new method for determination of divergence in Fourier space 2011-07-11 14:28:56 +00:00
Martin Diehl a08eaecf4e polishing (names of variables, spaces, comments etc.)
renamed mpie to DAMASK in IO.f90 error message
2011-07-07 15:27:35 +00:00
Martin Diehl a561ef1cf5 corrected calculation of divergence in Fourier space, removed normalization of normdyad (was useless), now using correct compliance for calculation of stress BC. 2011-07-07 10:03:55 +00:00
Franz Roters 18a5841bc5 keyword freq for frequency of output writing was not evaluated when reading loadcase file 2011-07-07 09:18:05 +00:00
Onur Guevenc e889b69bec Ability to define loglinear time increments by using 'logincs' or 'logsteps' instead of 'incs' in loadcase file is added. 2011-07-06 13:10:18 +00:00
Philip Eisenlohr 314adae1bb spectral solver can now write result at reduced output frequencies: use 'f', 'freq', or 'frequency' keyword in loadcase definition.
example: ... time 1 incs 100 freq 10 will write output at times 0.0, 0.1, 0.2, ... , i.e., every ten increments only.
2011-06-15 17:48:14 +00:00
Philip Eisenlohr 3985a98da7 changed default to "no clean". if clean-up required, use '--clean' option! 2011-06-15 16:40:34 +00:00
Philip Eisenlohr 480021e788 added '--noclean' option 2011-06-14 14:56:10 +00:00
Philip Eisenlohr 1877026d86 sorry, dangling "endif"... 2011-06-14 14:35:55 +00:00
Philip Eisenlohr cc925cadee changed output/debug-level relation for two statements 2011-06-14 14:08:13 +00:00
Philip Eisenlohr a26d9c844b max size of crystallite result is now based on actual use within the mesh, not just picking the largest chunk from the material.config file... 2011-06-08 09:16:48 +00:00
Philip Eisenlohr 8041587a72 changed internal debug verbosity in accord with debug.config listing. 2011-06-06 15:27:35 +00:00
Philip Eisenlohr 4a694fa7fd changed wildcard letter from '#' to '*' now consistent with new IO comment parsing.
fixed memory bug with bc_maskvector.

some brushing up here and there...
2011-06-06 15:20:28 +00:00
Christoph Kords ae4c8fa2d8 renaming of "mpieNumThreadsInt" to "DAMAKS_NumThreadsInt" was forgotten here 2011-06-06 08:51:07 +00:00
Christoph Kords 9a64f3dd85 * comments are now recognized by IO even when they do not appear at the beginning of the line
* no need for the zero entries in the material.config anymore
2011-05-30 09:09:19 +00:00
Christoph Kords bbf75f3fb5 cannot omit entries for second to fourth slip system family, though they are zero 2011-05-30 07:53:41 +00:00
Franz Roters 08d39342e4 reworked restarting for compatibility with abaqus (not yet fully working)
added new orientation feature for direct simulation:
  component type (random) asigns random orientation to an entire grain
2011-05-28 09:44:43 +00:00
Franz Roters 2418dfe96d changed MPIE_NUM_THREADS to DAMASK_NUM_THREADS 2011-05-28 09:42:25 +00:00
Christoph Kords e39445ee7a dead dislocations now exert a backstress on their "home" MP 2011-05-26 09:35:42 +00:00
Christoph Kords 78f74e8991 forgot to use "mesh_ipCenterOfGravity" 2011-05-26 09:23:13 +00:00
Christoph Kords cac45cff96 ip coordinates are now updated every cycle; this is needed for the nonlocal internal stress fields
* Marc: node displacements are added to initial node coordinates (mesh_node0) to get current node positions (mesh_node), then ip coordinates are deduced
* Abaqus: ip coordinates are directly updated, no update of node coordinates!
* Spectral: for the moment no update of either ip or node coordinates! passing only dummy values with initial ip coordinates
2011-05-24 15:57:59 +00:00
Christoph Kords a910c469df update of nonlocal material parameters 2011-05-20 08:11:22 +00:00
Philip Eisenlohr 808a6d6ad6 + error box + now tells error number (useful for Abaqus) 2011-05-13 16:55:13 +00:00
Philip Eisenlohr 1baae024cb added two more <crystallite> examples 2011-05-13 16:54:08 +00:00
Philip Eisenlohr d366a53f4e probably installation is a better place for the abq.env file 2011-05-11 17:10:45 +00:00
Philip Eisenlohr fa98133f8e renamed interface from "mpie_interface" to "DAMASK_interface" 2011-05-11 17:01:03 +00:00
Philip Eisenlohr 75192789e8 added making of DAMASK_spectral.exe 2011-05-11 16:45:37 +00:00
Philip Eisenlohr 43cc68555b observe new include subdirectory 2011-05-11 16:40:51 +00:00
Philip Eisenlohr e5a2d829b0 new substructure with 'include' and 'config' directories
renaming of mpie_... to DAMASK for main usersubroutines

extension of element outputs from 5 to 8 digits (FFT!!!)
2011-05-11 16:38:45 +00:00
Christoph Kords a0bec65c7b Last version didn't compile, because of missing keyword "call" in front of subroutine call to IO_error 2011-05-09 08:49:03 +00:00
Philip Eisenlohr 660c9212f8 introduced error 667 for out of bounds user result requesting 2011-05-04 16:02:18 +00:00
Philip Eisenlohr affd383ef8 simplified disorientation calculation. performed FEM check that "grainrotation" reflects the *active* rotation from the starting orientation to the current one with respect to the lab coord system (as expected). 2011-04-14 19:09:44 +00:00
Christoph Kords 5814262f55 moved some write statements within stateIntegrationEuler 2011-04-14 09:35:56 +00:00
Philip Eisenlohr 349f022100 reinstantiated calculation of grainrotation (still needs check for correctness, i.e. active or passive rotation output) 2011-04-13 16:08:52 +00:00
Franz Roters 7d84a0911e removed unused variables 2011-04-13 14:16:22 +00:00
Christoph Kords b4678112cd sorry, last version did not compile. now with correct encoding. 2011-04-13 11:51:46 +00:00
Christoph Kords dd2057bac5 changed header to unicode utf-8 encoding 2011-04-13 11:24:36 +00:00
Philip Eisenlohr ef4fc9d0ee added <crystallite> output "texture" to list of examples 2011-04-12 15:33:29 +00:00
Franz Roters c1b8391110 changed enconding of all source files to UTF-8 without BOM (signature) Codepage 65001 2011-04-07 07:20:28 +00:00
Christoph Kords 4d0fefd231 security factor of 1.2 for CFL condition in constitutive_nonlocal_dotState 2011-04-06 11:47:24 +00:00
Philip Eisenlohr 51763ed93e corrected number of incs reported in spectralOut-file
inc 0 contains undeformed results

plus lots of typographic polishing
2011-04-06 09:58:17 +00:00
Franz Roters 7c7c929455 added comments on origin of files 2011-04-06 09:40:39 +00:00
Christoph Kords 4ea1fe436b added check for CFL condition in constitutive_nonlocal_dotState 2011-04-06 09:07:36 +00:00
Philip Eisenlohr e00d073ee3 added new 2D triangle elements
added some sourcecode commenting on internal database formats
corrected database to allow for ipVol and Area calc in 2D element cases
2011-04-06 08:35:37 +00:00
Franz Roters fcdb805225 added copyright text to all f90 (free) format files 2011-04-04 14:09:54 +00:00
Christoph Kords 6ca8942f62 choose correct output format for debug_verbosity: integer instead of logical 2011-04-04 08:38:55 +00:00
Christoph Kords 790dbed1e4 * removed last remnants of old debugger
* replaced "dble" intrinsic function by "real" with pReal kind in constitutive_nonlocal.f90
* removed useless line breaks in output of state in CPFEM.f90
2011-04-04 08:34:52 +00:00
Alankar Alankar 06fc83ac14 Final version of titanmod 2011-03-31 09:21:43 +00:00
Franz Roters fc471d73f3 added Arun to list of authors 2011-03-30 14:39:28 +00:00
Christoph Kords c36968fc68 distance for periodic images in internal stress calculation was incorrect 2011-03-30 11:57:41 +00:00
Franz Roters 08da2b5e4d added minimum abaqus_v6.env file containing all changes necessary for the use of the MPIE subroutine
changed comments in interface routines to refelect this
2011-03-29 13:49:50 +00:00
Franz Roters e9e6abbdaf introduced variables for compiler options
added -fpp switch to invoke precompiler
2011-03-29 07:55:38 +00:00
Christoph Kords 314ca3fe7f Internal stress calculation in nonlocal model: instead of integration of excess gradients (->Bayley) we now sum up contributions from adjacent superdislocations within a certain radius R. When periodicity is used, also periodic images are considered in stress evaluation. 2011-03-29 07:34:33 +00:00
Christoph Kords 3d51dd36fa * Introduced preprocessor directives in order to suppress compilation of most write statements when using openmp. This tremendously improves efficiency of parallelization.
* Also added some more openmp directives to increase percentage of parallelized code.

* "implicit none" was missing in two subroutines of homogenization and constitutive.
2011-03-29 07:27:19 +00:00
Philip Eisenlohr 5c05c5d068 corrected mixed up array size for hardeningMatrices (twin/slip)
added explicit array range 1:lattice_maxNslip/twinFamily
2011-03-24 17:20:35 +00:00
Franz Roters fa323f3f0b removed division by zero from debug_reset(), uses huge() now 2011-03-24 07:38:56 +00:00
Franz Roters 78d4e7d1dc mpie_cpfem_abaqus_std.f: first call is with kinc==1
mesh: allow multiple element sets with identical material
2011-03-23 16:20:12 +00:00
Franz Roters 8467c91dab moved setup scripts back to subdirs where they are needed 2011-03-22 15:42:53 +00:00
Christoph Kords 31a570768b new error 237: singularity in internal stress calculation 2011-03-22 13:58:42 +00:00
Nan Jia 7be2edb10e added "texture
" as possible crystallite output => reports ID for later discrimination...
2011-03-22 13:40:27 +00:00
Christoph Kords b8b75edd7d no changes to previous version, just wanted to add some comment to the previous commit:
subroutine "constitutive_nonlocal_dotState" only affects the current dotState, so no need to pass the whole array as argument
2011-03-21 15:23:36 +00:00
Christoph Kords 9b1e1e35ea dotState 2011-03-21 15:18:09 +00:00
Christoph Kords 462eda6736 split parallel region in integrateStateFPI into two 2011-03-21 14:30:10 +00:00
Christoph Kords 5ee73dee72 age dotState before resetting it to zero, otherwise the statedamping does not work. 2011-03-21 13:06:11 +00:00
Christoph Kords fc6f2ae68f No need to call constitutive_microstructure at the beginning of each crystallite step, since it's already been done at the end of the previous step. Just do it once after initialization to start with correct values for the dependent state variables. 2011-03-21 10:35:42 +00:00
Christoph Kords 11138e3ee2 debugging output is now controlled by the "verbosity" parameter in the debug.config ranging from 0 (=almost no output) to 8 (=very detailed output)
0 : only version infos and all from "hypela2"/"umat"
1 : basic outputs from "CPFEM.f90", basic output from initialization routines, debug_info
2 : extensive outputs from "CPFEM.f90", extensive output from initialization routines
3 : basic outputs from "homogenization.f90"
4 : extensive outputs from "homogenization.f90"
5 : basic outputs from "crystallite.f90"
6 : extensive outputs from "crystallite.f90"
7 : basic outputs from the constitutive files 
8 : extensive outputs from the constitutive files

If verbosity is equal to zero, all counters in debug are not set during calculation (e.g. debug_StressLoopDistribution or debug_cumDotStateTicks). This might speed up parallel calculation, because all these need critical statements which extremely slow down parallel computation.
2011-03-21 10:31:17 +00:00
Christoph Kords 9d7ede7e03 extreme values of stress and jacobian now recorded in CPFEM_general. variable declaration and generation of output moved to debug module. 2011-03-17 13:13:13 +00:00
Christoph Kords 235266b169 openmp parallelization working again (at least for j2 and nonlocal constitutive model).
In order to keep it like that, please follow these simple rules:

DON'T use implicit array subscripts:
example:    real, dimension(3,3) :: A,B
                  A(:,2) = B(:,1)               <--- DON'T USE
                  A(1:3,2) = B(1:3,1)       <--- BETTER USE
In many cases the use of explicit array subscripts is inevitable for parallelization. Additionally, it is an easy means to  prevent memory leaks.

Enclose all write statements with the following:
!$OMP CRITICAL (write2out)
<your write statement>
!$OMP END CRITICAL (write2out)

Whenever you change something in the code and are not sure if it affects parallelization and leads to nonconforming behavior, please ask me and/or Franz to check this.
2011-03-17 10:46:17 +00:00
Franz Roters 97a0146672 deactivated one debug statement at the end of crystallite_updateState(g,i,e) as it leads to division by zero if constitutive_state(g,i,e)%p(1:mySize) contains zero values
statement should be changed to check for zero values
2011-03-11 10:05:30 +00:00
Philip Eisenlohr 1f0569230b new installation/setup dir to hold all top-level make_*-scripts 2011-03-11 09:20:37 +00:00
Franz Roters bdc17f7d72 extended comment on modification of abaqus_v6.env 2011-03-11 09:05:09 +00:00
Franz Roters 6475235fb4 included "-heap-arrays 500000000" in remark on how to change compile command 2011-03-08 08:18:04 +00:00
Franz Roters 18e668340f Abaqus interfaces dapted to newest version of the rest of the code
does not yet check for restart, have to check out first how restarts work in Abaqus
explicit code not checked as we do not have a license
2011-03-07 12:49:27 +00:00
Franz Roters 654b5ea987 set type for acos_arg 2011-03-04 14:57:22 +00:00
Franz Roters 2975c99144 now the maybe not perfect quartenions caused trouble in math_QuaternionToEuler 2011-03-03 14:23:39 +00:00
Franz Roters e7c7ccdcdd improper rotation matrix from pdecomposition could cause negative arguments in squareroot 2011-03-03 10:47:07 +00:00
Franz Roters 6667e94238 abaqus routines VGETOUTDIR and GETOUTDIR do not return the trailing slash, which we assume to be there, so it has to be appended 2011-03-03 10:29:59 +00:00
Martin Diehl 138e9c43eb some comments (talking to Ricardo) 2011-02-25 16:24:23 +00:00
Martin Diehl a6d1e5c911 now deleted old _single files 2011-02-25 12:49:18 +00:00
Martin Diehl 8cae4d609a some polishing for single precision version.
Now only prec and mpie_spectral are needed in different versions
2011-02-25 12:41:46 +00:00
Christoph Kords ad4706673b * removed calculations for dipole formation/dissociation by stress change, since it is not used anyways; also removed associated constitutive outputs from material.config
* removed input variables in constitutive_collectDotState and constitutive_postResults that are not needed anymore (because of recent changes in constitutive_nonlocal)
2011-02-25 09:53:20 +00:00
Martin Diehl cd5407b08b removed all math functions only for double precision by the more flexible counterpart, e.g. "dsqrt --> sqrt", "dsin --> sin". Should not cause any harm, as long as "implicit none" is used.
Now it is possible to compile a single precision spectral solver/crystal plasticity by replacing mesh.f90 and prec.f90 with mesh_single.f90 and prec_single.f90.
For the spectral method, just call "make precision=single" instead of "make". Use "make clean" evertime you switch precision
2011-02-25 09:25:53 +00:00
Christoph Kords 2f503f5cdb added "Lp" as crystallite output 2011-02-25 08:15:26 +00:00
Christoph Kords e022810e66 fixed problem in internal stress calculation for periodic neighborhood 2011-02-25 08:10:11 +00:00
Martin Diehl f525c02ded added single precision libraries for FFTW
First try of implement single precision crystal plasticity, not working yet.
polishing text about geometry construction.
polishing postResults, still having problems concerning machines without MSC installation
2011-02-24 18:39:57 +00:00
Christoph Kords e49e5e13af * in flux calculation: take care of special case for single element model
* do not overwrite "constitutive_nonlocal_rhoDotFlux" when doing a state perturbation, so we can use it for output
2011-02-24 10:01:41 +00:00
Christoph Kords 8aef9b1c13 check for twin nodes only in direction of the surface normal. this solves a problem with models of single element thickness and periodic fluxes. 2011-02-24 09:26:30 +00:00