Commit Graph

134 Commits

Author SHA1 Message Date
Martin Diehl 0bc99a9622 change latticeName to latticeID 2013-11-27 16:20:27 +00:00
Martin Diehl 6c2ab1f1f8 added ID (integer, enum) case switching for phenopowerlaw and isostrain 2013-11-27 11:39:28 +00:00
Martin Diehl 2f7efa2055 introduced named constants for homogenization_type, phase_plasticitiy, and phase_elasticity to replace expensive string comparison. Labels for different schemes need to be stored in material.f90 because they are needed when parsing the config file 2013-11-27 08:04:05 +00:00
Martin Diehl dc95c82d4a removed temperature integration and corresponding data structures and debugging options
temperature is stored in crystallite, but homogeneous on one IP (not an component (grain) quantity and an input value parsed in by the BVP solver.
introduced heat, a component (grain) quantity which is homogenized before returned to the heat transfer solver.
went ahead with removal of dummy functions in homogenization and constitutive, this time mainly reduced function signatures to reflect actually needed quantities.
2013-10-16 13:04:59 +00:00
Martin Diehl 295d0cd28e removed a bunch of dummy functions (delta state for all constitutive_XXX except nonlocal, microstructure for none, j2 and phenopowerla), additional simplifications for none, averageBurgers is only relevant for RGC 2013-10-14 10:54:45 +00:00
Martin Diehl 3b5a5ab812 changed error in case of number of found interaction types is less than expected to warning 2013-10-11 09:17:03 +00:00
Martin Diehl ed47d25adc remove dotTemperature (returned always 0 anyway) to make it easier to replace it with a heating rate funtction
remove potentially dangerous short circuiting in homogenization files
added doxygen comment for nonlocal (giving the functions a name)
fixed wrong definition of maxnchungs introcuded into dislotwin with last commit, causes trouble with hex
2013-10-09 06:12:16 +00:00
Martin Diehl 82faf74363 added doxygen documentation and unified variable names and some common parts of the code 2013-10-08 16:27:26 +00:00
Martin Diehl 3eec0ecdcd introduced #EOF# as module wide parameter in IO.f90
renamed read/write binary file to read/write real/int
removed suffix job from readFile functions as the name of the model is needed as an argument
2013-09-18 14:07:55 +00:00
David Mercier a8eb6a985e - Addition of an example of a material.config file for hcp material (cp-Ti).
- New Error Message #214 when elastic constants are not correctly defined.
- Error message when the c/a ratio for hcp is higher than 2 (no physical sense).
2013-09-17 12:20:50 +00:00
Christoph Kords 5f973a21c0 require all hardening coefficients/ non schmid coefficients to be specified in material.config, do not silently ignore any
warning message now more meaningful (?) when using less than maximum number of slip families
2013-09-12 14:47:09 +00:00
Christoph Kords 813ed130b0 nonSchmid behavior now ready to use for bcc with phenopowerlaw and nonlocal constitutive model.
nonSchmid tensors according to Koester,Ma,Hartmaier,2012.
extended lattice_Sslip with non-Schmid tensors (the full non-symmetric tensors are required for the tangent and cannot be retrieved from the symmetrized Mandel notation)
2013-08-05 09:23:21 +00:00
Martin Diehl 8210b14e90 comments for doxygen 2013-07-12 06:57:15 +00:00
Martin Diehl 40ace5c666 more documentation and parameters capitalization unified and using ipc in all modules (sometimes called gr)
nonlocal: only missing line continuation in string fixed
2013-07-01 06:10:42 +00:00
Philip Eisenlohr fd8d85896a error msg in case of unknown keyword was not properly trimmed --> 64kB of spaces... 2013-06-27 16:41:00 +00:00
Philip Eisenlohr 98528f9a89 added possibility for multi-level inclusion of files in *.config and loadcase files.
include subfiles by stating

{path/to/include}
2013-06-26 19:19:00 +00:00
Martin Diehl 296a5040b9 fixed bug in initialization when reading in material.config.
Fortran does not short-circuit, e.g. (if a>0 .and. b(a) ==c) might cause an out-of-bounds error when a=-1 it'll try to access b(-1)!
2013-06-11 20:16:40 +00:00
Martin Diehl a21dd816c7 init reporting of constitutive_*.f90 had less/to much spaces, renamed label to LABEL because it is a parameter.
removed debug output of geom_fromEuclideanDistance.py
2013-05-28 17:31:55 +00:00
Franz Roters 02f092492e updated copyright header 2013-03-22 17:35:05 +00:00
Pratheek Shanthraj 07ff1f7c93 reporting current time for most module inits 2013-02-25 16:34:59 +00:00
Philip Eisenlohr c1cf446774 parsing of material.config file now expects adequate number of (slip/twin) family entries according to given lattice type.
used to read up to maxN, but that caused unnecessary IO_warnings...
2013-02-14 22:24:55 +00:00
Martin Diehl 59a265ec7f forgot intent(in) statements needed for pure routines 2013-02-11 10:56:10 +00:00
Martin Diehl f0b4281400 removed unused variables, added pure statements, and declared external functions as external (using gfortrans debug option) 2013-02-11 10:43:45 +00:00
Martin Diehl e644c6dbc5 improved reading in of values, now only warnings in case of problematic entries in material.config
divergence calculation sqrt scaling optionally introduced for basic scheme spectral solver
2013-02-08 15:55:53 +00:00
Philip Eisenlohr 32a416e298 fixed memory leak associated to accumulated shear storage. 2013-02-08 13:33:25 +00:00
Philip Eisenlohr 722d5574fb added output capabilities for accumulated shears on slip and twin systems. 2013-02-06 18:09:11 +00:00
Mahesh Balasubramaniam 362cbf3359 Made corresponding changes in the constitutive files and DAMASK_spectral_driver and interface files with respect to the changes made to IO.f90 2013-02-06 16:45:34 +00:00
Martin Diehl 6cd6172c0c fixed bug in dotState causing strange hardening for certain parameters 2013-02-01 15:44:50 +00:00
Pratheek Shanthraj 50e874f887 fixed bug in elasticity matrix calculation 2013-01-22 15:48:47 +00:00
Martin Diehl 652a8366fe splitted lines > 132, added pure statements where suggested by gfortran 4.7 2013-01-22 13:02:23 +00:00
Pratheek Shanthraj 60fec0e8ec added code structure for non-schmid mechanics. work in progress… 2013-01-21 23:11:16 +00:00
Pratheek Shanthraj fd94c786f0 moved stiffness tensor calculation to lattice
introduced 'isotropic' and 'orthorhombic' lattice types to use corresponding symmetries in stiffness tensor. intended to be used with non-crystal plasticity models (j2, constitutive_none with isotropic, cubic or orthotropic elasticity).
2013-01-21 21:57:26 +00:00
Martin Diehl 00246ade4e missing range in array fixed 2013-01-09 14:43:27 +00:00
Martin Diehl 093cf92338 remove omp statements during initialization, "line" for reading in from material.config now has a default (empty) value to prevent conditional jump depend on this value 2013-01-08 22:11:59 +00:00
Martin Diehl 19d86ca06a removed unnecsessary omp statements, removed one transpose in constitutitve 2013-01-08 11:09:20 +00:00
Philip Eisenlohr e4ce63d689 switched matrix indices in SlipSlip, SlipTwin, TwinSlip, and TwinTwin such that first index refers to first name and second to second... (used to be transposed for memory efficiency) 2012-11-14 10:22:34 +00:00
Christoph Kords dad9922f54 fixed bug in crystallite_FPI: stateDamper always has to be defined for each grain
added some OMP FLUSH statements were necessary 
replaced openmp do by forall construct where possible; this is much safer and perhaps even as fast for small loops
2012-11-07 15:43:29 +00:00
Philip Eisenlohr 5ad0eda1b6 switched saturation behavior!!
was \dot s_alpha = (1-s_alpha/s_inf)^a h_alphabeta \dot gamma_beta
now \dot s_alpha = h_alphabeta  (1-s_beta/s_inf)^a \dot gamma_beta

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

introduced two new absolute tolerance values for "shears" and "twinFrac" (default 1e-6).
2012-10-22 14:55:07 +00:00
Martin Diehl 324dfda5a2 added comments (doxygen conform) to phenopowerlaw, added warning on specifying h0_sliptwin as it has no effect 2012-10-11 14:49:12 +00:00
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 4d09ef0648 changed variable name "debug_what" to "debug_level" 2012-07-05 09:54:50 +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
Martin Diehl 9a92d343dc added Onurs modified description for tausat in j2 law.
Polishing phenopowerlaw
2012-04-11 14:01:02 +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
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 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 79663a7f76 polishing: adding pInt, removing unused use-statements etc 2012-02-21 16:00:00 +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
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 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 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
Franz Roters 515986c4d6 renamed w0 and w0_slip to a and a_slip 2011-11-23 14:48:39 +00:00
Martin Diehl 9d3f74ce5f polishing 2011-10-18 14:46:07 +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
Franz Roters 7d84a0911e removed unused variables 2011-04-13 14:16:22 +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
Franz Roters fcdb805225 added copyright text to all f90 (free) format files 2011-04-04 14:09:54 +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
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
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 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
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
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
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
Alankar Alankar 393a67e587 now stating instance when sanity checks run into trouble 2010-05-05 13:36:59 +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 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
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 974116808b fixed a potential memory leak for hexagonal structures. added some status output to constitutive_xx 2009-10-15 20:02:52 +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
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
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
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
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
Philip Eisenlohr 53cff7458c polishing of constitutive output size determination in _init() 2009-07-24 15:23:45 +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