removed storage of full cauchy stres field from mpie_spectral.f90, only average is stored now
added cauchy stress and von mises equivalent calculation to spectral post.
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,:)
* 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!)
* 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
* 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?)
* 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
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
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.
* in Fixed Point Iteration: update dependent states after state preguess was missing; on the other hand, the first call to constitutive_microstructure was obsolete
* 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
* 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
added mpie_spectral2.f90, a version that should get the new algorithm proposed in 2010. until now, it is the same as mpie_spectral.f90 (large strain formulation by suquet et al) but with c2c, c2c FFT
added some parameters for spectral method to numerics.f90 (tolerance)
changed error message concerning spectral method in IO.f90
corrected calculation of stress BC in mpie_spectral.f90
* now remembering stiffness similar to how we do it for Lp etc.; avoids undefined stiffness values for nonconverged stiffness calculation
* non-local stuff:
* changed non-local kinetics (Gilman2002)
* enforce zero shearrate for overall carrrier density below relevant density
* enforce zero density for those states that become negative and were below relevant density before
* dislocation velocity is not limited by V^(1/3) / dt anymore
mpie_spectral.f90 uses both functions
math_Plain99to3333 is used for inversion of c0
math_mul33x3_complex is used for equilibrium check in fourier space
also did some cleaning up on mpie_spectral.f90
2) local stiffness calculation is now standard for non-local grains
3) stressLoopDistribution discriminates between (a) central solution and (b) stiffness perturbation
4) debugger is switched on as standard... (but verboseDebugger not!)
changes on mpie_spectral.f90:
new structure, changed variable names, now using defgrad instead of disgrad, cleaned up, removed augmented Lagrange.
ToDo: Implement Augmented Lagrange again (but then a working version), implement Large strain, think about complex-to real-transform backwards, try to implement MP-support
mesh:
elemType identification based on lower case
Abaqus now reports more errors
IO:
new function to inquire whether inputfile contains "parts"
new function to assemble multiply included inputfile into a flat one
awareness of range generation in element numbers
error reporting
started to commend Ricardos code, layoutet loops and removed some redundant variables.
until now, no error calculation is done. at the moment calculations are in an infinite loop