Commit Graph

716 Commits

Author SHA1 Message Date
Krishna Komerla 0a46741a77 changing header to correct number of increments 2011-10-18 16:42:06 +00:00
Martin Diehl 9d3f74ce5f polishing 2011-10-18 14:46:07 +00:00
Martin Diehl 7746390688 using keywords to indicate geometry and loadcase
enabled finetuning of FFTW
added some debugging options
reading in rotation of boundary conditions
using header in geometry file
corrected error in calculating tolerance for stress BC
polishing of output, variable declaration, and variable names
2011-10-18 14:45:32 +00:00
Martin Diehl 9a6977b024 changed commandline parameters into a keyword driven form
use "-l, --load, --loadcase" to specify loadcase file and 
"-g, --geom, --geometry" to specify geometry file
!incremental update, wait for commit of damask_spectral.f90 before checking out
2011-10-18 09:25:17 +00:00
Martin Diehl ea2ba1573c polishing
!incremental update, wait for commit of damask_spectral.f90 before checking out
2011-10-18 09:22:33 +00:00
Martin Diehl 7604a8aeb4 corrected calculation of NaN, renamed variable to 'DAMASK_NaN'
!incremental update, wait for commit of damask_spectral.f90 before checking out
2011-10-18 09:21:38 +00:00
Martin Diehl 6cf464b8a9 added 'spectralPictureMode' for reading in geometries with 1to1 mapping (e.g. EBSD pattern)
polishing
!incremental update, wait for commit of damask_spectral.f90 before checking out
2011-10-18 09:20:29 +00:00
Martin Diehl 6ed27a2a13 added 'spectralPictureMode' for reading in geometries with 1to1 mapping (e.g. EBSD pattern)
!incremental update, wait for commit of damask_spectral.f90 before checking out
2011-10-18 09:18:05 +00:00
Martin Diehl a8a53ee525 added two parameters to control behavior of FFTW, timelimit is not working at the moment
remove fftw3.f as it is not needed anymore
!incremental update, wait for commit of damask_spectral.f90 before checking out
2011-10-18 09:16:18 +00:00
Martin Diehl 4989535500 new version 3.3 of FFTW. Compiled with gfortran but only for multicore support (single core library is still the old version 3.2.2). Now either POSIX threads or OMP can be used by choosing the corresponding library file
Some further polishing (besides of new description for FFTW) of the makefile
2011-10-13 12:41:01 +00:00
Franz Roters 8edb59d50c removed some unused variables 2011-09-26 09:55:38 +00:00
Franz Roters 58917b5abe corrected error messages
you can now switch of shear banding by seting sb_velocity to zero
stacking fault energy parameters are now read from material.config
2011-09-26 09:55:08 +00:00
Franz Roters 2e263dee90 merged in the shear band code, it compiles but is not otherwise tested yet 2011-09-16 15:55:18 +00:00
Franz Roters 9d091bdc3f added parameters for shear band model 2011-09-14 13:35:28 +00:00
Franz Roters ee83904548 added math_spectralDecompositionSym3x3 used by shear band model 2011-09-14 13:26:00 +00:00
Martin Diehl 483b483816 dummy update because those messages got lost:
Date: Tue, 13 Sep 2011 17:46:44 +0200
From: m.diehl@mpie.de
To: wangleyu@msu.edu, lebenso@lanl.gov, denny.tjahjanto@imdea.org,
 o.guevenc@mpie.de, n.jia@mpie.de, m.diehl@mpie.de, c.kords@mpie.de,
 c.zambaldi@mpie.de, p.eisenlohr@mpie.de, f.roters@mpie.de
Subject: update: /home/svn/repos/DAMASK to 1000
Message-ID: <4e6f7ae4.Xjnd/szYAh8QCXTo%m.diehl@mpie.de>
User-Agent: Heirloom mailx 12.2 01/07/07
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

A   processing/pre/FromEBSD/
A   processing/pre/FromEBSD/Hex2Cub.cpp
A   processing/pre/FromEBSD/SpectralMethodFromEBDS
A   processing/pre/FromEBSD/patchFromReconstructedBoundaries
D   processing/pre/patchFromReconstructedBoundaries

added two small (quick and dirty) tools to convert data from EBSD to input files for spectral method, put them together with patchFromReconstructedBoundaries into new folder.
Date: Tue, 13 Sep 2011 17:54:06 +0200
From: m.diehl@mpie.de
To: wangleyu@msu.edu, lebenso@lanl.gov, denny.tjahjanto@imdea.org,
 o.guevenc@mpie.de, n.jia@mpie.de, m.diehl@mpie.de, c.kords@mpie.de,
 c.zambaldi@mpie.de, p.eisenlohr@mpie.de, f.roters@mpie.de
Subject: update: /home/svn/repos/DAMASK to 1001
Message-ID: <4e6f7c9e.v9E4JVN2a6bg5tL8%m.diehl@mpie.de>
User-Agent: Heirloom mailx 12.2 01/07/07
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

U   code/DAMASK_spectral.f90
U   code/DAMASK_spectral_interface.f90
U   code/IO.f90
U   code/crystallite.f90
U   code/homogenization_RGC.f90
U   code/lattice.f90
U   code/makefile
U   code/material.f90
U   code/mesh.f90

did a lot of polishing:
- removed unnecessary "return" before end of subroutine or function:
- changed undetermined array length (:) to (1:3)

To prevent problems with some code analysing tools:
- "3D oneliner loops" (with ";) only for "do" and "enddo" at the same time
- removed line continuation in OMP statements

made the makefile more flexible, removed heap-arrays switch
Date: Tue, 13 Sep 2011 17:57:07 +0200
From: m.diehl@mpie.de
To: wangleyu@msu.edu, lebenso@lanl.gov, denny.tjahjanto@imdea.org,
 o.guevenc@mpie.de, n.jia@mpie.de, m.diehl@mpie.de, c.kords@mpie.de,
 c.zambaldi@mpie.de, p.eisenlohr@mpie.de, f.roters@mpie.de
Subject: update: /home/svn/repos/DAMASK to 1002
Message-ID: <4e6f7d53.IEDDzo+JSzDWNSBr%m.diehl@mpie.de>
User-Agent: Heirloom mailx 12.2 01/07/07
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

A   documentation/Compiling/
A   documentation/Compiling/Stack+usage.pdf
A   documentation/ParallelizationAndTuning/
A   documentation/ParallelizationAndTuning/BSC_tools_Overview.pdf
A   documentation/ParallelizationAndTuning/Intro_Perf.pdf
A   documentation/ParallelizationAndTuning/Kcachegrind.pdf
A   documentation/ParallelizationAndTuning/LRZ210703_1.pdf
A   documentation/ParallelizationAndTuning/LRZ210703_2.pdf
A   documentation/ParallelizationAndTuning/MUST_Overview.pdf
A   documentation/ParallelizationAndTuning/NPB-MZ-MPI-BT_Exercise.pdf
A   documentation/ParallelizationAndTuning/PAPI.pdf
A   documentation/ParallelizationAndTuning/PSC_Exercise_BT-MPI.pdf
A   documentation/ParallelizationAndTuning/Paraver_Exercise.pdf
A   documentation/ParallelizationAndTuning/Periscope_Overview.pdf
A   documentation/ParallelizationAndTuning/SIONlib.pdf
A   documentation/ParallelizationAndTuning/Scalasca_Examples.pdf
A   documentation/ParallelizationAndTuning/Scalasca_Exercise_BTMZ.pdf
A   documentation/ParallelizationAndTuning/Scalasca_Overview.pdf
A   documentation/ParallelizationAndTuning/Scalasca_Patterns.pdf
A   documentation/ParallelizationAndTuning/TAU.pdf
A   documentation/ParallelizationAndTuning/VIHPS-TW8.pdf
A   documentation/ParallelizationAndTuning/Vampir_Exercise.pdf
A   documentation/ParallelizationAndTuning/Vampir_Overview.pdf
A   documentation/ParallelizationAndTuning/instructions_periscope.pdf
A   documentation/ParallelizationAndTuning/manualf06.pdf

added some information from Tuning workshop in Aachen regarding tuning/parallelization

added slides with information how to prevent segmentation fauld
2011-09-14 08:16:42 +00:00
Philip Eisenlohr c7c541f393 corrected typos and such 2011-09-13 15:57:58 +00:00
Martin Diehl c35ea33f8e did a lot of polishing:
- removed unnecessary "return" before end of subroutine or function:
- changed undetermined array length (:) to (1:3)

To prevent problems with some code analysing tools:
- "3D oneliner loops" (with ";) only for "do" and "enddo" at the same time
- removed line continuation in OMP statements

made the makefile more flexible, removed heap-arrays switch
2011-09-13 15:54:06 +00:00
Franz Roters cbbc3e84fe solved argument mismatch 2011-09-13 14:15:17 +00:00
Franz Roters 1dd2591982 corrected wrong check of twin systems 2011-09-13 08:18:43 +00:00
Christoph Kords 7be2701989 * new output variable "internalstress", which gives the internal stress tensor
* use "math_invert3x3" instead of "math_inv3x3" for inversion of Fe
* for dislocation stress calculation: first regular case, then special case of dead dislocations in central ip
* "dv_dtau" now given for each dislocation type, so is a (ns,4) array
* deleted unused variables in "_LpAndItsTangent"
* corrected contribution of deads in "_LpAndItsTangent"
* the NaN variables defined in math did not give a proper NaN value, so use 0.0/0.0 again
* neighbors with nonlocal constitution but local properties (i.e. /nonlocal/ flag not set) are also considered for incoming fluxes
2011-09-07 11:30:28 +00:00
Martin Diehl e8628996ff added IO error in case mixed BC that allow rotation are given 2011-09-02 13:50:05 +00:00
Martin Diehl fe9754a41c previous commit was wrong file 2011-09-02 10:46:37 +00:00
Martin Diehl 43e2684cfb added new glide system for hex lattice 2011-09-02 10:43:49 +00:00
Martin Diehl 0469d37fc3 cleaned and restructured output on screen, changed L_inf norm to L_2 for calculation of error in Fourier space.
removed unnecessary function from math.f90
added some documents/manuals regarding spectral method
2011-08-31 14:37:01 +00:00
Martin Diehl f527bdcc78 changed standard values according to numerics.f90 2011-08-30 11:21:39 +00:00
Martin Diehl 8f90f1f1f9 corrected description of algorithm to invert matrix 2011-08-30 07:29:13 +00:00
Martin Diehl 4fb1cb8f87 merged calcmodes, i.e. equilibrium and fulfilling of stress BC is done in one step,
made convergence independent of size and resolution,
polishing output in DAMASK_spectral.f90
added function to compute eigenvalues without eigenvectors and function to convert a 3x3 logical to a 9 vector in math.f90
removed obsolete variable in numerics.f90
2011-08-26 14:06:37 +00:00
Martin Diehl 380a536b45 homogenization_*, constitutive_*, DAMASK_spectral_interface: did some polishing regarding init output
makefile: corrected spelling mistake
2011-08-26 13:57:29 +00:00
Christoph Kords b300cc7faa ip volume is now based on the determinant of F. "mesh_ipVolume" represents the initial volume and is multiplied with det(F) wherever the current volume is needed. Since this works for all solver types, the "volume" output in crystallite is now also correct for spectral method and abaqus. 2011-08-19 11:18:56 +00:00
Martin Diehl f99bf63397 removed functions added for debugging of divergence calculation to math.f90
corrected calculation of stress BC condition. Depending on given BC, the stiffness matrix is reduced and than inversed. Then it is filled with zeros and used for the calculation of the correct change of deformation gradient. All calculation is done using dP/dF
2011-08-10 17:45:37 +00:00
Christoph Kords 1ffb59a96a Calculation of current ip volumes now working. Crystallite output also reflects current grain volume, not reference volume. However, this is only available for Marc. Abaqus and spectral method still return the reference ip volume. The ip coordinates though are correctly updated for all solver types. 2011-08-10 16:37:17 +00:00
Martin Diehl 34de2e301b DEBUGGING VERSION for calculation of Divergence (various methods implemented). DO NOT USE. Wait for next update coming in a few minutes 2011-08-10 16:02:13 +00:00
Martin Diehl bb1ca2330b added option to enable use of AMD math core library, added comments on the various parameters 2011-08-10 16:00:02 +00:00
Onur Guevenc 31b60b8814 changed debug intensity so that the artificially high stress and stiffness values in collection cycles do not get printed out anymore... 2011-08-03 17:59:31 +00:00
Onur Guevenc 4f1cb3a8af exchanged forall with nested do loops... Bye, bye smatrix warning, will miss you!! 2011-08-03 17:58:16 +00:00
Onur Guevenc 907965272b added option to build DAMASK_spectral without openMP (make OPENMP=OFF)
fixed bug in bc_temperature assignment that was hitting memory.
Temperature is taken from the first loadcase and evolves from there in an adiabatic fashion for the moment. I.e. T-specifications from later loadcases are ignored...
2011-08-03 17:57:28 +00:00
Martin Diehl b5abd6f203 adding new option OPTIMIZATION with values OFF, DEFENSIVE and AGGRESSIVE to makefile. Polishing of makefile and DAMASK_spectral.f90 2011-08-03 07:54:32 +00:00
Onur Guevenc 64435b8a97 loadcase takes 'temperature' (or 'temp') as input. Previously it was hard-wired. 2011-08-02 13:58:28 +00:00
Christoph Kords 422d6d9c6c slight correction of debugging output 2011-08-02 12:36:08 +00:00
Christoph Kords ef7405fe21 Stress integration now uses Armijo rule to find an appropriate correction of Lp: decreases step in case that residuum does not improve significantly, accelerates as usual in case of good convergence. This turned out to improve convergence behavior. 2011-08-02 11:29:08 +00:00
Christoph Kords 6f859e99de * internal stress calculation now considers dead dislocations always at the interface, not at the center of the IP volume; used to merge them together with "normal" dislocations for stress calculation.
* dislocation flux is blocked if we encounter a sign change in the resolved shear stress from the central ip to the neighbor
* do not set density to zero if below certain threshold; this creates an artificial sink term
2011-08-02 11:17:45 +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
Martin Diehl 564eb5009f shape mismatch in crystallite, invalid names for variables(pos, size) in homogenization corrected. polishing of DAMASK_spectral_interface and makefile 2011-08-01 18:10:55 +00:00
Martin Diehl 3adb7ab382 corrected makefile, now working again without giving standard values explicitly.
did some small modification in order to make it possible to compile with gfortran. Changed NaN=0.0/0.0 to bitwise representation (3 different ways)
2011-08-01 10:11:32 +00:00
Philip Eisenlohr 06a4ac2565 fixed bug (segmentation fault) occurring for non-renumbered meshes: ipNeighborhood building did use FE IDs of twin nodes to address memory -- dangerous..! 2011-07-31 15:42:59 +00:00
Christoph Kords fb121b1435 * boundary condition masking changed
* damper initialized with one 
* inversion of Mandelized stiffness tensor does not work, have to use plain tensor
* new functions in math that allow for conversion between Mandel and Plain tensors
2011-07-29 15:57:39 +00:00
Franz Roters aa714a3d84 some textconstants were wider than specified in the format string, this might have caused Abaqus to crash due to an illegal memory reference (signal 11) 2011-07-29 14:54:26 +00:00
Martin Diehl 72d20875de added some switches and variables to the makefile to make it more flexible
DAMASK_spectral.f90 is a "debug version" with a number of different criteria to determine divergence. will be removed later on.
2011-07-25 16:30:21 +00:00
Philip Eisenlohr 2e9c605571 somehow forgot to move the numerics.config into the config subdir... 2011-07-21 08:40:45 +00:00
Franz Roters e92e5cae53 restarting now works with Abaqus (standard, cannot test explicit due to lack of license)
you have to specify the job you are restarting from in the job description (cae), if you prepare your input file by hand this is the first line after *Heading
example: if the first job was using Oldjob.inp the first entry in the job description needs to be Oldjob (without the .inp)
as for Marc restart works only from last converged increment, i.e. ther restart writing should be specified like this:
*retsart, write, frequency=1, overlay
Overlay is not essential but saves a lot of disk space and as stated before you can only restart from the last converged increment anyway
2011-07-18 09:15:20 +00:00
Philip Eisenlohr 8c65cb9ea6 small output polishing 2011-07-15 12:25:38 +00:00
Martin Diehl 09ba92c26e added and rearranged error messages, polished output and simplified calculation of f depending on fdot or L
guessing along former trajectory is now on per default, 'guessreset' and 'dropguessing' switch it off.
2011-07-14 09:37:31 +00:00
Martin Diehl 56340fd487 changed input of loadcase. Now fdot (time derivative) can be used instead of velocity gradient. Velocity gradient needs to have each line fully or not at all defined, as for other loadcases the stress BCs are not known in advance. Also added the possibility to keep guessing along trajectory of former loadcase.
changed back to use the compliance of initial linear material behavior.
added counter of non-converged steps
renamed compiler flags in makefile
2011-07-13 16:33:12 +00:00
Martin Diehl 8153cd50b4 added spectral numeric parameters to numerics.config, changed values for spectral numeric parameters in numerics.f90 to more suitable values for new method for determination of divergence in Fourier space 2011-07-11 14:28:56 +00:00
Martin Diehl a08eaecf4e polishing (names of variables, spaces, comments etc.)
renamed mpie to DAMASK in IO.f90 error message
2011-07-07 15:27:35 +00:00
Martin Diehl a561ef1cf5 corrected calculation of divergence in Fourier space, removed normalization of normdyad (was useless), now using correct compliance for calculation of stress BC. 2011-07-07 10:03:55 +00:00
Franz Roters 18a5841bc5 keyword freq for frequency of output writing was not evaluated when reading loadcase file 2011-07-07 09:18:05 +00:00
Onur Guevenc e889b69bec Ability to define loglinear time increments by using 'logincs' or 'logsteps' instead of 'incs' in loadcase file is added. 2011-07-06 13:10:18 +00:00
Philip Eisenlohr 314adae1bb spectral solver can now write result at reduced output frequencies: use 'f', 'freq', or 'frequency' keyword in loadcase definition.
example: ... time 1 incs 100 freq 10 will write output at times 0.0, 0.1, 0.2, ... , i.e., every ten increments only.
2011-06-15 17:48:14 +00:00
Philip Eisenlohr 3985a98da7 changed default to "no clean". if clean-up required, use '--clean' option! 2011-06-15 16:40:34 +00:00
Philip Eisenlohr 480021e788 added '--noclean' option 2011-06-14 14:56:10 +00:00
Philip Eisenlohr 1877026d86 sorry, dangling "endif"... 2011-06-14 14:35:55 +00:00
Philip Eisenlohr cc925cadee changed output/debug-level relation for two statements 2011-06-14 14:08:13 +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 4a694fa7fd changed wildcard letter from '#' to '*' now consistent with new IO comment parsing.
fixed memory bug with bc_maskvector.

some brushing up here and there...
2011-06-06 15:20:28 +00:00
Christoph Kords ae4c8fa2d8 renaming of "mpieNumThreadsInt" to "DAMAKS_NumThreadsInt" was forgotten here 2011-06-06 08:51:07 +00:00
Christoph Kords 9a64f3dd85 * comments are now recognized by IO even when they do not appear at the beginning of the line
* no need for the zero entries in the material.config anymore
2011-05-30 09:09:19 +00:00
Christoph Kords bbf75f3fb5 cannot omit entries for second to fourth slip system family, though they are zero 2011-05-30 07:53:41 +00:00
Franz Roters 08d39342e4 reworked restarting for compatibility with abaqus (not yet fully working)
added new orientation feature for direct simulation:
  component type (random) asigns random orientation to an entire grain
2011-05-28 09:44:43 +00:00
Franz Roters 2418dfe96d changed MPIE_NUM_THREADS to DAMASK_NUM_THREADS 2011-05-28 09:42:25 +00:00
Christoph Kords e39445ee7a dead dislocations now exert a backstress on their "home" MP 2011-05-26 09:35:42 +00:00
Christoph Kords 78f74e8991 forgot to use "mesh_ipCenterOfGravity" 2011-05-26 09:23:13 +00:00
Christoph Kords cac45cff96 ip coordinates are now updated every cycle; this is needed for the nonlocal internal stress fields
* Marc: node displacements are added to initial node coordinates (mesh_node0) to get current node positions (mesh_node), then ip coordinates are deduced
* Abaqus: ip coordinates are directly updated, no update of node coordinates!
* Spectral: for the moment no update of either ip or node coordinates! passing only dummy values with initial ip coordinates
2011-05-24 15:57:59 +00:00
Christoph Kords a910c469df update of nonlocal material parameters 2011-05-20 08:11:22 +00:00
Philip Eisenlohr 808a6d6ad6 + error box + now tells error number (useful for Abaqus) 2011-05-13 16:55:13 +00:00
Philip Eisenlohr 1baae024cb added two more <crystallite> examples 2011-05-13 16:54:08 +00:00
Philip Eisenlohr d366a53f4e probably installation is a better place for the abq.env file 2011-05-11 17:10:45 +00:00
Philip Eisenlohr fa98133f8e renamed interface from "mpie_interface" to "DAMASK_interface" 2011-05-11 17:01:03 +00:00
Philip Eisenlohr 75192789e8 added making of DAMASK_spectral.exe 2011-05-11 16:45:37 +00:00
Philip Eisenlohr 43cc68555b observe new include subdirectory 2011-05-11 16:40:51 +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
Christoph Kords a0bec65c7b Last version didn't compile, because of missing keyword "call" in front of subroutine call to IO_error 2011-05-09 08:49:03 +00:00
Philip Eisenlohr 660c9212f8 introduced error 667 for out of bounds user result requesting 2011-05-04 16:02:18 +00:00
Philip Eisenlohr affd383ef8 simplified disorientation calculation. performed FEM check that "grainrotation" reflects the *active* rotation from the starting orientation to the current one with respect to the lab coord system (as expected). 2011-04-14 19:09:44 +00:00
Christoph Kords 5814262f55 moved some write statements within stateIntegrationEuler 2011-04-14 09:35:56 +00:00
Philip Eisenlohr 349f022100 reinstantiated calculation of grainrotation (still needs check for correctness, i.e. active or passive rotation output) 2011-04-13 16:08:52 +00:00
Franz Roters 7d84a0911e removed unused variables 2011-04-13 14:16:22 +00:00
Christoph Kords b4678112cd sorry, last version did not compile. now with correct encoding. 2011-04-13 11:51:46 +00:00
Christoph Kords dd2057bac5 changed header to unicode utf-8 encoding 2011-04-13 11:24:36 +00:00
Philip Eisenlohr ef4fc9d0ee added <crystallite> output "texture" to list of examples 2011-04-12 15:33:29 +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
Christoph Kords 4d0fefd231 security factor of 1.2 for CFL condition in constitutive_nonlocal_dotState 2011-04-06 11:47:24 +00:00
Philip Eisenlohr 51763ed93e corrected number of incs reported in spectralOut-file
inc 0 contains undeformed results

plus lots of typographic polishing
2011-04-06 09:58:17 +00:00
Franz Roters 7c7c929455 added comments on origin of files 2011-04-06 09:40:39 +00:00
Christoph Kords 4ea1fe436b added check for CFL condition in constitutive_nonlocal_dotState 2011-04-06 09:07:36 +00:00
Philip Eisenlohr e00d073ee3 added new 2D triangle elements
added some sourcecode commenting on internal database formats
corrected database to allow for ipVol and Area calc in 2D element cases
2011-04-06 08:35:37 +00:00
Franz Roters fcdb805225 added copyright text to all f90 (free) format files 2011-04-04 14:09:54 +00:00
Christoph Kords 6ca8942f62 choose correct output format for debug_verbosity: integer instead of logical 2011-04-04 08:38:55 +00:00
Christoph Kords 790dbed1e4 * removed last remnants of old debugger
* replaced "dble" intrinsic function by "real" with pReal kind in constitutive_nonlocal.f90
* removed useless line breaks in output of state in CPFEM.f90
2011-04-04 08:34:52 +00:00
Alankar Alankar 06fc83ac14 Final version of titanmod 2011-03-31 09:21:43 +00:00
Franz Roters fc471d73f3 added Arun to list of authors 2011-03-30 14:39:28 +00:00
Christoph Kords c36968fc68 distance for periodic images in internal stress calculation was incorrect 2011-03-30 11:57:41 +00:00
Franz Roters 08da2b5e4d added minimum abaqus_v6.env file containing all changes necessary for the use of the MPIE subroutine
changed comments in interface routines to refelect this
2011-03-29 13:49:50 +00:00
Franz Roters e9e6abbdaf introduced variables for compiler options
added -fpp switch to invoke precompiler
2011-03-29 07:55:38 +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
Philip Eisenlohr 5c05c5d068 corrected mixed up array size for hardeningMatrices (twin/slip)
added explicit array range 1:lattice_maxNslip/twinFamily
2011-03-24 17:20:35 +00:00
Franz Roters fa323f3f0b removed division by zero from debug_reset(), uses huge() now 2011-03-24 07:38:56 +00:00
Franz Roters 78d4e7d1dc mpie_cpfem_abaqus_std.f: first call is with kinc==1
mesh: allow multiple element sets with identical material
2011-03-23 16:20:12 +00:00
Franz Roters 8467c91dab moved setup scripts back to subdirs where they are needed 2011-03-22 15:42:53 +00:00
Christoph Kords 31a570768b new error 237: singularity in internal stress calculation 2011-03-22 13:58:42 +00:00
Nan Jia 7be2edb10e added "texture
" as possible crystallite output => reports ID for later discrimination...
2011-03-22 13:40:27 +00:00
Christoph Kords b8b75edd7d no changes to previous version, just wanted to add some comment to the previous commit:
subroutine "constitutive_nonlocal_dotState" only affects the current dotState, so no need to pass the whole array as argument
2011-03-21 15:23:36 +00:00
Christoph Kords 9b1e1e35ea dotState 2011-03-21 15:18:09 +00:00
Christoph Kords 462eda6736 split parallel region in integrateStateFPI into two 2011-03-21 14:30:10 +00:00
Christoph Kords 5ee73dee72 age dotState before resetting it to zero, otherwise the statedamping does not work. 2011-03-21 13:06:11 +00:00
Christoph Kords fc6f2ae68f No need to call constitutive_microstructure at the beginning of each crystallite step, since it's already been done at the end of the previous step. Just do it once after initialization to start with correct values for the dependent state variables. 2011-03-21 10:35:42 +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 9d7ede7e03 extreme values of stress and jacobian now recorded in CPFEM_general. variable declaration and generation of output moved to debug module. 2011-03-17 13:13:13 +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
Franz Roters 97a0146672 deactivated one debug statement at the end of crystallite_updateState(g,i,e) as it leads to division by zero if constitutive_state(g,i,e)%p(1:mySize) contains zero values
statement should be changed to check for zero values
2011-03-11 10:05:30 +00:00
Philip Eisenlohr 1f0569230b new installation/setup dir to hold all top-level make_*-scripts 2011-03-11 09:20:37 +00:00
Franz Roters bdc17f7d72 extended comment on modification of abaqus_v6.env 2011-03-11 09:05:09 +00:00
Franz Roters 6475235fb4 included "-heap-arrays 500000000" in remark on how to change compile command 2011-03-08 08:18:04 +00:00
Franz Roters 18e668340f Abaqus interfaces dapted to newest version of the rest of the code
does not yet check for restart, have to check out first how restarts work in Abaqus
explicit code not checked as we do not have a license
2011-03-07 12:49:27 +00:00
Franz Roters 654b5ea987 set type for acos_arg 2011-03-04 14:57:22 +00:00
Franz Roters 2975c99144 now the maybe not perfect quartenions caused trouble in math_QuaternionToEuler 2011-03-03 14:23:39 +00:00
Franz Roters e7c7ccdcdd improper rotation matrix from pdecomposition could cause negative arguments in squareroot 2011-03-03 10:47:07 +00:00
Franz Roters 6667e94238 abaqus routines VGETOUTDIR and GETOUTDIR do not return the trailing slash, which we assume to be there, so it has to be appended 2011-03-03 10:29:59 +00:00
Martin Diehl 138e9c43eb some comments (talking to Ricardo) 2011-02-25 16:24:23 +00:00
Martin Diehl a6d1e5c911 now deleted old _single files 2011-02-25 12:49:18 +00:00
Martin Diehl 8cae4d609a some polishing for single precision version.
Now only prec and mpie_spectral are needed in different versions
2011-02-25 12:41:46 +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
Martin Diehl cd5407b08b removed all math functions only for double precision by the more flexible counterpart, e.g. "dsqrt --> sqrt", "dsin --> sin". Should not cause any harm, as long as "implicit none" is used.
Now it is possible to compile a single precision spectral solver/crystal plasticity by replacing mesh.f90 and prec.f90 with mesh_single.f90 and prec_single.f90.
For the spectral method, just call "make precision=single" instead of "make". Use "make clean" evertime you switch precision
2011-02-25 09:25:53 +00:00
Christoph Kords 2f503f5cdb added "Lp" as crystallite output 2011-02-25 08:15:26 +00:00
Christoph Kords e022810e66 fixed problem in internal stress calculation for periodic neighborhood 2011-02-25 08:10:11 +00:00
Martin Diehl f525c02ded added single precision libraries for FFTW
First try of implement single precision crystal plasticity, not working yet.
polishing text about geometry construction.
polishing postResults, still having problems concerning machines without MSC installation
2011-02-24 18:39:57 +00:00
Christoph Kords e49e5e13af * in flux calculation: take care of special case for single element model
* do not overwrite "constitutive_nonlocal_rhoDotFlux" when doing a state perturbation, so we can use it for output
2011-02-24 10:01:41 +00:00
Christoph Kords 8aef9b1c13 check for twin nodes only in direction of the surface normal. this solves a problem with models of single element thickness and periodic fluxes. 2011-02-24 09:26:30 +00:00
Christoph Kords fed53a7e60 in subroutine "mesh_marc_get_mpieOptions": need at least one additional string after keywords "$mpie" and "periodic", not two as it used to be 2011-02-23 12:33:51 +00:00
Christoph Kords 430966eb20 sorry, forgot to commit the numerics.f90, too 2011-02-23 12:30:52 +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 d835380bc0 * "constitutive_nonlocal_flux" is set to zero in "constitutive_nonlocal_dotState", not in "constitutive_nonlocal_microstructure"
* dislocation flux and internal stress calculation now consistent with new definition of slip system lattice according to paper (polarity of screws inverted)
2011-02-23 08:08:06 +00:00
Martin Diehl 8dd1a694a3 extended IO to cope with different name for solverJob and Model
polishing, added error codes
added FFTW library files
2011-02-21 14:37:38 +00:00
Christoph Kords b21c153761 restructured constitutive_nonlocal_compatibility and incorporated the "surfaceTransmissivity" in the compatibility calculation 2011-02-16 16:38:18 +00:00
Christoph Kords 24d33bf2ff * added a new material parameter "surfaceTransmissivity" (default value 1.0) which allows to change the transmissivity of the material surface between 0 and 1
* now complaining when encountering an unknown nonlocal parameter in material.config
* use same error ID for all material parameters out of bounds
* symmetric flux calculation in side dotState can now be omitted (because of new treatment of periodicity)
* switching back to "local flux balance" (add leaving and entering fluxes at central MP, don't touch neighbor) instead of "flux distribution" (subtract leaving fluxes from central MP and add them at neighboring MP). This has the advantage that there is almost no need for CRITICAL statements in parallelization, so hopefully this results in some speed up.
2011-02-16 16:35:38 +00:00
Christoph Kords 8f626c8989 Now able to have real periodicity for fluxes (fluxes leaving the model on one side enter on the other side).
To enable this feature one has to add the following somewhere in the marc input file:
   $mpie periodic x y z
      for having periodicity in all directions
   $mpie periodic z x
      for having periodicity in x and z direction
   etc.
Note that this only works for regular meshes!!!
2011-02-16 16:23:08 +00:00
Alankar Alankar 89ed6f5f66 Did not compile. Fixed missing , 2011-02-15 12:29:01 +00:00
Alankar Alankar c39e04644b Sorting of hex slip-systems done in update 659 was missing. Included again. 2011-02-15 12:21:54 +00:00
Martin Diehl 438bf95105 added ft-based reconstruction of deformed configuration to postprocessingMath.f90 and postprocessingMath.pyf
also added function to calculate average of tensor
some polishing in mpie_spectral.f90, added sanity check to see im resolution is power of 2
2011-02-14 17:21:31 +00:00
Philip Eisenlohr 171f5375f1 shearrate output now with sign (no |abs| as before) 2011-02-11 10:19:41 +00:00
Martin Diehl 3d7fad6ba9 mpie_spectral.f90: changed fourier transormation, now using the advanced interface to do the tranformation both ways with just one call. now also using the same variable for pk-stress in both domains and the change of deformation gradient in both domains.
postprocessing: renamed name of python/f2py modul from "reconstruct" to "postprocessingMath", added some numerical operations to use for postprocessing.
2011-02-09 17:47:28 +00:00
Christoph Kords 803e1a8c05 In order to help preventing further memory leaks all array sections now have an explicit instead of assumed shape, e.g. Fe(1:3,1:3) instead of Fe(:,:). 2011-02-09 13:12:46 +00:00
Christoph Kords 466ced911e * check convergence for nonlocals also in stiffness calculation mode 2011-02-09 08:39:07 +00:00
Christoph Kords 921967c2ba * found memory leak in nonlocal model! "constitutive_nonlocal_rhoDotFlux" has to have upper index bound of 10 for second dimension, not 8.
* need to recalculate dislocation velocity in postResults, otherwise we take values of last perturbed state! So the following outputs were up to now showing the perturbed state: shearrate, dislocation velocity, all density rates!
2011-02-09 08:28:47 +00:00
Christoph Kords 17a6c0e59b enhanced comment on dislocation kinetics 2011-02-08 12:48:50 +00:00
Christoph Kords 6731659aa4 added hint that extreme values of stress and tangent belong to previous cycle 2011-02-08 12:43:30 +00:00
Christoph Kords 0a30fb739a now reporting extreme values of stress and tangent, that were returned to marc, in output file 2011-02-08 10:25:51 +00:00
Martin Diehl 7a7ca1aab7 mpie_spectral and mpie_interface: changed workingdir from pathToLoadFile to pathToGeomFile
mpie_spectral and numerics: added switch to prevent pre calculation of gamma_hat. slower, but saves memory
3Dvisualize: started to add support for gmsh (not fully working yet)
reconstruct: new version of f2py/Fortran subroutines for output of results from spectral method
2011-02-07 14:35:42 +00:00
Christoph Kords faba13f7fd * now able to introduce some scatter in the initial single dislocation density (only for nonlocal model!) ; setting the parameter "rhoSglScatter" to a positive value generates a gauss distribution for the dislocation density with standard deviation equal to "rhoSglScatter"
* dislocation stress calculation is only done for nonlocal constitution ("/nonlocal/" keyword is present in material.config)
2011-02-04 15:41:32 +00:00
Alankar Alankar b362755457 grain orientation shuffling was skipped for /elemhomo/. no clue why, now dropped... 2011-02-03 17:25:58 +00:00
Martin Diehl fec2c14a4e removed hard-coded tolerances from mpie_spectral and put them to numerics/IO
removed storage of full cauchy stres field from mpie_spectral.f90, only average is stored now
added cauchy stress and von mises equivalent calculation to spectral post.
2011-01-31 17:07:42 +00:00
Christoph Kords b72d75ed05 corrected indices in flux density output 2011-01-28 12:49:58 +00:00
Philip Eisenlohr c00a42a9a4 fixed last remaining tensor outputs to their transposed versions 2011-01-27 14:29:06 +00:00
Martin Diehl aa7d5afd94 changed ifort options back to previous ones as -fast is not working 2011-01-26 13:33:44 +00:00
Christoph Kords 05d4d5fef2 * kinetics now according to Mohles; enables solid solution hardening
* changed example in material.config accordingly
2011-01-26 10:17:42 +00:00
Philip Eisenlohr 6ac06af517 sorry, forgot to alter the most important part: post_results..! eventually, the t16 has defgrads and friends in correct format: du_i/dx_j is listed as linear array (1,1),(1,2),(1,3),(2,1),... 2011-01-24 16:23:37 +00:00
Philip Eisenlohr 4ee40df5ba transposed writing into t16 file (and screen/debug) did not work with just stating array(1:3,:)...
fixed by using math_transpose3x3 (and similar) instead.
2011-01-24 15:02:19 +00:00
Philip Eisenlohr 794aeb253b crystallite and CPFEM now print/output tensors in ij notation (used to be, particularly in the t16, ji, i.e. transposed...)
math reports random seed used for rnd() generation
2011-01-20 19:25:45 +00:00
Martin Diehl b546d3bb91 some corrections regarding Multicore-support on mpie_spectral.f90 and makefile
slight changes on mpie_spectral.f90 regarding file output
2011-01-12 17:02:42 +00:00
Christoph Kords 062c6b3d54 * allow zero cutoff radius
* added missing error codes
2011-01-12 12:36:48 +00:00
Christoph Kords d92f992eb7 if nonlocal ip has local neighbor assume perfect transparency of the (perhaps virtual) phase boundary. this is only a quick fix! need to rethink the way constitutive and real boundaries are treated! 2011-01-11 18:00:29 +00:00
Christoph Kords 6a3dd78259 fluxes are disabled when keyword "/nonlocal/" is omitted in the material.config (this is a way to use the constitutive_nonlocal model as a local dislocation based model) 2011-01-11 14:55:36 +00:00
Martin Diehl ccc6aac10b did not delete mpie_spectral2.f90 properly 2011-01-07 13:11:32 +00:00
Martin Diehl 71fb5eedf2 changed makefile: material subroutines are now compiled using openmp, enabled linux threads for fftw3 (also did some slight changes to enable that in the fortran source code)
renamed mpie_spectral2.f90 to mpie_spectral2d.f90 (testing file, not properly working at the moment)
changed file extension and variable names in mpie_spectral.f90 and mpie_spectral_interface.f90 from "mesh" to "geom". Removed direct output from mpie_spectral.f90, all output is now base on materialpoint_results(:,1,:)
2011-01-07 12:56:45 +00:00
Franz Roters 9447330ab0 ATTENTION repository has been moved to new server!
Now at musvn1:/home/svn/repos/cpfem
2011-01-05 16:11:51 +00:00
Franz Roters 096a4803b0 some polishing concerning openMP initialization
number of threads is now written to *.out file
2010-12-02 11:04:29 +00:00
Denny Tjahjanto 36f27edd75 1. Adding more comments
2. Changing 'subroutine' into 'function' for optimizing the computation time
2010-11-26 11:50:20 +00:00
Christoph Kords 6b199e7830 allow 2digit values to be read in for MPIE_NUM_THREADS 2010-11-25 10:34:55 +00:00
Christoph Kords ea6a6c9503 * environment variable MPIE_NUM_THREADS now determines number of threads used in parallel regions
* default value of the OMP_NUM_THREADS variable has to be restored at the end of mpie subroutine, since marc also seems to use and change(!) this 
* usage: "export MPIE_NUM_THREADS=<number of threads>" to set variable in shell, then restart mentat and compile with option 3 (at the moment this does only work on ws 6, since all other workstations use compiler option "-save"; this puts all local variables by default in static memory, which is a killer for parallelization!)
2010-11-19 17:45:27 +00:00
Christoph Kords b9b226548c * enclose wall time measurement for LpAndItsTangent and count of leapfrogbreaks by CRITICAL construct
* better use SINGLE (having an implicit barrier at the end) instead of MASTER construct
* deleted all explicit BARRIERs after do loops since parallel loop construct implies barrier at the end
2010-11-19 17:29:29 +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 4f267f4375 parallelization now works properly (not yet tested extensively though):
* had to add some BARRIER constructs
* only the master thread is allowed to increase the state counter

yet parallelization seems not to give a significant decrease in calculation time with nonlocal model (because of too many CRITICAL statements?)
2010-11-11 16:16:05 +00:00
Christoph Kords 14594dc9e2 * OpenMP does not like unbounded array subscripts in function calls
* some write statements were still not enclosed by CRITICAL construct, some needed a MASTER construct
2010-11-11 13:14:53 +00:00
Christoph Kords bca951325d * cpfem will now produce a warning if all components of the stiffness tensor are close to zero 2010-11-04 18:18:01 +00:00
Philip Eisenlohr 54748bb6a5 cycleCounter reset was 0 now -1 ==> occurence of jacobian calculation is now correct, i.e. always calc at start of new increment 2010-11-04 18:15:50 +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
Philip Eisenlohr 0dd99cb965 lattice: (re)introduced _symmetryType function to replace unsafe lookup array
numerics: polishing

mpie_cpfem_marc: polishing

..powerlaw: aware of symmetryType function

crystallite: aware of symmetryType function, smaller leapfrog acceleration

IO: new warning 101

CPFEM: range of odd stress is now -1e15...+1e15, H_sym is used for stiffness
2010-11-03 14:58:11 +00:00
Denny Tjahjanto 763c20b302 Introducing the capability to restart jobs that crashed in the middle of sims. At the moment, this feature is exclusive for Marc.
Major changes:

CPFEM.f90 => 
1. Moving the initialization out of CPFEM_general into a separate subroutine, which is directly called by the hypela2 (Beware, the Abaqus version must also be modified in order to adapt with this change).
2. Restore primary state variables in CPFEM_init from binary files when requested (Marc flag: restart read).
3. Writing primary state variables into binary files (Marc flag: restart write).

FEsolving.f90 =>
1. Adding functions to recognize Marc restart flags: read and write and the corresponding restart file (parent job).
2. Change the initial value of cycleCounter = -1 in conjuction with the change made the ping-pong scheme

homogenization_RGC.f90 =>
1. Just syntax polishing.

IO.f90 =>
1. Adding functions/subroutines to open binary files for writing the primary state variables for restart purpose.

mpie_cpfem_marc.f90

1. Modification of the general scheme for collection and calculation in order to accommodate the newly added restart feature.
2010-11-03 14:39:18 +00:00
Christoph Kords 4c20daa00d state loop count was wrong for adaptive euler integration 2010-10-28 12:22:17 +00:00
Martin Diehl 17812c1f9e added raw output, gmsh output is still included 2010-10-27 17:15:49 +00:00
Christoph Kords 9320d48305 in RKCK45 state integration: dotState was not saved in last Runge-Kutta step 2010-10-27 08:48:04 +00:00
Christoph Kords f5f3ef5ecc * have to reset dotState to zero before call to collectDotState (only important for nonlocal calculation)
* in Fixed Point Iteration: update dependent states after state preguess was missing; on the other hand, the first call to constitutive_microstructure was obsolete
2010-10-26 14:04:33 +00:00
Christoph Kords 4439282239 no change to previous version, just forget to mention one important change of the last revision:
* fluxes are now again calculated and distributed only! by the originating material point. this means that the central MP might change the dotState of its neighbor. have to see whether locks slow down parallel computation
2010-10-26 13:49:58 +00:00
Christoph Kords 62d06001ea * corrected compatibility for screws (always positive)
* detection of grain boundary in constitutive_nonlocal_microstructure with the help of transmissivity
* enforce positive densities in constitutive_nonlocal_microstructure (needed because dotState does not create cutbacks for negative densities anymore)
* reset single mobile densities below certain threshold to zero (also done in constitutive_nonlocal_microstructure)
* constitutive_nonlocal_kinetics only gets local state variable as input, no need for the entire array here
* dv_dtau is always positive
* multiplication is only active when there is already some initial density of the respective type
2010-10-26 13:42:18 +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
Martin Diehl 26cb618b6d changed calculation to small strain/cauchy stress 2010-10-20 11:27:10 +00:00
Martin Diehl da35eaa8a1 changed spectral algorithm to version proposed by Ricardo 2001 (using tau_field instead of stress_field).
Still using largestrain-formulation
2010-10-20 09:27:47 +00:00
Martin Diehl 3837dad51e fixed bug in mpie_spectral.f90 concerning spectral method (now deltaF hat get the right value)
added mpie_spectral2.f90, a version that should get the new algorithm proposed in 2010. until now, it is the same as mpie_spectral.f90 (large strain formulation by suquet et al) but with c2c, c2c FFT
2010-10-20 08:59:00 +00:00
Christoph Kords e49de75fe3 stiffness calculation now only needs a single function call to the respective integrator method instead of one call per grain (which seems to heavily slow down the computation). also no special treatment for non-local material points anymore. 2010-10-15 14:57:13 +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
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