Martin Diehl
84ce6e429a
changed handling of non-converged BVP solution: By default, exit if no solution is found to prevent "user errors"
...
Removed ambiguous "regridMode" keyword which was used to trigger this behavior in favor of "continueCalculation", Set this to 1 to get back old behavior, e.g. report non-converged increments.
2014-03-31 10:04:11 +00:00
Martin Diehl
4bb5439994
removed copyright from *.f90 and *.f files, will be added using the deployMe script for release/nightly build. Now based on presence of svn:keywords property set (usually "Id"). Similar thing will be done for .py, .sh, and .config files but more involved because they might be executable
2014-03-29 08:20:36 +00:00
Martin Diehl
b9722b866c
improved error handling when getting number of threads
2014-02-28 10:30:07 +00:00
Martin Diehl
bc4cc20c55
slightly polished makefile and numerics, recompile fftw with icc; still not running with ifort 14.01
2014-02-06 10:41:34 +00:00
Martin Diehl
7885ebaf8f
added 'reset' flag for recursive function IO_read, need to reset stack when stopping exectution (will be used by constitutive and homogenization)
2013-12-11 16:49:20 +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
Philip Eisenlohr
a2169e338f
fixed type-casting problems (mainly with Lib_VTK_IO)
2013-09-26 17:21:46 +00:00
Martin Diehl
cb16b30409
set output order of spectral parameters to more reasonable one
2013-09-17 09:19:16 +00:00
Martin Diehl
7f3c24e1f1
fixed some buggy last minute changes in the last commit
2013-08-08 09:13:29 +00:00
Martin Diehl
ac92b90e0b
fixed al and pol solver, now checking for div(p) = curl(f) = 0
2013-08-07 17:20:05 +00:00
Martin Diehl
2dc985f558
set tolerances to useful values and renamed them.
...
allowed "keyword = value" in numerics.config (simply removing "=" from line)
2013-07-31 15:03:38 +00:00
Martin Diehl
81531097f1
changes on convergence tolerances of AL and Polarisation, switched back to immediate correction of stress bc but only when last two average stresses are close to each other (cosine decay)
2013-07-30 15:32:55 +00:00
Philip Eisenlohr
98528f9a89
added possibility for multi-level inclusion of files in *.config and loadcase files.
...
include subfiles by stating
{path/to/include}
2013-06-26 19:19:00 +00:00
Pratheek Shanthraj
1c25403b5b
changed default values of AL spectral solver tolerances. should've been done along with commit 2254.
2013-06-12 10:06:04 +00:00
Martin Diehl
c7ba8a2a9b
introduced plain mode (no ping pong) again and added test for MSC.MArc 2012 as prove that its working
2013-05-17 17:52:46 +00:00
Martin Diehl
8b2d9d8155
further improvements on implementing the plain mode
2013-04-16 17:07:27 +00:00
Martin Diehl
ddcc795461
allowed arbitrary grid (formerly know as resolution), i.e. any integer>1 in each dimension is possible.
...
removed square root correction for divergence (doesn't make sense)
fixed FFT debug of spectral solver
2013-04-10 10:19:16 +00:00
Christoph Kords
965ab38217
corrected error bounds for spectral parameter "maxCutback"
2013-03-28 16:04:47 +00:00
Martin Diehl
7f37f55904
added missing line continuation in numerics and explicit private statements in the other files
2013-03-28 10:37:00 +00:00
Martin Diehl
d2ae06015a
moved "Random is random" to output of random seed, cleaned up a little
2013-03-28 10:02:11 +00:00
Martin Diehl
15b6242585
set more appropriate default values for spectral solver tolerances (abs stress BC was at huge())
2013-03-26 16:36:52 +00:00
Martin Diehl
e6f6c22a30
polished Abaqus Standard, changed inclusion of OMP functionality from "spectral style" (include) to "marc style" (use) to prevent explicit from crashing
2013-03-25 18:25:15 +00:00
Franz Roters
02f092492e
updated copyright header
2013-03-22 17:35:05 +00:00
Martin Diehl
dd06d07e1c
set default number of iteration for spectral solver to 250 instead of 40, abaqus doxygen now does the correct inclusion (everything appeared twice before)
2013-03-14 23:10:02 +00:00
Martin Diehl
1779510dda
remove some unused variables, set default value for divergence calculation to 1.e-5 and made calculation independent of dim and res
2013-03-12 18:48:28 +00:00
Pratheek Shanthraj
0209a1d5a7
restructured AL solver to resemble polarization scheme and introduced alpha and beta parameters in numerics to determine what kind of solution you want. alpha = beta = 1 results in the AL scheme. alpha = beta = 2 results in the accelerated scheme. safe values are anything in between. changed the solver to use stress calculations on the campatible field which seems to result in faster convergence.
2013-02-28 17:35:02 +00:00
Martin Diehl
59da88460e
preparation for introduction of plain mode and restructuring of calc modes for CPFEM_general
2013-02-27 20:41:14 +00:00
Pratheek Shanthraj
07ff1f7c93
reporting current time for most module inits
2013-02-25 16:34:59 +00:00
Martin Diehl
a98be4e0cf
IO_error and IO_warning crashed for string of zero length (or only containing whitespaces), fixed now.
...
Also added BEGIN and END statement to numerics in case of non-presen DAMASK_NUM_THREADS, would prevent this error and is better for debugging
2013-02-20 21:56:59 +00:00
Martin Diehl
c7c81a5ab5
removed unused variables and declared external functions as external
2013-02-11 09:44:17 +00:00
Martin Diehl
e9f351c69b
forgot to commit
2013-02-08 15:56:58 +00:00
Martin Diehl
c6a79d2b3d
divergence_correction for basic solver variants has now 3 possibilities:
...
0: uncorrected, slope per sidelength (physical dimension) e = res/dim
1: corrected by sidelength, slope per unitlength e = res/1
2: corrected such that distance between FPs e = 1
alway regarding the medium length of x,y,z direction
2013-01-16 10:40:53 +00:00
Martin Diehl
0d5e91ac87
corrected reporting of basic PETSc variant and unified reporting of all spectral solvers
...
improved warning and error in IO, now able to report correctly elements up to 9 digits
2013-01-09 22:19:32 +00:00
Martin Diehl
738f363263
corrected small issues with PETSc debugging
2013-01-03 16:17:23 +00:00
Martin Diehl
5c0c7121e7
made PETSc silent by removing -snes_view from default options.
...
introduced PETSc option for debugging that introduces some debugging options into the petsc options and move PETSc initialization from numerics to DAMASK_spectral_utilities
2012-12-15 18:07:49 +00:00
Martin Diehl
566b680319
made new spectral solver the default (no need for SOLVER=NEW anymore) and added additional warnings switche to be used with gfortran >= 4.6
...
added comments
2012-12-15 16:21:10 +00:00
Martin Diehl
b1f28ba5e7
made restart working for all solvers and added corresponding test
...
corrected error handling for FFT based function in case of odd numbers etc.
2012-12-14 17:30:22 +00:00
Martin Diehl
7b87987751
introduced option for regridding to numerics.f90, working as follows:
...
first cut back is tried if material point model oder BVP solver does not converge.
If no regridding is enabled after max cut back, in case of non-converged material point the simulation stops and in case of non-converged BVP solver it continues.
set regridMode to 2 to enable regridding if BVP solver OR materialPoint model do not converge,
set regridMode to 1 to enable regridding if materialPoint model do not converge, non-converged BVP solver will be ignored as in the standard case.
For regridding, the load case need to have a restart freq set.
enabled restarting for Basic PETSc variant
2012-12-14 15:18:04 +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
Martin Diehl
3ada4897fb
reordered PETSc initialization (now first part done in interface, setting of parameters done in numerics), removed unnecessary includes for PETSc
...
still not running with gfortran, use at own risk!
2012-11-06 16:00:51 +00:00
Martin Diehl
d5ce49c471
numerics got some protected statements and is now reading in the new keywords for the solver selection in small letters.
...
spectral solver got cut back facilities + improved output to screen
2012-10-02 15:26:56 +00:00
Christoph Kords
d0fd3c03c5
forgot to check in; belongs to rev 1762
2012-09-24 16:22:25 +00:00
Krishna Komerla
8ed69170c5
corrected wrong warning complaining about FFTW string when DAMASK_NUM_THREADS undefined
2012-09-14 16:39:42 +00:00
Martin Diehl
1cfc467705
added new cut back parameter for spectral solver and instrumented variables for use with doxygen
2012-09-13 09:48:38 +00:00
Martin Diehl
8e3b547cbd
changed numerics.f90 back to the old openmp statement as this doesn't seem to cause the problem and is standard conforming
...
corrected typo in constitutive_j2.f90 that might cause abaqus to crash
now running 20 tests of abaqus in order to have a decent statistic about the crash behavior
improved abaqus_v6.env
2012-08-29 16:16:10 +00:00
Martin Diehl
d089c12947
abaqus seems to have similar problems with the openmp lib as marc (use module vs. include file), i hope this fixes the crashes
2012-08-28 19:48:38 +00:00
Martin Diehl
5e9e8497e6
new solver is now compiling without a PETSc installation, however only the plain basic solver is available then.
...
also removed reporting of PETSc related variables in the case it is not installed/found
2012-08-28 19:19:47 +00:00
Pratheek Shanthraj
c2c31a0a59
added SolverBasicPETSC module to the new FFT solver (solves the basic scheme using PETSc when mysolver = basicpetsc in numerics.config)
...
some bug fixes
2012-08-14 16:58:23 +00:00
Pratheek Shanthraj
d0933dad7b
added filter option to the spectral solver to mitigate spurious oscillations due to gibb's phenomenon. activate by setting myfilter in config file appropriately (currently only 'none' and 'cosine' options coded). more cleaning up of AL code
2012-08-07 17:23:13 +00:00
Pratheek Shanthraj
32f8c9c6ea
moved petsc option string to numerics and added new numerics parameters to config file
2012-08-06 17:27:53 +00:00
Martin Diehl
7e3a837640
moved calculation and output of geometry related data to mesh.f90, moved output of command line related information to DAMASK_spectral_interface.f90.
...
improved new solver structure (use with make SOLVER=NEW)
2012-08-06 12:43:05 +00:00
Pratheek Shanthraj
e2a2621235
updates for AL version of spectral solver
2012-08-06 08:53:12 +00:00
Martin Diehl
4ed68bb4ae
next round in modularization
2012-07-25 14:01:39 +00:00
Martin Diehl
9c0a161ec0
in case of regridding, undeformed configuration is written out correctly. Restart improve by reading in additional data from converged step.
2012-07-24 12:21:41 +00:00
Martin Diehl
b2fd3e1180
introduced preprocessor identifiers Marc, Abaqus, and Spectral to enable conditional compilation. This allows deleted dummy functions that are used by one solver only.
...
Mainly affected modules are IO and mesh. Most of the changes in mesh result from reordering the functions when grouping them depending on their solver.
Further advantage is that FE solver do not need FFTW and kdtree2 anymore. The include files for these two libraries moved to DAMASKROO/lib now as I figured out how to use a include path in the Makefile.
Put all the files I got when testing compilation with abaqus in a folder which to become the abaqus compilation test.
2012-06-15 16:10:21 +00:00
Franz Roters
5b7f2e122e
fixed usage of OpenMP function library
2012-06-12 09:44:05 +00:00
Martin Diehl
37fa6c2e14
merged code for python and spectral solver interfacing (shared most of it anyway).
...
put functionality for getting header information (dimension, homogenization, resolution) in functions in mesh.f90
2012-04-11 17:28:08 +00:00
Martin Diehl
f2da887899
added missing ":" in mesh.f90, introduced absolute stress tolerance for spectral solver in numerics.config/numerics.f90
2012-04-11 12:57:25 +00:00
Martin Diehl
17826d7c98
now initializing planner flag for fftw with useful value even if init wasn't executed
2012-03-26 10:03:39 +00:00
Franz Roters
7947ae36b3
changed default value of err_div_tol
2012-03-22 10:33:54 +00:00
Martin Diehl
dbdc7ddfa2
debug.config, debug.f90, DAMASK_abaqus_exp.f, DAMASK_abaqus_std.f: changed to new debug scheme (wasn't working)
...
lattice.f90, FEsolving.f90: explicitly defined public functions and variables, all others are now private
numerics.f90: changed output format of real numbers, now instead of 0.1eX 1.0e(X-1) is printed to screen
Makefile: now using correct Optimization flags for OPTIMIZATION=AGGRESSIVE
DAMASK_spectral_AL.f90: improved, but still testing. Stress BCs now seem to be handled correctly
2012-03-20 18:01:31 +00:00
Pratheek Shanthraj
c2f5cebacb
simplified analytic jacobian calculation. removed Lpfrac, time_sensitive. introduced rate_sensitivity flag when calling crystallite_stressAndItsTangent that is currently set to .false. and is to be set according to which dPdF the FE solver is asking for
2012-03-14 13:56:50 +00:00
Martin Diehl
2a7888c7e1
removed (in IO.f90) a dangerous initialization statement.
...
Please read http://www.cs.rpi.edu/~szymansk/OOF90/bugs.html#4
for more details.
Other files are just a little bit polished
2012-03-07 10:07:29 +00:00
Pratheek Shanthraj
17e9698659
added time_sensitive flag to ignore or add time sensitive component to analytic jacobian (should be close to perturbed jacobian when ignored)
...
now uses sub_dt for analytic jacobian calculations
bug fixes
2012-03-01 19:42:43 +00:00
Franz Roters
1042ac018f
output values used for Lp_frac and analyticJaco
...
improved comment for Lp_frac on numerics.config
2012-02-24 08:21:18 +00:00
Martin Diehl
a98832100f
introduced itmin parameter for spectral code for defining minimum number of cycles
...
removed simplified_algorthim flag because the basic scheme using the polarization field will not be implemented
introduced divergence_correction flag for making divergence criterion resolution-independent (still experimental and not set by default)
corrected output and restart frequency (now modulo on incs of current load case)
2012-02-23 16:43:17 +00:00
Pratheek Shanthraj
b9a82156c9
crystallite.f90: can now calculate analytic jacobian by setting analyticJaco = 1 in numerics.config
...
math.f90: added math_mul3333xx3333…
numerics.f90: to read in analyticJaco and Lp_frac
2012-02-22 20:11:09 +00:00
Martin Diehl
87a83d82b7
changed assumed arrays (:) to properly defined ones (gfortran 4.7 was complaining) and remove use statements that are not needed
2012-02-21 15:39:36 +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
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
195491aaaa
added missing pInts
2012-02-09 12:35:55 +00:00
Martin Diehl
c5128e94eb
some f2008 standard related correction i didn't check in last time
2012-02-01 20:20:05 +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
9464937db7
merge declaration and initialization with standard values
...
corrected handling of $DAMASK_NUM_THREADS
2012-01-30 20:16:19 +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
Martin Diehl
3e521e32a6
indroduced 3 more flags for fine control of spectral algorithm
2012-01-25 08:56:46 +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
Martin Diehl
ace6851389
moved all routines from postprocessingMath to math.90, renamed the module to DAMASK, changed scripts and interfaces accordingly.
...
polished math.f90 (mainly added _pInt/_pReal and intent(in/out))
curl_fft is still a dummy function
2011-12-01 12:01:13 +00:00
Martin Diehl
566f16b6e9
implemented calculation of divergence in real space, polished spectral debugging
2011-11-21 18:12:40 +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
ee7022d8cf
correctet random seed generation to work with gfortran.
2011-11-04 10:29:35 +00:00
Martin Diehl
15c356c3a7
some small improvements regarding the rotation of the loadcase frame
2011-10-25 13:38:24 +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
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
Philip Eisenlohr
c7c541f393
corrected typos and such
2011-09-13 15:57:58 +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
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
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
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
Franz Roters
2418dfe96d
changed MPIE_NUM_THREADS to DAMASK_NUM_THREADS
2011-05-28 09:42:25 +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
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
430966eb20
sorry, forgot to commit the numerics.f90, too
2011-02-23 12:30:52 +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
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