Commit Graph

1521 Commits

Author SHA1 Message Date
Martin Diehl b546d3bb91 some corrections regarding Multicore-support on mpie_spectral.f90 and makefile
slight changes on mpie_spectral.f90 regarding file output
2011-01-12 17:02:42 +00:00
Martin Diehl a662a28a97 added support for spectral method result files 2011-01-12 16:55:56 +00:00
Christoph Kords 062c6b3d54 * allow zero cutoff radius
* added missing error codes
2011-01-12 12:36:48 +00:00
Christoph Kords d92f992eb7 if nonlocal ip has local neighbor assume perfect transparency of the (perhaps virtual) phase boundary. this is only a quick fix! need to rethink the way constitutive and real boundaries are treated! 2011-01-11 18:00:29 +00:00
Christoph Kords 6a3dd78259 fluxes are disabled when keyword "/nonlocal/" is omitted in the material.config (this is a way to use the constitutive_nonlocal model as a local dislocation based model) 2011-01-11 14:55:36 +00:00
Martin Diehl 322cbd2597 changed tools for voronoi tessellation to match new specification (file extension and resolution). Also renamed the files, because the space characters cause trouble
improved reconstruct.f90 and spectral_post.py, both files work now under linux

added make_reconstruct.py, small shell script for using f2py
2011-01-07 14:37:05 +00:00
Martin Diehl ccc6aac10b did not delete mpie_spectral2.f90 properly 2011-01-07 13:11:32 +00:00
Martin Diehl 71fb5eedf2 changed makefile: material subroutines are now compiled using openmp, enabled linux threads for fftw3 (also did some slight changes to enable that in the fortran source code)
renamed mpie_spectral2.f90 to mpie_spectral2d.f90 (testing file, not properly working at the moment)
changed file extension and variable names in mpie_spectral.f90 and mpie_spectral_interface.f90 from "mesh" to "geom". Removed direct output from mpie_spectral.f90, all output is now base on materialpoint_results(:,1,:)
2011-01-07 12:56:45 +00:00
Franz Roters 9447330ab0 ATTENTION repository has been moved to new server!
Now at musvn1:/home/svn/repos/cpfem
2011-01-05 16:11:51 +00:00
Martin Diehl 20c00288b8 ---had some problems with svn, hope everything is ok now---
added new tools to generate colormaps for paraview and gmsh, written in python
removed old fortran colormap generator.

removed test.py (not longer needed) and the python module reconstruct.pyd (not running under linux)
2011-01-05 14:53:31 +00:00
Martin Diehl 3b0eeb9956 added files for geometry reconstruction from given deformation gradient.
reconstruct.f90 is a fortran source file with comments to use with f2py
reconstruct.pyd is the compiled python module

test.py is a test file to check if the reconstruction works (unfortunately i does not at the moment, probably because there are type conflicts between fortran and python)
2010-12-22 10:59:54 +00:00
Martin Diehl 8d6ddcf28b restructured (or structured at all) reading of header, first try of reading in deformation gradient 2010-12-09 15:53:52 +00:00
Martin Diehl ac676623ca reading of header is now working 2010-12-03 14:57:28 +00:00
Martin Diehl 2f47d4b09b added conversion of 'resolution' in result file to integer array 2010-12-02 14:53:17 +00:00
Franz Roters 096a4803b0 some polishing concerning openMP initialization
number of threads is now written to *.out file
2010-12-02 11:04:29 +00:00
Martin Diehl ab82dbc99c continued working on reading header of output file 2010-11-30 14:26:30 +00:00
Martin Diehl 9d32bc7ae6 added output of complete mesh to voronoi fast.f90
first version of post processing for spectral method: spectral_post.py
2010-11-29 10:08:53 +00:00
Denny Tjahjanto 36f27edd75 1. Adding more comments
2. Changing 'subroutine' into 'function' for optimizing the computation time
2010-11-26 11:50:20 +00:00
Christoph Kords 6b199e7830 allow 2digit values to be read in for MPIE_NUM_THREADS 2010-11-25 10:34:55 +00:00
Franz Roters 4216a3e066 corrected name of include file 2010-11-24 07:55:08 +00:00
Franz Roters c07a91d19e removed -save option from the compile statement using OpenMP 2010-11-23 16:25:58 +00:00
Christoph Kords ea6a6c9503 * environment variable MPIE_NUM_THREADS now determines number of threads used in parallel regions
* default value of the OMP_NUM_THREADS variable has to be restored at the end of mpie subroutine, since marc also seems to use and change(!) this 
* usage: "export MPIE_NUM_THREADS=<number of threads>" to set variable in shell, then restart mentat and compile with option 3 (at the moment this does only work on ws 6, since all other workstations use compiler option "-save"; this puts all local variables by default in static memory, which is a killer for parallelization!)
2010-11-19 17:45:27 +00:00
Christoph Kords b9b226548c * enclose wall time measurement for LpAndItsTangent and count of leapfrogbreaks by CRITICAL construct
* better use SINGLE (having an implicit barrier at the end) instead of MASTER construct
* deleted all explicit BARRIERs after do loops since parallel loop construct implies barrier at the end
2010-11-19 17:29:29 +00:00
Christoph Kords 15728d3305 enclose wall time measurement for dotState and dotTemperature function by CRITICAL construct 2010-11-19 17:19:03 +00:00
Philip Eisenlohr b2cc34349f corrected mistake in nodeCoordinate assignment, bug-fix for option " --filter 'x,y,z' " 2010-11-12 08:56:04 +00:00
Christoph Kords 4f267f4375 parallelization now works properly (not yet tested extensively though):
* had to add some BARRIER constructs
* only the master thread is allowed to increase the state counter

yet parallelization seems not to give a significant decrease in calculation time with nonlocal model (because of too many CRITICAL statements?)
2010-11-11 16:16:05 +00:00
Christoph Kords 14594dc9e2 * OpenMP does not like unbounded array subscripts in function calls
* some write statements were still not enclosed by CRITICAL construct, some needed a MASTER construct
2010-11-11 13:14:53 +00:00
Philip Eisenlohr f3a7e323ea pretty printing of hex slip/twin systems 2010-11-09 13:20:33 +00:00
Christoph Kords bca951325d * cpfem will now produce a warning if all components of the stiffness tensor are close to zero 2010-11-04 18:18:01 +00:00
Philip Eisenlohr 54748bb6a5 cycleCounter reset was 0 now -1 ==> occurence of jacobian calculation is now correct, i.e. always calc at start of new increment 2010-11-04 18:15:50 +00:00
Philip Eisenlohr e561358a90 presentation to illustrate Marc/Mentat interface for restarting capability (thx to Denny!) 2010-11-04 15:31:29 +00:00
Christoph Kords 405d5529e7 * checked and corrected parallelization of code. compiles now successfully, but simply aborts computation with first parallel directive without any comment :-(((
* also put a call to constitutive_microstructure at the start of each crystallite_integration subroutine like it was before. need that for nonlocal model in case of crystallite cutback
2010-11-03 17:22:48 +00:00
Philip Eisenlohr 0dd99cb965 lattice: (re)introduced _symmetryType function to replace unsafe lookup array
numerics: polishing

mpie_cpfem_marc: polishing

..powerlaw: aware of symmetryType function

crystallite: aware of symmetryType function, smaller leapfrog acceleration

IO: new warning 101

CPFEM: range of odd stress is now -1e15...+1e15, H_sym is used for stiffness
2010-11-03 14:58:11 +00:00
Denny Tjahjanto 763c20b302 Introducing the capability to restart jobs that crashed in the middle of sims. At the moment, this feature is exclusive for Marc.
Major changes:

CPFEM.f90 => 
1. Moving the initialization out of CPFEM_general into a separate subroutine, which is directly called by the hypela2 (Beware, the Abaqus version must also be modified in order to adapt with this change).
2. Restore primary state variables in CPFEM_init from binary files when requested (Marc flag: restart read).
3. Writing primary state variables into binary files (Marc flag: restart write).

FEsolving.f90 =>
1. Adding functions to recognize Marc restart flags: read and write and the corresponding restart file (parent job).
2. Change the initial value of cycleCounter = -1 in conjuction with the change made the ping-pong scheme

homogenization_RGC.f90 =>
1. Just syntax polishing.

IO.f90 =>
1. Adding functions/subroutines to open binary files for writing the primary state variables for restart purpose.

mpie_cpfem_marc.f90

1. Modification of the general scheme for collection and calculation in order to accommodate the newly added restart feature.
2010-11-03 14:39:18 +00:00
Philip Eisenlohr be265aef37 slight improvement of remaining time estimate... 2010-11-02 16:55:56 +00:00
Philip Eisenlohr 796bffee2e 1) speed-up of elementTensor output
2) added estimate of remaining time
2010-11-02 15:45:23 +00:00
Martin Diehl e80e055c75 added three small programs useful for spectral method (fortran sourececode)
voronoi fast.f90 and voronoi small memory.f90 are two variants to do a voronoi tessellation and write the result to a mesh file that can be interpreted by mpie_spectral.f90. Difference is the memory management resulting in one faster and one memory saving version. voronoi fast.f90 has also the ability to write out a file for Ricardo Lebensohns spectral code.
colormap.f90 is a simple code that can be used to generate colormaps for gmsh.
2010-10-31 16:06:10 +00:00
Christoph Kords 4c20daa00d state loop count was wrong for adaptive euler integration 2010-10-28 12:22:17 +00:00
Martin Diehl 17812c1f9e added raw output, gmsh output is still included 2010-10-27 17:15:49 +00:00
Christoph Kords 9320d48305 in RKCK45 state integration: dotState was not saved in last Runge-Kutta step 2010-10-27 08:48:04 +00:00
Philip Eisenlohr 74743c0856 little typo fixed... 2010-10-26 18:26:04 +00:00
Philip Eisenlohr 487466dd88 scripts are now aware of symbolic links to themselves... 2010-10-26 16:26:55 +00:00
Philip Eisenlohr 18344b4e65 forgot linebreaks and executable flag... 2010-10-26 15:32:03 +00:00
Philip Eisenlohr 5f64cacc74 generate alias in ~/bin for processing scripts 2010-10-26 15:02:20 +00:00
Christoph Kords f5f3ef5ecc * have to reset dotState to zero before call to collectDotState (only important for nonlocal calculation)
* in Fixed Point Iteration: update dependent states after state preguess was missing; on the other hand, the first call to constitutive_microstructure was obsolete
2010-10-26 14:04:33 +00:00
Christoph Kords 4439282239 no change to previous version, just forget to mention one important change of the last revision:
* fluxes are now again calculated and distributed only! by the originating material point. this means that the central MP might change the dotState of its neighbor. have to see whether locks slow down parallel computation
2010-10-26 13:49:58 +00:00
Philip Eisenlohr 5be6604fd6 included definitions of "material" and "geometry" properties after mesh generation... 2010-10-26 13:45:23 +00:00
Christoph Kords 62d06001ea * corrected compatibility for screws (always positive)
* detection of grain boundary in constitutive_nonlocal_microstructure with the help of transmissivity
* enforce positive densities in constitutive_nonlocal_microstructure (needed because dotState does not create cutbacks for negative densities anymore)
* reset single mobile densities below certain threshold to zero (also done in constitutive_nonlocal_microstructure)
* constitutive_nonlocal_kinetics only gets local state variable as input, no need for the entire array here
* dv_dtau is always positive
* multiplication is only active when there is already some initial density of the respective type
2010-10-26 13:42:18 +00:00
Christoph Kords 366d52bd71 * former "relevantRho" and "relevantResistance" is renamed to "atol_rho" and "atol_resistance" and now used as an absolute tolerance for the state residuum. before it was used rather as significant state, so whenever the state dropped below that value it was considered converged. (In dislotwin and titanmod constitutive law there is only one value atol_rho which is used for all the states, though the state array consists not only of densities. We need further parameters here!)
* somewhat simplified convergence check for adaptive euler and runge-kutta
2010-10-26 13:16:37 +00:00
Philip Eisenlohr d965f14f90 generate hexahedral mesh in Mentat based on a data file of Ricardo Lebensohn's "txfft" format (phi1, Phi, phi2, x, y, z, grainId, phaseId)
Only grainId is used, physical dimension and subdivisions need to be provided on command line.
improvement possible by parsing x, y, z columns to get those directly.
2010-10-25 17:57:57 +00:00