Commit Graph

78 Commits

Author SHA1 Message Date
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