Martin Diehl
8f90f1f1f9
corrected description of algorithm to invert matrix
2011-08-30 07:29:13 +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
380a536b45
homogenization_*, constitutive_*, DAMASK_spectral_interface: did some polishing regarding init output
...
makefile: corrected spelling mistake
2011-08-26 13:57:29 +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
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
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
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
Martin Diehl
bb1ca2330b
added option to enable use of AMD math core library, added comments on the various parameters
2011-08-10 16:00:02 +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
Onur Guevenc
4f1cb3a8af
exchanged forall with nested do loops... Bye, bye smatrix warning, will miss you!!
2011-08-03 17:58:16 +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
Christoph Kords
422d6d9c6c
slight correction of debugging output
2011-08-02 12:36:08 +00:00
Christoph Kords
ef7405fe21
Stress integration now uses Armijo rule to find an appropriate correction of Lp: decreases step in case that residuum does not improve significantly, accelerates as usual in case of good convergence. This turned out to improve convergence behavior.
2011-08-02 11:29:08 +00:00
Christoph Kords
6f859e99de
* internal stress calculation now considers dead dislocations always at the interface, not at the center of the IP volume; used to merge them together with "normal" dislocations for stress calculation.
...
* dislocation flux is blocked if we encounter a sign change in the resolved shear stress from the central ip to the neighbor
* do not set density to zero if below certain threshold; this creates an artificial sink term
2011-08-02 11:17:45 +00:00
Christoph Kords
0373fa64e4
have to initialize constitutive_state during constitutive_init, since the first call to constitutive_microstructure (where we already need the state) is done before the cutback scheme starts.
2011-08-02 11:10:41 +00:00
Martin Diehl
75c67f53f7
introduced alternative location for material configuration.
...
If present, the >>>JOB.materialConfig<<< file takes precedence over the standard >>>material.config<<<
2011-08-02 10:14:16 +00:00
Martin Diehl
564eb5009f
shape mismatch in crystallite, invalid names for variables(pos, size) in homogenization corrected. polishing of DAMASK_spectral_interface and makefile
2011-08-01 18:10:55 +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
Philip Eisenlohr
06a4ac2565
fixed bug (segmentation fault) occurring for non-renumbered meshes: ipNeighborhood building did use FE IDs of twin nodes to address memory -- dangerous..!
2011-07-31 15:42:59 +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
Franz Roters
aa714a3d84
some textconstants were wider than specified in the format string, this might have caused Abaqus to crash due to an illegal memory reference (signal 11)
2011-07-29 14:54:26 +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
Philip Eisenlohr
2e9c605571
somehow forgot to move the numerics.config into the config subdir...
2011-07-21 08:40:45 +00:00
Franz Roters
e92e5cae53
restarting now works with Abaqus (standard, cannot test explicit due to lack of license)
...
you have to specify the job you are restarting from in the job description (cae), if you prepare your input file by hand this is the first line after *Heading
example: if the first job was using Oldjob.inp the first entry in the job description needs to be Oldjob (without the .inp)
as for Marc restart works only from last converged increment, i.e. ther restart writing should be specified like this:
*retsart, write, frequency=1, overlay
Overlay is not essential but saves a lot of disk space and as stated before you can only restart from the last converged increment anyway
2011-07-18 09:15:20 +00:00
Philip Eisenlohr
8c65cb9ea6
small output polishing
2011-07-15 12:25:38 +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
8153cd50b4
added spectral numeric parameters to numerics.config, changed values for spectral numeric parameters in numerics.f90 to more suitable values for new method for determination of divergence in Fourier space
2011-07-11 14:28:56 +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
3985a98da7
changed default to "no clean". if clean-up required, use '--clean' option!
2011-06-15 16:40:34 +00:00
Philip Eisenlohr
480021e788
added '--noclean' option
2011-06-14 14:56:10 +00:00
Philip Eisenlohr
1877026d86
sorry, dangling "endif"...
2011-06-14 14:35:55 +00:00
Philip Eisenlohr
cc925cadee
changed output/debug-level relation for two statements
2011-06-14 14:08:13 +00:00
Philip Eisenlohr
a26d9c844b
max size of crystallite result is now based on actual use within the mesh, not just picking the largest chunk from the material.config file...
2011-06-08 09:16:48 +00:00
Philip Eisenlohr
8041587a72
changed internal debug verbosity in accord with debug.config listing.
2011-06-06 15:27:35 +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
9a64f3dd85
* comments are now recognized by IO even when they do not appear at the beginning of the line
...
* no need for the zero entries in the material.config anymore
2011-05-30 09:09:19 +00:00
Christoph Kords
bbf75f3fb5
cannot omit entries for second to fourth slip system family, though they are zero
2011-05-30 07:53:41 +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
Franz Roters
2418dfe96d
changed MPIE_NUM_THREADS to DAMASK_NUM_THREADS
2011-05-28 09:42:25 +00:00
Christoph Kords
e39445ee7a
dead dislocations now exert a backstress on their "home" MP
2011-05-26 09:35:42 +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
Christoph Kords
a910c469df
update of nonlocal material parameters
2011-05-20 08:11:22 +00:00
Philip Eisenlohr
808a6d6ad6
+ error box + now tells error number (useful for Abaqus)
2011-05-13 16:55:13 +00:00
Philip Eisenlohr
1baae024cb
added two more <crystallite> examples
2011-05-13 16:54:08 +00:00
Philip Eisenlohr
d366a53f4e
probably installation is a better place for the abq.env file
2011-05-11 17:10:45 +00:00
Philip Eisenlohr
fa98133f8e
renamed interface from "mpie_interface" to "DAMASK_interface"
2011-05-11 17:01:03 +00:00
Philip Eisenlohr
75192789e8
added making of DAMASK_spectral.exe
2011-05-11 16:45:37 +00:00
Philip Eisenlohr
43cc68555b
observe new include subdirectory
2011-05-11 16:40:51 +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
Christoph Kords
a0bec65c7b
Last version didn't compile, because of missing keyword "call" in front of subroutine call to IO_error
2011-05-09 08:49:03 +00:00
Philip Eisenlohr
660c9212f8
introduced error 667 for out of bounds user result requesting
2011-05-04 16:02:18 +00:00
Philip Eisenlohr
affd383ef8
simplified disorientation calculation. performed FEM check that "grainrotation" reflects the *active* rotation from the starting orientation to the current one with respect to the lab coord system (as expected).
2011-04-14 19:09:44 +00:00
Christoph Kords
5814262f55
moved some write statements within stateIntegrationEuler
2011-04-14 09:35:56 +00:00
Philip Eisenlohr
349f022100
reinstantiated calculation of grainrotation (still needs check for correctness, i.e. active or passive rotation output)
2011-04-13 16:08:52 +00:00
Franz Roters
7d84a0911e
removed unused variables
2011-04-13 14:16:22 +00:00
Christoph Kords
b4678112cd
sorry, last version did not compile. now with correct encoding.
2011-04-13 11:51:46 +00:00
Christoph Kords
dd2057bac5
changed header to unicode utf-8 encoding
2011-04-13 11:24:36 +00:00
Philip Eisenlohr
ef4fc9d0ee
added <crystallite> output "texture" to list of examples
2011-04-12 15:33:29 +00:00
Franz Roters
c1b8391110
changed enconding of all source files to UTF-8 without BOM (signature) Codepage 65001
2011-04-07 07:20:28 +00:00
Christoph Kords
4d0fefd231
security factor of 1.2 for CFL condition in constitutive_nonlocal_dotState
2011-04-06 11:47:24 +00:00
Philip Eisenlohr
51763ed93e
corrected number of incs reported in spectralOut-file
...
inc 0 contains undeformed results
plus lots of typographic polishing
2011-04-06 09:58:17 +00:00
Franz Roters
7c7c929455
added comments on origin of files
2011-04-06 09:40:39 +00:00
Christoph Kords
4ea1fe436b
added check for CFL condition in constitutive_nonlocal_dotState
2011-04-06 09:07:36 +00:00
Philip Eisenlohr
e00d073ee3
added new 2D triangle elements
...
added some sourcecode commenting on internal database formats
corrected database to allow for ipVol and Area calc in 2D element cases
2011-04-06 08:35:37 +00:00
Franz Roters
fcdb805225
added copyright text to all f90 (free) format files
2011-04-04 14:09:54 +00:00
Christoph Kords
6ca8942f62
choose correct output format for debug_verbosity: integer instead of logical
2011-04-04 08:38:55 +00:00
Christoph Kords
790dbed1e4
* removed last remnants of old debugger
...
* replaced "dble" intrinsic function by "real" with pReal kind in constitutive_nonlocal.f90
* removed useless line breaks in output of state in CPFEM.f90
2011-04-04 08:34:52 +00:00
Alankar Alankar
06fc83ac14
Final version of titanmod
2011-03-31 09:21:43 +00:00
Franz Roters
fc471d73f3
added Arun to list of authors
2011-03-30 14:39:28 +00:00
Christoph Kords
c36968fc68
distance for periodic images in internal stress calculation was incorrect
2011-03-30 11:57:41 +00:00
Franz Roters
08da2b5e4d
added minimum abaqus_v6.env file containing all changes necessary for the use of the MPIE subroutine
...
changed comments in interface routines to refelect this
2011-03-29 13:49:50 +00:00
Franz Roters
e9e6abbdaf
introduced variables for compiler options
...
added -fpp switch to invoke precompiler
2011-03-29 07:55:38 +00:00
Christoph Kords
314ca3fe7f
Internal stress calculation in nonlocal model: instead of integration of excess gradients (->Bayley) we now sum up contributions from adjacent superdislocations within a certain radius R. When periodicity is used, also periodic images are considered in stress evaluation.
2011-03-29 07:34:33 +00:00
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
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
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
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
Franz Roters
bdc17f7d72
extended comment on modification of abaqus_v6.env
2011-03-11 09:05:09 +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
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
8dd1a694a3
extended IO to cope with different name for solverJob and Model
...
polishing, added error codes
added FFTW library files
2011-02-21 14:37:38 +00:00
Christoph Kords
b21c153761
restructured constitutive_nonlocal_compatibility and incorporated the "surfaceTransmissivity" in the compatibility calculation
2011-02-16 16:38:18 +00:00
Christoph Kords
24d33bf2ff
* added a new material parameter "surfaceTransmissivity" (default value 1.0) which allows to change the transmissivity of the material surface between 0 and 1
...
* now complaining when encountering an unknown nonlocal parameter in material.config
* use same error ID for all material parameters out of bounds
* symmetric flux calculation in side dotState can now be omitted (because of new treatment of periodicity)
* switching back to "local flux balance" (add leaving and entering fluxes at central MP, don't touch neighbor) instead of "flux distribution" (subtract leaving fluxes from central MP and add them at neighboring MP). This has the advantage that there is almost no need for CRITICAL statements in parallelization, so hopefully this results in some speed up.
2011-02-16 16:35:38 +00:00
Christoph Kords
8f626c8989
Now able to have real periodicity for fluxes (fluxes leaving the model on one side enter on the other side).
...
To enable this feature one has to add the following somewhere in the marc input file:
$mpie periodic x y z
for having periodicity in all directions
$mpie periodic z x
for having periodicity in x and z direction
etc.
Note that this only works for regular meshes!!!
2011-02-16 16:23:08 +00:00
Alankar Alankar
89ed6f5f66
Did not compile. Fixed missing ,
2011-02-15 12:29:01 +00:00
Alankar Alankar
c39e04644b
Sorting of hex slip-systems done in update 659 was missing. Included again.
2011-02-15 12:21:54 +00:00
Martin Diehl
438bf95105
added ft-based reconstruction of deformed configuration to postprocessingMath.f90 and postprocessingMath.pyf
...
also added function to calculate average of tensor
some polishing in mpie_spectral.f90, added sanity check to see im resolution is power of 2
2011-02-14 17:21:31 +00:00
Philip Eisenlohr
171f5375f1
shearrate output now with sign (no |abs| as before)
2011-02-11 10:19:41 +00:00
Martin Diehl
3d7fad6ba9
mpie_spectral.f90: changed fourier transormation, now using the advanced interface to do the tranformation both ways with just one call. now also using the same variable for pk-stress in both domains and the change of deformation gradient in both domains.
...
postprocessing: renamed name of python/f2py modul from "reconstruct" to "postprocessingMath", added some numerical operations to use for postprocessing.
2011-02-09 17:47:28 +00:00
Christoph Kords
803e1a8c05
In order to help preventing further memory leaks all array sections now have an explicit instead of assumed shape, e.g. Fe(1:3,1:3) instead of Fe(:,:).
2011-02-09 13:12:46 +00:00
Christoph Kords
466ced911e
* check convergence for nonlocals also in stiffness calculation mode
2011-02-09 08:39:07 +00:00
Christoph Kords
921967c2ba
* found memory leak in nonlocal model! "constitutive_nonlocal_rhoDotFlux" has to have upper index bound of 10 for second dimension, not 8.
...
* need to recalculate dislocation velocity in postResults, otherwise we take values of last perturbed state! So the following outputs were up to now showing the perturbed state: shearrate, dislocation velocity, all density rates!
2011-02-09 08:28:47 +00:00
Christoph Kords
17a6c0e59b
enhanced comment on dislocation kinetics
2011-02-08 12:48:50 +00:00
Christoph Kords
6731659aa4
added hint that extreme values of stress and tangent belong to previous cycle
2011-02-08 12:43:30 +00:00
Christoph Kords
0a30fb739a
now reporting extreme values of stress and tangent, that were returned to marc, in output file
2011-02-08 10:25:51 +00:00
Martin Diehl
7a7ca1aab7
mpie_spectral and mpie_interface: changed workingdir from pathToLoadFile to pathToGeomFile
...
mpie_spectral and numerics: added switch to prevent pre calculation of gamma_hat. slower, but saves memory
3Dvisualize: started to add support for gmsh (not fully working yet)
reconstruct: new version of f2py/Fortran subroutines for output of results from spectral method
2011-02-07 14:35:42 +00:00
Christoph Kords
faba13f7fd
* now able to introduce some scatter in the initial single dislocation density (only for nonlocal model!) ; setting the parameter "rhoSglScatter" to a positive value generates a gauss distribution for the dislocation density with standard deviation equal to "rhoSglScatter"
...
* dislocation stress calculation is only done for nonlocal constitution ("/nonlocal/" keyword is present in material.config)
2011-02-04 15:41:32 +00:00
Alankar Alankar
b362755457
grain orientation shuffling was skipped for /elemhomo/. no clue why, now dropped...
2011-02-03 17:25:58 +00:00
Martin Diehl
fec2c14a4e
removed hard-coded tolerances from mpie_spectral and put them to numerics/IO
...
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.
2011-01-31 17:07:42 +00:00
Christoph Kords
b72d75ed05
corrected indices in flux density output
2011-01-28 12:49:58 +00:00
Philip Eisenlohr
c00a42a9a4
fixed last remaining tensor outputs to their transposed versions
2011-01-27 14:29:06 +00:00
Martin Diehl
aa7d5afd94
changed ifort options back to previous ones as -fast is not working
2011-01-26 13:33:44 +00:00
Christoph Kords
05d4d5fef2
* kinetics now according to Mohles; enables solid solution hardening
...
* changed example in material.config accordingly
2011-01-26 10:17:42 +00:00
Philip Eisenlohr
6ac06af517
sorry, forgot to alter the most important part: post_results..! eventually, the t16 has defgrads and friends in correct format: du_i/dx_j is listed as linear array (1,1),(1,2),(1,3),(2,1),...
2011-01-24 16:23:37 +00:00
Philip Eisenlohr
4ee40df5ba
transposed writing into t16 file (and screen/debug) did not work with just stating array(1:3,:)...
...
fixed by using math_transpose3x3 (and similar) instead.
2011-01-24 15:02:19 +00:00
Philip Eisenlohr
794aeb253b
crystallite and CPFEM now print/output tensors in ij notation (used to be, particularly in the t16, ji, i.e. transposed...)
...
math reports random seed used for rnd() generation
2011-01-20 19:25:45 +00:00
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
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
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
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
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
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
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
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
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
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
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
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
Martin Diehl
26cb618b6d
changed calculation to small strain/cauchy stress
2010-10-20 11:27:10 +00:00
Martin Diehl
da35eaa8a1
changed spectral algorithm to version proposed by Ricardo 2001 (using tau_field instead of stress_field).
...
Still using largestrain-formulation
2010-10-20 09:27:47 +00:00
Martin Diehl
3837dad51e
fixed bug in mpie_spectral.f90 concerning spectral method (now deltaF hat get the right value)
...
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
2010-10-20 08:59:00 +00:00
Christoph Kords
e49de75fe3
stiffness calculation now only needs a single function call to the respective integrator method instead of one call per grain (which seems to heavily slow down the computation). also no special treatment for non-local material points anymore.
2010-10-15 14:57:13 +00:00
Christoph Kords
fffe731447
* had to correct nonlocal slip system compatibility and flux calculation. last update gave wrong results.
2010-10-15 13:19:26 +00:00
Philip Eisenlohr
61f8a5fcbe
corrected UpperCase "SolidSolutionStrength" in config file parsing.
2010-10-15 12:59:00 +00:00
Martin Diehl
3c502561ee
added matrix multiplication 3333x33 to math.f90
...
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
2010-10-13 16:04:44 +00:00
Christoph Kords
724960686f
* in nonlocal model: dislocation flux now with valid description also for large angle grain boundaries; transfer of dislocations from one slip system to the other according to new variable "constitutive_nonlocal_compatibility" which depends on the angle between slip plane normals and slip directions and is updated once per cycle in function "crystallite_orientations"
...
* reactivated debugging functionality for "non-standard" integration methods
2010-10-12 13:08:54 +00:00
Christoph Kords
efd92d9b51
allocation of special state variables for "non-standard integration" was erroneous. used to produce segmentation fault for integration method 4 and 5.
2010-10-12 12:11:24 +00:00
Christoph Kords
fce7590c17
* now able to choose method for state integration (integrator and integratorStiffness in numerics.config); standard is "Fixed Point Iteration", which is basically the same as before; others available are "Explicit Euler", "AdaptiveEuler", "Classical Runge-Kutta" and "Runge-Kutta Cash-Karp"
...
* 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
2010-10-01 12:18:49 +00:00
Martin Diehl
9927cd7adb
changed format of resolution. instead of reading exponent of two, now the number given equals directly to the number of FPs. Allows us to use arbitrary number of FPs.
...
example:
OLD: reading 5 results in 2^5=32 FPs
NEW: reading 33 results in 33 FPs
2010-10-01 10:42:15 +00:00
Alankar Alankar
2cc7bc38d7
Fixed a missing ','. Assigned plane and direction names.
2010-10-01 06:32:44 +00:00
Philip Eisenlohr
1ae252c1ce
altered hexagonal slip systems
...
(needs comparison to former set, which is potentially wrong)
2010-09-30 17:31:19 +00:00
Claudio Zambaldi
b85f9b0770
material.config: changed texture of microstructure 1 from 1 to 3, because 1 needs a ODF file which is not in the repository and makes the one_element_model.proc complain.
2010-09-30 12:55:38 +00:00
Philip Eisenlohr
a8dfdc6487
added _mul33xx33 double contraction: A_ij * B_ij = scalar
2010-09-30 09:32:49 +00:00
Christoph Kords
cb4b4afc88
corrected header for math_qRot
2010-09-30 08:46:58 +00:00
Philip Eisenlohr
b259fbd9c6
1) added distribution of leapfrog breaks
...
2) lattice_symmetryType is now a function (former lookup array was buggy)
3) stricter check of state var values (>0!) and memory deallocation done
2010-09-30 07:31:53 +00:00
Alankar Alankar
e562df35a9
Added more state dependent variables in post results.
2010-09-29 06:35:08 +00:00
Martin Diehl
5a51082977
polishing, changed calculation of stress BC.
...
prevent updating of gamma hat in case of perfect plasticity
2010-09-24 13:27:53 +00:00
Alankar Alankar
d94236b2d6
Declaration of filename etc. was missing. Fixed now.
2010-09-23 09:13:46 +00:00
Philip Eisenlohr
83a921eec2
crystallite: polishing
...
rest: added "$ID" and line ending settings...
2010-09-23 08:05:50 +00:00
Philip Eisenlohr
a467fb4ae3
forgot "$ID" and setting line endings...
2010-09-23 08:03:00 +00:00
Philip Eisenlohr
89136afade
debug now has config file, too
2010-09-23 08:01:41 +00:00
Martin Diehl
6ea8623f65
added functions math_mul33x3_complex math_Plain99to3333 to math.f90.
...
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
2010-09-22 12:04:43 +00:00
Alankar Alankar
80618c9814
Cleaned-up, rearranged state variables
2010-09-22 09:00:40 +00:00
Alankar Alankar
7548858ffa
Some useful changes in damper for quicker convergence.
2010-09-22 08:54:36 +00:00
Martin Diehl
604992a9e1
fixes bugs in screen output, changed gmsh output, now the deformed mesh is written out
2010-09-22 08:51:34 +00:00