Commit Graph

90 Commits

Author SHA1 Message Date
Martin Diehl 23cda48709 cleaning up, removing includes not needed 2012-02-21 15:42:47 +00:00
Martin Diehl 6c0f9d163b polishing: removed variable names like 'unit' and 'data' that are keywords of fortran and ensured that integer and real precision matches independent of machine standard.
removed cut_off parameter for damask_spectral
removed outpot of derived divergence measures and added RMS output in brackets
added comments and options to the makefile
2012-02-15 18:58:38 +00:00
Christoph Kords 30c55c3142 added check for unknown keywords again (in agreement with Philip ;-)
indeed 'constitution' and '/nonlocal/' are the only keywords which have to be ignored, since they are parsed elsewhere
2012-02-14 09:22:37 +00:00
Philip Eisenlohr 9b73cb3c65 removed parameter check complaining about unknown keyword as default case. there are just too many keywords that do not trigger a variable assignment to cope with them (e.g. /nonlocal/, constitution, etc.)
I suggest to kill similar logic from other files if present somewhere...
2012-02-13 23:30:59 +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 f03e7c459c small polishing, exchanged stops in math.f90 with calls to IO_error 2012-02-13 14:08:07 +00:00
Martin Diehl cff66b5cc3 removed implicit type castings 2012-02-10 11:24:53 +00:00
Martin Diehl 2e4f2f3d9c added _pInt where appropriate 2012-02-02 13:19:02 +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
Martin Diehl eeda357710 N^2 initialization loop (former spectralPictureMode) rewritten in material.f90
additional output in DAMASK_spectral_interface.f90 
132 character cut off in constitutive_nonlocal.f90
rounding error in math.f90 complex number initialization (1.0_pReal)*2.0_pReal*pi
new $DAMASK_NUM_THREADS warning in numerics.f90 / IO.f90
polishing in DAMASK_spectral.f90
2012-01-30 13:52:41 +00:00
Christoph Kords e5407894b5 Reworked kinetics. Now there is a universal law which can be used for both fcc and bcc (and probably even hcp). It mainly consists of an athermal forest cutting part , solid solution and peierls as thermally activated processes, and viscous glide. Therefore, lots of new parameters in the material.config. Not sure yet if the values make sense though.
Also renamed some of the old parameters. 

Unknown constitutive output raises error.
2012-01-25 17:04:37 +00:00
Martin Diehl 656d7a68d2 one new error message for spectral solver 2012-01-25 09:00:40 +00:00
Martin Diehl 3a22bf7e27 changed fftw from legacy fortran to new (2003) fortran (calling c routines directly)
renamed "steps" consequently to "incs"
moved kdtree2 to math.f90, put original source to private folder
2012-01-13 16:18:16 +00:00
Philip Eisenlohr f3bb2271c9 parsing of spectral geom file now accepts two-dimensional microstructure definition (plus range indications by 'x to y')
For instance:
1 2 3 4
5 6 7 8
9 10 11 12
...
2012-01-12 17:01:24 +00:00
Martin Diehl 6dee2616f5 added help info how to use the executable 2011-12-23 12:29:04 +00:00
Martin Diehl 5ebeb96e85 made DAMASK to work with gfortran:
-removed to long lines
-restructured f2py modules and merged make_DAMASK2Python into setup processing
-setup_code.py now sets library path in makefile and asks for compile switches for spectral code
-substituted \ in format strings with $

restructured DAMASK_spectral:
-more logical output and structure of code
-better input for spectral debug parameters
2011-12-06 16:58:17 +00:00
Martin Diehl 5ef73e164a restructured algorithm: moved into loop to reallocate fields and replan FFTW in case resolution changes during runtime ==> regridding
introduced parameters for selective debugging of spectral code and partly introduced the advanced divergence calculation again which is controlled by debug.config
added switch in numerics to control divergence behavior (uncorrected and corrected by phenomenological factor)
added precision directive to all values I found
2011-11-15 17:54:18 +00:00
Martin Diehl de96e99bca corrected determination of restartRead from commandline (now done by FEsolving instead of DAMASK_spectral_interface)
recompiled fftw libraries with --enable-shared to make them work with f2py
added draft for compilation test of spectral solver
2011-11-07 18:25:10 +00:00
Krishna Komerla 49c0b8a3fd restructured restarting capabilities 2011-11-07 11:04:57 +00:00
Martin Diehl c2eac36b48 started to implement restart facilities for spectral solver.
restart write is on per default
restart read is switched on by using --restart or -r INT where INT gives step at which the calculation should restart
setting INT to a value <1 will turn restart write off
2011-11-03 19:32:11 +00:00
Martin Diehl 680ba9082f removed deadlock when calling IO_warning(33)
polished IO_error and IO_warning
checked OpenMP critical statements in DAMASK_spectral.f90
corrected writing of headed in DAMASK_spectral.f90
2011-11-02 14:38:42 +00:00
Martin Diehl c13aa2a829 first try of implementing a rotation of the loadcase coordinate system. Seems to work so far for one loadcase and homogeneous materials. 2011-10-24 18:26:34 +00:00
Krishna Komerla 0a46741a77 changing header to correct number of increments 2011-10-18 16:42:06 +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
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
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
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 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 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
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 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
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
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
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
Philip Eisenlohr 808a6d6ad6 + error box + now tells error number (useful for Abaqus) 2011-05-13 16:55:13 +00:00
Philip Eisenlohr fa98133f8e renamed interface from "mpie_interface" to "DAMASK_interface" 2011-05-11 17:01:03 +00:00
Philip Eisenlohr 660c9212f8 introduced error 667 for out of bounds user result requesting 2011-05-04 16:02:18 +00:00
Franz Roters 7d84a0911e removed unused variables 2011-04-13 14:16:22 +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 31a570768b new error 237: singularity in internal stress calculation 2011-03-22 13:58:42 +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
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 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 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
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 05d4d5fef2 * kinetics now according to Mohles; enables solid solution hardening
* changed example in material.config accordingly
2011-01-26 10:17:42 +00:00