Commit Graph

155 Commits

Author SHA1 Message Date
Martin Diehl 22812c9a91 some minor improvement on precision detection: checking only once (in prec and no longer in math and crystallite), added one more 4/8 switch for LAPACK, as there is no single precision FFTW, stopping compilation for spectral method if FLOAT=4
new function in IO to print integers without leading zeros, implemented it at some places in the new spectral solver (reporting still needs some serious polishing)
updated preprocessing for documentation to handle precision correctly
2012-08-30 20:26:28 +00:00
Martin Diehl 0959ff3299 substituted hand written matrix inversion by LAPACK version with precision selection.
also introduced check for inversion into DAMASK_spectral_Utilities.f90 for the stress BC calculation. This part is further improved by using 5% of the reference stiffness to avoid trouble in the fully plastic regime (where the stiffness is underestimated)

Test for Marc 2010 is updated because the new inversion give slightly different results near 0 (order of e-13)
2012-08-28 16:59:45 +00:00
Christoph Kords ad7381cfdd maximum relative step length in stress integration cannot decrease below 1
intermediate tensor "A" is calculated only once before the Lp loop in "integrateStress"
2012-08-21 08:53:36 +00:00
Christoph Kords c1c5941733 stressAndItsTangent:
when winding forward to last substep in increment, also do the calculation if this substep is below "subStepMinCryst";
output of "wind forward" and "cutback" info only for crystallites that are still "todo"

integrateStress:
maximum component in Lp determines absolute convergence criterium:
aTol = max(maxLpComp * rTol_fromConfig , aTol_fromConfig)
this ensures that small values in Lp do not spoil the convergence, similar to the effect of the relevantStrain parameter before (not needed anymore in the stress integration)
2012-08-14 12:07:59 +00:00
Philip Eisenlohr 4d09ef0648 changed variable name "debug_what" to "debug_level" 2012-07-05 09:54:50 +00:00
Franz Roters 380f40561b first calculation of Tstar still used hard coded Hooke, now usese constitutive_TandItsTangent(...) 2012-06-18 07:26:34 +00:00
Christoph Kords fc7b4d6471 new function stateJump, which takes care of immediate changes in the state (deltaState); this introduces discontinuities in the state evolution; therefore this is always and only once done after each integration step, so no evaluation of deltaState for intermediate steps of e.g. the Runge-Kutta integrator; otherwise integration becomes a pain without significant gain in accuracy
deltaState now successfully tested for nonlocal model; was not correct for integrators 1,4,5 before
2012-06-06 15:11:30 +00:00
Christoph Kords 8c849d62ee small corrections for how to treat the new deltaState in FPI and euler integration; all integrators successfully tested with j2 2012-05-18 13:00:15 +00:00
Christoph Kords abbae76c51 instantaneous jumps in the state by constitutive_deltaState are now incorporated for all state integrators. still they (should) not influence the result, since all constitutive laws simply return zero for the deltaState 2012-05-17 15:25:21 +00:00
Christoph Kords a54439e3b5 dotState does not have to be reset to zero. this is a remnant from older versions when the dotState for the nonlocal model used to be updated by the neighboring integration point 2012-05-16 15:35:14 +00:00
Franz Roters 7ee368f324 check whether there is any constitutive output 2012-05-11 07:38:20 +00:00
Christoph Kords 91a70b0fb3 before turning terminally ill report at which g,i,e crystallite did not converge 2012-03-30 13:16:45 +00:00
Pratheek Shanthraj 131c9ac93e dPdF calculations made consistent with constitutive_TandItsTangent 2012-03-21 15:00:36 +00:00
Franz Roters 8a2f2c5a95 stress iteration loop now uses generalized elasticity by calling TandItsTangent
the anlalytical tangent calculation should now be adopted to also use TandItsTangent
2012-03-21 10:57:27 +00:00
Pratheek Shanthraj c2f5cebacb simplified analytic jacobian calculation. removed Lpfrac, time_sensitive. introduced rate_sensitivity flag when calling crystallite_stressAndItsTangent that is currently set to .false. and is to be set according to which dPdF the FE solver is asking for 2012-03-14 13:56:50 +00:00
Franz Roters c9ed989dad replaced keyword constitution with plasticity in preparation of upcomming generalized elasticity 2012-03-12 14:09:37 +00:00
Martin Diehl bd9667bd4b added new, flexible debugging scheme.
now all modules have their own debug specification.
compiles and runs, I hope nothing is broken
did a lot of polishing
2012-03-08 20:25:28 +00:00
Pratheek Shanthraj 17e9698659 added time_sensitive flag to ignore or add time sensitive component to analytic jacobian (should be close to perturbed jacobian when ignored)
now uses sub_dt for analytic jacobian calculations
bug fixes
2012-03-01 19:42:43 +00:00
Nan Jia 211f66a728 added elastic stiffness matrix as crystallite output 2012-03-01 13:06:09 +00:00
Pratheek Shanthraj 040e244993 Added stress-order terms to analytic stiffness 2012-02-27 17:40:28 +00:00
Pratheek Shanthraj 99d6dcecb5 fixed bug in calculation of analytic jacobian (should work much better now). parallelized analytic jacobian calculation loop 2012-02-24 14:07:46 +00:00
Pratheek Shanthraj 28d654d61e forgot to remove some print statements in previous commit 2012-02-22 20:22:54 +00:00
Pratheek Shanthraj b9a82156c9 crystallite.f90: can now calculate analytic jacobian by setting analyticJaco = 1 in numerics.config
math.f90: added math_mul3333xx3333…

numerics.f90: to read in analyticJaco and Lp_frac
2012-02-22 20:11:09 +00:00
Martin Diehl d68a3d1869 added LF=UNIX to a bunch of files 2012-02-22 13:30:00 +00:00
Martin Diehl d8ffc29236 again: adding pInt, removing redundant use statments, chang in dble to real(,pReal) 2012-02-21 16:31:37 +00:00
Martin Diehl 6c0f9d163b polishing: removed variable names like 'unit' and 'data' that are keywords of fortran and ensured that integer and real precision matches independent of machine standard.
removed cut_off parameter for damask_spectral
removed outpot of derived divergence measures and added RMS output in brackets
added comments and options to the makefile
2012-02-15 18:58:38 +00:00
Christoph Kords c786336af3 reordered (and partly redistributed) error message identifiers, deleted those which are not in use anymore.
all constitutive as well numerics now raises an error, if an unknown keyword is found in the respective config file
2012-02-13 17:41:27 +00:00
Krishna Komerla 94100e8d8e missing line break 2012-02-13 15:21:03 +00:00
Martin Diehl 156ec4582a polishing, adding _pInt etc. where applicable
post_results now handels zero increment different (like FEM, it is always there even if it is not counted)
2012-02-13 14:18:07 +00:00
Philip Eisenlohr fa32a00d56 changed symmetryID initialization to integer (instead of float) value 2012-02-10 17:46:43 +00:00
Christoph Kords e7d407c2f6 crystallite_Fp has to be initialized in crystallite_init, cause it is used by constitutive_microstructure 2012-02-03 14:52:09 +00:00
Martin Diehl c5128e94eb some f2008 standard related correction i didn't check in last time 2012-02-01 20:20:05 +00:00
Martin Diehl 800e291240 made code standard conform to Fortran 2008 (ignoring warning concerning comments beyond character 132). Basically, changing "x" format specifier to "Nx" ("1x") plus removing $ format specifier
added compiler switches for gfortran and ifort to check for standard conformity
old gnu compilers <4.4 are not longer supported because they don't provide the c binding for fftw
2012-01-31 19:18:55 +00:00
Martin Diehl 80583fefb5 added compilation_info.f90, to store compilation date,time and compiler info in each file
added #include statement at each init() routine
2012-01-31 14:54:49 +00:00
Christoph Kords 1330576a01 added new math function "math_deviatoric33" which returns the deviatoric part of a 3x3 tensor
renamed some math functions, so that we have a universal naming scheme: for matrix multiplications use an "x" (e.g. math_mul33x3); don't use the "x" to describe the shape of the tensor that the function is applied to (e.g. math_invert33 instead of math_invert3x3)
2012-01-26 13:50:00 +00:00
Christoph Kords 6fec57bbd7 replaced variable fraction by "timefraction" 2012-01-26 12:48:59 +00:00
Christoph Kords 4980f57fd5 added total Green-Lagrange strain to crystallite outputs 2012-01-20 10:25:35 +00:00
Christoph Kords 8739b9522e dislocation stress does not add to stress field anymore, but is only available as constitutive output for purposes of postprocessing. instead, we now use a backstress term (which is added to the resolved shear stress) that depends on the gradient of excess density on the same slip system. 2012-01-17 10:26:57 +00:00
Philip Eisenlohr a7d9d711f6 edited lines exceeding 132 chars (before any comment started) 2012-01-11 16:56:35 +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
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 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
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
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
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
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
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