Commit Graph

1919 Commits

Author SHA1 Message Date
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
Martin Diehl d83150be1b now capturing "terminallyIll" for basic solution, should end in a automatic cutback of time steps for the spectral solver 2012-08-29 05:50:42 +00:00
Martin Diehl 3106b8ce0c corrected definition of integer type for gfortran 2012-08-29 05:19:35 +00:00
Martin Diehl d089c12947 abaqus seems to have similar problems with the openmp lib as marc (use module vs. include file), i hope this fixes the crashes 2012-08-28 19:48:38 +00:00
Martin Diehl 5e9e8497e6 new solver is now compiling without a PETSc installation, however only the plain basic solver is available then.
also removed reporting of PETSc related variables in the case it is not installed/found
2012-08-28 19:19:47 +00:00
Martin Diehl 0f64289d75 fixed bug causing trouble with ifort 11 (abaqus) 2012-08-28 19:10:54 +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
Martin Diehl 73349d02f5 merged precision info into the file prec.f90 and removed prec_single.f90
precision information is now parsed as a makro, defined by the compiler, eg. -DFLOAT=8 for 8 byte long floats or -- in case no values is given -- for the FEM wrapper by the interface files.

Please don't forget to run setup_code.py  !!!!!!!!!!!

abaqus_v6.env is adjusted to specify the standard precision (float=8, int=4) and got some extra compilation options, some deprecated warning supressors are removed

Optional Marc modification will follow that allow automatic selection of suitable precision
2012-08-28 16:08:17 +00:00
Christoph Kords f3e7b3cec8 added separate output of dipole formation rate for edge and screw 2012-08-27 15:57:31 +00:00
Christoph Kords aa380dcb08 added separate output of dipole formation rate for edge and screw 2012-08-27 15:57:22 +00:00
Martin Diehl efd1b513cf fixed bug in divergenceFDM 2012-08-27 15:43:17 +00:00
Christoph Kords 9214da4465 added missing labels to list of available outputs 2012-08-27 12:41:57 +00:00
Martin Diehl 96ba5ecae4 moved some more 'mesh related' functions for post processing from math.f90 to mesh.f90
f2py functions remaining in math.f90 now uses assumed size arrays in order to have simpler interfaces. This is only working with python 2.7!
changed python pre- and postprocessing scripts.
If you encounter any problems whith core modules, try to remove the old core.so in the lib/damask
2012-08-27 08:04:47 +00:00
Martin Diehl 55a5112f36 added comments for doxygen documentation 2012-08-25 11:46:36 +00:00
Martin Diehl e335222bd0 added constitutive none to abaqus files 2012-08-24 19:21:39 +00:00
Martin Diehl 405c3765bd fixed bug in fiber texture component caused non-even distribution by correctly getting numbers of the halton sequence 2012-08-24 13:27:55 +00:00
Christoph Kords 3cd5fa90e8 corrected dislocation multiplication term for special case of zero density 2012-08-24 11:36:46 +00:00
Christoph Kords 4f67d04c69 new parameter "significantRho" for nonlocal constitutive law ; density below this value will hardly contribute to dislocation glide or any dislocation reaction ; old parameter "absoluteToleranceRho" is now used only for its initial purpose, namely the absolute tolerance in the state integration 2012-08-23 05:48:21 +00:00
Christoph Kords 222aed9f60 derivative of velocity with respect to resolved stress was flawed; now much better convergence of stress integration for nonlocal constitutive law 2012-08-21 14:40:01 +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
Martin Diehl 35dffd52c1 now using spectral_quit (like old spectal solver, needed because of f2py) 2012-08-20 13:22:34 +00:00
Martin Diehl b96df9987e fixed reading/writing of integer arrays with function for real arrays 2012-08-16 14:55:23 +00:00
Martin Diehl 453c6031a7 added functions for reading values of integer data type to binary file, corrected comment on old versions which are for real (pReal) only 2012-08-16 11:57:15 +00:00
Christoph Kords b2aacf9ca4 rates in constitutive_results are taken directly from last converged step and not calculated again; added output of rates for annihilation of screws and deposition of edge jogs on collinear system 2012-08-16 11:03:22 +00:00
Christoph Kords bd754dbefd corrected debug output of evolution rates; added possibility to change the safety factor for the CFL flux condition via the material.config file; updated the example material.config due to recent changes in nonlocal constitutive 2012-08-16 09:13:38 +00:00
Martin Diehl 0434ef3daa some comments to be seen in documentation 2012-08-15 13:38:38 +00:00
Pratheek Shanthraj c2c31a0a59 added SolverBasicPETSC module to the new FFT solver (solves the basic scheme using PETSc when mysolver = basicpetsc in numerics.config)
some bug fixes
2012-08-14 16:58:23 +00:00
Christoph Kords f5e7d576f1 introduced annihilation of screw dipoles; so far no thermal activation, but immediate annihilation; each annihilated screw dipole leaves behind an edge jog of same length as the dipole height on the collinear system 2012-08-14 12:26:20 +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
Christoph Kords eae9a34c6b corrected debugging output: extreme values of returned stress and jacobian belong to cpfem debugging, not homogenization 2012-08-14 11:48:43 +00:00
Pratheek Shanthraj 259eb7850e more work on array ordering in new solver. (now working but not tested) 2012-08-10 17:01:58 +00:00
Martin Diehl cd0da03ebc changed comments to doxygen style 2012-08-10 15:58:17 +00:00
Krishna Komerla 08c7be7d15 adaptive regrid now working, updates F and F_lastInc based on mapping. 2012-08-10 15:48:27 +00:00
Martin Diehl b324a98014 changed order of most arrays to fortran-fast, whole new solver still work in progress 2012-08-09 13:04:56 +00:00
Martin Diehl fe4d4d9525 changed comments in prec and IO to be read by doxygen, fine tuned output of doxygen and added precompilation for documentation 2012-08-09 11:01:53 +00:00
Pratheek Shanthraj d0933dad7b added filter option to the spectral solver to mitigate spurious oscillations due to gibb's phenomenon. activate by setting myfilter in config file appropriately (currently only 'none' and 'cosine' options coded). more cleaning up of AL code 2012-08-07 17:23:13 +00:00
Pratheek Shanthraj 925915e30d some cleaning up 2012-08-07 12:02:57 +00:00
Pratheek Shanthraj 32f8c9c6ea moved petsc option string to numerics and added new numerics parameters to config file 2012-08-06 17:27:53 +00:00
Martin Diehl 93658c72db set auto values back to auto 2012-08-06 12:44:07 +00:00
Martin Diehl 7e3a837640 moved calculation and output of geometry related data to mesh.f90, moved output of command line related information to DAMASK_spectral_interface.f90.
improved new solver structure (use with make SOLVER=NEW)
2012-08-06 12:43:05 +00:00
Christoph Kords a48d180f8c allow prefactor for self-diffusion to be equal to zero 2012-08-06 09:03:33 +00:00
Pratheek Shanthraj e2a2621235 updates for AL version of spectral solver 2012-08-06 08:53:12 +00:00
Christoph Kords e8df3678aa added possibility to assign the transmissivity of grain boundaries a fixed value by use of the keyword "grainboundaryTransmissivity" in the material.config; grain boundaries are identified as interfaces between areas of different material_texture 2012-08-03 14:32:49 +00:00
Martin Diehl 948d9c03d0 new version of modular solver structure 2012-08-03 09:25:48 +00:00
Mahesh Balasubramaniam 3ffba037d4 Reading of euler angles from the loadcase corrected. 2012-08-02 17:52:07 +00:00
Mahesh Balasubramaniam 740357172a Reading of Euler angles from the loadcase corrected. 2012-08-02 17:46:50 +00:00
Martin Diehl ee1bde0cd7 enabling regridding more than once by introducing deallocation of arrays
added J2 test (stub from Taymour)
2012-07-31 15:37:49 +00:00
Martin Diehl 5a89c783d4 deallocating already allocated arrays in case of regridding/restarting (i.e. when calling init more than once) 2012-07-31 14:00:15 +00:00
Martin Diehl 991a7bbd2d reordered initialization for spectral method, corrected bug of deformation BC parsing when prescribing velocity gradient resulting in wrong average deformation 2012-07-30 15:51:48 +00:00
Martin Diehl d4163dd16f further work on modularization, basic scheme is now calculating the same results as DAMASK_spectral.f90 2012-07-30 14:06:22 +00:00
Pratheek Shanthraj c341ddd855 more modularization…. 2012-07-26 13:58:47 +00:00
Martin Diehl 4ed68bb4ae next round in modularization 2012-07-25 14:01:39 +00:00
Martin Diehl e1faad8bcf next round in modularizzation of solvers 2012-07-24 17:07:10 +00:00
Philip Eisenlohr 882c44a61d changed the majority of debugging output to level "extensive" 2012-07-24 15:29:23 +00:00
Christoph Kords 15c5131874 corrected formulation of maximum height of screw dislocation dipoles 2012-07-24 14:50:11 +00:00
Martin Diehl 9c0a161ec0 in case of regridding, undeformed configuration is written out correctly. Restart improve by reading in additional data from converged step. 2012-07-24 12:21:41 +00:00
Christoph Kords c4c00f04f4 no dipole formation by stress decrease;
dipole dissociation rate proportional to "deltaDipoleLimit / oldDipoleLimit", not "deltaDipoleLimit / newDipoleLimit"
2012-07-24 06:57:37 +00:00
Martin Diehl 3d59fec305 further modularisation of spectral solver (only for basic scheme so far) 2012-07-23 10:12:31 +00:00
Martin Diehl bd9e81fbec intermediate, not working state of new solver structure 2012-07-20 15:33:13 +00:00
Martin Diehl ad3f9d8050 removed old standalone AL solver and introduced new structure for solver zoo 2012-07-19 17:24:56 +00:00
Martin Diehl 7d4ff278cb worked on the restart capabilities 2012-07-19 14:16:59 +00:00
Martin Diehl 13caf2d389 made linear shape reconstruction working again, pretty similar results like corrected FFT reconstruction 2012-07-18 18:39:59 +00:00
Martin Diehl a22163c2ae reverted unwanted commit of Makefile 2012-07-18 12:34:46 +00:00
Martin Diehl 95d292b286 2012-07-18 12:31:07 +00:00
Philip Eisenlohr 7c6fc121fd condensed error reporting for constitutive_XYZ_init
removed erroneous check for structure>3
2012-07-17 17:36:24 +00:00
Philip Eisenlohr 0fdd43b54b minor clarification of file content and its use 2012-07-05 10:02:20 +00:00
Philip Eisenlohr 4d09ef0648 changed variable name "debug_what" to "debug_level" 2012-07-05 09:54:50 +00:00
Philip Eisenlohr b69f446caa added constitutive_none
added wrongly deleted "endif" statements
removed tmglib and refblas from linker command for lapack (Koen??)
xxxROOT is changed by setup_code unless commented-out... So had to delete '#' again.
2012-07-03 13:59:38 +00:00
Philip Eisenlohr aeb1e18268 passing of multiple make options possible now 2012-07-03 13:57:05 +00:00
Philip Eisenlohr 7f10ab0996 corrected to consistent naming: "IMKL"
restored xxxROOT to commented-out auto entries.
commented-out currently unused PETSC parts.
added "refblas" and "tmglib" to LAPACK library inclusion (seems to be necessary since 3.2.1).
2012-07-03 12:36:54 +00:00
Franz Roters 823013d485 new plasticity: none
see material.config for necessary parameters (lattice_structure, elastic constants)
2012-07-03 11:16:38 +00:00
Philip Eisenlohr b4103b205d parts of the material.config can now be set to echo their content back into the log-file (i.e. STDOUT / unit 6)
use keyword "/echo/" before first section in the respective parts that you want to see echoed back into the log file.
2012-06-26 10:24:54 +00:00
Martin Diehl 767842acbf now real time monitoring of DAMASK_spectral output to screen
working with GNU Fortran as well (new checking for return code)
2012-06-25 09:03:19 +00:00
Martin Diehl 0606845f15 reordered calculation of current stiffness to enable restarting with different resolution 2012-06-22 09:20:23 +00:00
Martin Diehl bd462d12c6 fixed some bugs in the regridding routine 2012-06-20 18:33:20 +00:00
Martin Diehl d650972904 corrected some bugs concerning the regridding
prevented FEsolving from potentially write to a none existing file
started to introduce petsc into the make chain (nothing happens if PETSC_DIR is not set)
2012-06-20 12:49:46 +00:00
Nan Jia f5eb8fcb25 fixed bug caused by the inconsistent sequence of slip and twin systems 2012-06-19 16:06:25 +00:00
Martin Diehl 481268c8c2 fixed closing of file (unit 222) statement in FEsolving.f90
added missing keyword in mesh.f90 with ifndef Spectral statement (needed for Marc and Abaqus)
2012-06-19 14:33:24 +00:00
Krishna Komerla 06be437bc9 added minRes to regridding function and writing out of new geometry file
updated f2py wrapper to enable the use of init functions.
added 2 new error messages to io
2012-06-19 13:31:15 +00:00
Martin Diehl 8537e87b7e added shell scripts to run tests from crontab, improved numbering in spectral compile tests and added some first files for testing restart capabilities of spectral solver.
added configuration file for generation of code documentation using doxygen
restart of spectral solver is fixed and seem to work now also for restart at significant deformation.
spectral solver now gives exit code 2 if some increments did not converge
2012-06-18 15:27:01 +00:00
Philip Eisenlohr d9c6f9e134 switch on restartRead logical when requested by "--restart" cmdline switch 2012-06-18 09:27:36 +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
Martin Diehl b2fd3e1180 introduced preprocessor identifiers Marc, Abaqus, and Spectral to enable conditional compilation. This allows deleted dummy functions that are used by one solver only.
Mainly affected modules are IO and mesh. Most of the changes in mesh result from reordering the functions when grouping them depending on their solver.
Further advantage is that FE solver do not need FFTW and kdtree2 anymore. The include files for these two libraries moved to DAMASKROO/lib now as I figured out how to use a include path in the Makefile.
Put all the files I got when testing compilation with abaqus in a folder which to become the abaqus compilation test.
2012-06-15 16:10:21 +00:00
Martin Diehl eb39d332bd ULTRA OPTIMIZATION wasnt working anymore, seems to be related to Bertholds update of ws12 and ws13. had to remove -static from optimization string to be able to link again. Added some support for IKLM, but this didn't solve the problem 2012-06-13 17:19:16 +00:00
Martin Diehl 3ef17c208b set default lapack to lapack instead of acml, added definition of makro for spectral solver for later use in preprocessor 2012-06-13 13:45:58 +00:00
Martin Diehl 052b526bde made compilation of spectral code a command line switch and removed interactive question 2012-06-13 13:42:00 +00:00
Franz Roters 7754416b35 now both getSolverJobName and getSolverWorkingDirectoryName use unit 5! 2012-06-13 09:58:06 +00:00
Franz Roters d3d0cfdab1 common blocks from 2012
updated setup to also create DAMASK_marc2012.f90
2012-06-13 07:30:27 +00:00
Franz Roters a5c27f22ca now uses unit 5 for file name inquiery (unit 6 points to stdout in 2012, might be a bug though) 2012-06-13 07:28:43 +00:00
Franz Roters 5b7f2e122e fixed usage of OpenMP function library 2012-06-12 09:44:05 +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
Martin Diehl fa7f9866df removed phase contrast/preconditioning
added information on itmin in output, impoved output
set exit code to 0 on successful termination (seems to be unix standard)
exit codes:
0: successful termination
1: error (using IO_error)
2: require regrid 
updated the AL solver, still VERY experimental
2012-06-05 16:34:20 +00:00
Martin Diehl 4b6800b89a removed some unwanted open statements when writing out the sizeState 2012-06-05 13:13:33 +00:00
Franz Roters 01522cf6f2 check for valid elasticity model
improved error message in case of unknown elaticity/plasticity model
2012-06-02 14:23:28 +00:00
Nan Jia 3af9165b08 useless debugging inforomation (asking for elastic moduli output) is removed 2012-05-31 09:25:04 +00:00
Christoph Kords 145d971d7e added some debug output 2012-05-30 08:05:36 +00:00
Christoph Kords 5cc73a15a9 small correction in debug output 2012-05-30 07:41:22 +00:00
Martin Diehl 0127828f70 corrected initialization order 2012-05-29 15:08:18 +00:00
Taymor El Achkar e1c5671e1f relaxed error message triggering such that purely elastic calculations and more than one constitutive instance using hex lattice are possible. no twinning possible if no slip system exists 2012-05-24 14:08:48 +00:00
Martin Diehl 1003cfa7f8 added missing space in makefile, made removing of old files in Makefile silent and updated files for tests to current versions 2012-05-23 18:08:34 +00:00
Philip Eisenlohr c607441717 (likely) fixed a bug in the FFT-based geometry reconstruction. For (hopefully) correct math see Appendix B in paper. 2012-05-22 18:35:15 +00:00
Nan Jia bbf790a0a5 Input parameter 'QedgePerSbSystem' which denotes activation energy for each shear band system is added 2012-05-22 16:10:28 +00:00
Franz Roters 9201133913 activated keyword expansion 2012-05-22 12:45:37 +00:00
Martin Diehl cec3357e8f corrected bug causing wrong element construction when using spectral solver. Also improved error messages for invalid resolution, dimension, and homogenization. 2012-05-21 09:06:02 +00:00
Christoph Kords 20f203f799 allow minimum stable dipole height equal to zero; ensure that maximum stable dipole height is not smaller than the minimum value 2012-05-20 13:57:35 +00:00
Christoph Kords 5b02d4e8eb dipole dissociation and formation by change in stress as new mechanism in deltaState; had to add dipole height to state variables, which is however updated by deltaState instead of microstructure; alternatively microstructure had to know the current stress state 2012-05-18 14:35:52 +00:00
Christoph Kords 4da6907648 moved remobilization of dead dislocations from dotState to deltaState 2012-05-18 13:35:44 +00:00
Christoph Kords a5c1624648 check for invalid mesh type once in constitutive_init and not every time constitutive_nonlocal_dotState is called 2012-05-18 13:15:23 +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 351c2c6e65 deltaState depends on the current state, no the state at the beginning of the timestep 2012-05-17 12:18:30 +00:00
Christoph Kords f6d5efeed3 removed arguments Fe and Fp from collectDeltaState function call 2012-05-17 11:04:22 +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
Christoph Kords 84d4652a07 all constitutive modules now contain a new function "deltaState", which in the future allows to have an instantaneous and incremental change of the state (additional to the rate based evolution with dotState). 2012-05-16 14:43:26 +00:00
Franz Roters df2d520630 stripping abaqus comments is now aware of damask comments 2012-05-15 14:59:26 +00:00
Franz Roters 701cf2e71b replaced duplicated math entry by missing mesh entry 2012-05-15 14:58:47 +00:00
Martin Diehl 0d745adfa0 corrected NaN in prec_single.f90 (was already silent but with typo), polished output and added switch in order to check range on all files except of prec.f90 (in which NaN is defined) 2012-05-11 12:46:17 +00:00
Franz Roters 7ee368f324 check whether there is any constitutive output 2012-05-11 07:38:20 +00:00
Franz Roters f8f9c089d6 check for NaN in math_QuaternionInSST 2012-05-11 07:37:32 +00:00
Franz Roters babf2647fb use non signaling version of NaN 2012-05-11 07:35:52 +00:00
Martin Diehl ce83026965 corrected bug in fft based geometry reconstruction causing mirrored geometries 2012-05-09 14:56:25 +00:00
Taymor El Achkar d11aa15a67 changed indices counting (fortran to python style, easier division to get rid of periodic copies)
corrected f2py pyf file
2012-05-09 10:09:56 +00:00
Krishna Komerla fbd075dc6e corrected automatic determination of resolution 2012-05-08 15:12:43 +00:00
Krishna Komerla c752dd5474 regridding is now working, changed the subroutine into a function
changed order of arrays in nearest neighbor search to make it fortran fast
constitutive.f90 and homogenization.f90 write state size out during initialization
setup/setup_processing.py is using byterecl to be compatible with binary files written out by solver
2012-05-08 14:57:06 +00:00
Taymor El Achkar a9a72cee97 fixed bug in nearest neighbor search, corrected error message for kdtree2.f90 2012-05-08 13:16:59 +00:00
Franz Roters eb8265b914 fixed potential division by zero error discovered by our American friends 2012-05-08 07:16:00 +00:00
Pratheek Shanthraj bdc46a8828 using better measure (norm) of phase contrast for preconditioning 2012-05-07 08:12:13 +00:00
Krishna Komerla 4b18278781 reworked neares neigbor search subroutine, now also works for voronoi tesselation (general nn search in periodic cell) 2012-05-04 13:07:37 +00:00
Martin Diehl 863f0c766e removed line continuation causing trouble 2012-05-04 08:19:12 +00:00
Martin Diehl b4775249e8 corrected standard check to make f2py working with gfortran 2012-05-03 17:12:36 +00:00
Martin Diehl 26c6063a2c utf8 encoding output to screen now for all solvers using intel ifort>10 or any gfortran (old versions might not support it, but we don't use them anyway) 2012-04-28 10:46:41 +00:00
Philip Eisenlohr dbeac18df6 no more dropping of comments in Abaqus input file assembly 2012-04-27 14:33:39 +00:00
Krishna Komerla 83e89fba3c improved regridding, especially interfacing to python (also for nearest neighbor search) 2012-04-24 17:02:27 +00:00
Krishna Komerla e33c34d86b corrected wrong integer arithmetics in calculation of coordinates in DAMASK_spectral.f90 2012-04-24 16:59:38 +00:00
Philip Eisenlohr 83e22c00a2 added missing allocation of slopeLnRate array.
changed parsing to lowercase name.
2012-04-20 12:18:38 +00:00
Martin Diehl d2c4874db3 several small corrections/polishing 2012-04-20 11:58:41 +00:00
Pratheek Shanthraj c889d20ba0 added simple preconditioning to improve convergence for high phase contrast materials in standard algorithm 2012-04-20 09:42:57 +00:00
Philip Eisenlohr caff3124fd changed multiplier keyword from "times" to "copies of" to prevent ambiguity. 2012-04-17 10:05:49 +00:00
Philip Eisenlohr dbc5a3a3ce subnodeparent check is now running only over actual number (not max) of parent nodes... 2012-04-17 09:19:44 +00:00
Martin Diehl f905a97cdf fixed bug (causing sigsev) concerning new functions mesh_spectral_get*** 2012-04-12 08:03:08 +00:00
Martin Diehl 8c559cbdc9 fixed bug concerning file handling. 2012-04-11 18:46:36 +00:00
Martin Diehl 37fa6c2e14 merged code for python and spectral solver interfacing (shared most of it anyway).
put functionality for getting header information (dimension, homogenization, resolution) in functions in mesh.f90
2012-04-11 17:28:08 +00:00
Martin Diehl a18e5e48dc added 'times' keyword in function for continuous int values: "4 times 1 => 1 1 1 1", mainly for geom files of spectral solver.
corrected name for contin"U"ousIntValues functions
2012-04-11 17:24:50 +00:00
Martin Diehl 91cfd21c88 corrected some copy and paste errors 2012-04-11 14:12:30 +00:00
Martin Diehl 9a92d343dc added Onurs modified description for tausat in j2 law.
Polishing phenopowerlaw
2012-04-11 14:01:02 +00:00
Martin Diehl f2da887899 added missing ":" in mesh.f90, introduced absolute stress tolerance for spectral solver in numerics.config/numerics.f90 2012-04-11 12:57:25 +00:00
Krishna Komerla f20cecd421 integrated subroutine for regridding into mesh.f90 and made it available for python 2012-04-10 15:15:46 +00:00
Krishna Komerla d638c563af reworked python - fortran interfacing 2012-04-10 13:30:34 +00:00
Martin Diehl b17740c9c3 corrected misplaced line for linear guessing 2012-04-06 14:23:06 +00:00
Christoph Kords 79592d2f0f get debug info for spectral solver as well 2012-04-05 09:17:09 +00:00
Martin Diehl 990f547091 improved AL solver, now using guesses for P(x) to improve performance. Changes (and whole solver) still experimental 2012-03-31 12:41:46 +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
Martin Diehl c29ae95af7 new version of AL spectral solver (seems to work, but still experimental)
new concept of DAMASK for Python: Now using also IO.f90, debug.f90 etc. instead of mimicing their necessary function. This needs DAMASK_python.f90 and DAMASK_python_interface.f90 (At the moment more or less copies of respective spectral files).
polished and renamed the scripts for converging ang files
renamed voronoi_randomSeeding.py to spectral_randomSeeding.py
2012-03-29 19:54:31 +00:00
Martin Diehl 17826d7c98 now initializing planner flag for fftw with useful value even if init wasn't executed 2012-03-26 10:03:39 +00:00
Franz Roters 7947ae36b3 changed default value of err_div_tol 2012-03-22 10:33:54 +00:00
Franz Roters 00de182873 corrected if statement to check assembly of input files 2012-03-22 07:44:46 +00:00
Martin Diehl 44d8282863 corrected reading in of ABAQUS debug modes and made numbering scheme for debugging depending on variables hoping to prevent these errors in debug.f90
Put all (now public) logicals in FEsolving.f90 again into one specification statement
2012-03-21 18:04:52 +00:00
Martin Diehl 15dd860de9 new switch "SOLVER", set it to SOLVER=AL to compile the Augmented Lagrange version of the spectral solver 2012-03-21 18:01:25 +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
Franz Roters 8d8a8103eb lastIncConverged, outdatedByNewInc, and cutBack need to be public as well!
please keep in mind the FEM interfaces which also need to work!!!
2012-03-21 07:51:07 +00:00
Martin Diehl dbdc7ddfa2 debug.config, debug.f90, DAMASK_abaqus_exp.f, DAMASK_abaqus_std.f: changed to new debug scheme (wasn't working)
lattice.f90, FEsolving.f90: explicitly defined public functions and variables, all others are now private
numerics.f90: changed output format of real numbers, now instead of 0.1eX 1.0e(X-1) is printed to screen
Makefile: now using correct Optimization flags for OPTIMIZATION=AGGRESSIVE
DAMASK_spectral_AL.f90: improved, but still testing. Stress BCs now seem to be handled correctly
2012-03-20 18:01:31 +00:00
Martin Diehl 04d83ec9cd added "-assume byterecl" in Makefile for ifortran to specify with "recl=" the size of the file in bytes instead of 4byte chunk when opening files. (same as in gfortran per default).
no important changes in other files
2012-03-20 12:26:21 +00:00
Philip Eisenlohr 012d568cf8 slightly restructured divergence debug output 2012-03-19 16:41:55 +00:00
Martin Diehl 632d57cc31 corrected div calculation regarding dimension and resolution 2012-03-19 13:19:15 +00:00
Christoph Kords 5263366615 adding switch in material.config for short range stress correction 2012-03-15 14:58:12 +00:00
Christoph Kords 7330031579 corrected special treatment of periodic images in calculation of stress correction 2012-03-15 10:08:08 +00:00
Philip Eisenlohr d4463fe56a shifted location of elasticity part closer to plasticity... (constitutive has been shaken back and forth quite a bit today ;-] ) 2012-03-15 09:51:33 +00:00
Christoph Kords ea634d978a adapted comments to recent change 2012-03-15 09:47:32 +00:00
Franz Roters b7fc4fe6e4 fixed one last typo, now it finally compiles, sorry for this! 2012-03-15 09:42:33 +00:00
Franz Roters 4d90d90886 last comment also holds for this one 2012-03-15 09:25:15 +00:00
Franz Roters 70a44fbbdd constitutive models need to skip new keyword elasticity when reading their arameters 2012-03-15 09:22:24 +00:00
Christoph Kords 503f6ed040 i think it's elasticity not elaticity, right? 2012-03-15 08:46:51 +00:00
Franz Roters 36edb4dd9f introduced keyword elasticity in material.config
added constitutive_TandItsTangent and special version constitutive_hooke_TandItsTangent
those are however not yet used and need to be tested
2012-03-14 16:16:11 +00:00
Christoph Kords 9cbbb7cab5 Dead dislocations are treated the same as mobile dislocations for the flux part though they do not contribute to slip. By that the pileup of dead dislocations is able to diminish with time (kinetics are the same as for the glide part; this is not correct but gives valuable results). Also remobilization of dead dislocations at neighbor is taken into account for flux. 2012-03-14 15:32:50 +00:00
Christoph Kords 6bca2150f2 local stress correction of gradient in dead dislocations and neighboring excess density is additive 2012-03-14 15:24:19 +00:00
Christoph Kords 06c93435f2 viscosity term in kinetics law proportional to resolvedstress minus forest term 2012-03-14 15:18:36 +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
Christoph Kords 2b5ed4ab93 corrected name of makefile (first letter upper case) 2012-03-14 11:58:05 +00:00
Christoph Kords d2652cae47 multiplication only controlled by screws 2012-03-13 14:19:36 +00:00
Franz Roters 433d8a338c missed several occurences of constitution 2012-03-12 14:43:19 +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 efd653fb00 removed old *.output* and *.spectralOut as they are not updated anyway from reference.
introduced a numbering scheme for variants
calculated new reference results due to slight changes
2012-03-09 16:30:42 +00:00
Martin Diehl ac5dd14c5f removed some small bugs in IO.f90 (related to initialization of variables)
DAMASK_spectral.f90 adopted to new debug scheme, substituted print with write statements
2012-03-09 15:22:52 +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
Martin Diehl dec9451b1e first draft of the Augmented Lagrangian based algorithm, still experimental 2012-03-07 17:37:40 +00:00
Martin Diehl 2a7888c7e1 removed (in IO.f90) a dangerous initialization statement.
Please read http://www.cs.rpi.edu/~szymansk/OOF90/bugs.html#4
for more details.

Other files are just a little bit polished
2012-03-07 10:07:29 +00:00
Martin Diehl d00c3c9e19 added error for to IO to substitute stop statement in kdtree2
explicitly defined all functions in as either public or private in the modules to have a quick overview on all functions and parameters that are available
2012-03-06 14:52:48 +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
Martin Diehl df03dee91c improved readability, removed archive statements. With new option FASTBUILD=YES build without any warnings etc 2012-03-01 19:34:42 +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
Martin Diehl f2ee67d03d disabled multi file optimization when setting OPTIMIZATION=OFF and improved comments on compiler switches 2012-02-24 13:38:15 +00:00
Franz Roters 1042ac018f output values used for Lp_frac and analyticJaco
improved comment for Lp_frac on numerics.config
2012-02-24 08:21:18 +00:00
Martin Diehl 478a6d110c mixed things up, did not want to commit constitutive_nonlocal.f90 but rather DAMASK_spectral.f90!!!!
did a lot of polishing on constitutive_nonlocal.f90 (mostly checked in at last commit), for changes on DAMASK_spectral.f90 see previous message
2012-02-23 17:20:57 +00:00
Martin Diehl a98832100f introduced itmin parameter for spectral code for defining minimum number of cycles
removed simplified_algorthim flag because the basic scheme using the polarization field will not be implemented
introduced divergence_correction flag for making divergence criterion resolution-independent (still experimental and not set by default)
corrected output and restart frequency (now modulo on incs of current load case)
2012-02-23 16:43:17 +00:00
Franz Roters 989a2b2d39 added default entries for Lp_frac and analyticJaco 2012-02-23 10:53:15 +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
Christoph Kords 9bf5b9dc86 dotState=NaN enforces cutback, if evolution rates lead to negative densities 2012-02-22 16:08:22 +00:00
Martin Diehl 21db79ce25 automated copyright information seems to be very complicated, not working yet 2012-02-22 14:06:28 +00:00
Martin Diehl e25f605838 still trying to add copyright information by keyword via svn 2012-02-22 13:56:03 +00:00
Martin Diehl 20fdd302d7 trying to add copyright information by keyword via svn 2012-02-22 13:47:39 +00:00
Martin Diehl ca401292e7 2012-02-22 13:46:33 +00:00
Martin Diehl ca59c9936f trying to add copyright information by keyword via svn 2012-02-22 13:43:35 +00:00
Martin Diehl b0e2707a94 trying to add copyright information by keyword via svn 2012-02-22 13:40:03 +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 9dc730dea4 now getting path separator by counting slashes and backslashes in $PATH environment variable 2012-02-21 16:04:16 +00:00
Martin Diehl 79663a7f76 polishing: adding pInt, removing unused use-statements etc 2012-02-21 16:00:00 +00:00
Martin Diehl 23cda48709 cleaning up, removing includes not needed 2012-02-21 15:42:47 +00:00
Martin Diehl 87a83d82b7 changed assumed arrays (:) to properly defined ones (gfortran 4.7 was complaining) and remove use statements that are not needed 2012-02-21 15:39:36 +00:00
Christoph Kords 8dc6e256c0 choose textures and phases of example materials according to what the labels suggest 2012-02-21 13:16:59 +00:00
Christoph Kords 97b2240fe9 take absolute dislocation velocities when testing Courant-Friedrichs-Lewy condition 2012-02-21 13:11:47 +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
Nan Jia db06c797cd store number of outputs for each instance of the constitution in constitutive_[j2/titanmod/...]_Nouput and use this value to loop over all valid outputs when determining the size of the outputs array 2012-02-14 15:19:59 +00:00
Martin Diehl 49a964aeda removed public statement in derived data type causing trouble on older compilers 2012-02-14 13:56:35 +00:00
Martin Diehl 8f22d5a324 corrected geometry reconstruction (fluctuations were scaled wrong) and translated some comments from german to english 2012-02-14 13:43:36 +00:00
Martin Diehl d9522bf588 minor changes, substituting implicit type conversions with explicit ones 2012-02-14 12:17:47 +00:00
Christoph Kords 30c55c3142 added check for unknown keywords again (in agreement with Philip ;-)
indeed 'constitution' and '/nonlocal/' are the only keywords which have to be ignored, since they are parsed elsewhere
2012-02-14 09:22:37 +00:00
Philip Eisenlohr 9b73cb3c65 removed parameter check complaining about unknown keyword as default case. there are just too many keywords that do not trigger a variable assignment to cope with them (e.g. /nonlocal/, constitution, etc.)
I suggest to kill similar logic from other files if present somewhere...
2012-02-13 23:30:59 +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
Martin Diehl dd51e1da81 changed calculation of gamma_hat back to (working, but theoretically wrong) order 2012-02-13 17:15:02 +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
Martin Diehl f03e7c459c small polishing, exchanged stops in math.f90 with calls to IO_error 2012-02-13 14:08:07 +00:00
Martin Diehl a6864bf599 added missing 'dotF' 2012-02-13 12:41:44 +00:00
Martin Diehl df07299f78 fixed bug concerning calculation of gamma operator and improved output to screen 2012-02-13 12:38:46 +00:00
Philip Eisenlohr fa32a00d56 changed symmetryID initialization to integer (instead of float) value 2012-02-10 17:46:43 +00:00
Philip Eisenlohr b211c13487 added "dotF" synonym to load case parsing. 2012-02-10 17:45:45 +00:00
Martin Diehl 1cc2315954 restructured algorithm, initialization now not longer within increments, lot of small improvements/polishing
makefile now calls compiler with lot of warning flags
2012-02-10 11:59:59 +00:00
Martin Diehl 37ac7bf1b4 fixing inconsistencies in variable assignments 2012-02-10 11:56:05 +00:00
Martin Diehl cff66b5cc3 removed implicit type castings 2012-02-10 11:24:53 +00:00
Christoph Kords 26b4f886ba whoops, accidentally removed _pInt in the IO_error calls which where previously added by Martin 2012-02-10 07:58:33 +00:00
Christoph Kords ff53b9754b somewhat better readable format without as much linebreaks 2012-02-10 07:50:29 +00:00
Martin Diehl 7a23833a39 removed line>132 characters, added _pInt when calling IO_error 2012-02-09 17:28:55 +00:00
Martin Diehl 0e2894f2b1 corrected handling of highest frequencies, polished and checked for standard compliance 2012-02-09 15:58:15 +00:00
Martin Diehl 724ec040a2 added pInts and pReals 2012-02-09 15:55:04 +00:00
Philip Eisenlohr dced3f9430 changed FFT reporting of dimension and resolution to one line each. 2012-02-09 13:18:59 +00:00
Martin Diehl 195491aaaa added missing pInts 2012-02-09 12:35:55 +00:00
Martin Diehl a26456f9c0 now handling capitals in restart argument correctly 2012-02-09 12:20:14 +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
Christoph Kords 5ddade27fc changed Peierls stress to more realistic values for fcc 2012-02-03 13:12:45 +00:00
Christoph Kords d62eddc0cd corrected kinetics law and changed parameters. For solid solution hardening there are 3 parameters: the activation energy, the concentration of obstacles that determines the activation length and meanfreepath, and the obstacle size that determines the activation volume. For the Peierls mechanism there is: the width of doublekinks that determines the activation volume and the Peierls stress for edge and screw.
Still testing needed to check whether the current formulation makes sense or not.
2012-02-03 12:50:54 +00:00
Christoph Kords bbf4f25898 renamed subroutine "mesh_marc_get_mpieOptions" to "mesh_get_damaskOptions" which is now also used for abaqus and spectral input files. The only available option so far is "periodic", which allows for periodic fluxes in the specified direction. Examples for usage (add the following lines to the respective input file, in case of spectral file this goes into the header):
- periodicity in x and z direction for marc:
   $damask periodic x z  
- periodicity in y direction for abaqus:
   **damask periodic y
- periodicity in x and y direction for spectral:
   periodic y x
2012-02-03 12:37:52 +00:00
Krishna Komerla 7e23f84d2c new subroutine find_nearest_neigbor, basically a wrapper function for our purpose to kdtree2
split up kdtree2.f90 again from math.f90 to make the files better accessible
2012-02-02 15:57:22 +00:00
Martin Diehl 72aeb2113a minor improvement on the still not working long (polarization field based) algorithm 2012-02-02 13:20:09 +00:00
Martin Diehl faed4ec232 added deallocation of arrays (fftw_free) 2012-02-02 13:19:35 +00:00
Martin Diehl 2e4f2f3d9c added _pInt where appropriate 2012-02-02 13:19:02 +00:00
Martin Diehl 683384681a doing average correction now in Fourier space, now sure that the constant term is correct.
changed order of stress BC calculation/spectral method to avoid average calculation of stress in real space
2012-02-01 20:30:27 +00:00
Martin Diehl c6fb2122be added some comments for further debuggin/compliance with standard checking 2012-02-01 20:28:58 +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
Martin Diehl 8cf67e1be6 corrected weighting of difference divergence measures, added some additional output and introduced exit code 0 for successful termination. 2012-01-30 20:25:04 +00:00
Martin Diehl 9464937db7 merge declaration and initialization with standard values
corrected handling of $DAMASK_NUM_THREADS
2012-01-30 20:16:19 +00:00
Martin Diehl eeda357710 N^2 initialization loop (former spectralPictureMode) rewritten in material.f90
additional output in DAMASK_spectral_interface.f90 
132 character cut off in constitutive_nonlocal.f90
rounding error in math.f90 complex number initialization (1.0_pReal)*2.0_pReal*pi
new $DAMASK_NUM_THREADS warning in numerics.f90 / IO.f90
polishing in DAMASK_spectral.f90
2012-01-30 13:52:41 +00:00
Christoph Kords 4edd824d8c forgot homogenization.f90 in last commit 2012-01-26 13:51:01 +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 df931890e0 corrected typos 2012-01-26 12:50:04 +00:00
Christoph Kords 6fec57bbd7 replaced variable fraction by "timefraction" 2012-01-26 12:48:59 +00:00
Christoph Kords 5a658d1b82 dislocation velocity output for each dislocation type (edge+,edge-,screw+,screw-)
for fcc constitutive_nonlocal_kinetics is called only once and the result is used for each dislocation type, for all other lattice structures we have one call for each dislocation type
2012-01-26 07:43:36 +00:00
Christoph Kords e5407894b5 Reworked kinetics. Now there is a universal law which can be used for both fcc and bcc (and probably even hcp). It mainly consists of an athermal forest cutting part , solid solution and peierls as thermally activated processes, and viscous glide. Therefore, lots of new parameters in the material.config. Not sure yet if the values make sense though.
Also renamed some of the old parameters. 

Unknown constitutive output raises error.
2012-01-25 17:04:37 +00:00
Martin Diehl e6495c986b corrected order of arguments for calling functions from python, small polishing in math.f90 (substituting manual summation by sum() ) 2012-01-25 14:31:21 +00:00
Martin Diehl fa372523a8 added and restructured comments
debugGeneral = .true. now enables the additional output
restructured the debug options
started to implement the long algorithm (with fluctuation field), not working at the moment, can be enabled via simplified_algorithm <1 in numerics.config
corrected calculation of RMS of divergence, now measures in real and fourier space match
2012-01-25 14:27:26 +00:00
Martin Diehl 884249aba8 removed hint how to patch fftw, added flag for gfortran to check if maximum length of source files do not exceed 132 characters 2012-01-25 14:24:08 +00:00
Martin Diehl bd48620de2 improved Curl_fft, corrected Divergence_fft and added math_skew3x3 2012-01-25 10:30:39 +00:00
Martin Diehl e7ac99eeca for spectral solver, --restart XX sets restartReadInc to XX-1, meaning restartReadInc is the step to read and XX the step at which the calculation begins 2012-01-25 09:05:38 +00:00
Martin Diehl 656d7a68d2 one new error message for spectral solver 2012-01-25 09:00:40 +00:00
Martin Diehl 3e521e32a6 indroduced 3 more flags for fine control of spectral algorithm 2012-01-25 08:56:46 +00:00
Martin Diehl 52a43c3b32 improved help output and corrected triggering (-h, --help) of help 2012-01-25 08:54:37 +00:00
Philip Eisenlohr 0cb90d4926 corrected debug_verbosity glitch (missed ">0" in logical expression) 2012-01-23 13:32:37 +00:00
Christoph Kords 4980f57fd5 added total Green-Lagrange strain to crystallite outputs 2012-01-20 10:25:35 +00:00
Philip Eisenlohr 43bd667f78 switched array indices of curl_fft in accordance with math.f90 2012-01-19 20:39:33 +00:00
Philip Eisenlohr a13aeb045f corrected curl_fft subroutine 2012-01-19 20:38:52 +00:00
Christoph Kords 1032ff3d47 corrected definition of element base node, which was still flawed 2012-01-19 14:15:26 +00:00
Christoph Kords 6c2a61e489 corrected node coordinates and sorting for spectral method 2012-01-17 16:53:56 +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 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
Christoph Kords fed53a7e60 in subroutine "mesh_marc_get_mpieOptions": need at least one additional string after keywords "$mpie" and "periodic", not two as it used to be 2011-02-23 12:33:51 +00:00
Christoph Kords 430966eb20 sorry, forgot to commit the numerics.f90, too 2011-02-23 12:30:52 +00:00
Christoph Kords 96d3682d5e * new global integer variable "numerics_integrationMode" (1 indicating integration of central solution, 2 indicating integration of perturbed state)
* combined "integrator" and "integratorStiffness" in new global variable "numerics_integrator"
2011-02-23 08:29:51 +00:00
Christoph Kords d835380bc0 * "constitutive_nonlocal_flux" is set to zero in "constitutive_nonlocal_dotState", not in "constitutive_nonlocal_microstructure"
* dislocation flux and internal stress calculation now consistent with new definition of slip system lattice according to paper (polarity of screws inverted)
2011-02-23 08:08:06 +00:00
Martin Diehl 8dd1a694a3 extended IO to cope with different name for solverJob and Model
polishing, added error codes
added FFTW library files
2011-02-21 14:37:38 +00:00
Christoph Kords b21c153761 restructured constitutive_nonlocal_compatibility and incorporated the "surfaceTransmissivity" in the compatibility calculation 2011-02-16 16:38:18 +00:00
Christoph Kords 24d33bf2ff * added a new material parameter "surfaceTransmissivity" (default value 1.0) which allows to change the transmissivity of the material surface between 0 and 1
* now complaining when encountering an unknown nonlocal parameter in material.config
* use same error ID for all material parameters out of bounds
* symmetric flux calculation in side dotState can now be omitted (because of new treatment of periodicity)
* switching back to "local flux balance" (add leaving and entering fluxes at central MP, don't touch neighbor) instead of "flux distribution" (subtract leaving fluxes from central MP and add them at neighboring MP). This has the advantage that there is almost no need for CRITICAL statements in parallelization, so hopefully this results in some speed up.
2011-02-16 16:35:38 +00:00
Christoph Kords 8f626c8989 Now able to have real periodicity for fluxes (fluxes leaving the model on one side enter on the other side).
To enable this feature one has to add the following somewhere in the marc input file:
   $mpie periodic x y z
      for having periodicity in all directions
   $mpie periodic z x
      for having periodicity in x and z direction
   etc.
Note that this only works for regular meshes!!!
2011-02-16 16:23:08 +00:00
Alankar Alankar 89ed6f5f66 Did not compile. Fixed missing , 2011-02-15 12:29:01 +00:00
Alankar Alankar c39e04644b Sorting of hex slip-systems done in update 659 was missing. Included again. 2011-02-15 12:21:54 +00:00
Martin Diehl 438bf95105 added ft-based reconstruction of deformed configuration to postprocessingMath.f90 and postprocessingMath.pyf
also added function to calculate average of tensor
some polishing in mpie_spectral.f90, added sanity check to see im resolution is power of 2
2011-02-14 17:21:31 +00:00
Philip Eisenlohr 171f5375f1 shearrate output now with sign (no |abs| as before) 2011-02-11 10:19:41 +00:00
Martin Diehl 3d7fad6ba9 mpie_spectral.f90: changed fourier transormation, now using the advanced interface to do the tranformation both ways with just one call. now also using the same variable for pk-stress in both domains and the change of deformation gradient in both domains.
postprocessing: renamed name of python/f2py modul from "reconstruct" to "postprocessingMath", added some numerical operations to use for postprocessing.
2011-02-09 17:47:28 +00:00
Christoph Kords 803e1a8c05 In order to help preventing further memory leaks all array sections now have an explicit instead of assumed shape, e.g. Fe(1:3,1:3) instead of Fe(:,:). 2011-02-09 13:12:46 +00:00
Christoph Kords 466ced911e * check convergence for nonlocals also in stiffness calculation mode 2011-02-09 08:39:07 +00:00
Christoph Kords 921967c2ba * found memory leak in nonlocal model! "constitutive_nonlocal_rhoDotFlux" has to have upper index bound of 10 for second dimension, not 8.
* need to recalculate dislocation velocity in postResults, otherwise we take values of last perturbed state! So the following outputs were up to now showing the perturbed state: shearrate, dislocation velocity, all density rates!
2011-02-09 08:28:47 +00:00
Christoph Kords 17a6c0e59b enhanced comment on dislocation kinetics 2011-02-08 12:48:50 +00:00
Christoph Kords 6731659aa4 added hint that extreme values of stress and tangent belong to previous cycle 2011-02-08 12:43:30 +00:00
Christoph Kords 0a30fb739a now reporting extreme values of stress and tangent, that were returned to marc, in output file 2011-02-08 10:25:51 +00:00
Martin Diehl 7a7ca1aab7 mpie_spectral and mpie_interface: changed workingdir from pathToLoadFile to pathToGeomFile
mpie_spectral and numerics: added switch to prevent pre calculation of gamma_hat. slower, but saves memory
3Dvisualize: started to add support for gmsh (not fully working yet)
reconstruct: new version of f2py/Fortran subroutines for output of results from spectral method
2011-02-07 14:35:42 +00:00
Christoph Kords faba13f7fd * now able to introduce some scatter in the initial single dislocation density (only for nonlocal model!) ; setting the parameter "rhoSglScatter" to a positive value generates a gauss distribution for the dislocation density with standard deviation equal to "rhoSglScatter"
* dislocation stress calculation is only done for nonlocal constitution ("/nonlocal/" keyword is present in material.config)
2011-02-04 15:41:32 +00:00
Alankar Alankar b362755457 grain orientation shuffling was skipped for /elemhomo/. no clue why, now dropped... 2011-02-03 17:25:58 +00:00
Martin Diehl fec2c14a4e removed hard-coded tolerances from mpie_spectral and put them to numerics/IO
removed storage of full cauchy stres field from mpie_spectral.f90, only average is stored now
added cauchy stress and von mises equivalent calculation to spectral post.
2011-01-31 17:07:42 +00:00
Christoph Kords b72d75ed05 corrected indices in flux density output 2011-01-28 12:49:58 +00:00
Philip Eisenlohr c00a42a9a4 fixed last remaining tensor outputs to their transposed versions 2011-01-27 14:29:06 +00:00
Martin Diehl aa7d5afd94 changed ifort options back to previous ones as -fast is not working 2011-01-26 13:33:44 +00:00
Christoph Kords 05d4d5fef2 * kinetics now according to Mohles; enables solid solution hardening
* changed example in material.config accordingly
2011-01-26 10:17:42 +00:00
Philip Eisenlohr 6ac06af517 sorry, forgot to alter the most important part: post_results..! eventually, the t16 has defgrads and friends in correct format: du_i/dx_j is listed as linear array (1,1),(1,2),(1,3),(2,1),... 2011-01-24 16:23:37 +00:00
Philip Eisenlohr 4ee40df5ba transposed writing into t16 file (and screen/debug) did not work with just stating array(1:3,:)...
fixed by using math_transpose3x3 (and similar) instead.
2011-01-24 15:02:19 +00:00
Philip Eisenlohr 794aeb253b crystallite and CPFEM now print/output tensors in ij notation (used to be, particularly in the t16, ji, i.e. transposed...)
math reports random seed used for rnd() generation
2011-01-20 19:25:45 +00:00
Martin Diehl b546d3bb91 some corrections regarding Multicore-support on mpie_spectral.f90 and makefile
slight changes on mpie_spectral.f90 regarding file output
2011-01-12 17:02:42 +00:00
Christoph Kords 062c6b3d54 * allow zero cutoff radius
* added missing error codes
2011-01-12 12:36:48 +00:00
Christoph Kords d92f992eb7 if nonlocal ip has local neighbor assume perfect transparency of the (perhaps virtual) phase boundary. this is only a quick fix! need to rethink the way constitutive and real boundaries are treated! 2011-01-11 18:00:29 +00:00
Christoph Kords 6a3dd78259 fluxes are disabled when keyword "/nonlocal/" is omitted in the material.config (this is a way to use the constitutive_nonlocal model as a local dislocation based model) 2011-01-11 14:55:36 +00:00
Martin Diehl ccc6aac10b did not delete mpie_spectral2.f90 properly 2011-01-07 13:11:32 +00:00
Martin Diehl 71fb5eedf2 changed makefile: material subroutines are now compiled using openmp, enabled linux threads for fftw3 (also did some slight changes to enable that in the fortran source code)
renamed mpie_spectral2.f90 to mpie_spectral2d.f90 (testing file, not properly working at the moment)
changed file extension and variable names in mpie_spectral.f90 and mpie_spectral_interface.f90 from "mesh" to "geom". Removed direct output from mpie_spectral.f90, all output is now base on materialpoint_results(:,1,:)
2011-01-07 12:56:45 +00:00
Franz Roters 9447330ab0 ATTENTION repository has been moved to new server!
Now at musvn1:/home/svn/repos/cpfem
2011-01-05 16:11:51 +00:00
Franz Roters 096a4803b0 some polishing concerning openMP initialization
number of threads is now written to *.out file
2010-12-02 11:04:29 +00:00
Denny Tjahjanto 36f27edd75 1. Adding more comments
2. Changing 'subroutine' into 'function' for optimizing the computation time
2010-11-26 11:50:20 +00:00
Christoph Kords 6b199e7830 allow 2digit values to be read in for MPIE_NUM_THREADS 2010-11-25 10:34:55 +00:00
Christoph Kords ea6a6c9503 * environment variable MPIE_NUM_THREADS now determines number of threads used in parallel regions
* default value of the OMP_NUM_THREADS variable has to be restored at the end of mpie subroutine, since marc also seems to use and change(!) this 
* usage: "export MPIE_NUM_THREADS=<number of threads>" to set variable in shell, then restart mentat and compile with option 3 (at the moment this does only work on ws 6, since all other workstations use compiler option "-save"; this puts all local variables by default in static memory, which is a killer for parallelization!)
2010-11-19 17:45:27 +00:00
Christoph Kords b9b226548c * enclose wall time measurement for LpAndItsTangent and count of leapfrogbreaks by CRITICAL construct
* better use SINGLE (having an implicit barrier at the end) instead of MASTER construct
* deleted all explicit BARRIERs after do loops since parallel loop construct implies barrier at the end
2010-11-19 17:29:29 +00:00
Christoph Kords 15728d3305 enclose wall time measurement for dotState and dotTemperature function by CRITICAL construct 2010-11-19 17:19:03 +00:00
Christoph Kords 4f267f4375 parallelization now works properly (not yet tested extensively though):
* had to add some BARRIER constructs
* only the master thread is allowed to increase the state counter

yet parallelization seems not to give a significant decrease in calculation time with nonlocal model (because of too many CRITICAL statements?)
2010-11-11 16:16:05 +00:00
Christoph Kords 14594dc9e2 * OpenMP does not like unbounded array subscripts in function calls
* some write statements were still not enclosed by CRITICAL construct, some needed a MASTER construct
2010-11-11 13:14:53 +00:00
Christoph Kords bca951325d * cpfem will now produce a warning if all components of the stiffness tensor are close to zero 2010-11-04 18:18:01 +00:00
Philip Eisenlohr 54748bb6a5 cycleCounter reset was 0 now -1 ==> occurence of jacobian calculation is now correct, i.e. always calc at start of new increment 2010-11-04 18:15:50 +00:00
Christoph Kords 405d5529e7 * checked and corrected parallelization of code. compiles now successfully, but simply aborts computation with first parallel directive without any comment :-(((
* also put a call to constitutive_microstructure at the start of each crystallite_integration subroutine like it was before. need that for nonlocal model in case of crystallite cutback
2010-11-03 17:22:48 +00:00
Philip Eisenlohr 0dd99cb965 lattice: (re)introduced _symmetryType function to replace unsafe lookup array
numerics: polishing

mpie_cpfem_marc: polishing

..powerlaw: aware of symmetryType function

crystallite: aware of symmetryType function, smaller leapfrog acceleration

IO: new warning 101

CPFEM: range of odd stress is now -1e15...+1e15, H_sym is used for stiffness
2010-11-03 14:58:11 +00:00
Denny Tjahjanto 763c20b302 Introducing the capability to restart jobs that crashed in the middle of sims. At the moment, this feature is exclusive for Marc.
Major changes:

CPFEM.f90 => 
1. Moving the initialization out of CPFEM_general into a separate subroutine, which is directly called by the hypela2 (Beware, the Abaqus version must also be modified in order to adapt with this change).
2. Restore primary state variables in CPFEM_init from binary files when requested (Marc flag: restart read).
3. Writing primary state variables into binary files (Marc flag: restart write).

FEsolving.f90 =>
1. Adding functions to recognize Marc restart flags: read and write and the corresponding restart file (parent job).
2. Change the initial value of cycleCounter = -1 in conjuction with the change made the ping-pong scheme

homogenization_RGC.f90 =>
1. Just syntax polishing.

IO.f90 =>
1. Adding functions/subroutines to open binary files for writing the primary state variables for restart purpose.

mpie_cpfem_marc.f90

1. Modification of the general scheme for collection and calculation in order to accommodate the newly added restart feature.
2010-11-03 14:39:18 +00:00
Christoph Kords 4c20daa00d state loop count was wrong for adaptive euler integration 2010-10-28 12:22:17 +00:00
Martin Diehl 17812c1f9e added raw output, gmsh output is still included 2010-10-27 17:15:49 +00:00
Christoph Kords 9320d48305 in RKCK45 state integration: dotState was not saved in last Runge-Kutta step 2010-10-27 08:48:04 +00:00
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
Philip Eisenlohr 7914f80931 stiffness calculation for structure > 3 was missing: "case(3)" --> now "case(3:)" as in all other constitutive_xyz..! 2009-10-19 14:47:52 +00:00
Philip Eisenlohr a94e551c5f absolute tolerance was just fine -- residuum is in Lp not in stress. Hence, unit is strain and not Pa... 2009-10-19 12:53:56 +00:00
Philip Eisenlohr ba27947142 material point now cuts back by 1/8
crystallite does not accelerate anymore, since, typically, longer step immediately fails and uses resources in vain. (future: remember number of successful steps to increase step size after x of those...)
2009-10-19 12:50:59 +00:00
Philip Eisenlohr b5fc0a9769 small rearrangement of cutback dealings. may give minute speed improvement... 2009-10-19 12:46:02 +00:00
Philip Eisenlohr 5a5d461a30 changed abs tolerance in stress loop to 1 Pa (from 1e-8 Pa ..?) 2009-10-19 12:44:20 +00:00
Philip Eisenlohr 992077e88e fixed cut back issue with Marc. Necessity to introduce compMode 7 to capture tangent restoration at lovl=4 call. 2009-10-17 09:25:36 +00:00
Philip Eisenlohr 974116808b fixed a potential memory leak for hexagonal structures. added some status output to constitutive_xx 2009-10-15 20:02:52 +00:00
Philip Eisenlohr 7f84961c93 less debug clutter... 2009-10-14 13:23:52 +00:00
Philip Eisenlohr c3cb72d356 put some comments to hybridIA 2009-10-14 13:21:03 +00:00
Luc Hantcherli 00450b2c16 Added constraint on the dipole distance
if dipole distance > dislocation mean free distance then
   dipole distance = dislocation mean free distance
2009-10-13 18:14:44 +00:00
Luc Hantcherli 3bf3d7ddbd New version of constitutive_dislotwin after first-round checks 2009-10-13 15:05:21 +00:00
Franz Roters 2c1a610b14 removed Koen's loading subroutine from abaqus interface 2009-10-13 06:55:15 +00:00
Philip Eisenlohr 0a34da292e # no need for materialpoint_results in hypela2
# homogenization updated to be compatible with abaqus interface
2009-10-12 17:01:42 +00:00
Luc Hantcherli ca1c61bf98 Changed constitutive_dislobased into constitutive_dislotwin 2009-10-12 16:44:17 +00:00
Philip Eisenlohr 8b66b8def2 # small remark to set "-free" switch for compile
# rename to Abaqus-compatible ".f" extension
2009-10-12 16:32:57 +00:00
Philip Eisenlohr 7d05845d5d # now $ID aware
# LF as line separation and some tidy up
2009-10-12 16:26:16 +00:00
Philip Eisenlohr 2c06cad4d0 now $ID aware 2009-10-12 16:25:48 +00:00
Philip Eisenlohr 21cad32137 # new interface for Abaqus
# IO has some additional functionality for Abaqus parsing
# ping pong scheme in FE interface now similar (and more human understandable) in both versions
# mesh has better splitting of different tasks, plus operation on database whenever possible
# FEsolver as new global var to indicate FEM solver type
# computation mode reshuffling: 6 is now Marc special case of recycling...
2009-10-12 16:01:49 +00:00
Philip Eisenlohr 02602144d2 can now be executed from different directories...but will operate on "its" one 2009-10-12 14:18:54 +00:00
Luc Hantcherli 3f41b271fb The new dislocation model is now implemented in constitutive_dislotwin.f90
(seems to run fine, but still under investigation)
2009-10-09 20:28:23 +00:00
Christoph Kords 4ff497e5ba mesh_build_sharedElems does not need an input argument anymore 2009-10-08 09:23:15 +00:00
Philip Eisenlohr e7247551f0 changed "build_sharedElements" to use (then existing) internal element data structure instead of reading again from the input file. The data structure is already established by "build_elements"... 2009-10-08 09:01:59 +00:00
Luc Hantcherli bb8a71557b Added comment on FCC different interaction types
1 --> self
2 --> coplanar
3 --> collinear
4 --> Hirth locks
5 --> glissile junctions
6 --> Lomer locks
2009-10-07 17:00:35 +00:00
Christoph Kords 9b3a59646a constitutive_nonlocal
- take orientation gradients into account when calculating dislocation stress and dislocation fluxes
- hard coded value for nu
- changed kinetics (parameter G0 is currently defined as a parameter, needs to be read from material.config)
- added some output statements

constitutive: 
- some functions and subroutines needed additional input variables for passing to constitutive_nonlocal 

crystallite:
- some functions and subroutines needed additional input variables for passing to constitutive
- call microstructure with current temperature, Fp, Fe, not "sub0" values
- show number of IPs, that are "onTrack" instead of those not "onTrack"
- calculate Fe at beginning of substep, since we need it for state preguess
2009-10-07 15:31:52 +00:00
Luc Hantcherli cc6aa1aeba Updated constitutive_dislotwin
Deleted constitutive_dislobased
2009-10-06 15:19:19 +00:00
Luc Hantcherli bc5a408c1a Changed constitutive_dislobased into constitutive_dislotwin:
in constitutive.90
in constitutive_dislotwin.f90
in mpie_cpfem_marc.f90
2009-10-06 15:16:03 +00:00
Franz Roters c5865bb7ec corrected calculation of dTdLp 2009-10-02 06:40:12 +00:00
Christoph Kords c67412c36b added missing constitutive outputs for nonlocal law 2009-10-01 16:31:06 +00:00
Christoph Kords b09b2b17f3 convergence of state in crystallite is now tested as follows:
(state < relevant state) or (residuum < relative tolerance * state)
since the relevant value for the state variables depend on their nature and can vary by large scales (e.g. volume fraction: 1e-10, dislocation density: 1e5) it is not possible to set a unique value. instead the constitutive law has to decide what is relevant. therefore, all constitutive laws now read in parameters from the material.config that determine the values for relevantState [@luc: in dislobased law relevant State is for the moment generally set to 1e-200, so no additional parameters necessary in material.config. if you also want this feature, we can still implement it, no big deal]

- added sanity checks in constitutive_nonlocal.f90

- corrected coordinate transformation for backstress calculation in constitutive_nonlocal.f90

- corrected equations for evolution of dipole dislocation densities (athermal annihilation and formation by glide)
2009-09-18 15:37:14 +00:00
Denny Tjahjanto ec524a1dd2 homogenization_RGC.f90
>> Fixing problems related to the size of homogenization_RGC_state vector.
2009-09-07 15:28:32 +00:00
Denny Tjahjanto 5f7e5b8409 homogenization_RGC.f90
<< correction for a very stupid mistake. replacing stress P with the absolute value of stress abs(P) during convergence check. it should work upon deep-drawing.
2009-09-03 20:26:20 +00:00
Franz Roters a16dbe4d32 material_config: added w0_slip in [Aluminum_phenopowerlaw] 2009-08-31 15:38:09 +00:00
Franz Roters 6d3c620e46 forgot to "use" the new init-routines 2009-08-31 15:21:15 +00:00
Franz Roters 2029b23f98 added version information to all files
do NOT edit text like this:
$Id: constitutive_phenopowerlaw.f90 406 2009-08-31 14:13:10Z MPIE\f.roters $
2009-08-31 15:09:15 +00:00
Franz Roters bb0840ecb2 constitutive_phenopowerlaw.f90: check for non-zero w0_slip
IO.f90: added respecteive error message

constitutive_phenopowerlaw.f90: first test with automatic file Id
2009-08-31 14:13:10 +00:00
Franz Roters 4357e29e07 yet another missing "then" in homogenization 2009-08-28 15:26:18 +00:00
Franz Roters c0d1140234 added a missing "then" 2009-08-28 15:14:27 +00:00
Denny Tjahjanto 3ea17dd2fd CPFEM.f90 >>> A very small, not important thing.
homogenization.f90 and crystallite.f90 >>> Correction in the algorithm to count the iteration distribution (for better statistics).

material.config and numerics.config >>> more collection of parameters.
2009-08-28 15:05:14 +00:00
Christoph Kords f27d66a9ae constitutive_nonlocal:
- dipole dislocations with evolution

crystallite.f90:
- collect state uses subdt and subTstar0_v
- in nonlocal modus: set all crystallites to broken if one is not on track anymore after either stress integration or state update
- constitutive_microstructure is now called inside state update and not in integrate_stress anymore

material.config:
- new parameter for nonlocal constitution

CPFEM.f90:
- age Tstar after increment was finished
2009-08-28 13:50:47 +00:00
Denny Tjahjanto 644265381e mpie_cpfem_marc.f90 >>> changing the compilation sequence of modules: numerics.f90 and IO.f90 move up, while math.f90 down.
IO.f90 >>> adding "inRad" instead of using inRad from math.f90 module, since math.f90 module is now below IO.f90.

numerics.f90 >>> now can read the parameter "fixed_seed" from numerics.config. this parameter is used to set a pseudo-random number generator/fixed seeding. default value is 0 (zero), which will give fully random number.

math.f90 >> adding a possibility to fix the seeding (i.e., pseudo random number)

numerics.config >>> add a new parameter: "fixed_seed"
2009-08-27 15:30:40 +00:00
Denny Tjahjanto b25396374a homogenization_RGC.f90 >>> adding some lines, mostly for debugging purpose. no critical change.
constitutive_phenopowerlaw.f90 >>> adding new parameter: constitutive_phenopowerlaw_w0_slip, i.e., the hardening rate exponent.
homogenization.f90 >>> most important change is to add an if-else statement (line 379-380) to switch crystallite_requeted = .false. for already converged material point iteration (el/ip). the rest of the changes are cosmetics and debugging stuffs.
crystallite.f90 >>> similar to homogenization.f90, the most important change is to add additional if-else statement (line 574) in the jacobian (perturbation) loop. now the jacobian calculation will only be performed when crystallite_requested = .true.. the rest is only cosmetic.
2009-08-27 12:10:06 +00:00
Denny Tjahjanto f70013ee9b lattice.f90: correction of typo from the last update (Philip) 2009-08-26 09:02:22 +00:00
Philip Eisenlohr 7720680f3a makeMe: some polishment
lattice: found memory leak (lattice_interactionTwinSlip had wrong size) and added further commenting
2009-08-26 07:28:43 +00:00
Christoph Kords 1dbd0865db constitutive_nonlocal.f90
- completed postResults output function
- connecting vector of neighboring material points is mapped to intermediate configuration of my neighbor

crystallite.f90
- zero out dotState only when crystallite is non-finished
- set nonfinished flag to false if crystallite is not on Track after state update
- in updateState: set onTrack flag to false if encounter NaN
- removed some old debugging outputs and added others

homogenization.f90
- in debugging mode now telling when a cutback happens
2009-08-24 08:16:01 +00:00
Franz Roters 387195e036 that was tooo quick, now it works hopefully 2009-08-13 13:32:17 +00:00
Franz Roters f400cdac5b corrected paramter check for phenopowerlaw 2009-08-13 13:27:14 +00:00
Denny Tjahjanto cafc39b183 replaces Nast with Nreps in hybridIA
formerly, if the number of orientations requested was (far) less than the number of nonzero bins in the texture representation, you only got a subset of low phi1 values..! (that is the top corner in Euler space -- Hi Bing ;-) )
2009-08-13 13:21:22 +00:00
Franz Roters 0ef4ec27b3 there was a lonesome endif that needed a comment 2009-08-13 12:56:07 +00:00
Luc Hantcherli 93543c21e9 In crystallite_stressAndItsTangent:
state is now correctly collected during perturbation method
2009-08-13 10:04:14 +00:00
Denny Tjahjanto 86211bf0ce homogenization_RGC.f90: adding comments to improve clarity 2009-08-12 14:13:20 +00:00
Christoph Kords 2aae7b7574 added dislocation multiplication to dotState in constitutive_nonlocal.f90
cleaned up debugging output statements to *.out file
2009-08-12 11:22:02 +00:00
Franz Roters 6171361c7e terminallyIll was missing in the use statement 2009-08-12 08:10:28 +00:00
Christoph Kords 8ed3ddc03b now with first draft of nonlocal constitutive law
debugging memory leak closed
debugging counters corrected

center of gravity stored in mesh

state updated is now split into a collecting loop and an execution

updateState and updateTemperature fill sequentially separate logicals and evaluate afterwards to converged

added 3x3 transposition function, norm for 3x1 matrix and 33x3 matrix multiplication in math

non-converged crystallite triggers materialpoint cutback (used to respond elastically)

non-converged materialpoint raises terminal illness which in turn renders whole FE increment useless by means of odd stress/stiffness and thus waits for FE cutback
2009-08-11 16:31:57 +00:00
Denny Tjahjanto 4689966c79 correction in homogenization_RGC.f90: in the use of material module
homogenization_typeInstance was included two times in previous version.
2009-08-06 12:47:14 +00:00
Christoph Kords 1a7eb3158b wrapped lines in order to ensure maximum number of allowed characters per line = 132 2009-08-03 06:37:37 +00:00
Denny Tjahjanto 360fb069ba List of changes/modifications:
* IO.f90 :: Adding error messages for RGC homogenization
* crystallite.f90 :: Modifying convergent criteria in crystalline_updateState and crystalline_updateTemperature
* material.f90 :: Adding IO_lc in homogenization_type(Name)
* debug.f90 :: Adding debbugging statement and counter for material point loop
* homogenization.f90 :: Adding homogenization_RGC blocks
* homogenization_isostrain.f90 :: Modifying argument of homogenization_isostrain_stateInit
* mpie_cpfem_marc.f90 :: Adding homogenization_RGC include
* numerics.f90 :: Adding numerical parameters for RGC scheme
* math.f90 :: Changing function name: math_permut to math_civita
2009-07-31 12:02:20 +00:00
Luc Hantcherli f0729a2e52 Cosmetic changes in constitutive_dislobased.f90
- more precise output labels
- do changes into forall
2009-07-28 10:08:13 +00:00
Franz Roters 1cd0b74b08 divide by 3.0 instead of 3 as it is _pReal 2009-07-27 09:23:39 +00:00
Philip Eisenlohr 53cff7458c polishing of constitutive output size determination in _init() 2009-07-24 15:23:45 +00:00
Luc Hantcherli 9bbde133a1 Updated constitutive_dislobased.90 and lattice.f90 according to the changes done in the previous release
- introduction of system families
- analogous structure to constitutive_phenopowerlaw.f90
- interaction types 0-1 changed into 1-2
2009-07-24 12:02:20 +00:00
Philip Eisenlohr 97d8a321e0 some cosmetics... 2009-07-23 13:33:53 +00:00
Philip Eisenlohr f337847f35 quite some changes:
# non-greedy memory allocation
# generation of outputConstitutive to allow for script-based T16 extraction
# exchange of phenomenological by more general phenopowerlaw
# lattice is based on slip and twin families which can be treated as individual entities (switched on/off, separate hardening, etc.)
# nicer debugging output
# changed some error/warning codes
# plus potentially some minor additional brushes here and there
2009-07-22 16:07:19 +00:00
Luc Hantcherli 290410b3fc Example of material.config, delivering the required information for the new version of constitutive_dislobased 2009-07-14 11:31:06 +00:00
Luc Hantcherli ce515beb39 THIS IS A MAJOR UPDATE
The different blocks required for the twinning model are now implemented (I guess correctly...)
Keywords in the material.config are changed. Since the flow rule for twin systems remains under investigation, this part is susceptible to further changes.
2009-07-14 11:26:52 +00:00
Luc Hantcherli d3343ef795 Corrected definition of vector n and d per deformation system; n is the system plane normal and d the corresponding direction 2009-07-14 11:20:35 +00:00
Christoph Kords fe2f3e4d36 - added sanity check for temperature tolerance
- added temperature tolerance in numerics.config
2009-07-02 16:37:48 +00:00
Luc Hantcherli 1c35103524 Corrected CPFEM: assignment of constitutive_state and _state0 consistent with homogenization_Ngrains (what is actually needed), instead of homogenization_maxMgrains 2009-07-02 08:57:35 +00:00
Luc Hantcherli 4aed2ade80 Major Update: all modules are now correctly submitted 2009-07-01 10:55:31 +00:00
Luc Hantcherli a16b8a619d Major update: corrected treatment of temperature 2009-07-01 10:29:35 +00:00
Christoph Kords 2e783df5ed corrected typo in the prime number function 2009-06-29 15:29:07 +00:00
Franz Roters a6ccfe2e44 restructured the repository: renamed trunk into code, moved documentation one directory up, therefore you can now checkout either code or documentation only if you like 2009-06-25 07:17:59 +00:00