Commit Graph

894 Commits

Author SHA1 Message Date
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
Philip Eisenlohr 6e1c731175 crystallite does not report volume fraction but real volume (i.e. sum of all volumes gives volume of your geometry) 2009-12-09 15:20:46 +00:00
Denny Tjahjanto cad278c3bc Introduce a randomness in the odd stress, using pre-factor rnd. 2009-12-09 10:33:00 +00:00
Luc Hantcherli d847f63e0d Added summary of the constitutive model for mechanical twinning as implemented in DisloTwin.f90 (both pdf and corresponding tex source) 2009-12-08 15:58:39 +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 b03f229613 climb equation corrected
minor phrase polishing
2009-11-02 14:20:21 +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 9eb1a6c3fb new, more beautiful version of the UserOutput.pdf 2009-10-22 15:46:25 +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