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