Commit Graph

125 Commits

Author SHA1 Message Date
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
Krishna Komerla d638c563af reworked python - fortran interfacing 2012-04-10 13:30:34 +00:00
Christoph Kords 79592d2f0f get debug info for spectral solver as well 2012-04-05 09:17:09 +00:00
Martin Diehl c29ae95af7 new version of AL spectral solver (seems to work, but still experimental)
new concept of DAMASK for Python: Now using also IO.f90, debug.f90 etc. instead of mimicing their necessary function. This needs DAMASK_python.f90 and DAMASK_python_interface.f90 (At the moment more or less copies of respective spectral files).
polished and renamed the scripts for converging ang files
renamed voronoi_randomSeeding.py to spectral_randomSeeding.py
2012-03-29 19:54:31 +00:00
Philip Eisenlohr 012d568cf8 slightly restructured divergence debug output 2012-03-19 16:41:55 +00:00
Martin Diehl 632d57cc31 corrected div calculation regarding dimension and resolution 2012-03-19 13:19:15 +00:00
Martin Diehl ac5dd14c5f removed some small bugs in IO.f90 (related to initialization of variables)
DAMASK_spectral.f90 adopted to new debug scheme, substituted print with write statements
2012-03-09 15:22:52 +00:00
Martin Diehl 478a6d110c mixed things up, did not want to commit constitutive_nonlocal.f90 but rather DAMASK_spectral.f90!!!!
did a lot of polishing on constitutive_nonlocal.f90 (mostly checked in at last commit), for changes on DAMASK_spectral.f90 see previous message
2012-02-23 17:20:57 +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 dd51e1da81 changed calculation of gamma_hat back to (working, but theoretically wrong) order 2012-02-13 17:15:02 +00:00
Martin Diehl 156ec4582a polishing, adding _pInt etc. where applicable
post_results now handels zero increment different (like FEM, it is always there even if it is not counted)
2012-02-13 14:18:07 +00:00
Martin Diehl a6864bf599 added missing 'dotF' 2012-02-13 12:41:44 +00:00
Martin Diehl df07299f78 fixed bug concerning calculation of gamma operator and improved output to screen 2012-02-13 12:38:46 +00:00
Philip Eisenlohr b211c13487 added "dotF" synonym to load case parsing. 2012-02-10 17:45:45 +00:00
Martin Diehl 1cc2315954 restructured algorithm, initialization now not longer within increments, lot of small improvements/polishing
makefile now calls compiler with lot of warning flags
2012-02-10 11:59:59 +00:00
Martin Diehl 72aeb2113a minor improvement on the still not working long (polarization field based) algorithm 2012-02-02 13:20:09 +00:00
Martin Diehl 683384681a doing average correction now in Fourier space, now sure that the constant term is correct.
changed order of stress BC calculation/spectral method to avoid average calculation of stress in real space
2012-02-01 20:30:27 +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 8cf67e1be6 corrected weighting of difference divergence measures, added some additional output and introduced exit code 0 for successful termination. 2012-01-30 20:25:04 +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 1330576a01 added new math function "math_deviatoric33" which returns the deviatoric part of a 3x3 tensor
renamed some math functions, so that we have a universal naming scheme: for matrix multiplications use an "x" (e.g. math_mul33x3); don't use the "x" to describe the shape of the tensor that the function is applied to (e.g. math_invert33 instead of math_invert3x3)
2012-01-26 13:50:00 +00:00
Martin Diehl fa372523a8 added and restructured comments
debugGeneral = .true. now enables the additional output
restructured the debug options
started to implement the long algorithm (with fluctuation field), not working at the moment, can be enabled via simplified_algorithm <1 in numerics.config
corrected calculation of RMS of divergence, now measures in real and fourier space match
2012-01-25 14:27:26 +00:00
Philip Eisenlohr ab7b9247c7 final merge with edits dropped intermediately from rev 1190. 2012-01-16 15:10:16 +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 83ff05c8e8 fixed bugs (sorry...) 2012-01-12 15:08:44 +00:00
Pratheek Shanthraj 2ea3c68d3f removed spectralPicturemode 2012-01-12 10:36:17 +00:00
Philip Eisenlohr 7103a44d45 renamed debug variables, plus additional "beautification".
renamed "logscale" header info to "log scales" in accordance with plural versions of similar variables.
2012-01-12 10:23:05 +00:00
Martin Diehl c54600fd1f added kdtree2 source and changed makefile to compile it.
started to implement the nearest neighbor search for regridding
corrected calculation of divergence in real space.
corrected handling of maximum stress deviation (removed mask)
2012-01-04 17:43:26 +00:00
Martin Diehl ee401520d7 corrected divergence calculation. Still some open questions, but improved understanding a lot 2011-12-23 12:30:35 +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
Philip Eisenlohr efadf9f728 mainly fixed error in output of spectral results (1:N,…) instead of (N,…)
rearranged some logic here and there.

(hopefully) improved readability of debug/standard output.

restarting logic would need some discussion with Martin/Krishna still…
2011-12-04 10:01:32 +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 5a1e73b53d added set_timelimit functionality to fortran-wrapper of FFTW and introcudec it to DAMASK_spectral.f90 2011-11-21 18:48:38 +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 dc6c29a910 important bugfix for reading in results in case of restart 2011-11-17 22:11:05 +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
Krishna Komerla 60c9293baf restarting seems to work, spectral solver writes own defgrad to disk.
step counting rectified
added additional output of deformation gradient volume min and max
2011-11-11 14:17:43 +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 ee7022d8cf correctet random seed generation to work with gfortran. 2011-11-04 10:29:35 +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 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 ac342ad682 worked on the updating on increments, does not work properly until now 2011-10-19 09:05:02 +00:00
Krishna Komerla 0a46741a77 changing header to correct number of increments 2011-10-18 16:42:06 +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 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
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 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 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 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
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
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
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
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
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 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 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 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 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
Philip Eisenlohr fa98133f8e renamed interface from "mpie_interface" to "DAMASK_interface" 2011-05-11 17:01:03 +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