Commit Graph

421 Commits

Author SHA1 Message Date
Christoph Kords f5f3ef5ecc * have to reset dotState to zero before call to collectDotState (only important for nonlocal calculation)
* in Fixed Point Iteration: update dependent states after state preguess was missing; on the other hand, the first call to constitutive_microstructure was obsolete
2010-10-26 14:04:33 +00:00
Christoph Kords 4439282239 no change to previous version, just forget to mention one important change of the last revision:
* fluxes are now again calculated and distributed only! by the originating material point. this means that the central MP might change the dotState of its neighbor. have to see whether locks slow down parallel computation
2010-10-26 13:49:58 +00:00
Christoph Kords 62d06001ea * corrected compatibility for screws (always positive)
* detection of grain boundary in constitutive_nonlocal_microstructure with the help of transmissivity
* enforce positive densities in constitutive_nonlocal_microstructure (needed because dotState does not create cutbacks for negative densities anymore)
* reset single mobile densities below certain threshold to zero (also done in constitutive_nonlocal_microstructure)
* constitutive_nonlocal_kinetics only gets local state variable as input, no need for the entire array here
* dv_dtau is always positive
* multiplication is only active when there is already some initial density of the respective type
2010-10-26 13:42:18 +00:00
Christoph Kords 366d52bd71 * former "relevantRho" and "relevantResistance" is renamed to "atol_rho" and "atol_resistance" and now used as an absolute tolerance for the state residuum. before it was used rather as significant state, so whenever the state dropped below that value it was considered converged. (In dislotwin and titanmod constitutive law there is only one value atol_rho which is used for all the states, though the state array consists not only of densities. We need further parameters here!)
* somewhat simplified convergence check for adaptive euler and runge-kutta
2010-10-26 13:16:37 +00:00
Martin Diehl 26cb618b6d changed calculation to small strain/cauchy stress 2010-10-20 11:27:10 +00:00
Martin Diehl da35eaa8a1 changed spectral algorithm to version proposed by Ricardo 2001 (using tau_field instead of stress_field).
Still using largestrain-formulation
2010-10-20 09:27:47 +00:00
Martin Diehl 3837dad51e fixed bug in mpie_spectral.f90 concerning spectral method (now deltaF hat get the right value)
added mpie_spectral2.f90, a version that should get the new algorithm proposed in 2010. until now, it is the same as mpie_spectral.f90 (large strain formulation by suquet et al) but with c2c, c2c FFT
2010-10-20 08:59:00 +00:00
Christoph Kords e49de75fe3 stiffness calculation now only needs a single function call to the respective integrator method instead of one call per grain (which seems to heavily slow down the computation). also no special treatment for non-local material points anymore. 2010-10-15 14:57:13 +00:00
Christoph Kords fffe731447 * had to correct nonlocal slip system compatibility and flux calculation. last update gave wrong results. 2010-10-15 13:19:26 +00:00
Philip Eisenlohr 61f8a5fcbe corrected UpperCase "SolidSolutionStrength" in config file parsing. 2010-10-15 12:59:00 +00:00
Martin Diehl 3c502561ee added matrix multiplication 3333x33 to math.f90
added some parameters for spectral method to numerics.f90 (tolerance)
changed error message concerning spectral method in IO.f90
corrected calculation of stress BC in mpie_spectral.f90
2010-10-13 16:04:44 +00:00
Christoph Kords 724960686f * in nonlocal model: dislocation flux now with valid description also for large angle grain boundaries; transfer of dislocations from one slip system to the other according to new variable "constitutive_nonlocal_compatibility" which depends on the angle between slip plane normals and slip directions and is updated once per cycle in function "crystallite_orientations"
* reactivated debugging functionality for "non-standard" integration methods
2010-10-12 13:08:54 +00:00
Christoph Kords efd92d9b51 allocation of special state variables for "non-standard integration" was erroneous. used to produce segmentation fault for integration method 4 and 5. 2010-10-12 12:11:24 +00:00
Christoph Kords fce7590c17 * now able to choose method for state integration (integrator and integratorStiffness in numerics.config); standard is "Fixed Point Iteration", which is basically the same as before; others available are "Explicit Euler", "AdaptiveEuler", "Classical Runge-Kutta" and "Runge-Kutta Cash-Karp"
* now remembering stiffness similar to how we do it for Lp etc.; avoids undefined stiffness values for nonconverged stiffness calculation

* non-local stuff:
   * changed non-local kinetics (Gilman2002)
   * enforce zero shearrate for overall carrrier density below relevant density
   * enforce zero density for those states that become negative and were below relevant density before
   * dislocation velocity is not limited by V^(1/3) / dt anymore
2010-10-01 12:18:49 +00:00
Martin Diehl 9927cd7adb changed format of resolution. instead of reading exponent of two, now the number given equals directly to the number of FPs. Allows us to use arbitrary number of FPs.
example:
OLD: reading 5 results in 2^5=32 FPs
NEW: reading 33 results in 33 FPs
2010-10-01 10:42:15 +00:00
Alankar Alankar 2cc7bc38d7 Fixed a missing ','. Assigned plane and direction names. 2010-10-01 06:32:44 +00:00
Philip Eisenlohr 1ae252c1ce altered hexagonal slip systems
(needs comparison to former set, which is potentially wrong)
2010-09-30 17:31:19 +00:00
Claudio Zambaldi b85f9b0770 material.config: changed texture of microstructure 1 from 1 to 3, because 1 needs a ODF file which is not in the repository and makes the one_element_model.proc complain. 2010-09-30 12:55:38 +00:00
Philip Eisenlohr a8dfdc6487 added _mul33xx33 double contraction: A_ij * B_ij = scalar 2010-09-30 09:32:49 +00:00
Christoph Kords cb4b4afc88 corrected header for math_qRot 2010-09-30 08:46:58 +00:00
Philip Eisenlohr b259fbd9c6 1) added distribution of leapfrog breaks
2) lattice_symmetryType is now a function (former lookup array was buggy)
3) stricter check of state var values (>0!) and memory deallocation done
2010-09-30 07:31:53 +00:00
Alankar Alankar e562df35a9 Added more state dependent variables in post results. 2010-09-29 06:35:08 +00:00
Martin Diehl 5a51082977 polishing, changed calculation of stress BC.
prevent updating of gamma hat in case of perfect plasticity
2010-09-24 13:27:53 +00:00
Alankar Alankar d94236b2d6 Declaration of filename etc. was missing. Fixed now. 2010-09-23 09:13:46 +00:00
Philip Eisenlohr 83a921eec2 crystallite: polishing
rest: added "$ID" and line ending settings...
2010-09-23 08:05:50 +00:00
Philip Eisenlohr a467fb4ae3 forgot "$ID" and setting line endings... 2010-09-23 08:03:00 +00:00
Philip Eisenlohr 89136afade debug now has config file, too 2010-09-23 08:01:41 +00:00
Martin Diehl 6ea8623f65 added functions math_mul33x3_complex math_Plain99to3333 to math.f90.
mpie_spectral.f90 uses both functions
math_Plain99to3333 is used for inversion of c0
math_mul33x3_complex is used for equilibrium check in fourier space
also did some cleaning up on mpie_spectral.f90
2010-09-22 12:04:43 +00:00
Alankar Alankar 80618c9814 Cleaned-up, rearranged state variables 2010-09-22 09:00:40 +00:00
Alankar Alankar 7548858ffa Some useful changes in damper for quicker convergence. 2010-09-22 08:54:36 +00:00
Martin Diehl 604992a9e1 fixes bugs in screen output, changed gmsh output, now the deformed mesh is written out 2010-09-22 08:51:34 +00:00
Martin Diehl 6920d8d939 cleaning up, added new output to gmsh and to screen, prepared calculation of deformed mesh
new convergence criteria: divergence of stressfield (in fourier space)
2010-09-21 15:38:25 +00:00
Alankar Alankar 8488cafe3a now consistent with numerics.f90 values 2010-09-21 14:37:52 +00:00
Alankar Alankar 18c86ca0b1 Updated corresponding files for titanmod constitutive 2010-09-13 09:29:03 +00:00
Philip Eisenlohr 9a20f742ea leaner memory requirement to store states and their rates when calculating the crystallite stiffness 2010-09-13 09:13:25 +00:00
Martin Diehl 1693bfca47 changed calculation of defgrad from cauchy-stress to pk-stress, now working in large-strain-formulation.
output of msh-file changed to deformed configuration, removed output of defgrad as a field
2010-09-07 16:37:55 +00:00
Alankar Alankar 3c5f38643d Brushed up accountability of twinning to Lp 2010-09-07 14:44:37 +00:00
Christoph Kords 7d4c7f7fa7 corrected bug in debug: stressloop info was erroneous
mesh init now showing much more ip statistics in verbose mode
2010-09-07 09:06:02 +00:00
Philip Eisenlohr a3c92061f9 1) terminallyIll was reset before FE did cutback --> useless extra calculations of same problem over and over...
2) local stiffness calculation is now standard for non-local grains
3) stressLoopDistribution discriminates between (a) central solution and (b) stiffness perturbation
4) debugger is switched on as standard... (but verboseDebugger not!)
2010-09-06 16:06:41 +00:00
Martin Diehl 00922705eb now using current average stiffness for reference material stiffness 2010-09-06 10:00:59 +00:00
Philip Eisenlohr c19524f264 1) fixed terminallyIll bug occurring with Ngrains=1 homogenization
2) brushed up the output to be more easily readable/understandable
2010-09-01 21:04:02 +00:00
Alankar Alankar 4f29e8c2fe Introduced twinning. Twinning based on accumulated shear on twin systems. No slip-twin interactions yet. 2010-09-01 10:07:52 +00:00
Martin Diehl a5c228fd02 changed back transform to complex-to-real, removed redundant variables, reduced size of arrays where possible 2010-09-01 08:05:11 +00:00
Martin Diehl 85febf0803 added fftw3 as fft(library will not versioned, should be in a linkable folder) , did some corrections on the code, splitted main file up (allows use of makefile), added makefile
changes on mpie_spectral.f90:
new structure, changed variable names, now using defgrad instead of disgrad, cleaned up, removed augmented Lagrange.
ToDo: Implement Augmented Lagrange again (but then a working version), implement Large strain, think about complex-to real-transform backwards, try to implement MP-support
2010-08-27 16:39:38 +00:00
Christoph Kords 05568ef73b calculation of state damper was erroneous for use with nonlocal and other constitution at the same time 2010-08-26 12:54:31 +00:00
Christoph Kords 197d7ea8d9 rearranged output statements in crystallite init for better readability in output file 2010-08-26 09:52:40 +00:00
Alankar Alankar ec4269bdd8 Added 'dislocation-type' dependent interactions. Ideal for hexagonal and BCC structures. 2010-08-23 11:36:51 +00:00
Philip Eisenlohr da53656c9a added C3D20R (type 9) to list of possible non-local elements (Christoph, should we invent a reasonable error number for this? "-1" may not be optimal...) 2010-08-19 23:00:26 +00:00
Philip Eisenlohr c352146fe6 exchanged forall (warning causers) to nested do loops
deleted (currently unused) symmetrization of H tensor in CPFEM.f90 --> Denny pls advise?
2010-08-19 21:35:38 +00:00
Franz Roters f78b07448f some modifications in line with Davids analytical model
input some additional variables via material.config
2010-08-17 14:23:55 +00:00
Philip Eisenlohr bb9899e7de 1) added element type 57 (C3D20R) reduced quadratic hexahedral
2) need discussion about the present omission of the FE_nodesAtIP for type 8 --> added comment into source code
2010-08-16 22:53:24 +00:00
Alankar Alankar 9f071c3e01 Added kink-pair pre-factor for screw dislocation mobilities on non-basal slip systems in hex 2010-08-06 15:53:45 +00:00
Philip Eisenlohr 298cecbfec corrected syntax errors (long lines, line continuation by \) and logical mistake in mpie_cpfem_marc / abq_std which went unnoticed in ifort. Using SunStudio f90 surfaced those... 2010-08-03 23:47:00 +00:00
Alankar Alankar 60decea760 Calibration (Prismatic slip) of the new dislocation density based CPFE model for single crystal alpha-Ti (Titanmod). Formulated edge and screw dislocations mobilities in presence of kink pairs. Updated comments. The model shows the plateau in stress evolution in prismatic orientation which is observed in experiments. 2010-07-15 07:16:15 +00:00
Martin Diehl 49926d5d66 F77 --> F90 polishing/condensation as far as possible.
next step is change of Re/Im FFT to Re only...
2010-07-13 15:29:26 +00:00
Philip Eisenlohr 4d110126da adopted improvements done by Arun Prakash.
mesh:
elemType identification based on lower case
Abaqus now reports more errors

IO:
new function to inquire whether inputfile contains "parts"
new function to assemble multiply included inputfile into a flat one
awareness of range generation in element numbers
error reporting
2010-07-13 10:26:07 +00:00
Alankar Alankar eb7830dc8f New Titanium CPFE model based on dislocation density. Running but calibration and changes needed. 2010-07-13 08:19:25 +00:00
Martin Diehl 397db06fb3 cpfe_general now returns also Kirchhoff-stress P and dPdF
added dummy variables P and dPdF to mpie_cpfe_* to be able to call cpfem_general correctly
2010-07-07 09:58:18 +00:00
Martin Diehl 80016f8429 added P and dPdF for the call to cpfem_general, made some comments in the code, aligned some loops 2010-07-07 09:10:54 +00:00
Martin Diehl f9834bc612 changed types of integers and reals in fourier transform, changed some variables and cleaned up code to make it easier to understand 2010-07-05 16:01:36 +00:00
Ricardo Lebensohn c3e222dbbd errs added etc. 2010-07-05 11:33:48 +00:00
Philip Eisenlohr 4f76eada31 started suggestions for F77 --> F90 style
xkdyad useful..?

looking for error calculation (Ricardo to rescue here)
2010-07-02 17:15:53 +00:00
Martin Diehl d6ba9d54b6 changed declaration of two variables from real to int, spectral method is now working.
started to commend Ricardos code, layoutet loops and removed some redundant variables.
until now, no error calculation is done. at the moment calculations are in an infinite loop
2010-07-02 14:10:36 +00:00
Martin Diehl 661bb97800 corrected some problems in building mesh 2010-07-01 15:20:39 +00:00
Martin Diehl 2ec39c936c added first version of spectral method, changed corrected functions to get correct path to files 2010-07-01 15:20:06 +00:00
Martin Diehl c3e51e5330 added functions to read out resolution, dimension and homogenization from mesh file 2010-06-25 11:31:05 +00:00
Christoph Kords eb0cc24a8e no need for material parameter "a" anymore, dislocation stress calculation now works without "core spreading" 2010-06-21 16:01:05 +00:00
Christoph Kords 7d6e52067b dislocation stress based on dislocation density gradients 2010-06-21 15:58:56 +00:00
Christoph Kords 6d874e2c1f nonlocal stiffness calculation:
rather perturb all components at once (and optionally decrease the frequency of the Jacobian update with the iJaco parameter) than perturbing only a single component per cycle
2010-06-17 06:32:56 +00:00
Philip Eisenlohr 1c72439350 first shot at init with CPFEM_general
better would be to manually read the mesh resolution, set up Spectral solution strategy and call CPFEM_general just during BVP solution.
2010-06-10 15:32:06 +00:00
Philip Eisenlohr 8ea52ac495 mpie_spectral now can read loadcase data
adapted error codes
2010-06-10 14:51:10 +00:00
Martin Diehl 386ca7ebc3 added some basic I/O functions to mpie_spectral.f90 2010-06-10 08:50:04 +00:00
Christoph Kords 740db98090 - use upwind differences scheme for fluxes instead of central differences
- introduced possibility to "reflect" fluxes at free surfaces in order to have quasi-periodic fluxes
2010-06-09 08:56:00 +00:00
Philip Eisenlohr 11b98fbfa6 added ID functionality and correct line endings 2010-06-08 10:10:57 +00:00
Philip Eisenlohr 82687d31c8 first shot at mpie_spectral wrapper 2010-06-08 10:08:15 +00:00
Philip Eisenlohr 7e78932976 renamed "mpie_cpfem_init" subroutine within mpie_interface module to more general name "mpie_interface_init" 2010-06-08 09:35:13 +00:00
Christoph Kords 71c6179ee5 dislocation stress had wrong sign in some components 2010-06-08 09:34:23 +00:00
Christoph Kords 3ce1882d29 when calculating dislocation stress at grain boundaries, densities are now extrapolated similarly to like it was already done at free surfaces 2010-06-07 16:01:37 +00:00
Christoph Kords 3989cc2688 dislocation stress now considers dislocation segments of length V^(1/3) and ensures non-singular solution for points that are collinear to the dislocation line by means of a core spreading parameter "a". stress is scaled by a reference cutoff radius "r" to avoid mesh-dependent stress values.
corrected formula for conversion of anisotropic elastic constants to isotropic Youngs modulus and poissons ratio
2010-06-07 14:32:23 +00:00
Franz Roters 5283ba5546 if it is pReal it should be 1.0 not just 1 2010-05-31 07:12:45 +00:00
Christoph Kords 76b392e12f dislocation stress calculation in constitutive_nonlocal_microstructure: corrected mapping from lattice to slip system frame and the neighboring dislocation density formulation 2010-05-28 13:12:36 +00:00
Franz Roters bb73a74325 there was a line break missing so that it did not compile 2010-05-26 17:10:26 +00:00
Denny Tjahjanto 9932c90c73 restoring the crystallite.f90, IO.f90 and material.f90 to the version 575. the version 576 of these files contain some uncleared debugging statements. 2010-05-26 16:34:44 +00:00
Denny Tjahjanto d114a600c3 fixed some errors in QuaternionToEuler, RToQuaternion to get the correct texture representation in the output. 2010-05-26 15:52:54 +00:00
Christoph Kords e5f0af638e fixed calculation of dislocation stress for elements with a single ip and no neighbors; used to get segmentation fault 2010-05-26 09:17:10 +00:00
Christoph Kords 0c5bc83469 in nonlocal_microstructure: at the model surface the excess density is now extrapolated from opposite neighbor instead of assuming zero density; this results in better modeling of the dislocation stress at the surface
restructured nonlocal_dotstate, to be able to easily switch on and off particular effects in the microstructure evolution
nonlocal_dotstate now enforces a cutback when single density runs the risk of becoming negative; in the case of a state already below the relevantState dotState is set to zero
introduced two new output variables: rho_dot_edge and rho_dot_screw
2010-05-21 08:51:15 +00:00
Christoph Kords dba4ae7ef1 new numerics parameter "defgradTolerance" replaces "relevantStrain" in cpfem, since "relevantStrain" is also used in crystallite but in a different context.
"defgradTolerance" gets the same standard value as "relevantStrain" so calculations should be consistent with older ones
2010-05-20 14:55:11 +00:00
Christoph Kords 3a23dc4bbd first call to hypela2 in inc 0 is done with computation mode 2 (=plain calc), but since rev. 539 the second call was done with computation mode 6 (=only return values) instead of 2. This doesnt work, because computation mode 2 might calculate stress and tangent for all materialpoints, but the mapping from lattice to current configuration is only done for the element/IP that triggers the call.
So switched back to the former order of calls which also works for marc2010:

el 1 IP 1		|	el 1 IP 2
			|
inc mode lovl	|	inc mode lovl
------------------	|	------------------
0       2       6	|	0	2	6
1       6	4	|	1	6	4
1	4	6	|	1	3	6
1	6	4	|	1	6	4
1	1	6	|	1	2	6

Still to be checked:
according to Franz the lovl order could be different in contact analysis (e.g. starting with lovl 4 instead of 6)
2010-05-20 09:14:59 +00:00
Christoph Kords 51da3b6242 sorry, in rev 568 some variables were not declared in crystallite_postResults 2010-05-18 12:36:09 +00:00
Christoph Kords 472684c30e make element type 8 (= hex8 reduced integration) available for nonlocal constitutive law 2010-05-18 08:13:23 +00:00
Christoph Kords 19b6fae88b added a missing exclamation mark in front of an $OMP directive 2010-05-18 08:07:55 +00:00
Christoph Kords d96780967b added some output variables in crystallite: F, Fe, Fp, Ee, P, S 2010-05-18 07:57:13 +00:00
Claudio Zambaldi 15328e51cf Like this Euler angles AND grain rotation should be OK. 2010-05-11 15:06:21 +00:00
Franz Roters 483584ceb3 improved version of general I/O functions
renamed module cpfem_interface to mpie_interface
2010-05-11 06:57:15 +00:00
Franz Roters e810e5cfa1 changed fileopen routines in IO.f90 to use solver dependant functions defined in the interface routines
DID NOT test ABAQUS versions yet, not shure whether (V)GETOUTDIR returns path with or without terminating slash
2010-05-10 15:02:59 +00:00
Philip Eisenlohr 0416c9a616 reworked build_ipNeighborhood
added C3D8R reduced integration hexahedral element
2010-05-10 14:54:59 +00:00
Claudio Zambaldi 2405a51042 crystallite:
- grainrotation calculation now is done with symmetryID 0, i.e. without symmetry reduction since we want the absolute misorientation.
- While math has everything in radians, post results eulerangles and axisangle are given in degrees.
And: grain rotation seems OK after the previous changes in math module.
2010-05-07 12:01:46 +00:00
Philip Eisenlohr 97f206d0bc new errors regarding Spectral method input file parsing
mesh setup from Spectral input file
$Id$ in FEsolving activated
2010-05-06 16:40:47 +00:00
Philip Eisenlohr e4067f2d26 debugged zoo of rotation operations and transformations
all angles now in radians

introduced a rudimentary check in math_init to complain (IO_error) about broken transformations (e.g. quat --> R --> quat)
2010-05-06 14:07:21 +00:00
Franz Roters f23b4d16d1 updated section with dislotwin paramters 2010-05-06 09:01:54 +00:00
Franz Roters 383a36b226 added comment on reformating to common block files
added modifications necessary for running the subroutine with Marc/Mentat2010
2010-05-06 08:50:54 +00:00
Alankar Alankar 393a67e587 now stating instance when sanity checks run into trouble 2010-05-05 13:36:59 +00:00
Christoph Kords 0a36527f61 fixed bugs in math_quaternionDisorientation
though running, there still seem to be some problems with the quaternion functions, since crystallite_grainRotation gives some dubious results!
2010-05-04 16:02:05 +00:00
Philip Eisenlohr ba48e5d3ab fixed syntax errors in last commit -- hopefully no further ones... 2010-05-04 13:03:35 +00:00
Philip Eisenlohr cecffffe2b disorientation with symmetryType == 0 returns plain misorientation
complain about unknown symmetryType
2010-05-04 12:54:13 +00:00
Claudio Zambaldi adaeb0e1ef rotation axis is undefined for small angles and therefore gets a NaN 2010-05-03 18:27:19 +00:00
Christoph Kords ea718573ef return 180° disorientation about 100 for neighbors with different phases 2010-04-29 12:28:51 +00:00
Christoph Kords 8ab101da50 safe use of acos function in math_QuaternionToAxisAngle 2010-04-29 10:33:39 +00:00
Philip Eisenlohr 15e5dcf8f2 math_QuaternionToAxisAngle now safe for small or close to 2pi rotations. 2010-04-29 10:01:09 +00:00
Franz Roters e8719cb6b8 Table driven input works wirh 2010!
That leaves DDM to do for tomorrow ;-)
2010-04-29 09:43:31 +00:00
Franz Roters aaf1bf0edf fixed (first) problem with Marc2010 single job with old style input and extended precision should work now! 2010-04-29 08:15:29 +00:00
Christoph Kords c34c07a6ff statedamper has to be local (specific for each e,i,g); with a global damping we may produce spurious convergence 2010-04-29 07:41:29 +00:00
Christoph Kords 77dc16d15f print aged state of 1 1 1, which always exists, to avoid segmentation fault 2010-04-29 07:34:20 +00:00
Claudio Zambaldi 79f286f24c small typo 2010-04-28 17:45:30 +00:00
Claudio Zambaldi 0b83fa0fb2 corrected (?) disorientation calc and introduced some new assisting functions 2010-04-28 17:19:58 +00:00
Claudio Zambaldi 35cebfb132 extended output string length for init msg 2010-04-28 17:19:06 +00:00
Franz Roters a36951a6ac changed common block files to release version 2010-04-28 07:28:12 +00:00
Claudio Zambaldi e8ab495a6c Introduced new parameter NaN, not a number. It should be assigned for invalid results, such as currently for misorientation of unknown crystal symmetry. 2010-04-19 13:40:22 +00:00
Claudio Zambaldi cab2261693 New array crystallite_symmetryID(i,g,e) is now filled during initialization run with 1 for bcc and fcc phase and 2 for hexagonal phase. The values are needed for misorientation calculations to apply the correct symmetry operators for cubic and hexagonal phases. 2010-04-19 10:03:34 +00:00
Claudio Zambaldi 249042c2d3 New output can be requested from crystallite:
(output) grainrotation
it gives the deviation from the initial grain orientation 
in axis-angle representation with the angle in degrees.
2010-04-12 11:14:36 +00:00
Claudio Zambaldi 653837046e new: math_QuaternionToAxisAngle 2010-04-12 11:07:25 +00:00
Christoph Kords adf6206b71 corrected symmetry operations for hex. 2010-04-12 08:04:26 +00:00
Claudio Zambaldi fc3f35cf3b debugger = .false. 2010-04-08 09:30:25 +00:00
Christoph Kords 1730a90e12 corrected ip numbers in FE_ipNeighbor for element type 21; used to get wrong neighborhood for this element type 2010-04-06 11:45:23 +00:00
Philip Eisenlohr 9b5047c828 corrected two OMP CRITICAL terminations 2010-04-06 06:47:15 +00:00
Christoph Kords 1bf740eb9d an allocation statement was deleted from rev 518 to rev 520!!! 2010-03-30 13:15:18 +00:00
Christoph Kords 67c523e4b1 enclosed output statements in an "if (verboseDebugger)" 2010-03-25 08:27:42 +00:00
Denny Tjahjanto 9026cc4016 again corrections. but this version must work. 2010-03-24 16:23:21 +00:00
Denny Tjahjanto 414050303b forgotten: the change in the input config 2010-03-24 13:28:46 +00:00
Denny Tjahjanto 40b1478dac the latest RGC model + corrections for "element homogeneous" feature 2010-03-24 13:20:12 +00:00
Franz Roters 3aa2dd5fef removed special characters from twip steel section in material.config
changed crirtical twin stress in constitutive_dislotwin.f90
2010-03-24 08:17:27 +00:00
Christoph Kords 2c6c8fa04e ensure positive eulerangles in math_QuaternionToEuler 2010-03-19 16:11:53 +00:00
Christoph Kords f4e5d32cde added flag verboseDebugger to debug in order to have more control about debugging statements
set this to true if you want extended debugging info in the output file
2010-03-19 14:14:08 +00:00
Claudio Zambaldi 418bb9ecbe small improvement in readability 2010-03-19 12:56:00 +00:00
Christoph Kords 948c119ee9 changed internal representation of orientation and misorientation from euler angles to quaternions (this should also fix some bugs in the math_misorientation subroutine). includes a couple of new functions in math.f90 and some changes in crystallite.f90.
beware that crystallite output "orientation" now by default returns the orientation as quaternion. if you want euler angles instead, you have to add "eulerangles"  as a crystallite output in your material.config file (see material.config template).

for input of orientations in the texture block of the material.config you still have to specify the rotation in terms of euler angles, quaternions are not yet supported for input.
2010-03-18 12:23:17 +00:00
Christoph Kords e6fdfdfc36 iJacoStiffness belongs to numerics, not debug
sorry for not having checked that before
2010-03-17 17:00:54 +00:00
Christoph Kords 1a992e1aef nonlocal stiffness calculation produced segmentation fault for cycle number > 16. Corrected calculation of perturbation indices k and l. 2010-03-10 09:53:41 +00:00
Christoph Kords e3dd7551dc added output for dislocation evolution rate associated with flux: "rho_dot_flux" 2010-03-10 09:49:40 +00:00
Philip Eisenlohr 4752bbe42e deleted unused <global> part from file 2010-03-09 15:36:07 +00:00
Christoph Kords 61bd0224c1 - corrected an if statement in the state loop
- nonlocal stiffness calculation: we perturb all material points at the same time, so instead of N^2 loops we just need N
- set "forceLocalStiffnessCalculation" to false as standard
2010-03-04 17:27:39 +00:00
Christoph Kords a0d28ebc18 - flux calculation is now also compatible to neighborhood of local constitution
- flux density interpolation now depends on the position of the interface between ttwo neighboring material points
- simplified flux calculation scheme
- introduced sanity check for dislocation velocity to ensure v*dt< cellsize
2010-03-04 17:14:47 +00:00
Christoph Kords 947af80a2e removed old debugging statements 2010-02-26 12:02:49 +00:00
Philip Eisenlohr 8c8ed34356 reworked crystallite part to allow for flexible user output
--> new "crystallite" part in config file
--> new "crystallite" option for microstructures
--> new output file "...job.outputCrystallite" to be used in conjunction with marc_addUserOutput for meaningful naming of User Defined Vars.
2010-02-25 17:39:11 +00:00
Christoph Kords 538faecf45 new output "dislocationvelocity" 2010-02-23 17:23:07 +00:00
Christoph Kords c1717329ac only need 2 logicals in crystallite_stressAndItsTangent to reflect all possible integration states, so crystallite_onTrack was obsolete and replaced by crystallite_todo; broken state update now directly produces a cutback 2010-02-23 09:46:39 +00:00
Claudio Zambaldi 7526a24a1b now with functionality to output a "JOB.outputHomogenization". This contains size descriptions of all requested output variables to be parsed by a further script to generate meaningful names for user defined vars... (watch out!) 2010-02-19 18:03:16 +00:00
Christoph Kords aab5598d96 detabbed file for better readability 2010-02-19 13:44:38 +00:00
Philip Eisenlohr 8c5852dedf corrected messed up output of grain orientation in t16-file.
this bug affected at least all calculations done after revision 480 (Dec 18, 2009)
2010-02-18 16:09:45 +00:00
Denny Tjahjanto e9aac0c4af (1) change phaseOfGrain from real to integer and (2) introducing a condition to switch off the grain reshuffling when element homogeneous is requested. 2010-02-18 15:54:10 +00:00
Claudio Zambaldi d60d8a4103 small readability improvement 2010-02-18 15:06:08 +00:00
Franz Roters 7e632e8132 corrcected definition of forceLocalStiffnessCalculation 2010-02-18 14:43:40 +00:00
Philip Eisenlohr e1a25e0f73 renaming of abaqus to _std and adding of VUMAT interface for explicit. 2010-02-18 10:23:42 +00:00
Philip Eisenlohr af06e8e58f fixed some dangerous constructs in computation mode assignments
introduction of separate stress and stiffness variables to pass on to CPFEM_general (of dimension 6)
2010-02-18 10:23:02 +00:00
Philip Eisenlohr 78808a7d47 corrected corrupted header $id 2010-02-18 10:18:15 +00:00
Philip Eisenlohr 4cb7254a21 added new computation modes 8 and 9 for Abaqus_exp. These correspond to mode 1 and 2 but do collection and calculation in one step.
stress and stiffness are always of dimension 6 in CPFEM_general, hence, variable "ngens" useless by now
2010-02-18 10:15:08 +00:00
Philip Eisenlohr c3cd75c2c2 small polishing 2010-02-18 10:12:45 +00:00
Franz Roters 9c63005c8f allow for longer pathes when openening files
corrected error messages concerning file openening
2010-02-18 08:29:57 +00:00
Christoph Kords 97db70cf23 constitutive_nonlocal:
- reworked contribution of immobile dislocation density for rate equations
- flux is now calculated on the basis of interpolated velocities and densities at the interface; both incoming and outgoing fluxes are considered, so every material point only changes his own dotState
- dislocation velocity is now globally defined and calculated by subroutine constitutive_nonlocal_kinetics; the subroutine is called inside _LpAndItsTangent as well as _microstructure; therefore, microstructure now needs Tstar_v as additional input; in the future one should perhaps create a subroutine constitutive_kinetics that calls constitutive_nonlocal_kinetics separately, to clearly distinguish between microstructural and kinetic variables 
- better use flux density vector as output variable instead of scalar flux values for each interface
- added output variables internal and external resolved stress

crystallite:
- added flag to force local stiffness calculation in case of nonlocal model
- misorientation angle is explicitly set to zero when no neighbor can be found

debug:
- added flag "selectiveDebugger" that is used when debugging statements should only affect a specific element, ip and grain; these are specified with the new variables debug_e, debug_i and debug_g
- debugger can now be used in its original sense
2010-02-17 13:21:36 +00:00
Christoph Kords a2037db9c6 corrected sign of screw part of dislocation stress 2010-02-12 12:54:00 +00:00
Claudio Zambaldi f1daf9f2e7 added comment, my first 'test' SVN commit 2010-02-10 16:40:50 +00:00
Philip Eisenlohr f186c83068 introduced racing condition breaker for the case of multithreaded CPFEM init. 2010-02-02 15:00:08 +00:00
Franz Roters 101d4c6bb4 updated list 2010-02-02 13:05:17 +00:00
Franz Roters 02b98100d1 added / updated files for use with marc2010r1 2010-01-11 08:35:28 +00:00
Christoph Kords ed8446e0f3 - corrected contribution of immobile singles to dipole formation and annihilation rates
- remobilization of immobile singles immediately increases the mobile single dislocation density and therefore directly affects all other mechanisms in dotState
2010-01-06 09:54:00 +00:00
Christoph Kords dce840c0a5 - introduction of immobile (used) single dislocation densities as new state variables
- changed nomenclature (rho -> rhoSgl) to distinguish precisely between single dislocation density and total dislocation density
- changed material.config accordingly
2010-01-05 16:07:24 +00:00
Christoph Kords 2098c106ad misorientation is set to 400 degrees if our neighbor has a different phase 2010-01-05 16:03:45 +00:00
Christoph Kords aee0721ab2 corrected math_misorientation 2010-01-05 16:02:00 +00:00
Christoph Kords ac080e0b52 corrected small mistake in calculation for ip center of gravity / ip coordinates; used to ignore subnodes that had coordinates (0.0, 0.0, 0.0) 2009-12-22 13:23:20 +00:00
Denny Tjahjanto 043356e8a9 homogenization_RGC.f90 >> just switching-off one of the debugging statement.
crystallite.f90 >> optimizing the perturbation algorithm for local tangent.
2009-12-22 12:28:02 +00:00
Christoph Kords 1f7aebfa4d new subroutine crystallite_orientations: calculates the orientation matrix and the euler angles and - in case of single grain ips - the misorientation for each neighboring ip.
The calculation of the misorientation is now done once in crystallite init and at the end of every FE increment. This saves a lot of time compared to doing it in dotState for every crystallite subinc.
2009-12-18 15:46:33 +00:00
Denny Tjahjanto 3ab5cdc770 Additional feature to the RGC scheme: The volumetric consistency constraint. This is implemented by penalizing any volumetric discrepancy which occurs due to severe relaxation. The penalty for volume inconsistency is described using a power-law model. The setting for this function can be done in the numerics.config via three new parameters, i.e., maxvoldiscrepancy_RGC, voldiscrepancymod_RGC and discrepancypower_RGC. For monintoring, an extra output variable in prescribed in the material.config in the RGC section, namely "(output) volumediscrepancy".
IO.f90 and numerics.f90 has been modified accordingly to accommodate these changes
2009-12-16 16:20:53 +00:00
Franz Roters 39d1932e2b corrected line parsing now counts all parts 2009-12-15 16:03:53 +00:00
Christoph Kords 01b7e88e5f adapted the material.config file to last changes in constitutive_nonlocal 2009-12-15 10:22:17 +00:00
Christoph Kords 26e9056f90 added stiffness state loop counter to nonlocal stiffness calculation 2009-12-15 09:03:04 +00:00
Christoph Kords d784153e0c constitutive_nonlocal:
- corrected flux term
- multiplication is now aware of dislocation type
- corrected change rate for "dipole size" dupper
- corrected term for dipole dissociation by stress change
- added transmissivity term in fluxes which accounts for misorientation between two neighboring grains (yet hardcoded transmissivity according to misorientation angle)
- added more output variables

constitutive:
-  2 additional variables "previousDotState" and "previousDotState2", which are used to store the previous and second previous dotState (used in crystallite for acceleration/stabilization of state integration)
- timer for dotState now measures the time for calls to constitutive_ collectState (used to reside in crystallite_updateState, which is not critical in terms of calculation time anymore) 

crystallite:
- convergence check for nonlocal elments is now done at end of crystallite loop, not at the beginning; we simple set all elements to not converged if there is at least one nonlocal element that did not converge
- need call to microstructure before first call to collect dotState for dependent states
- stiffness calculation (jacobian): if there are nonlocal elements, we also have to consider changes in our neighborhood's states; so for every perturbed component in a single ip, we have to loop over all elements; since this is extremely time-consuming, we just perturb one component per cycle, starting with the one that changes the most during regular time step.
- updateState gets a damping prefactor for our dotState that helps to improve convergence; prefactor is calculated according to change of dotState

IO:
- additional warning message for unknown crystal symmetry
2009-12-15 08:20:31 +00:00
Christoph Kords 07303d9506 - corrected math_misorientation subroutine 2009-12-15 07:34:53 +00:00
Christoph Kords 596b7f3727 - rearranged array with symmetry operations
- new subroutine "math_misorientation" which calculates misorientations (based on old subroutine "misorientation", which was not used previously)
- rendered some functions pure
2009-12-14 11:02:10 +00:00
Denny Tjahjanto cad278c3bc Introduce a randomness in the odd stress, using pre-factor rnd. 2009-12-09 10:33:00 +00:00
Franz Roters 9b1b612f67 added some examples 2009-12-08 15:31:50 +00:00
Denny Tjahjanto 1bf3b978eb modifying the criteria for the sum of microstructure fraction.
previously was:
if (the_sum /= 1.0_pReal) then (error 170)
this condition is too strict. it may give problem with some numerical truncation error.

now becomes:
if (abs(the_sum - 1.0_pReal) >= 1.0e-10_pReal) then (error 170)
2009-12-02 13:08:14 +00:00
Denny Tjahjanto 59d22d47b2 introduction of a possibility to have homogeneous element (all ips in one element are identical, sort of reduced integration)
and bugs-fixing in crystallite.f90, homogenization_RGC.f90, numerics.f90.
2009-11-24 15:00:25 +00:00
Denny Tjahjanto 6702cb3baa Introduction of a numerical viscosity into the RGC scheme to improve the convergent behavior and the numerical stability of the scheme (see: homogenization_RGC.f90). These changes have been incorporated in all related subroutines (homogenization.f90, IO.f90, numerics.config and numerics.f90). 2009-11-17 13:42:38 +00:00
Denny Tjahjanto cb88019aa6 introduced a flexibility in cut-backing scheme in homogenization.f90 and in crystallite.f90:
(1) subStepSizeHomog and subStepSizeCryst := size of substep when cut-back is applied (initially was hard-coded).
(2) stepIncreaseHomog and stepIncreaseCryst := step increase when calculation for substep converge (was also hardcoded).

introduced a possibility to choose different finite difference scheme, i.e., forward-, backward- and central-difference, for computing grain numerical tangent. note that central-difference scheme will slow down the computation significantly. please use it only if necessary.

parameters to set these new features have been included in numerics.f90 and numerics.config, whereas corresponding error messages have been introduced in the IO.f90
2009-11-10 13:36:27 +00:00
Luc Hantcherli 67f87486b1 in constitutive_dislotwin.f90:
in constitutive_nonlocal.f90:

Derivatives of shear rates w.r.t. resolved shear stress HAVE to be positive.
Computation of dgdot_dtauslip is now correct.
2009-11-06 17:46:12 +00:00
Philip Eisenlohr f96f9332cf added some comments and made sure that texture distribution among a large number of IPs is statistically sound. 2009-11-02 08:03:14 +00:00
Denny Tjahjanto 8f40c516bb added to the previous one 2009-10-30 10:00:17 +00:00
Denny Tjahjanto 2068346f6d just small changes in the 'default' value of RGC numerical parameters. 2009-10-30 09:54:52 +00:00
Christoph Kords 1e5a0318f3 don't do any cutbacks in homogenization when my materialpoint consists of only one grain. 2009-10-27 08:31:45 +00:00
Christoph Kords c766ba2e3a minimum substepping size in homogenization and crystallite is now controlled by two independent parameters subStepMinHomog and subStepMinCryst respectively.
deleted flush statements where they are not needed, since they seriously slow down computation.
2009-10-26 16:43:43 +00:00
Denny Tjahjanto f50d3291f9 sorry, back to the previous version. grain deformation output is part of crystallite.f90, no longer done by homogenization. material.config reflects the changes. 2009-10-22 16:59:24 +00:00
Denny Tjahjanto d344aaf3a0 added possibility to output individual grain deformation gradient in homogenization_RGC.f90 and the homogenization.f90 has been modified accordingly. see material.config for the key-words to output the individual grain deformation gradient in the homogenization block. 2009-10-22 09:24:05 +00:00
Philip Eisenlohr 1dcb80753c tidying up code and reversing order in debug timing output 2009-10-22 09:14:17 +00:00
Philip Eisenlohr 67f4bdfaa0 volume fraction where new twins may form is now limited to (1-F) instead of 1...
"relevantResistance" is set to 1 Pa as default
2009-10-22 08:58:14 +00:00
Philip Eisenlohr 5d01e30f77 deleted debugging statements that print out interaction/hardening matrixes 2009-10-21 13:41:49 +00:00
Philip Eisenlohr 5d5e7eb8f8 corrected uncritical mix-up of Ntwin and Nslip in reshaping fcc interaction (slip--twin) 2009-10-21 13:41:09 +00:00
Philip Eisenlohr 4e98935287 changed lattice_interaction matrices to (other:me) notation
fixed small mistake in hexagonal twin--slip interaction matrix

adopted above switched notation for hardening matrix calculation
shortened dotState by introducing dot_product notation
2009-10-21 13:10:12 +00:00
Christoph Kords 9892fd9a10 sorry: initialization of periodicBC was erroneous 2009-10-20 16:38:05 +00:00
Philip Eisenlohr e1586d5059 fixed (probably severe) bug in hexagonal twin system transformation into ortho-hexagonal coordinates.
cleaning up of twin system nomenclature

introduced lookup mechanism  to calculate the twinning shears depending on the c/a ratio of the present structure (was [wrongly!!] hardcoded to Titanium)
2009-10-20 16:13:25 +00:00
Christoph Kords c1ee34d235 constitutive_nonlocal:
- read in activation energy for dislocation glide from material.config
- changed naming of dDipMin/Max to dLower/dUpper
- added new outputs: rho_dot, rho_dot_dip, rho_dot_gen, rho_dot_sgl2dip, rho_dot_dip2sgl, rho_dot_ann_ath, rho_dot_ann_the, rho_dot_flux, d_upper_edge, d_upper_screw, d_upper_dot_edge, d_upper_dot_screw
- poisson's ratio is now calculated from elastic constants
- microstrucutre has state as first argument, since this is our output variable
- periodic boundary conditions are taken into account for fluxes and internal stresses. for the moment, flag has to be set in constitutive_nonlocal. 
- corrected calculation for dipole formation by glide
- added terms for dipole formation/annihilation by stress decrease/increase 

constitutive:
- passing of arguments is adapted for constitutive_nonlocal model

crystallite:
- in stiffness calculation: call to collect_dotState used wrong arguments
- crystallite_postResults uses own Tstar_v and temperature, no need for passing them from materialpoint_postResults

homogenization:
- crystallite_postResults uses own Tstar_v and temperature, no need for passing them from materialpoint_postResults

IO:
- changed error message 229

material.config:
- changed example for nonlocal constitution according to constitutive_nonlocal

all:
- added some flush statements
2009-10-20 14:36:03 +00:00
Philip Eisenlohr 48e642bb15 twin resistance evolution did not use magnitude of shear rate (dot gamma) but the signed quantity... leads to non-physical oscillations of twin resistance. 2009-10-20 12:15:37 +00:00