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
Christoph Kords
e4054c116d
fixed problem with gnu compiler: allocation of variables in constitutive_nonlocal_stateInit was not safe when not using any nonlocal constitution
...
put header of debugging output in constitutive_init at the start of the function in order to make debugging easier
2012-10-09 12:34:57 +00:00
Christoph Kords
1502a71f0c
added possibility to start with an initial random distribution of dislocation segments with specific overall density
2012-10-02 12:57:24 +00:00
Martin Diehl
0bcb8f59db
added doxygen comments, some polishing, added "protected" statements where applicable
2012-10-02 12:53:25 +00:00
Martin Diehl
b96df9987e
fixed reading/writing of integer arrays with function for real arrays
2012-08-16 14:55:23 +00:00
Philip Eisenlohr
4d09ef0648
changed variable name "debug_what" to "debug_level"
2012-07-05 09:54:50 +00:00
Franz Roters
823013d485
new plasticity: none
...
see material.config for necessary parameters (lattice_structure, elastic constants)
2012-07-03 11:16:38 +00:00
Martin Diehl
4b6800b89a
removed some unwanted open statements when writing out the sizeState
2012-06-05 13:13:33 +00:00
Franz Roters
01522cf6f2
check for valid elasticity model
...
improved error message in case of unknown elaticity/plasticity model
2012-06-02 14:23:28 +00:00
Christoph Kords
5b02d4e8eb
dipole dissociation and formation by change in stress as new mechanism in deltaState; had to add dipole height to state variables, which is however updated by deltaState instead of microstructure; alternatively microstructure had to know the current stress state
2012-05-18 14:35:52 +00:00
Christoph Kords
a5c1624648
check for invalid mesh type once in constitutive_init and not every time constitutive_nonlocal_dotState is called
2012-05-18 13:15:23 +00:00
Christoph Kords
351c2c6e65
deltaState depends on the current state, no the state at the beginning of the timestep
2012-05-17 12:18:30 +00:00
Christoph Kords
f6d5efeed3
removed arguments Fe and Fp from collectDeltaState function call
2012-05-17 11:04:22 +00:00
Christoph Kords
a54439e3b5
dotState does not have to be reset to zero. this is a remnant from older versions when the dotState for the nonlocal model used to be updated by the neighboring integration point
2012-05-16 15:35:14 +00:00
Christoph Kords
84d4652a07
all constitutive modules now contain a new function "deltaState", which in the future allows to have an instantaneous and incremental change of the state (additional to the rate based evolution with dotState).
2012-05-16 14:43:26 +00:00
Krishna Komerla
c752dd5474
regridding is now working, changed the subroutine into a function
...
changed order of arrays in nearest neighbor search to make it fortran fast
constitutive.f90 and homogenization.f90 write state size out during initialization
setup/setup_processing.py is using byterecl to be compatible with binary files written out by solver
2012-05-08 14:57:06 +00:00
Philip Eisenlohr
d4463fe56a
shifted location of elasticity part closer to plasticity... (constitutive has been shaken back and forth quite a bit today ;-] )
2012-03-15 09:51:33 +00:00
Christoph Kords
ea634d978a
adapted comments to recent change
2012-03-15 09:47:32 +00:00
Franz Roters
b7fc4fe6e4
fixed one last typo, now it finally compiles, sorry for this!
2012-03-15 09:42:33 +00:00
Franz Roters
36edb4dd9f
introduced keyword elasticity in material.config
...
added constitutive_TandItsTangent and special version constitutive_hooke_TandItsTangent
those are however not yet used and need to be tested
2012-03-14 16:16:11 +00:00
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
Christoph Kords
9bf5b9dc86
dotState=NaN enforces cutback, if evolution rates lead to negative densities
2012-02-22 16:08:22 +00:00
Martin Diehl
79663a7f76
polishing: adding pInt, removing unused use-statements etc
2012-02-21 16:00:00 +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
Christoph Kords
8739b9522e
dislocation stress does not add to stress field anymore, but is only available as constitutive output for purposes of postprocessing. instead, we now use a backstress term (which is added to the resolved shear stress) that depends on the gradient of excess density on the same slip system.
2012-01-17 10:26:57 +00:00
Christoph Kords
7dfb96a3da
constitutive_nonlocal:
...
dislocation velocities are stored in the state, so we actually now have three "parts" of the state, the basic states that are updated by "constitutive_dotState" come first, then the dependent states that are calculated by "constitutive_microstructure" follow, and finally we have a last part reserved for other variables that just use the memory reserved by the state array and are updated somewhere else.
constitutive:
LpAndItsTangent does not need the full state, but only the local state, so changed that at least for the nonlocal constitutive law
2011-11-04 13:12:17 +00:00
Christoph Kords
0373fa64e4
have to initialize constitutive_state during constitutive_init, since the first call to constitutive_microstructure (where we already need the state) is done before the cutback scheme starts.
2011-08-02 11:10:41 +00:00
Martin Diehl
75c67f53f7
introduced alternative location for material configuration.
...
If present, the >>>JOB.materialConfig<<< file takes precedence over the standard >>>material.config<<<
2011-08-02 10:14:16 +00:00
Philip Eisenlohr
a26d9c844b
max size of crystallite result is now based on actual use within the mesh, not just picking the largest chunk from the material.config file...
2011-06-08 09:16:48 +00:00
Philip Eisenlohr
8041587a72
changed internal debug verbosity in accord with debug.config listing.
2011-06-06 15:27:35 +00:00
Philip Eisenlohr
e5a2d829b0
new substructure with 'include' and 'config' directories
...
renaming of mpie_... to DAMASK for main usersubroutines
extension of element outputs from 5 to 8 digits (FFT!!!)
2011-05-11 16:38:45 +00:00
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
314ca3fe7f
Internal stress calculation in nonlocal model: instead of integration of excess gradients (->Bayley) we now sum up contributions from adjacent superdislocations within a certain radius R. When periodicity is used, also periodic images are considered in stress evaluation.
2011-03-29 07:34:33 +00:00
Christoph Kords
3d51dd36fa
* Introduced preprocessor directives in order to suppress compilation of most write statements when using openmp. This tremendously improves efficiency of parallelization.
...
* Also added some more openmp directives to increase percentage of parallelized code.
* "implicit none" was missing in two subroutines of homogenization and constitutive.
2011-03-29 07:27:19 +00:00
Christoph Kords
9b1e1e35ea
dotState
2011-03-21 15:18:09 +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
Christoph Kords
ad4706673b
* removed calculations for dipole formation/dissociation by stress change, since it is not used anyways; also removed associated constitutive outputs from material.config
...
* removed input variables in constitutive_collectDotState and constitutive_postResults that are not needed anymore (because of recent changes in constitutive_nonlocal)
2011-02-25 09:53:20 +00:00
Christoph Kords
96d3682d5e
* new global integer variable "numerics_integrationMode" (1 indicating integration of central solution, 2 indicating integration of perturbed state)
...
* combined "integrator" and "integratorStiffness" in new global variable "numerics_integrator"
2011-02-23 08:29:51 +00:00
Christoph Kords
15728d3305
enclose wall time measurement for dotState and dotTemperature function by CRITICAL construct
2010-11-19 17:19:03 +00:00
Christoph Kords
405d5529e7
* checked and corrected parallelization of code. compiles now successfully, but simply aborts computation with first parallel directive without any comment :-(((
...
* also put a call to constitutive_microstructure at the start of each crystallite_integration subroutine like it was before. need that for nonlocal model in case of crystallite cutback
2010-11-03 17:22:48 +00:00
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
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
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