Commit Graph

303 Commits

Author SHA1 Message Date
Philip Eisenlohr cbd7c279d4 changed Line Ending to Unix style (LF) 2009-01-19 19:10:58 +00:00
Philip Eisenlohr abb2e3ef30 introduction of logical "wantsConstitutiveResults" 2009-01-19 19:10:02 +00:00
Philip Eisenlohr 82e65648a2 major debugging and streamlining of the calculation of ipVolumes and
ipAreas
2009-01-19 18:42:31 +00:00
Philip Eisenlohr e3e42fdf44 shell script taking two arguments and setting CPFEM_xxx and
constitutive_yyy symbolic links from those
2009-01-19 13:37:37 +00:00
Philip Eisenlohr 4b67529aaf added full description of element type 2 2009-01-16 17:36:37 +00:00
Philip Eisenlohr 8788cc4f8a description of element type 2 2009-01-16 17:35:14 +00:00
Eralp Demir 483896218f added functions
-- mesh_build_subNodeCoords
-- mesh_build_ipVolimes
-- mesh_build_ipAreas

new globals mesh_ipVolume and mesh_ipArea / mesh_ipAreaNormal contain the volume per IP, area of the interface to aach neighboring IP and the outward pointing unit normal vector of these interfaces
2009-01-16 15:29:57 +00:00
Eralp Demir de04c4cccd added functions
-- math_volTetrahedron: calc the volume of a tetrahedron from four vertices
-- math_vectorproduct: return vector product of two dim(3) vectors

rendered most of the math lib to be "pure" functions
2009-01-16 15:27:13 +00:00
Eralp Demir 1529d6115d rendered most of the functions to be "pure" 2009-01-16 15:25:37 +00:00
Philip Eisenlohr 9d14dbde2b started to document things with the description of the "all-purpose" element 7 (or 3DC8) as interpreted by mesh.f90 2009-01-16 08:29:03 +00:00
Franz Roters 7b076185b2 This is a major update.
I restructured the subroutine in view of non local constitutive models.
ATTENTION OpenMP parallelization does not work with this version, needs some more work.
ATTENTION CPFEM_GIA8.f90 is not addopted to the new scheme and will NOT work, should actually be renamed CPFEM_RGC.f90 ;-)
I removed crystallite.f90, the routines are now in CPFEM_*.f90.
I removed the marc2005 interface routine since it is outdated.
2008-11-28 07:39:39 +00:00
Franz Roters e8cd7cef94 fixed a small bug: text about finding symmetric solver was always written to out-file 2008-11-27 15:11:44 +00:00
Franz Roters 824cec5ca1 correct error in case of outdated FFN1: element number is cp_en not e 2008-11-11 14:57:20 +00:00
Philip Eisenlohr db245e8935 a small text file to remember ideas for code improvement 2008-11-10 08:41:32 +00:00
Luc Hantcherli 3ec8ec6b15 New version of constitutive_dislo.f90, where some dangerous spots were reformulated.
PROBLEM: [001] in tension does not have a symmetrical change of shape, which is definitely not good at all. I checked my implementation and I really do not see any errors. Could someone check it out? Can it comes from the numerical integration?
2008-11-07 16:34:29 +00:00
Luc Hantcherli 6e13ed0566 I will proceed step by step.
constitutive_dislo.f90 contains a modified version of Anxin's dislocation based model. As far as tested it, I consider it now error free. Mechanical twinning is NOT implemented YET.
mattex.mpie file is modified in accordance with the changes in constitutive_dislo.f90
It would be a great help if someone else can check the implementation. I may have overseen something.
2008-11-06 13:09:12 +00:00
Franz Roters 9692f2f3d3 added mpie_cpfem_marc2008r1_sequential.f90 2008-10-30 11:18:10 +00:00
Franz Roters 1a5a68c87a added interface routine for Marc2008r1
this includes two files: concom_f90 and creeps_f90
so you either create links of that name to the new files concom2008r1 and creeps2008r1 or rename copies of those files accordingly
2008-10-29 15:28:10 +00:00
Franz Roters fa7cf61fd9 FEsolfing.f90: - added flag for symmetric solver
- added subroutine to detect symmetric solver

mesh.f90: - added subroutine call in mesh_init to detect symmetric solver during input file parsing

mpie_cpfem_marc2005r3.f90
mpie_cpfem_marc2007r1.f90
mpie_cpfem_marc2007r1_sequential.f90: - resorted include order of other source files
                                      - symmetrize d in case a symmetric solver is used

constitutive_pheno.f90: - included code to output shear rates and shear activity as post results

CPFEM_GIA8.f90
CPFEM_Taylor.f90
CPFEM_Taylor_sequential.f90: - symmetrize H_bar
                             - generalized reference to CPFEM_results in call of SingleCrystallite
2008-09-22 08:36:51 +00:00
Luc Hantcherli 3216976d62 Question: do we have to symmetrize H_bar? 2008-08-19 14:02:14 +00:00
Yun Jo Ro b3814020f3 added slip and twin systems for hcp lattice structure
added straightforward 48x48 interaction matrix
2008-08-06 14:48:11 +00:00
Philip Eisenlohr 7faaa8532c this provides adapted functionality to go with the sequential wrapper.
moved recording of temperature, ffn, and ffn1 into case of computation
mode 1,2 to be directly used in the subsequent (and now FE sequential)
call to MaterialPoint.
2008-08-01 07:58:59 +00:00
Philip Eisenlohr db69217ce1 removed computation mode 3 (collect) such that now every cycle will
compute with either mode=1 (new inc) or mode=2
2008-08-01 07:54:32 +00:00
Philip Eisenlohr 10358fc1f0 (hopefully) improved the cutbacking scheme somewhat. introduced a bunch
of debugging to the .out file
2008-08-01 07:47:01 +00:00
Franz Roters cf1c7ce82a replaced almost all calls of matmul by our own code, gives better performance in parallel computations 2008-07-23 12:49:40 +00:00
Philip Eisenlohr 6abff4b3ba changed hybridIA_population from being wrong integer type to correct real
type.
2008-07-16 16:35:13 +00:00
Philip Eisenlohr bdcf76cd74 fixed stupidity in hybridIA evaluation. added informative output during
ODF parsing.
2008-07-16 14:49:17 +00:00
Franz Roters 7a7a5d2ae3 messed up the parameter list of TimeIntegration with the last submit 2008-07-15 08:32:44 +00:00
Franz Roters 4773cf7d09 corrected determination and evaluation of updateJaco
introduced check whether FFN1 changed and force recollect in that case
2008-07-14 14:38:19 +00:00
Philip Eisenlohr 63d81b92b7 added math_mul33x33, 66x66, and 99x99 to avoid OMP_Critical "evilmatmul" 2008-07-08 19:38:22 +00:00
Franz Roters de9e35cdb8 modified cutback counting
restore Lpguess_old in case of iInner > nInner
2008-06-25 06:26:41 +00:00
Luc Hantcherli 7453a18b42 in lattice:
- add slip-twin interaction type matrix
2008-06-17 14:42:45 +00:00
Luc Hantcherli 434ac7f06e In dislo:
- model for stacking fault energy computation w.r.t temperature and orientation
- classical thermodynamical approach to twin nucleation (delta_E)
- rename some parameters

In crystallite:
- add msg='ok', even if components in consistent tangent are not re-computed
- allow for pseudo-convergence in the outer-loop (case of slow convergence of dislocation densities)

in mattex:
- add new parameters
2008-06-17 14:40:46 +00:00
Franz Roters 2472de77c2 OpenMP seems to work now
watch out for critical sections
write and matmul statements need to be marked accordingly!!!
2008-06-17 13:15:36 +00:00
Philip Eisenlohr 6921c57c7d rev 225 had a small syntax error... 2008-06-17 11:54:34 +00:00
Philip Eisenlohr 3676b453ca added two more element types (157 and 136) 2008-06-17 09:11:54 +00:00
Philip Eisenlohr 5834a2965d fixed bug in mesh_build_sharedElems which so far counted nodes in
distorted elements twice -- part of this problem has already been fixed
with revision 182 but then only in getNodeElemDimensions.
M    mesh.f90
2008-06-16 20:49:48 +00:00
Denny Tjahjanto d2335e4a0b 2008-06-10 10:23:32 +00:00
Franz Roters 60f3571266 added code lines for OpenMP, however it does not work yet! 2008-05-26 13:11:25 +00:00
Philip Eisenlohr 51e596c81d small polishing to be compatible with NAG compiler (basis for automatic differentiation) 2008-04-29 12:18:17 +00:00
Luc Hantcherli 9626c25bfb crystallite: restoration of last known good Lp_guess
CPFEM_Taylor: exit whenever cutback limit exceeded
2008-04-28 16:04:08 +00:00
Philip Eisenlohr cdb2dd8808 crystallite:
added full check whether residuum in inner loop is NaN
SingleCrystallite now takes/stores Lp guess

CPFEM_Taylor (missing in GIA!!):
former fully plastic guess for Lp has been exchanged by keeping the last converged Lp (global array CPFEM_Lp) to serve as new best guess for the next time step. This speeds up the inner loop of TimeIntegration.
2008-04-16 17:00:28 +00:00
Luc Hantcherli fa2d6b9b6d Make use of average consistent tangent dPdF_bar to fill eventual holes in the individual dPdF of one orientation (during consistent tangent calculation) 2008-04-11 13:04:25 +00:00
Luc Hantcherli 664a29c183 Subscript Crystal_ changed to Lattice_ according to the module Lattice 2008-04-10 12:13:37 +00:00
Denny Tjahjanto 9d2ce61698 A revision for CPFEM_Taylor.f90. 2008-04-10 11:22:17 +00:00
Franz Roters d2312e81ff deleted CFPFEM.f90 and crystal.f90 from repository
adopted mattex.mpie to use lattice_structure  instead of crystal_structure
2008-04-09 15:35:16 +00:00
Denny Tjahjanto 12dfbaf6b4 # separated CPFEM_Crystallite from CPFEM. Now in separate module crystallite.f90 as "SingleCrystallite"
# improved SingleCrystallite to advance by true cutbacking (instead of improving guess and integrating always from t_0)
# module "crystal" renamed to "lattice" together with its prefix for variables
# extension of "computationMode" to deal with cutbacks (CPFEM_general).
# cutback and new inc detection for MARC is based on common block variable cptim (and inc), not incsub anymore!
# generalized GrainInterAction as new homogenization scheme

# two symbolic links are required: constitutive.f90 and CPFEM.f90
2008-04-07 14:54:29 +00:00
Denny Tjahjanto c063ce5bc1 add a kronecker delta function 2008-03-27 11:54:34 +00:00
Denny Tjahjanto 5462d2c754 just a correction for a little typo :P 2008-03-27 11:53:53 +00:00
Denny Tjahjanto f3eda7cdaa include a new function epsilon_ijk, i.e., the permutation function (used to compute the cross product of two tensors) 2008-03-26 13:35:01 +00:00
Denny Tjahjanto 92ee2cbf7d to include 2 material parameters, i.e., grain size and the length of burgers vector used in GIA model 2008-03-26 09:33:12 +00:00
Luc Hantcherli cc7e13d351 New update of constitutive_dislo.f60 considering the changes in mesh.f90 (see map_ElemType)
Parameters assignation, hardening matrices and constitutive equations are PROPERLY implemented (tested)
Comparison to my own old subroutine: on going
2008-03-25 14:19:22 +00:00
Philip Eisenlohr 7faf4093a5 reflect change of mesh_element(2,e) in mesh.f90
-change of  line, and those below, will be ignored--

M    constitutive_pheno.f90
2008-03-25 13:59:22 +00:00
Philip Eisenlohr 3640a48095 changed element type mapping to be performed right after input file
parsing. mesh_element(2,e) now contains INTERNAL type index -- no
subsequent mapping necessary anymore!
2008-03-25 12:52:27 +00:00
Luc Hantcherli 6d721dc16c Modifications of cpfem_marc2005r3 according the ones in cpfem_marc2007r1 2008-03-14 21:56:46 +00:00
Philip Eisenlohr 1267ce78b6 CPFEM_general now independed of the wrapper code (UMAT, hypela2, etc.)
renamed CPFEM_stressIP to CPFEM_MaterialPoint
renamed CPFEM_stressCrystallite to CPFEM_Crystallite

introduced new global variables to keep track of FE state within module
FEsolving
2008-03-14 21:32:57 +00:00
Philip Eisenlohr 7975d62586 CPFEM_general now independed of the wrapper code (UMAT, hypela2, etc.)
renamed CPFEM_stressIP to CPFEM_MaterialPoint
renamed CPFEM_stressCrystallite to CPFEM_Crystallite

introduced new global variables to keep track of FE state within module
FEsolving
2008-03-14 21:29:31 +00:00
Luc Hantcherli 0a08d9eff0 Corrected errors from the last release of constitutive_dislo
Changed parameter designation in mattex file
2008-03-14 16:23:08 +00:00
Denny Tjahjanto 6950eee59b altered stress and strain "language" to first PK and deformation gradient.
plot_results are now part of the crystallite result and not explicitly called from the homogenization layer.
2008-03-14 14:19:10 +00:00
Franz Roters 6f06133b90 removed some unused variables 2008-03-14 08:23:43 +00:00
Denny Tjahjanto 778cbcd3ca changed file read formats from explicit types to more general (and not
harmful) '*'
2008-03-12 13:53:00 +00:00
Philip Eisenlohr 5641cfd477 changed precision assignment to intrinsic (and standardized)
"selected_*_kind"
2008-03-07 15:21:46 +00:00
Philip Eisenlohr c74e071f5e updated constitutive_xxx to reflect new 9x9 dLp_dTstar - used to be 3x3x3x3 2008-02-21 12:50:37 +00:00
Philip Eisenlohr 9c1e8a7944 added acceleration capability after time-step cut backing 2008-02-21 10:33:34 +00:00
Philip Eisenlohr 9707fd0f8f full update, i.e. my development snapshot 2008-02-19 12:58:46 +00:00
Philip Eisenlohr f4edf4bd0c 2007
shortened stress_recovery = ...
added (crucial) deMandeling for return values of CPFEM_general

2005
matched to 2007 version
2008-02-18 18:49:06 +00:00
Philip Eisenlohr 2b567ad20d CPFEM
changed consistent tangent scheme to D.Tjahjanto Diss version
fixed nasty bug in decision when to calculate new values (CPFEM_general)

prec
precision values should now be on safe side.
2008-02-18 18:11:24 +00:00
Denny Tjahjanto 199c65cdba changed pert_e to new perturbation value pert_Fg 2008-02-18 10:46:18 +00:00
Denny Tjahjanto 1106bb27eb introduced logical "debugger" 2008-02-18 10:45:46 +00:00
Denny Tjahjanto e07d38fdec ooops. missed nInner and nOuter as loop counters... 2008-02-18 10:41:37 +00:00
Denny Tjahjanto 9c9cdeb58b corrected nStress and nState to reflect more general nInner and nOuter (now vompatible with changes in prec.f90) 2008-02-18 10:39:39 +00:00
Philip Eisenlohr cfaa0e696d exchanged TINY (from prec) with intrinsic "tiny" function (Fortran90) 2008-02-15 12:42:27 +00:00
Philip Eisenlohr a41a4a75ef CPFEM:
time integration scheme changed to start from guessing of Lp.
Newton-Raphson algorithm now accelerates as long as residuum improves.

IO:
added error 650 for polar decomposition problems

prec:
some cleanup. Introduced "relevantStrain" for convergence checking in CPFEM
2008-02-15 10:04:49 +00:00
Franz Roters f39c68dded CPFEM_stressCrystallite must be called with t not dt in CPFEM_stressIP 2008-02-08 08:25:19 +00:00
Hongmei Li 6a3a9e8f98 Added more detailed reporting 2008-01-11 18:32:02 +00:00
Luc Hantcherli 720d8da82b Corrected syntax 2008-01-10 19:00:45 +00:00
Luc Hantcherli b8b171c95b Introduce debug module, contains distributions of nCutback, nStressLoop, and nStateLoop 2008-01-10 18:53:57 +00:00
Luc Hantcherli 3a7ec38a3d Delete unused physical constants from pheno
Rename Boltzmann Constant Kb->kB
2008-01-10 18:51:58 +00:00
Philip Eisenlohr 1233d01cd5 mesh_maxNsharedElems is now correct. Added check for multiple identical nodes in an element, e.g. triangular quad-element and the like. 2008-01-10 17:12:33 +00:00
Luc Hantcherli fe70a82d6d !!!!! IMPORTANT !!!!!
All subroutines were committed at once:
- constitutive_pheno works
- constitutive_dislo without twinning also works

This release should serve as reference
2007-12-14 13:36:04 +00:00
Luc Hantcherli 3ef451824c just a test 2007-12-14 13:28:41 +00:00
Luc Hantcherli 90195fe1c8 Commit dislo 2007-12-11 14:30:21 +00:00
Luc Hantcherli ab0bde576e Commit of IO 2007-12-11 14:23:33 +00:00
Luc Hantcherli 32fc32865f Commit of mesh 2007-12-11 14:23:21 +00:00
Luc Hantcherli 08a1c38c73 Finalizing the implementation of deformation twinning in constitutive_dislo.f90
Assume to be ready to use
2007-12-10 12:55:43 +00:00
Luc Hantcherli d0f6c81d66 constitutive_Microstructure() computes now twin "plop" volumes from the given microstructure.
Mattex.dat has 2 parameters for deformation twinning:
- average grain size
- average twin stack thickness
2007-12-07 15:12:43 +00:00
Luc Hantcherli 44d6235777 Constitutive_dislo.f90 contains now a modified version of HomogenisedC that accounts for twin reoriented regions.
ONLY constitutive_dislo was changed, NOT constitutive.pheno
2007-12-07 14:17:42 +00:00
Luc Hantcherli b69aa2b112 Construction of the elasticity matrices for rotated/twin regions.
Definition of constitutive_Ntwin and constitutive_MaxNtwin
2007-12-07 13:59:15 +00:00
Luc Hantcherli e18f304c5a Crystal.f90 contains now the twin systems (at least for fcc, not implemented for bcc and hcp).
Schmid and transformations matrices for twin systemss are defined and constructed. Twin systems are specified using the type of variables as slip systems:
"MaxNTwin", "MaxMaxNtwin" ...
2007-12-07 12:36:17 +00:00
Luc Hantcherli f63f6949cc Corrected undefined "state" in HomogenisedC
Added "forall" loops in C construction
2007-12-07 10:54:19 +00:00
Luc Hantcherli d615406722 Corrected HomogenisedC:
1- No dependence on material volume fractions!!!
2- Can now depend on state of microstructure

changed some loops from Nstatevars to Nslip
2007-12-07 10:37:06 +00:00
Luc Hantcherli 975c113ae8 Homogenised C per grain can now depend on microstructure (important for deformation twinning) 2007-12-07 10:34:21 +00:00
Luc Hantcherli 3c0d51542e Changed to SI conformity. Mattex file changed bg->burgers 2007-11-15 17:04:30 +00:00
Philip Eisenlohr ad3ccf22c2 clarified tolerances in prec (abs vs rel)
all units conform to SI now !! (especially MPa --> Pa)

CONSEQUENCE: mattex files need to respect SI
2007-11-15 11:21:37 +00:00
Philip Eisenlohr e86a288a21 CPFEM_dummy_stress now user-given constant in _init (SI units !!) 2007-11-15 11:12:58 +00:00
Franz Roters 896c37ede2 changed structure of CPFEM_general to allow for non local algorithm and parrallelisation 2007-11-08 08:26:02 +00:00
Franz Roters 8619a92009 made sumVolfrac real also in constitutive_dislo.f90 2007-11-07 15:02:54 +00:00
Franz Roters 56e82e0fe2 changed sumVolfrac to real 2007-11-06 11:21:46 +00:00
Philip Eisenlohr d94f6c80de deleted unused variable constitutive_results
constitutive_maxNresults gets now calculated as maxval instead of hardwired
2007-11-06 10:21:03 +00:00
Philip Eisenlohr 4dbf6ac3fa added volume fraction of orientation to output array (now CPFEM_Nresults = 4) 2007-11-06 08:30:04 +00:00