Commit Graph

952 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 23a0ca3b59 keep "odd" stress in rnd-range of -1.0 to -0.5 and 0.5 to 1.0
serial calc now skips IPs when /elementhomogeneous/

for /elementhomogeneous/ IPs > 1 individually copy the result from IP 1 to prevent spuriously outdating themselves.
2012-11-21 17:00:29 +00:00
Philip Eisenlohr ec8a84ded7 added output of element and ip to debug messages 2012-11-21 16:58:14 +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
Franz Roters d4a59541ad removed write statements which were introduced for "debuging" 2012-11-19 15:12:11 +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
Christoph Kords 4195d53d11 message of last commit was incomplete: moved annihilation of screw dipoles from dotstate to deltaState, since it is not a rate 2012-11-17 13:54:22 +00:00
Christoph Kords 467c186f0f annihilation of screws 2012-11-17 13:50:20 +00:00
Nader Zaafarani dc5cd8a4c4 A modified twin-twin interaction matrix for BCC is introduced.
An introduction of a third parameter at the interactionTwinTwin in the material.config for BCC-dislotwin materials is essential.
2012-11-16 13:39:08 +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 aec163941d calculate ip coordinates only once when the first ip enters calculation mode 2012-11-15 12:31:39 +00:00
Philip Eisenlohr bdbc202c7e corrected typos 2012-11-15 09:22:36 +00:00
Nader Zaafarani c0a5a1dfd1 Formation of the Slip-Slip interaction matrix for BCC. 2012-11-14 17:35:33 +00:00
Martin Diehl 7e683ca7c3 removed coordinates from call to CPFEM_general and introduced direct storage of coordinates to mesh_ipCoordinates 2012-11-14 14:38:10 +00:00
Martin Diehl 1896c07c70 corrected some bugs in the last commits 2012-11-14 14:33:41 +00:00
Nader Zaafarani c8be3a03bd The twin system <111>{112} for BCC is introduced. 2012-11-14 13:43:59 +00:00
Nader Zaafarani 6b010b4a46 Twin-slip interaction matrix for BCC is set to 0. 2012-11-14 11:53:22 +00:00
Nader Zaafarani b0464ad176 A modified slip-twin interaction matrices for FCC and BCC are introduced.
The shear twin value for BCC is corrected.
An introduction of a third parameter at the interactionSlipTwin in the material.config for dislotwin materials is essential.
2012-11-14 11:13:16 +00:00
Philip Eisenlohr fb2981b4c4 switched matrix indices in SlipSlip, SlipTwin, TwinSlip, and TwinTwin such that first index refers to first name and second to second... 2012-11-14 10:27:23 +00:00
Philip Eisenlohr e4ce63d689 switched matrix indices in SlipSlip, SlipTwin, TwinSlip, and TwinTwin such that first index refers to first name and second to second... (used to be transposed for memory efficiency) 2012-11-14 10:22:34 +00:00
Philip Eisenlohr 789e6c7d83 dropped support of MSC.Marc/Mentat 2007 and 2008 2012-11-14 09:57:18 +00:00
Philip Eisenlohr ad9639f2f7 check for existence of files before sym-linking to them. 2012-11-14 09:40:45 +00:00
Martin Diehl c3926efd93 introduced logic to use gfortran as default if ifort is not found 2012-11-13 19:12:00 +00:00
Martin Diehl 922042d8d5 now automatically using gfortran if no ifort is found 2012-11-13 18:40:14 +00:00
Martin Diehl 0c87fc16f4 renamed the keyword for the make options from make to options 2012-11-13 17:26:25 +00:00
Martin Diehl 70c4e11742 added comments and structured the code. Temperature is not longer stored for each point but only to simplify restart behavior as long as it is not fully supported by the constitutive models 2012-11-12 14:14:39 +00:00
Christoph Kords 3c53f3ec9a last version contains buggy mesh.f90; corrected typo in initialization 2012-11-09 07:52:44 +00:00
Christoph Kords 366ac28694 parallelized mesh_build_subNodeCoords and mesh_build_ipCoordinates 2012-11-09 07:47:14 +00:00
Martin Diehl b1c3c57412 some more finetuning, still not running on gfortran 4.5.0 2012-11-08 21:33:58 +00:00
Martin Diehl c831716b26 reseting value vector when reading in for loadcase file, otherwise NaNs might be in there 2012-11-08 20:35:31 +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
Martin Diehl ee5903c767 replaced real 'guessmode' with logical 'guess', caused trouble on gfortran 6.3 with ultra optimization 2012-11-08 19:32:00 +00:00
Martin Diehl 6a86f36407 now having libraries from Makefile before PETSc Libraries in linker order 2012-11-08 18:26:10 +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
Martin Diehl bbcffa668b some small changes in including PETSc *.h90 files to prevent warnings.
It seems that a bug in old gfortran 4.5.0 causes the problems, at least with 4.7.3 it seems to work after fixing the bugs in IO.f90
2012-11-07 13:11:41 +00:00
Martin Diehl 9b99825ac6 preventing array index out of bounds in case of empty line, removed to goto statements 2012-11-07 09:31:46 +00:00
Martin Diehl 5214b93342 fixed bug when reading in geometry for spectral solver 2012-11-06 17:16:01 +00:00
Martin Diehl 3ada4897fb reordered PETSc initialization (now first part done in interface, setting of parameters done in numerics), removed unnecessary includes for PETSc
still not running with gfortran, use at own risk!
2012-11-06 16:00:51 +00:00
Martin Diehl a86d528a4a replaced call flush(6) by flush(6), slightly improved formating for output of gfortran version 2012-11-06 15:50:20 +00:00
Christoph Kords 5b6baa7c0d introduced distinction between ip coordinates and cell center coordinates; the former can be globally calculated by subroutine mesh_build_ipCoordinates, the latter locally by the function mesh_cellCenterCoordinates; renamed mesh_ipCenterOfGravity to mesh_ipCordinates 2012-11-06 14:37:13 +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 55dc286be2 corrected limit for upper stable dipole distance; fixed a bug in the postResults where division by zero might happen 2012-10-29 13:02:01 +00:00
Christoph Kords f666f8dcf3 added possibility to scale the plastic shearrate by the ratio of mobile to total density; keyword in material.config is "deadZone" 2012-10-29 12:49:28 +00:00
Martin Diehl ca596bc7af error messages are now printed, added svn properties 2012-10-25 09:16:17 +00:00
Christoph Kords 93cc466749 third entry in mesh_ipNeighborhood stores the neighbor_index that points from each neighbor back to the central ip; needed in nonlocal model 2012-10-24 14:03:02 +00:00
Martin Diehl 13b55275b1 documented utilities and structured, worked on the restart capabilities of the new basic solver 2012-10-24 11:31:40 +00:00
Philip Eisenlohr 5ad0eda1b6 switched saturation behavior!!
was \dot s_alpha = (1-s_alpha/s_inf)^a h_alphabeta \dot gamma_beta
now \dot s_alpha = h_alphabeta  (1-s_beta/s_inf)^a \dot gamma_beta

current form is consistent with the genmat implementation (and appears to make more physical sense). Kalidindi_etal1992 suggested this form, but altered it to the alpha-one in Bachu+Kalidindi1998... By now, it seems that some groups use alpha, others beta approach.

introduced two new absolute tolerance values for "shears" and "twinFrac" (default 1e-6).
2012-10-22 14:55:07 +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 3ecaa9e371 modified multiplication term in order to mimic a discrete distribution of dislocation sources; namely, at high resolution, when there is (on average) less than one source per integration point, a random generator decides whether there is a source in the finite volume or not; if there is one, then the multiplication turns independent of the density and depends only on the velocity/volume times a scalar factor; recovers density*velocity/lambda for large finite volumes 2012-10-19 11:40:17 +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
Martin Diehl b9f97ba5da unified naming scheme, fixed a bug in the new basic scheme, and added a statistic file similar to abaqus to store the information on needed cut backs and iterations for each inc 2012-10-19 08:44:21 +00:00
Christoph Kords 6230dacbac only first broken ip signals "terminally ill" 2012-10-18 13:48:06 +00:00
Christoph Kords 4a6e08bb69 changed keyword in spectral geometry file for multiplication of entries from "copies of" to "of" 2012-10-18 10:17:16 +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
Philip Eisenlohr 79a5a30a90 removed now obsolete vectorproduct variables st, tt... 2012-10-18 07:25:49 +00:00
Christoph Kords 5f0440fde3 crystallite_integrateStress now raises an error if Fp becomes NaN 2012-10-17 16:19:42 +00:00
Philip Eisenlohr 31f20e51da just to be able to tell about the bug I found in the hex slip systems---which I actually forgot to mention during the last commit---I slipped in a syntax error that now is fixed, too... 2012-10-12 20:31:50 +00:00
Philip Eisenlohr 05c5ea42d7 prepared loop distributions to hold "over shooters" 2012-10-12 18:00:55 +00:00
Philip Eisenlohr 82a13af474 tidied up the Schmid matrix calculations.
added internal check against dilatation in Schmid matrices.
2012-10-12 17:59:50 +00:00
Philip Eisenlohr b20c612e25 added error "0" for internal (run time) checks failing 2012-10-12 17:55:23 +00:00
Philip Eisenlohr 1b2edd7e7d fixed error in _identity (wrong delta-function)
added _exp33 for matrix exponential
added trace33 for matrix trace
2012-10-12 17:54:20 +00:00
Martin Diehl 324dfda5a2 added comments (doxygen conform) to phenopowerlaw, added warning on specifying h0_sliptwin as it has no effect 2012-10-11 14:49:12 +00:00
Christoph Kords e4054c116d fixed problem with gnu compiler: allocation of variables in constitutive_nonlocal_stateInit was not safe when not using any nonlocal constitution
put header of debugging output in constitutive_init at the start of the function in order to make debugging easier
2012-10-09 12:34:57 +00:00
Christoph Kords a84e0529c3 make correction of hardening coefficients thread safe 2012-10-05 16:05:51 +00:00
Christoph Kords 40a2e652e7 introduced material parameter "linetension", which indicates how strong the effect of the line tension on the hardening coefficients is 2012-10-05 14:42:41 +00:00
Christoph Kords 7cc6108a04 hardening coefficients for fcc are density dependent (line tension effect, Devincre, Kubin, Hoc; 2006; Physical analyses of crystal plasticity by DD simulations)
fixed bug with thermal annihilation producing negative density in case of very small dipole density and high climb velocity
2012-10-04 18:08:40 +00:00
Martin Diehl 80465c0b49 moved option for UTF-8 encoding to spectral interface as this is now called before prec init.
if UTF-8 encoding is needed for FEM solver (old compilers might not support it), add the same statement to the corresponding interface routine
2012-10-04 14:22:39 +00:00
Martin Diehl e2ea3cdff6 again some changes regarding creation of NaN, ieee-conforming way is not in the complilers yet. 2012-10-02 16:53:03 +00:00
Christoph Kords bce8012c89 random distribution of initial dislocation density now really independent of meshsize 2012-10-02 15:26:58 +00:00
Martin Diehl d5ce49c471 numerics got some protected statements and is now reading in the new keywords for the solver selection in small letters.
spectral solver got cut back facilities + improved output to screen
2012-10-02 15:26:56 +00:00
Christoph Kords 91b7883c2a random distribution of initial dislocation density now independent of mesh size 2012-10-02 13:35:34 +00:00
Christoph Kords 1502a71f0c added possibility to start with an initial random distribution of dislocation segments with specific overall density 2012-10-02 12:57:24 +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 6301787df4 moved the the variable cutBack from FEsolving.f90 (where it was not used at all) to the interface routines to make responsibility of cut back control clear
PLEASE RUN setup_code.py IF YOU DO MARC SIMULATIONS, THE INTERFACE HAS CHANGED
2012-10-02 12:46:58 +00:00
Martin Diehl c8b7da432c set debug_level to be protected as it is read-only for other modules 2012-10-02 09:35:39 +00:00
Martin Diehl 4c7bcb8df9 modified formated integer output and added error number in case maximum number of cutbacks is reached 2012-10-02 09:30:13 +00:00
Franz Roters 9fc46b4950 added /echo/ statements 2012-10-02 08:12:53 +00:00
Christoph Kords b99a846503 new scaling feature in numerics (unitlength) did not scale the reference coordinates in the first place; now this is taken care of in mesh.f90, so scaling should work properly 2012-09-25 16:21:58 +00:00
Christoph Kords d0fd3c03c5 forgot to check in; belongs to rev 1762 2012-09-24 16:22:25 +00:00
Martin Diehl 912277d1ed substituted the call to the flush subroutine with the intrisic flush(6) function 2012-09-24 12:10:28 +00:00
Christoph Kords 8336d0705c new numerics parameter "unitlength" that scales the model size in DAMASK; this enables to use very small models in marc without getting any numerical problems for example with contact which does not seem to work when using very small numbers 2012-09-24 06:13:26 +00:00
Martin Diehl b587bffdd5 added some 'protected' statements to variables that shouldn't be changed by other modules 2012-09-22 16:49:41 +00:00
Krishna Komerla 8ed69170c5 corrected wrong warning complaining about FFTW string when DAMASK_NUM_THREADS undefined 2012-09-14 16:39:42 +00:00
Martin Diehl 1cfc467705 added new cut back parameter for spectral solver and instrumented variables for use with doxygen 2012-09-13 09:48:38 +00:00
Duancheng Ma b9a2890665 fixed bug in loadcase rotation: when not specifying "deg" the rotation was reset to 0,0,0..! 2012-09-06 14:05:28 +00:00
Christoph Kords 29023cea3c minor correction of debugging output 2012-09-05 11:19:46 +00:00
Pratheek Shanthraj 330d71864e fixed bug with stress BC handling 2012-09-05 08:30:15 +00:00
Christoph Kords f153866030 introduced factor to control edge contribution to multiplication;
dislocation density below a single dislocation per IP considered not significant
2012-09-04 16:56:37 +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 299d9e6bc4 fixed bug in seed initialization that didn't allow to redo calculations that started with a random seed. Now the whole random seed array is set to one value, previously only the first one was reported and the remaining ones were random
removed old random function used by halton
2012-08-30 14:58:30 +00:00
Christoph Kords d80b45c1d9 added relativistic correction of velocity (maximum velocity given by parameter in material.config); probability of thermal activation in velocity law not allowed to be greater than one.
output of creation rate for edge jogs now for own system, not collinear.
check for negative densities in dotState now uses absoluteToleranceRho instead of significantRho.
2012-08-30 07:33:13 +00:00
Martin Diehl 8e3b547cbd changed numerics.f90 back to the old openmp statement as this doesn't seem to cause the problem and is standard conforming
corrected typo in constitutive_j2.f90 that might cause abaqus to crash
now running 20 tests of abaqus in order to have a decent statistic about the crash behavior
improved abaqus_v6.env
2012-08-29 16:16:10 +00:00
Martin Diehl 84e3f94424 added flush for easier debugging 2012-08-29 15:23:43 +00:00