Martin Diehl
986926aaf2
some changes related to new state
...
fixed assigning of wrong output in J2 model
2014-05-08 14:55:19 +00:00
Martin Diehl
9b220c5c9a
modified reading in of values (realizes, if phase is not used in the model at all), started to include HDF5 output and new state
2014-04-15 10:09:20 +00:00
Martin Diehl
e62bf8b1b7
some minor polishing on the way
2014-04-04 14:40:30 +00:00
Martin Diehl
c712f30635
some hdf5 related functions added
2014-04-04 07:33:13 +00:00
Martin Diehl
aae3f95f76
added script to add Copyright information (complete header) to f90 files having the svn property "MPIE" set.
...
Development version don't need an header anymore
2014-03-26 14:57:33 +00:00
Martin Diehl
58ad750b2a
small changes regarding restart and HDF5
2014-03-26 08:41:45 +00:00
Martin Diehl
3f7a389ff7
changed state parsing for local models (and for delta_state) such that only the needed part of the state array (for the given material point) is used
2014-03-13 06:43:49 +00:00
Martin Diehl
fced0168f0
added a little bit more HDF5 functionality
...
made abbreviations in configure options consistently capitals
2014-03-12 16:51:01 +00:00
Martin Diehl
3aea8b39e9
added some HDF5 functionality (needs to be activated with preprocessor makro)
2014-03-12 07:33:51 +00:00
Martin Diehl
ef8fbf4dda
introduced case in dislotwin for bcc (peierls stress as critical stress)
...
renamed some parameters, now exponents (p,q) for slip are per family, shear band got own ones. exponent for twin (r) now per family
fixed bugs in lattice ("empty" interactions should be 1 not zero)
see both Phase examples to check what is needed
2014-03-11 17:40:59 +00:00
Martin Diehl
2b589c3d71
moved reading in of lattice type and elastic constants to lattice module
...
removed structure type for hex, fcc, bcc, now defining slip/twin systems for each phase found in material.config
constitutive modules will only be initialized if needed
homogenizedC function is only needed for models incorporating twinning in a physical way (titanmod and dislotwin)
2014-03-08 20:50:31 +00:00
Martin Diehl
32493675d6
fixed bug in constitutive introduced in rev 2988 causing wrong names in *.outputConstitutive
2014-03-05 08:06:21 +00:00
Martin Diehl
650b71ffa9
renamed instance consistently to "instance" as a preparation for new structure / elastic matrix handling
2014-02-28 10:18:40 +00:00
Christoph Kords
3dfdbaff5b
Fixed wrong indices in tangents dT_dFe and dFe_dLp, which however luckily did not have any effect in the perturbed stiffness since they were transposed such that the double contraction of both remained unchanged.
...
In contrast, the analytical jacobian will probably be affected by this change!
@Pratheek: Can you check with me how this can be fixed?
2014-01-22 08:38:13 +00:00
Martin Diehl
6fa9ed8f48
homogenization: added enums and sourced allocation for RGC, some higher verbosity for isostrain
2013-12-18 07:28:01 +00:00
Martin Diehl
65ae979920
indroduced sourced allocation, enums where applicable (some parts still missing). fixed bug when having recursive file input
2013-12-12 17:09:59 +00:00
Martin Diehl
2f7efa2055
introduced named constants for homogenization_type, phase_plasticitiy, and phase_elasticity to replace expensive string comparison. Labels for different schemes need to be stored in material.f90 because they are needed when parsing the config file
2013-11-27 08:04:05 +00:00
Martin Diehl
ea664688f8
introduced dummy temperature calculation.
2013-10-18 20:56:10 +00:00
Martin Diehl
dc95c82d4a
removed temperature integration and corresponding data structures and debugging options
...
temperature is stored in crystallite, but homogeneous on one IP (not an component (grain) quantity and an input value parsed in by the BVP solver.
introduced heat, a component (grain) quantity which is homogenized before returned to the heat transfer solver.
went ahead with removal of dummy functions in homogenization and constitutive, this time mainly reduced function signatures to reflect actually needed quantities.
2013-10-16 13:04:59 +00:00
Franz Roters
4d184b1ee4
improved comments
2013-10-14 14:35:41 +00:00
Martin Diehl
295d0cd28e
removed a bunch of dummy functions (delta state for all constitutive_XXX except nonlocal, microstructure for none, j2 and phenopowerla), additional simplifications for none, averageBurgers is only relevant for RGC
2013-10-14 10:54:45 +00:00
Martin Diehl
ed47d25adc
remove dotTemperature (returned always 0 anyway) to make it easier to replace it with a heating rate funtction
...
remove potentially dangerous short circuiting in homogenization files
added doxygen comment for nonlocal (giving the functions a name)
fixed wrong definition of maxnchungs introcuded into dislotwin with last commit, causes trouble with hex
2013-10-09 06:12:16 +00:00
Martin Diehl
ca0b3b7b81
changed name of some variables to be in accordance with constitutive_none,j2,phenopowerlaw
2013-09-19 07:46:01 +00:00
Martin Diehl
3eec0ecdcd
introduced #EOF# as module wide parameter in IO.f90
...
renamed read/write binary file to read/write real/int
removed suffix job from readFile functions as the name of the model is needed as an argument
2013-09-18 14:07:55 +00:00
Martin Diehl
a21dd816c7
init reporting of constitutive_*.f90 had less/to much spaces, renamed label to LABEL because it is a parameter.
...
removed debug output of geom_fromEuclideanDistance.py
2013-05-28 17:31:55 +00:00
Christoph Kords
ab997f19ac
fixed bug in nonlocal state init that was introduced in rev 2438 and used to reset states from other constitutions
2013-05-24 13:43:44 +00:00
Martin Diehl
b2a3c9235b
fixed some warnings issued by gfortran (type conversion, not needed use statements)
2013-05-08 09:23:47 +00:00
Martin Diehl
5837b25e27
accidently commited constitutive.f90 wasn't working, fixed now
2013-04-23 07:37:14 +00:00
Martin Diehl
8da7544978
marc doesn't need error prone setup_code any more, moved Marc includes from code/include to lib/includeMarc
...
DAMASK_marcXXXX.f90 now is not a copy any more but contains one definition and an include statement
setup_code of spectral solver is now replaced by the standard 1) configure 2) make 3) make install
2013-04-22 14:41:33 +00:00
Christoph Kords
5b508b5ee4
no need to exclude any geometry type from usage of nonlocal model
2013-04-09 13:10:31 +00:00
Franz Roters
02f092492e
updated copyright header
2013-03-22 17:35:05 +00:00
Martin Diehl
60633ffd98
some doxygen corrections
2013-03-06 14:41:15 +00:00
Pratheek Shanthraj
07ff1f7c93
reporting current time for most module inits
2013-02-25 16:34:59 +00:00
Martin Diehl
f0b4281400
removed unused variables, added pure statements, and declared external functions as external (using gfortrans debug option)
2013-02-11 10:43:45 +00:00
Franz Roters
45344cff6b
added check if nGrains==1 when non-local plasticity is used
2013-02-04 14:34:01 +00:00
Martin Diehl
20bc97b7eb
added doxygen comments and unified naming scheme for ip, element and grain
2013-01-16 10:14:57 +00:00
Martin Diehl
4eaa97b33c
minor changes on buggy latest commit (wrong use statement)
2013-01-08 21:54:25 +00:00
Martin Diehl
19d86ca06a
removed unnecsessary omp statements, removed one transpose in constitutitve
2013-01-08 11:09:20 +00:00
Christoph Kords
f92d34dd22
removed some unused variables
2012-11-29 18:44:00 +00:00
Christoph Kords
e10000a338
Introduced an alternative cutback scheme for the nonlocal model, that allows to keep the results of most of the ips that immediately converged, and only do cutbacks in regions where some ips are in big trouble. Only works for nonlocal model and state integrator 2.
2012-11-27 18:36:55 +00:00
Philip Eisenlohr
d9a98417ca
switched element library to geomType based.
...
saves to copy same geometry description for different elements that are essentially similar regarding the IP number but differ in total node count.
introduced quadratic tetrahedron (Marc element 127 -- element 157 might also work, but did not perform well in fully elastic calc so far)
2012-11-15 22:45:20 +00:00
Christoph Kords
dad9922f54
fixed bug in crystallite_FPI: stateDamper always has to be defined for each grain
...
added some OMP FLUSH statements were necessary
replaced openmp do by forall construct where possible; this is much safer and perhaps even as fast for small loops
2012-11-07 15:43:29 +00:00
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
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
Alankar Alankar
7548858ffa
Some useful changes in damper for quicker convergence.
2010-09-22 08:54:36 +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
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
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
Denny Tjahjanto
9026cc4016
again corrections. but this version must work.
2010-03-24 16:23:21 +00:00
Denny Tjahjanto
40b1478dac
the latest RGC model + corrections for "element homogeneous" feature
2010-03-24 13:20:12 +00:00