Commit Graph

2144 Commits

Author SHA1 Message Date
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