Commit Graph

174 Commits

Author SHA1 Message Date
Christoph Kords 38ec462f4a order of integration now same for all state integrators: first calculate the dotState and then the deltaState 2012-11-22 13:04:19 +00:00
Philip Eisenlohr 7d196fbb25 polishing 2012-11-22 09:58:36 +00:00
Philip Eisenlohr d189a6a7a0 polishing 2012-11-21 16:57:57 +00:00
Christoph Kords 760af1fbbf crystallite_requested now masked by execIP, now elemhomogeneous works again 2012-11-19 15:13:48 +00:00
Christoph Kords 9fb94cd707 breaking crystallite loop in case of terminally ill (this functionality was probably lost since rev1886) 2012-11-19 08:39:48 +00:00
Philip Eisenlohr d9a98417ca switched element library to geomType based.
saves to copy same geometry description for different elements that are essentially similar regarding the IP number but differ in total node count.

introduced quadratic tetrahedron (Marc element 127 -- element 157 might also work, but did not perform well in fully elastic calc so far)
2012-11-15 22:45:20 +00:00
Christoph Kords 11264f3fe4 forgot to check for convergence flag in FPI integrator 2012-11-08 20:15:19 +00:00
Christoph Kords 60438cdbcc criterion for crystallite cutback loop changed from crystallite_subStep to crystallite_todo; this avoids problems when the last substep of the crystallite increment is below subStepMinCryst (which is allowed during last wind forward)
fixed bug in the adaptive Euler integrator and the RK4 integrator, which could not reach the stateJump function, because of erroneous check for converged flag; also corrected the state counter for the RK4 integrator
2012-11-08 20:00:29 +00:00
Christoph Kords c775edaa6d better avoid initialization of residuum_old with huge, since it posed problems in Abaqus 2012-11-08 13:26:22 +00:00
Christoph Kords dad9922f54 fixed bug in crystallite_FPI: stateDamper always has to be defined for each grain
added some OMP FLUSH statements were necessary 
replaced openmp do by forall construct where possible; this is much safer and perhaps even as fast for small loops
2012-11-07 15:43:29 +00:00
Christoph Kords bb033c5fe7 Simplified algorithm of crystallite_integrateStress while preserving (almost) same functionality.
Removed "leapfrogging" (increase of step for next guess, when last guess was ok); Replaced Armijo rule testing for step size by simple check if the residuum got better, since the former virtually did not have any effect; consistently using the 2-norm of the residuum rather than infinity-norm for the convergence check throughout the function
2012-11-06 12:35:45 +00:00
Christoph Kords 639d6e0655 inserted missing flush(crystallite_todo) in parallel section; might have caused trouble in parallel calculations before 2012-11-05 14:45:52 +00:00
Martin Diehl 086fe138b1 substituted matrix inversion to solve equation by direct solution routine from LAPACK 2012-10-31 09:56:26 +00:00
Christoph Kords 2be331b74d In crystallite for state integrators 2 and 3: now that "stateJump" is called before integrating dotState, we have to do state = state + dotState *dt instead of state = subState0 + dotState * dt; otherwise the deltaState is lost 2012-10-22 13:34:15 +00:00
Christoph Kords 0980920b66 In crystallite: for state integrators 2 and 3 the deltaState always has to be done at the beginning of the integration, not at the end; otherwise the stiffness calculation can be completely wrong, when the state is changed after the stress integration for the central solution.
Also changed some debugging levels in crystallite and mainly in constitutive_nonlocal
2012-10-22 07:59:35 +00:00
Christoph Kords 36676029e1 for state integrator 2 (explicit euler) and 3 (adaptive 2nd order euler): don't do any state evolution during stiffness perturbation, but only stress integration, since for those cases the state is not restored after every perturbation step 2012-10-19 11:20:31 +00:00
Philip Eisenlohr dd5f453994 mainly cosmetics. added some comments. changed debug levels for some outputs. corrected (probably non-essential) check for NaN in FPI stressIntegrator. 2012-10-18 09:53:26 +00:00
Christoph Kords 5f0440fde3 crystallite_integrateStress now raises an error if Fp becomes NaN 2012-10-17 16:19:42 +00:00
Martin Diehl 0bcb8f59db added doxygen comments, some polishing, added "protected" statements where applicable 2012-10-02 12:53:25 +00:00
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