Commit Graph

2971 Commits

Author SHA1 Message Date
Christoph Kords 3d51dd36fa * Introduced preprocessor directives in order to suppress compilation of most write statements when using openmp. This tremendously improves efficiency of parallelization.
* Also added some more openmp directives to increase percentage of parallelized code.

* "implicit none" was missing in two subroutines of homogenization and constitutive.
2011-03-29 07:27:19 +00:00
Franz Roters 1b3dba4113 added -fpp switch to all compiler calls to explicitly use the precompiler
removed -save from OpenMP compiler calls to use OpenMP auto behaviour
2011-03-28 12:18:15 +00:00
Philip Eisenlohr 5c05c5d068 corrected mixed up array size for hardeningMatrices (twin/slip)
added explicit array range 1:lattice_maxNslip/twinFamily
2011-03-24 17:20:35 +00:00
Franz Roters fa323f3f0b removed division by zero from debug_reset(), uses huge() now 2011-03-24 07:38:56 +00:00
Franz Roters 78d4e7d1dc mpie_cpfem_abaqus_std.f: first call is with kinc==1
mesh: allow multiple element sets with identical material
2011-03-23 16:20:12 +00:00
Franz Roters 8467c91dab moved setup scripts back to subdirs where they are needed 2011-03-22 15:42:53 +00:00
Christoph Kords 31a570768b new error 237: singularity in internal stress calculation 2011-03-22 13:58:42 +00:00
Nan Jia 7be2edb10e added "texture
" as possible crystallite output => reports ID for later discrimination...
2011-03-22 13:40:27 +00:00
Christoph Kords b8b75edd7d no changes to previous version, just wanted to add some comment to the previous commit:
subroutine "constitutive_nonlocal_dotState" only affects the current dotState, so no need to pass the whole array as argument
2011-03-21 15:23:36 +00:00
Christoph Kords 9b1e1e35ea dotState 2011-03-21 15:18:09 +00:00
Christoph Kords 462eda6736 split parallel region in integrateStateFPI into two 2011-03-21 14:30:10 +00:00
Christoph Kords 5ee73dee72 age dotState before resetting it to zero, otherwise the statedamping does not work. 2011-03-21 13:06:11 +00:00
Franz Roters 8bef254be7 changed name to include *.py ending to make Windows file association work again 2011-03-21 11:58:24 +00:00
Christoph Kords fc6f2ae68f No need to call constitutive_microstructure at the beginning of each crystallite step, since it's already been done at the end of the previous step. Just do it once after initialization to start with correct values for the dependent state variables. 2011-03-21 10:35:42 +00:00
Christoph Kords 11138e3ee2 debugging output is now controlled by the "verbosity" parameter in the debug.config ranging from 0 (=almost no output) to 8 (=very detailed output)
0 : only version infos and all from "hypela2"/"umat"
1 : basic outputs from "CPFEM.f90", basic output from initialization routines, debug_info
2 : extensive outputs from "CPFEM.f90", extensive output from initialization routines
3 : basic outputs from "homogenization.f90"
4 : extensive outputs from "homogenization.f90"
5 : basic outputs from "crystallite.f90"
6 : extensive outputs from "crystallite.f90"
7 : basic outputs from the constitutive files 
8 : extensive outputs from the constitutive files

If verbosity is equal to zero, all counters in debug are not set during calculation (e.g. debug_StressLoopDistribution or debug_cumDotStateTicks). This might speed up parallel calculation, because all these need critical statements which extremely slow down parallel computation.
2011-03-21 10:31:17 +00:00
Christoph Kords 9d7ede7e03 extreme values of stress and jacobian now recorded in CPFEM_general. variable declaration and generation of output moved to debug module. 2011-03-17 13:13:13 +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
Philip Eisenlohr 6ac2b4cf88 deleted useless storage of data resulting in partial speed-up.
large datasets (>1 mio elements) cannot be processed at the moment---investigation required, why each element eats about 20kB of memory?
2011-03-11 16:32:01 +00:00
Franz Roters 97a0146672 deactivated one debug statement at the end of crystallite_updateState(g,i,e) as it leads to division by zero if constitutive_state(g,i,e)%p(1:mySize) contains zero values
statement should be changed to check for zero values
2011-03-11 10:05:30 +00:00
Philip Eisenlohr 1f0569230b new installation/setup dir to hold all top-level make_*-scripts 2011-03-11 09:20:37 +00:00
Philip Eisenlohr 41c0bf098c starting to substructure manual 2011-03-11 09:19:31 +00:00
Franz Roters bdc17f7d72 extended comment on modification of abaqus_v6.env 2011-03-11 09:05:09 +00:00
Philip Eisenlohr d860015d57 first shot at reviving the manual... 2011-03-11 08:43:29 +00:00
Philip Eisenlohr 621c1198a4 Marc/Mentat related things are only executed for filetype marc. this has been too lax before, causing trouble.
filetype is now lowercased right from the start, keeping effort low downstream...
2011-03-10 09:45:57 +00:00
Franz Roters 6475235fb4 included "-heap-arrays 500000000" in remark on how to change compile command 2011-03-08 08:18:04 +00:00
Franz Roters 18e668340f Abaqus interfaces dapted to newest version of the rest of the code
does not yet check for restart, have to check out first how restarts work in Abaqus
explicit code not checked as we do not have a license
2011-03-07 12:49:27 +00:00
Franz Roters 654b5ea987 set type for acos_arg 2011-03-04 14:57:22 +00:00
Franz Roters 2975c99144 now the maybe not perfect quartenions caused trouble in math_QuaternionToEuler 2011-03-03 14:23:39 +00:00
Franz Roters e7c7ccdcdd improper rotation matrix from pdecomposition could cause negative arguments in squareroot 2011-03-03 10:47:07 +00:00
Franz Roters 6667e94238 abaqus routines VGETOUTDIR and GETOUTDIR do not return the trailing slash, which we assume to be there, so it has to be appended 2011-03-03 10:29:59 +00:00
Christoph Kords 6b63d488cb need py_post, not py_mentat 2011-02-28 10:00:08 +00:00
Philip Eisenlohr 9312aed545 set executable bit 2011-02-27 21:51:56 +00:00
Martin Diehl 138e9c43eb some comments (talking to Ricardo) 2011-02-25 16:24:23 +00:00
Martin Diehl a6d1e5c911 now deleted old _single files 2011-02-25 12:49:18 +00:00
Martin Diehl 8cae4d609a some polishing for single precision version.
Now only prec and mpie_spectral are needed in different versions
2011-02-25 12:41:46 +00:00
Christoph Kords ad4706673b * removed calculations for dipole formation/dissociation by stress change, since it is not used anyways; also removed associated constitutive outputs from material.config
* removed input variables in constitutive_collectDotState and constitutive_postResults that are not needed anymore (because of recent changes in constitutive_nonlocal)
2011-02-25 09:53:20 +00:00
Martin Diehl cd5407b08b removed all math functions only for double precision by the more flexible counterpart, e.g. "dsqrt --> sqrt", "dsin --> sin". Should not cause any harm, as long as "implicit none" is used.
Now it is possible to compile a single precision spectral solver/crystal plasticity by replacing mesh.f90 and prec.f90 with mesh_single.f90 and prec_single.f90.
For the spectral method, just call "make precision=single" instead of "make". Use "make clean" evertime you switch precision
2011-02-25 09:25:53 +00:00
Christoph Kords 2f503f5cdb added "Lp" as crystallite output 2011-02-25 08:15:26 +00:00
Christoph Kords e022810e66 fixed problem in internal stress calculation for periodic neighborhood 2011-02-25 08:10:11 +00:00
Martin Diehl f525c02ded added single precision libraries for FFTW
First try of implement single precision crystal plasticity, not working yet.
polishing text about geometry construction.
polishing postResults, still having problems concerning machines without MSC installation
2011-02-24 18:39:57 +00:00
Christoph Kords e49e5e13af * in flux calculation: take care of special case for single element model
* do not overwrite "constitutive_nonlocal_rhoDotFlux" when doing a state perturbation, so we can use it for output
2011-02-24 10:01:41 +00:00
Christoph Kords 8aef9b1c13 check for twin nodes only in direction of the surface normal. this solves a problem with models of single element thickness and periodic fluxes. 2011-02-24 09:26:30 +00:00
Christoph Kords fed53a7e60 in subroutine "mesh_marc_get_mpieOptions": need at least one additional string after keywords "$mpie" and "periodic", not two as it used to be 2011-02-23 12:33:51 +00:00
Christoph Kords 430966eb20 sorry, forgot to commit the numerics.f90, too 2011-02-23 12:30:52 +00:00
Christoph Kords 96d3682d5e * new global integer variable "numerics_integrationMode" (1 indicating integration of central solution, 2 indicating integration of perturbed state)
* combined "integrator" and "integratorStiffness" in new global variable "numerics_integrator"
2011-02-23 08:29:51 +00:00
Christoph Kords d835380bc0 * "constitutive_nonlocal_flux" is set to zero in "constitutive_nonlocal_dotState", not in "constitutive_nonlocal_microstructure"
* dislocation flux and internal stress calculation now consistent with new definition of slip system lattice according to paper (polarity of screws inverted)
2011-02-23 08:08:06 +00:00
Martin Diehl 3c944e79fa did some things Philip told me to do (postResults for spectral files is now working without MSC installation) 2011-02-22 16:18:47 +00:00
Philip Eisenlohr 003b0def46 fixed a stupido error 2011-02-22 16:06:24 +00:00
Martin Diehl 333445be8b changed meshing routine from python to fortran (f2py) 2011-02-22 16:00:22 +00:00
Philip Eisenlohr 2dc3b35725 no need anymore for msc python interface when dealing with spectralOut files 2011-02-22 15:57:27 +00:00