Commit Graph

92 Commits

Author SHA1 Message Date
Martin Diehl 205eb66ba8 bugfix for last commit, too many variables declared as private 2013-10-23 10:29:38 +00:00
Martin Diehl 3ecc8103f0 introduced dummy heat calculation, available as an crystallite output
temperature, avgP and avgF are available as homogenization output. move crystallite output of ipcoordinates to homogenization
2013-10-18 18:57:28 +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
Martin Diehl 3eec0ecdcd introduced #EOF# as module wide parameter in IO.f90
renamed read/write binary file to read/write real/int
removed suffix job from readFile functions as the name of the model is needed as an argument
2013-09-18 14:07:55 +00:00
Christoph Kords 3d687be8b0 Changed order of blocks associated with different tasks:
backup jacobian
restore jacobian
age results
collect 
calc
This becomes important if multiple tasks are requested by one call to CPFEM_general. In plain mode this could, e.g., be 
1) backup jaco, 2) age results, 3) calc
2013-08-02 11:36:51 +00:00
Christoph Kords 7d2206356e parallelExecution flag now passed as input variable by CPFEM_general; flag is set on the solver level (DAMASK_abaqus_exp.f, DAMASK_marc.f90, etc.) 2013-08-02 11:20:11 +00:00
Christoph Kords a7f0f4ed79 moved some small part of the code that remembers maximum and minimum stress/stiffness values to different location 2013-08-01 16:27:37 +00:00
Christoph Kords 728facd451 corrected indentation level of parts of the code
moved debugging output of stress and stiffness to different position in code
2013-08-01 16:10:56 +00:00
Franz Roters 1db24d2a72 removed duploicate writes
changed last occurences of old mode syntax
one more change in the direction of a plain mode, i.e. when there is no collect cycle
2013-07-04 11:59:45 +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 6e1cbb427d parallel execution currently doesn't work, now disabled for explicit 2013-04-24 12:32:25 +00:00
Martin Diehl 8b2d9d8155 further improvements on implementing the plain mode 2013-04-16 17:07:27 +00:00
Christoph Kords 2a6ac44496 Major restructuring of mesh.f90 due to introduction of "cells". A cell is the volume (area in 2D elements) that surrounds an ip. It is described by up to 8 cell nodes and is used to calculate ip volume, area, and face normals. It can also be used to generate a mesh for e.g. paraview that contains ip output as cell centered data.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
For marc simulations, run
 ./code/setup/setup_code.sh
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2013-04-15 08:13:20 +00:00
Martin Diehl 924d943edc simplified interface of CPFEM_general (removed P and F, made cs and dcs/dE optional)
commented and cleaned up the marc interface.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
For marc simulations, run
 ./code/setup/setup_code.sh
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2013-04-09 10:08:00 +00:00
Martin Diehl 745ca5a6a5 added "public" (and where possible "protected") statements to functions/subroutines/variables/parameters where needed
added -fmodule-private to compile options for gfortran, i.e. gfortran won't compile anymore if an entity is not explicitly declared as public but used in another module to ensure stronger encapsulation
2013-03-28 07:40:30 +00:00
Martin Diehl 39a70e8a19 fixed bug in coordinate calculation when no average F was given (scaled wrong by ncp_elems**2)
other changes: just polishing + some more comments
2013-03-27 12:28:55 +00:00
Franz Roters 02f092492e updated copyright header 2013-03-22 17:35:05 +00:00
Martin Diehl 60633ffd98 some doxygen corrections 2013-03-06 14:41:15 +00:00
Martin Diehl ada2beb8b8 reorganized calculation modes for CPFEM, now having better readable and cleaner structure 2013-03-01 11:48:29 +00:00
Pratheek Shanthraj 07ff1f7c93 reporting current time for most module inits 2013-02-25 16:34:59 +00:00
Martin Diehl 9ee8108b6b added doxygen documentation to material.f90 and marked read-only quantities as protected where possible, removed substituted "call flush" by "flush" 2013-01-18 11:30:52 +00:00
Christoph Kords 766202bae9 corrected debug output of aged state: first reports for selected debug_el,debug_ip 2012-12-28 12:15:59 +00:00
Philip Eisenlohr 23a0ca3b59 keep "odd" stress in rnd-range of -1.0 to -0.5 and 0.5 to 1.0
serial calc now skips IPs when /elementhomogeneous/

for /elementhomogeneous/ IPs > 1 individually copy the result from IP 1 to prevent spuriously outdating themselves.
2012-11-21 17:00:29 +00:00
Philip Eisenlohr d9a98417ca switched element library to geomType based.
saves to copy same geometry description for different elements that are essentially similar regarding the IP number but differ in total node count.

introduced quadratic tetrahedron (Marc element 127 -- element 157 might also work, but did not perform well in fully elastic calc so far)
2012-11-15 22:45:20 +00:00
Martin Diehl 7e683ca7c3 removed coordinates from call to CPFEM_general and introduced direct storage of coordinates to mesh_ipCoordinates 2012-11-14 14:38:10 +00:00
Christoph Kords 5b6baa7c0d introduced distinction between ip coordinates and cell center coordinates; the former can be globally calculated by subroutine mesh_build_ipCoordinates, the latter locally by the function mesh_cellCenterCoordinates; renamed mesh_ipCenterOfGravity to mesh_ipCordinates 2012-11-06 14:37:13 +00:00
Martin Diehl 13b55275b1 documented utilities and structured, worked on the restart capabilities of the new basic solver 2012-10-24 11:31:40 +00:00
Martin Diehl 0bcb8f59db added doxygen comments, some polishing, added "protected" statements where applicable 2012-10-02 12:53:25 +00:00
Christoph Kords 8336d0705c new numerics parameter "unitlength" that scales the model size in DAMASK; this enables to use very small models in marc without getting any numerical problems for example with contact which does not seem to work when using very small numbers 2012-09-24 06:13:26 +00:00
Martin Diehl b96df9987e fixed reading/writing of integer arrays with function for real arrays 2012-08-16 14:55:23 +00:00
Martin Diehl 991a7bbd2d reordered initialization for spectral method, corrected bug of deformation BC parsing when prescribing velocity gradient resulting in wrong average deformation 2012-07-30 15:51:48 +00:00
Philip Eisenlohr 882c44a61d changed the majority of debugging output to level "extensive" 2012-07-24 15:29:23 +00:00
Philip Eisenlohr 4d09ef0648 changed variable name "debug_what" to "debug_level" 2012-07-05 09:54:50 +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
Martin Diehl d2c4874db3 several small corrections/polishing 2012-04-20 11:58:41 +00:00
Martin Diehl bd9667bd4b added new, flexible debugging scheme.
now all modules have their own debug specification.
compiles and runs, I hope nothing is broken
did a lot of polishing
2012-03-08 20:25:28 +00:00
Martin Diehl d8ffc29236 again: adding pInt, removing redundant use statments, chang in dble to real(,pReal) 2012-02-21 16:31:37 +00:00
Martin Diehl d9522bf588 minor changes, substituting implicit type conversions with explicit ones 2012-02-14 12:17:47 +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 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
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 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
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
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
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
Philip Eisenlohr 8c65cb9ea6 small output polishing 2011-07-15 12:25:38 +00:00
Philip Eisenlohr cc925cadee changed output/debug-level relation for two statements 2011-06-14 14:08:13 +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
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