Go to the source code of this file.
Modules | |
module | prec |
Interfaces DAMASK with MSC.Marc. | |
module | damask_interface |
module | io |
all DAMASK files without solver | |
module | numerics |
Managing of parameters related to numerics. | |
module | debug |
Reading in and interpretating the debugging settings for the various modules. | |
module | list |
linked list | |
module | future |
New fortran functions for compiler versions that do not support them. | |
module | config |
Reads in the material configuration from file. | |
module | math |
Mathematical library, including random number generation and tensor representations. | |
module | quaternions |
general quaternion math, not limited to unit quaternions | |
module | lambert |
Mapping homochoric <-> cubochoric. | |
module | rotations |
rotation storage and conversion | |
module | fesolving |
global variables for flow control | |
module | element |
module | hdf5_utilities |
module | results |
module | geometry_plastic_nonlocal |
Geometric information about the IP cells needed for the nonlocal. | |
module | discretization |
spatial discretization | |
module | discretization_marc |
Sets up the mesh for the solver MSC.Marc. | |
module | material |
Parses material config file, either solverJobName.materialConfig or material.config. | |
module | lattice |
contains lattice structure definitions including Schmid matrices for slip, twin, trans, | |
module | source_thermal_dissipation |
material subroutine for thermal source due to plastic dissipation | |
module | source_thermal_externalheat |
material subroutine for variable heat source | |
module | source_damage_isobrittle |
material subroutine incoprorating isotropic brittle damage source mechanism | |
module | source_damage_isoductile |
material subroutine incoprorating isotropic ductile damage source mechanism | |
module | source_damage_anisobrittle |
material subroutine incorporating anisotropic brittle damage source mechanism | |
module | source_damage_anisoductile |
material subroutine incorporating anisotropic ductile damage source mechanism | |
module | kinematics_cleavage_opening |
material subroutine incorporating kinematics resulting from opening of cleavage planes | |
module | kinematics_slipplane_opening |
material subroutine incorporating kinematics resulting from opening of slip planes | |
module | kinematics_thermal_expansion |
material subroutine incorporating kinematics resulting from thermal expansion | |
module | constitutive |
elasticity, plasticity, internal microstructure state | |
module | thermal_isothermal |
material subroutine for isothermal temperature field | |
module | thermal_adiabatic |
material subroutine for adiabatic temperature evolution | |
module | thermal_conduction |
material subroutine for temperature evolution from heat conduction | |
module | damage_none |
material subroutine for constant damage field | |
module | damage_local |
material subroutine for locally evolving damage field | |
module | damage_nonlocal |
material subroutine for non-locally evolving damage field | |
module | homogenization |
homogenization manager, organizing deformation partitioning and stress homogenization | |
Enumerations | |
enum | { material::elasticity_undefined_id, material::plasticity_undefined_id, material::source_undefined_id, material::kinematics_undefined_id, material::stiffness_degradation_undefined_id, material::homogenization_undefined_id } |
enum | { lattice::lattice_undefined_id } |
enum | { parallel_id, average_id } |
allocates all neccessary fields, reads information from material configuration file More... | |
Functions/Subroutines | |
subroutine | prec::prec_init |
reporting precision More... | |
logical elemental pure function | prec::deq (a, b, tol) |
equality comparison for float with double precision More... | |
logical elemental pure function | prec::dneq (a, b, tol) |
inequality comparison for float with double precision More... | |
logical elemental pure function | prec::deq0 (a, tol) |
equality to 0 comparison for float with double precision More... | |
logical elemental pure function | prec::dneq0 (a, tol) |
inequality to 0 comparison for float with double precision More... | |
logical elemental pure function | prec::ceq (a, b, tol) |
equality comparison for complex with double precision More... | |
logical elemental pure function | prec::cneq (a, b, tol) |
inequality comparison for complex with double precision More... | |
subroutine, private | prec::unittest |
check correctness of some prec functions More... | |
subroutine, public | damask_interface::damask_interface_init |
reports and sets working directory More... | |
character(len=:) function, allocatable, public | damask_interface::getsolverjobname () |
solver job name (no extension) as combination of geometry and load case name More... | |
logical function | damask_interface::solverissymmetric () |
determines whether a symmetric solver is used More... | |
character(len=len(string)) function | lc (string) |
changes characters in string to lower case More... | |
subroutine, public | io::io_init |
does nothing. More... | |
character(len=pstringlen) function, dimension(:), allocatable, public | io::io_read_ascii (fileName) |
reads an entire ASCII file into an array More... | |
integer function, public | io::io_open_binary (fileName, mode) |
opens an existing file for reading or a new file for writing. More... | |
logical pure function, public | io::io_isblank (string) |
identifies strings without content More... | |
pure character(len=:) function, allocatable, public | io::io_gettag (string, openChar, closeChar) |
get tagged content of string More... | |
pure integer function, dimension(:), allocatable, public | io::io_stringpos (string) |
locates all whitespace-separated chunks in given string and returns array containing number them and the left/right position to be used by IO_xxxVal Array size is dynamically adjusted to number of chunks found in string IMPORTANT: first element contains number of chunks! More... | |
character(len=:) function, allocatable, public | io::io_stringvalue (string, chunkPos, myChunk) |
reads string value at myChunk from string More... | |
integer function, public | io::io_intvalue (string, chunkPos, myChunk) |
reads integer value at myChunk from string More... | |
real(preal) function, public | io::io_floatvalue (string, chunkPos, myChunk) |
reads float value at myChunk from string More... | |
pure character(len=len(string)) function, public | io::io_lc (string) |
changes characters in string to lower case More... | |
subroutine, public | io::io_error (error_ID, el, ip, g, instance, ext_msg) |
write error statements to standard out and terminate the Marc/spectral run with exit #9xxx More... | |
subroutine, public | io::io_warning (warning_ID, el, ip, g, ext_msg) |
writes warning statement to standard out More... | |
integer function | io::verifyintvalue (string) |
returns verified integer value in given string More... | |
real(preal) function | io::verifyfloatvalue (string) |
returns verified float value in given string More... | |
subroutine | io::unittest |
check correctness of some IO functions More... | |
subroutine, public | numerics::numerics_init |
reads in parameters from numerics.config and sets openMP related parameters. Also does More... | |
subroutine, public | debug::debug_init |
reads in parameters from debug.config and allocates arrays More... | |
subroutine, public | debug::debug_reset |
resets all debug values More... | |
subroutine, public | debug::debug_info |
writes debug statements to standard out More... | |
subroutine | list::add (this, string) |
add element More... | |
subroutine | list::show (this) |
prints all elements More... | |
subroutine | list::free (this) |
empties list and frees associated memory More... | |
recursive subroutine | list::finalize (this) |
empties list and frees associated memory More... | |
subroutine | list::finalizearray (this) |
cleans entire array of linke lists More... | |
logical function | list::keyexists (this, key) |
reports wether a given key (string value at first position) exists in the list More... | |
integer function | list::countkeys (this, key) |
count number of key appearances More... | |
real(preal) function | list::getfloat (this, key, defaultVal) |
gets float value of for a given key from a linked list More... | |
integer function | list::getint (this, key, defaultVal) |
gets integer value of for a given key from a linked list More... | |
character(len=pstringlen) function | list::getstring (this, key, defaultVal, raw) |
gets string value of for a given key from a linked list More... | |
real(preal) function, dimension(:), allocatable | list::getfloats (this, key, defaultVal, requiredSize) |
gets array of float values of for a given key from a linked list More... | |
integer function, dimension(:), allocatable | list::getints (this, key, defaultVal, requiredSize) |
gets array of integer values of for a given key from a linked list More... | |
character(len=pstringlen) function, dimension(:), allocatable | list::getstrings (this, key, defaultVal, raw) |
gets array of string values of for a given key from a linked list More... | |
integer function, dimension(:), allocatable | future::findloc (a, v) |
substitute for the findloc intrinsic (only for integer, dimension(:) at the moment) More... | |
subroutine, public | config::config_init |
reads material.config and stores its content per part More... | |
recursive character(len=pstringlen) function, dimension(:), allocatable | read_materialconfig (fileName, cnt) |
reads material.config Recursion is triggered by "{path/to/inputfile}" in a line More... | |
subroutine | parse_materialconfig (sectionNames, part, line, fileContent) |
parses the material.config file More... | |
subroutine | parse_debugandnumericsconfig (config_list, fileContent) |
parses the material.config file More... | |
subroutine, public | config::config_deallocate (what) |
deallocates the linked lists that store the content of the configuration files More... | |
subroutine | math::math_init |
initialization of random seed generator and internal checks More... | |
recursive subroutine | math::math_sort (a, istart, iend, sortDim) |
Quicksort algorithm for two-dimensional integer arrays. More... | |
integer function | qsort_partition (a, istart, iend, sort) |
Partitioning required for quicksort. More... | |
pure real(preal) function, dimension(sum(how)) | math::math_expand (what, how) |
vector expansion More... | |
pure integer function, dimension(n) | math::math_range (N) |
range of integers starting at one More... | |
pure real(preal) function, dimension(d, d) | math::math_identity2nd (d) |
second rank identity tensor of specified dimension More... | |
pure real(preal) function, dimension(d, d, d, d) | math::math_identity4th (d) |
symmetric fourth rank identity tensor of specified dimension More... | |
real(preal) pure function | math::math_levicivita (i, j, k) |
permutation tensor e_ijk More... | |
real(preal) pure function | math::math_delta (i, j) |
kronecker delta function d_ij More... | |
pure real(preal) function, dimension(3) | math::math_cross (A, B) |
cross product a x b More... | |
pure real(preal) function, dimension(size(a, 1), size(b, 1)) | math::math_outer (A, B) |
outer product of arbitrary sized vectors (A ⊗ B / i,j) More... | |
real(preal) pure function | math::math_inner (A, B) |
inner product of arbitrary sized vectors (A · B / i,i) More... | |
real(preal) pure function | math::math_tensordot (A, B) |
double contraction of 3x3 matrices (A : B / ij,ij) More... | |
pure real(preal) function, dimension(3, 3) | math::math_mul3333xx33 (A, B) |
matrix double contraction 3333x33 = 33 (ijkl,kl) More... | |
pure real(preal) function, dimension(3, 3, 3, 3) | math::math_mul3333xx3333 (A, B) |
matrix multiplication 3333x3333 = 3333 (ijkl,klmn) More... | |
pure real(preal) function, dimension(3, 3) | math::math_exp33 (A, n) |
3x3 matrix exponential up to series approximation order n (default 5) More... | |
pure real(preal) function, dimension(3, 3) | math::math_inv33 (A) |
Cramer inversion of 3x3 matrix (function) More... | |
pure subroutine | math::math_invert33 (InvA, DetA, error, A) |
Cramer inversion of 3x3 matrix (subroutine) More... | |
real(preal) function, dimension(3, 3, 3, 3) | math::math_invsym3333 (A) |
Inversion of symmetriced 3x3x3x3 matrix. More... | |
subroutine | math::math_invert (InvA, error, A) |
invert quadratic matrix of arbitrary dimension More... | |
pure real(preal) function, dimension(3, 3) | math::math_symmetric33 (m) |
symmetrize a 3x3 matrix More... | |
pure real(preal) function, dimension(6, 6) | math::math_symmetric66 (m) |
symmetrize a 6x6 matrix More... | |
pure real(preal) function, dimension(3, 3) | math::math_skew33 (m) |
skew part of a 3x3 matrix More... | |
pure real(preal) function, dimension(3, 3) | math::math_spherical33 (m) |
hydrostatic part of a 3x3 matrix More... | |
pure real(preal) function, dimension(3, 3) | math::math_deviatoric33 (m) |
deviatoric part of a 3x3 matrix More... | |
real(preal) pure function | math::math_trace33 (m) |
trace of a 3x3 matrix More... | |
real(preal) pure function | math::math_det33 (m) |
determinant of a 3x3 matrix More... | |
real(preal) pure function | math::math_detsym33 (m) |
determinant of a symmetric 3x3 matrix More... | |
pure real(preal) function, dimension(9) | math::math_33to9 (m33) |
convert 3x3 matrix into vector 9 More... | |
pure real(preal) function, dimension(3, 3) | math::math_9to33 (v9) |
convert 9 vector into 3x3 matrix More... | |
pure real(preal) function, dimension(6) | math::math_sym33to6 (m33, weighted) |
convert symmetric 3x3 matrix into 6 vector More... | |
pure real(preal) function, dimension(3, 3) | math::math_6tosym33 (v6, weighted) |
convert 6 vector into symmetric 3x3 matrix More... | |
pure real(preal) function, dimension(9, 9) | math::math_3333to99 (m3333) |
convert 3x3x3x3 matrix into 9x9 matrix More... | |
pure real(preal) function, dimension(3, 3, 3, 3) | math::math_99to3333 (m99) |
convert 9x9 matrix into 3x3x3x3 matrix More... | |
pure real(preal) function, dimension(6, 6) | math::math_sym3333to66 (m3333, weighted) |
convert symmetric 3x3x3x3 matrix into 6x6 matrix More... | |
pure real(preal) function, dimension(3, 3, 3, 3) | math::math_66tosym3333 (m66, weighted) |
convert 66 matrix into symmetric 3x3x3x3 matrix More... | |
pure real(preal) function, dimension(3, 3, 3, 3) | math::math_voigt66to3333 (m66) |
convert 66 Voigt matrix into symmetric 3x3x3x3 matrix More... | |
real(preal) function | math::math_samplegaussvar (meanvalue, stddev, width) |
draw a random sample from Gauss variable More... | |
subroutine | math::math_eigh (m, w, v, error) |
eigenvalues and eigenvectors of symmetric matrix More... | |
subroutine | math::math_eigh33 (m, w, v) |
eigenvalues and eigenvectors of symmetric 3x3 matrix using an analytical expression and the general LAPACK powered version for arbritrary sized matrices as fallback More... | |
real(preal) function, dimension(3, 3) | math::math_rotationalpart (m) |
rotational part from polar decomposition of 3x3 tensor More... | |
pure real(preal) function, dimension(3, 3) | eigenvectorbasis (m) |
eigenvector basis of positive-definite 3x3 matrix More... | |
real(preal) function, dimension(size(m, 1)) | math::math_eigvalsh (m) |
Eigenvalues of symmetric matrix. More... | |
real(preal) function, dimension(3) | math::math_eigvalsh33 (m) |
eigenvalues of symmetric 3x3 matrix using an analytical expression More... | |
pure real(preal) function, dimension(3) | math::math_invariantssym33 (m) |
invariants of symmetrix 3x3 matrix More... | |
integer pure function | math::math_factorial (n) |
factorial More... | |
integer pure function | math::math_binomial (n, k) |
binomial coefficient More... | |
integer pure function | math::math_multinomial (alpha) |
multinomial coefficient More... | |
real(preal) pure function | math::math_voltetrahedron (v1, v2, v3, v4) |
volume of tetrahedron given by four vertices More... | |
real(preal) pure function | math::math_areatriangle (v1, v2, v3) |
area of triangle given by three vertices More... | |
real(preal) pure elemental function | math::math_clip (a, left, right) |
limits a scalar value to a certain range (either one or two sided) More... | |
subroutine, private | math::unittest |
check correctness of some math functions More... | |
subroutine, public | quaternions::quaternions_init |
do self test More... | |
type(quaternion) pure function | quaternions::init__ (array) |
construct a quaternion from a 4-vector More... | |
elemental pure subroutine | quaternions::assign_quat__ (self, other) |
assign a quaternion More... | |
pure subroutine | quaternions::assign_vec__ (self, other) |
assign a 4-vector More... | |
type(quaternion) elemental pure function | quaternions::add__ (self, other) |
add a quaternion More... | |
type(quaternion) elemental pure function | quaternions::pos__ (self) |
return (unary positive operator) More... | |
type(quaternion) elemental pure function | quaternions::sub__ (self, other) |
subtract a quaternion More... | |
type(quaternion) elemental pure function | quaternions::neg__ (self) |
negate (unary negative operator) More... | |
type(quaternion) elemental pure function | quaternions::mul_quat__ (self, other) |
multiply with a quaternion More... | |
type(quaternion) elemental pure function | quaternions::mul_scal__ (self, scal) |
multiply with a scalar More... | |
type(quaternion) elemental pure function | quaternions::div_quat__ (self, other) |
divide by a quaternion More... | |
type(quaternion) elemental pure function | quaternions::div_scal__ (self, scal) |
divide by a scalar More... | |
logical elemental pure function | quaternions::eq__ (self, other) |
test equality More... | |
logical elemental pure function | quaternions::neq__ (self, other) |
test inequality More... | |
type(quaternion) elemental pure function | quaternions::pow_quat__ (self, expon) |
raise to the power of a quaternion More... | |
type(quaternion) elemental pure function | quaternions::pow_scal__ (self, expon) |
raise to the power of a scalar More... | |
type(quaternion) elemental pure function | quaternions::exp__ (a) |
take exponential More... | |
type(quaternion) elemental pure function | quaternions::log__ (a) |
take logarithm More... | |
real(preal) elemental pure function | quaternions::abs__ (self) |
return norm More... | |
real(preal) elemental pure function | quaternions::dot_product__ (a, b) |
calculate dot product More... | |
type(quaternion) elemental pure function | quaternions::conjg__ (self) |
take conjugate complex More... | |
type(quaternion) elemental pure function | quaternions::homomorphed (self) |
homomorph More... | |
pure real(preal) function, dimension(4) | quaternions::asarray (self) |
return as plain array More... | |
pure real(preal) function | quaternions::real__ (self) |
real part (scalar) More... | |
pure real(preal) function, dimension(3) | quaternions::aimag__ (self) |
imaginary part (3-vector) More... | |
type(quaternion) elemental pure function | quaternions::inverse (self) |
inverse More... | |
subroutine | quaternions::unittest |
check correctness of some quaternions functions More... | |
pure real(preal) function, dimension(3), public | lambert::lambert_cubetoball (cube) |
map from 3D cubic grid to 3D ball More... | |
pure real(preal) function, dimension(3), public | lambert::lambert_balltocube (xyz) |
map from 3D ball to 3D cubic grid More... | |
pure integer function, dimension(3) | lambert::getpyramidorder (xyz) |
determine to which pyramid a point in a cubic grid belongs More... | |
subroutine, public | rotations::rotations_init |
doing self test More... | |
pure real(preal) function, dimension(4) | rotations::asquaternion (self) |
pure real(preal) function, dimension(3) | rotations::aseulers (self) |
pure real(preal) function, dimension(4) | rotations::asaxisangle (self) |
pure real(preal) function, dimension(3, 3) | rotations::asmatrix (self) |
pure real(preal) function, dimension(4) | rotations::asrodrigues (self) |
pure real(preal) function, dimension(3) | rotations::ashomochoric (self) |
subroutine | rotations::fromquaternion (self, qu) |
subroutine | rotations::fromeulers (self, eu, degrees) |
subroutine | rotations::fromaxisangle (self, ax, degrees, P) |
subroutine | rotations::frommatrix (self, om) |
pure elemental type(rotation) function | rotations::rotrot__ (self, R) |
: Rotate a rotation More... | |
pure elemental subroutine | rotations::standardize (self) |
quaternion representation with positive q More... | |
pure real(preal) function, dimension(3) | rotations::rotvector (self, v, active) |
rotate a vector passively (default) or actively More... | |
pure real(preal) function, dimension(3, 3) | rotations::rottensor2 (self, T, active) |
rotate a rank-2 tensor passively (default) or actively More... | |
pure real(preal) function, dimension(3, 3, 3, 3) | rotations::rottensor4 (self, T, active) |
rotate a rank-4 tensor passively (default) or actively More... | |
pure real(preal) function, dimension(6, 6) | rotations::rottensor4sym (self, T, active) |
rotate a symmetric rank-4 tensor stored as (6,6) passively (default) or actively ToDo: Need to check active/passive !!! More... | |
pure elemental type(rotation) function | rotations::misorientation (self, other) |
misorientation More... | |
pure real(preal) function, dimension(3, 3) | rotations::qu2om (qu) |
convert unit quaternion to rotation matrix More... | |
pure real(preal) function, dimension(3) | rotations::qu2eu (qu) |
convert unit quaternion to Euler angles More... | |
pure real(preal) function, dimension(4) | rotations::qu2ax (qu) |
convert unit quaternion to axis angle pair More... | |
pure real(preal) function, dimension(4) | rotations::qu2ro (qu) |
convert unit quaternion to Rodrigues vector More... | |
pure real(preal) function, dimension(3) | rotations::qu2ho (qu) |
convert unit quaternion to homochoric More... | |
pure real(preal) function, dimension(3) | rotations::qu2cu (qu) |
convert unit quaternion to cubochoric More... | |
pure real(preal) function, dimension(4) | rotations::om2qu (om) |
convert rotation matrix to cubochoric More... | |
pure real(preal) function, dimension(3) | rotations::om2eu (om) |
orientation matrix to Euler angles More... | |
real(preal) function, dimension(4) | rotations::om2ax (om) |
convert orientation matrix to axis angle pair More... | |
pure real(preal) function, dimension(4) | rotations::om2ro (om) |
convert rotation matrix to Rodrigues vector More... | |
real(preal) function, dimension(3) | rotations::om2ho (om) |
convert rotation matrix to homochoric More... | |
real(preal) function, dimension(3) | rotations::om2cu (om) |
convert rotation matrix to cubochoric More... | |
pure real(preal) function, dimension(4) | rotations::eu2qu (eu) |
Euler angles to unit quaternion. More... | |
pure real(preal) function, dimension(3, 3), public | rotations::eu2om (eu) |
Euler angles to orientation matrix. More... | |
pure real(preal) function, dimension(4) | rotations::eu2ax (eu) |
convert euler to axis angle More... | |
pure real(preal) function, dimension(4) | rotations::eu2ro (eu) |
Euler angles to Rodrigues vector. More... | |
pure real(preal) function, dimension(3) | rotations::eu2ho (eu) |
convert Euler angles to homochoric More... | |
real(preal) function, dimension(3) | rotations::eu2cu (eu) |
convert Euler angles to cubochoric More... | |
pure real(preal) function, dimension(4) | rotations::ax2qu (ax) |
convert axis angle pair to quaternion More... | |
pure real(preal) function, dimension(3, 3) | rotations::ax2om (ax) |
convert axis angle pair to orientation matrix More... | |
pure real(preal) function, dimension(3) | rotations::ax2eu (ax) |
convert axis angle pair to Euler angles More... | |
pure real(preal) function, dimension(4) | rotations::ax2ro (ax) |
convert axis angle pair to Rodrigues vector More... | |
pure real(preal) function, dimension(3) | rotations::ax2ho (ax) |
convert axis angle pair to homochoric More... | |
real(preal) function, dimension(3) | rotations::ax2cu (ax) |
convert axis angle pair to cubochoric More... | |
pure real(preal) function, dimension(4) | rotations::ro2qu (ro) |
convert Rodrigues vector to unit quaternion More... | |
pure real(preal) function, dimension(3, 3) | rotations::ro2om (ro) |
convert Rodrigues vector to rotation matrix More... | |
pure real(preal) function, dimension(3) | rotations::ro2eu (ro) |
convert Rodrigues vector to Euler angles More... | |
pure real(preal) function, dimension(4) | rotations::ro2ax (ro) |
convert Rodrigues vector to axis angle pair More... | |
pure real(preal) function, dimension(3) | rotations::ro2ho (ro) |
convert Rodrigues vector to homochoric More... | |
pure real(preal) function, dimension(3) | rotations::ro2cu (ro) |
convert Rodrigues vector to cubochoric More... | |
pure real(preal) function, dimension(4) | rotations::ho2qu (ho) |
convert homochoric to unit quaternion More... | |
pure real(preal) function, dimension(3, 3) | rotations::ho2om (ho) |
convert homochoric to rotation matrix More... | |
pure real(preal) function, dimension(3) | rotations::ho2eu (ho) |
convert homochoric to Euler angles More... | |
pure real(preal) function, dimension(4) | rotations::ho2ax (ho) |
convert homochoric to axis angle pair More... | |
pure real(preal) function, dimension(4) | rotations::ho2ro (ho) |
convert homochoric to Rodrigues vector More... | |
pure real(preal) function, dimension(3) | rotations::ho2cu (ho) |
convert homochoric to cubochoric More... | |
pure real(preal) function, dimension(4) | rotations::cu2qu (cu) |
convert cubochoric to unit quaternion More... | |
pure real(preal) function, dimension(3, 3) | rotations::cu2om (cu) |
convert cubochoric to rotation matrix More... | |
pure real(preal) function, dimension(3) | rotations::cu2eu (cu) |
convert cubochoric to Euler angles More... | |
real(preal) function, dimension(4) | rotations::cu2ax (cu) |
convert cubochoric to axis angle pair More... | |
pure real(preal) function, dimension(4) | rotations::cu2ro (cu) |
convert cubochoric to Rodrigues vector More... | |
pure real(preal) function, dimension(3) | rotations::cu2ho (cu) |
convert cubochoric to homochoric More... | |
subroutine | rotations::unittest |
check correctness of some rotations functions More... | |
subroutine | element::telement_init (self, elemType) |
define properties of an element More... | |
subroutine | hdf5_utilities::hdf5_utilities_init |
open libary and do sanity checks More... | |
integer(hid_t) function | hdf5_utilities::hdf5_openfile (fileName, mode, parallel) |
open and initializes HDF5 output file More... | |
subroutine | hdf5_utilities::hdf5_closefile (fileHandle) |
close the opened HDF5 output file More... | |
integer(hid_t) function | hdf5_utilities::hdf5_addgroup (fileHandle, groupName) |
adds a new group to the fileHandle More... | |
integer(hid_t) function | hdf5_utilities::hdf5_opengroup (fileHandle, groupName) |
open an existing group of a file More... | |
subroutine | hdf5_utilities::hdf5_closegroup (group_id) |
close a group More... | |
logical function | hdf5_utilities::hdf5_objectexists (loc_id, path) |
check whether a group or a dataset exists More... | |
subroutine | hdf5_utilities::hdf5_addattribute_str (loc_id, attrLabel, attrValue, path) |
adds a string attribute to the path given relative to the location More... | |
subroutine | hdf5_utilities::hdf5_addattribute_int (loc_id, attrLabel, attrValue, path) |
adds a integer attribute to the path given relative to the location More... | |
subroutine | hdf5_utilities::hdf5_addattribute_real (loc_id, attrLabel, attrValue, path) |
adds a integer attribute to the path given relative to the location More... | |
subroutine | hdf5_utilities::hdf5_addattribute_int_array (loc_id, attrLabel, attrValue, path) |
adds a integer attribute to the path given relative to the location More... | |
subroutine | hdf5_utilities::hdf5_addattribute_real_array (loc_id, attrLabel, attrValue, path) |
adds a real attribute to the path given relative to the location More... | |
subroutine | hdf5_utilities::hdf5_setlink (loc_id, target_name, link_name) |
set link to object in results file More... | |
subroutine | hdf5_utilities::hdf5_read_real1 (loc_id, dataset, datasetName, parallel) |
read dataset of type real with 1 dimension More... | |
subroutine | hdf5_utilities::hdf5_read_real2 (loc_id, dataset, datasetName, parallel) |
read dataset of type real with 2 dimensions More... | |
subroutine | hdf5_utilities::hdf5_read_real3 (loc_id, dataset, datasetName, parallel) |
read dataset of type real with 2 dimensions More... | |
subroutine | hdf5_utilities::hdf5_read_real4 (loc_id, dataset, datasetName, parallel) |
read dataset of type real with 4 dimensions More... | |
subroutine | hdf5_utilities::hdf5_read_real5 (loc_id, dataset, datasetName, parallel) |
read dataset of type real with 5 dimensions More... | |
subroutine | hdf5_utilities::hdf5_read_real6 (loc_id, dataset, datasetName, parallel) |
read dataset of type real with 6 dimensions More... | |
subroutine | hdf5_utilities::hdf5_read_real7 (loc_id, dataset, datasetName, parallel) |
read dataset of type real with 7 dimensions More... | |
subroutine | hdf5_utilities::hdf5_read_int1 (loc_id, dataset, datasetName, parallel) |
read dataset of type integer with 1 dimension More... | |
subroutine | hdf5_utilities::hdf5_read_int2 (loc_id, dataset, datasetName, parallel) |
read dataset of type integer with 2 dimensions More... | |
subroutine | hdf5_utilities::hdf5_read_int3 (loc_id, dataset, datasetName, parallel) |
read dataset of type integer with 3 dimensions More... | |
subroutine | hdf5_utilities::hdf5_read_int4 (loc_id, dataset, datasetName, parallel) |
read dataset of type integer withh 4 dimensions More... | |
subroutine | hdf5_utilities::hdf5_read_int5 (loc_id, dataset, datasetName, parallel) |
read dataset of type integer with 5 dimensions More... | |
subroutine | hdf5_utilities::hdf5_read_int6 (loc_id, dataset, datasetName, parallel) |
read dataset of type integer with 6 dimensions More... | |
subroutine | hdf5_utilities::hdf5_read_int7 (loc_id, dataset, datasetName, parallel) |
read dataset of type integer with 7 dimensions More... | |
subroutine | hdf5_utilities::hdf5_write_real1 (loc_id, dataset, datasetName, parallel) |
write dataset of type real with 1 dimension More... | |
subroutine | hdf5_utilities::hdf5_write_real2 (loc_id, dataset, datasetName, parallel) |
write dataset of type real with 2 dimensions More... | |
subroutine | hdf5_utilities::hdf5_write_real3 (loc_id, dataset, datasetName, parallel) |
write dataset of type real with 3 dimensions More... | |
subroutine | hdf5_utilities::hdf5_write_real4 (loc_id, dataset, datasetName, parallel) |
write dataset of type real with 4 dimensions More... | |
subroutine | hdf5_utilities::hdf5_write_real5 (loc_id, dataset, datasetName, parallel) |
write dataset of type real with 5 dimensions More... | |
subroutine | hdf5_utilities::hdf5_write_real6 (loc_id, dataset, datasetName, parallel) |
write dataset of type real with 6 dimensions More... | |
subroutine | hdf5_utilities::hdf5_write_real7 (loc_id, dataset, datasetName, parallel) |
write dataset of type real with 7 dimensions More... | |
subroutine | hdf5_utilities::hdf5_write_int1 (loc_id, dataset, datasetName, parallel) |
write dataset of type integer with 1 dimension More... | |
subroutine | hdf5_utilities::hdf5_write_int2 (loc_id, dataset, datasetName, parallel) |
write dataset of type integer with 2 dimensions More... | |
subroutine | hdf5_utilities::hdf5_write_int3 (loc_id, dataset, datasetName, parallel) |
write dataset of type integer with 3 dimensions More... | |
subroutine | hdf5_utilities::hdf5_write_int4 (loc_id, dataset, datasetName, parallel) |
write dataset of type integer with 4 dimensions More... | |
subroutine | hdf5_utilities::hdf5_write_int5 (loc_id, dataset, datasetName, parallel) |
write dataset of type integer with 5 dimensions More... | |
subroutine | hdf5_utilities::hdf5_write_int6 (loc_id, dataset, datasetName, parallel) |
write dataset of type integer with 6 dimensions More... | |
subroutine | hdf5_utilities::hdf5_write_int7 (loc_id, dataset, datasetName, parallel) |
write dataset of type integer with 7 dimensions More... | |
subroutine | hdf5_utilities::hdf5_write_rotation (loc_id, dataset, datasetName, parallel) |
writes a scalar orientation dataset More... | |
subroutine | hdf5_utilities::initialize_read (dset_id, filespace_id, memspace_id, plist_id, aplist_id, myStart, globalShape, loc_id, localShape, datasetName, parallel) |
initialize HDF5 handles, determines global shape and start for parallel read More... | |
subroutine | hdf5_utilities::finalize_read (dset_id, filespace_id, memspace_id, plist_id, aplist_id) |
closes HDF5 handles More... | |
subroutine | hdf5_utilities::initialize_write (dset_id, filespace_id, memspace_id, plist_id, myStart, totalShape, loc_id, myShape, datasetName, datatype, parallel) |
initialize HDF5 handles, determines global shape and start for parallel write More... | |
subroutine | hdf5_utilities::finalize_write (plist_id, dset_id, filespace_id, memspace_id) |
closes HDF5 handles More... | |
subroutine, public | results::results_init |
subroutine, public | results::results_openjobfile |
opens the results file to append data More... | |
subroutine, public | results::results_closejobfile |
closes the results file More... | |
subroutine, public | results::results_addincrement (inc, time) |
creates the group of increment and adds time as attribute to the file More... | |
subroutine, public | results::results_finalizeincrement |
finalize increment More... | |
integer(hid_t) function, public | results::results_opengroup (groupName) |
open a group from the results file More... | |
integer(hid_t) function, public | results::results_addgroup (groupName) |
adds a new group to the results file More... | |
subroutine, public | results::results_closegroup (group_id) |
close a group More... | |
subroutine, public | results::results_setlink (path, link) |
set link to object in results file More... | |
subroutine | results::results_addattribute_str (attrLabel, attrValue, path) |
adds a string attribute to an object in the results file More... | |
subroutine | results::results_addattribute_int (attrLabel, attrValue, path) |
adds an integer attribute an object in the results file More... | |
subroutine | results::results_addattribute_real (attrLabel, attrValue, path) |
adds a real attribute an object in the results file More... | |
subroutine | results::results_addattribute_int_array (attrLabel, attrValue, path) |
adds an integer array attribute an object in the results file More... | |
subroutine | results::results_addattribute_real_array (attrLabel, attrValue, path) |
adds a real array attribute an object in the results file More... | |
subroutine, public | results::results_removelink (link) |
remove link to an object More... | |
subroutine | results::results_writescalardataset_real (group, dataset, label, description, SIunit) |
stores a scalar dataset in a group More... | |
subroutine | results::results_writevectordataset_real (group, dataset, label, description, SIunit) |
stores a vector dataset in a group More... | |
subroutine | results::results_writetensordataset_real (group, dataset, label, description, SIunit, transposed) |
stores a tensor dataset in a group More... | |
subroutine | results::results_writevectordataset_int (group, dataset, label, description, SIunit) |
stores a vector dataset in a group More... | |
subroutine | results::results_writetensordataset_int (group, dataset, label, description, SIunit) |
stores a tensor dataset in a group More... | |
subroutine | results::results_writescalardataset_rotation (group, dataset, label, description, lattice_structure) |
stores a scalar dataset in a group More... | |
subroutine, public | results::results_mapping_constituent (phaseAt, memberAtLocal, label) |
adds the unique mapping from spatial position and constituent ID to results More... | |
subroutine, public | results::results_mapping_materialpoint (homogenizationAt, memberAtLocal, label) |
adds the unique mapping from spatial position and constituent ID to results More... | |
subroutine | geometry_plastic_nonlocal::geometry_plastic_nonlocal_setipneighborhood (IPneighborhood) |
Set the integration point (IP) neighborhood. More... | |
subroutine | geometry_plastic_nonlocal::geometry_plastic_nonlocal_setipvolume (IPvolume) |
Set the initial volume associated with an integration point. More... | |
subroutine | geometry_plastic_nonlocal::geometry_plastic_nonlocal_setiparea (IParea) |
Set the initial areas of the unit triangle/unit quadrilateral/tetrahedron/hexahedron. More... | |
subroutine | geometry_plastic_nonlocal::geometry_plastic_nonlocal_setipareanormal (IPareaNormal) |
Set the direction normal of the areas of the triangle/quadrilateral/tetrahedron/hexahedron. More... | |
subroutine | geometry_plastic_nonlocal::geometry_plastic_nonlocal_disable |
Free memory used by variables only needed by plastic_nonlocal. More... | |
subroutine | geometry_plastic_nonlocal::geometry_plastic_nonlocal_results |
Write geometry data to results file. More... | |
subroutine, public | discretization::discretization_init (homogenizationAt, microstructureAt, IPcoords0, NodeCoords0, sharedNodesBegin) |
stores the relevant information in globally accesible variables More... | |
subroutine, public | discretization::discretization_results |
write the displacements More... | |
subroutine, public | discretization::discretization_setipcoords (IPcoords) |
stores current IP coordinates More... | |
subroutine, public | discretization::discretization_setnodecoords (NodeCoords) |
stores current IP coordinates More... | |
subroutine, public | discretization_marc::discretization_marc_init (ip, el) |
initializes the mesh by calling all necessary private routines the mesh module Order and routines strongly depend on type of solver More... | |
subroutine | discretization_marc::writegeometry (elem, connectivity_elem, connectivity_cell, coordinates_nodes, coordinates_points) |
Write all information needed for the DADF5 geometry. More... | |
subroutine | discretization_marc::inputread (elem, node0_elem, connectivity_elem, microstructureAt, homogenizationAt) |
Read mesh from marc input file. More... | |
subroutine | discretization_marc::inputread_fileformat (fileFormat, fileContent) |
Figures out version of Marc input file format. More... | |
subroutine | discretization_marc::inputread_tablestyles (initialcond, hypoelastic, fileContent) |
Figures out table styles for initial cond and hypoelastic. More... | |
subroutine | discretization_marc::inputread_matnumber (matNumber, tableStyle, fileContent) |
Figures out material number of hypoelastic material. More... | |
subroutine | discretization_marc::inputread_nnodesandelements (nNodes, nElems, fileContent) |
Count overall number of nodes and elements. More... | |
subroutine | discretization_marc::inputread_nelemsets (nElemSets, maxNelemInSet, fileContent) |
Count overall number of element sets in mesh. More... | |
subroutine | discretization_marc::inputread_mapelemsets (nameElemSet, mapElemSet, fileContent) |
map element sets More... | |
subroutine | discretization_marc::inputread_mapelems (FEM2DAMASK, nElems, nNodesPerElem, fileContent) |
Maps elements from FE ID to internal (consecutive) representation. More... | |
subroutine | discretization_marc::inputread_mapnodes (FEM2DAMASK, nNodes, fileContent) |
Maps node from FE ID to internal (consecutive) representation. More... | |
subroutine | discretization_marc::inputread_elemnodes (nodes, nNode, fileContent) |
store x,y,z coordinates of all nodes in mesh. More... | |
subroutine | discretization_marc::inputread_elemtype (elem, nElem, fileContent) |
Gets element type (and checks if the whole mesh comprises of only one type) More... | |
integer function | mapelemtype (what) |
mapping of Marc element types to internal representation More... | |
integer function, dimension(nnodes, nelem) | discretization_marc::inputread_connectivityelem (nElem, nNodes, fileContent) |
Stores node IDs. More... | |
subroutine | discretization_marc::inputread_microstructureandhomogenization (microstructureAt, homogenizationAt, nElem, nNodes, nameElemSet, mapElemSet, initialcondTableStyle, fileContent) |
Stores homogenization and microstructure ID. More... | |
subroutine | discretization_marc::buildcells (connectivity_cell, cellNodeDefinition, elem, connectivity_elem) |
Calculates cell node coordinates from element node coordinates. More... | |
pure integer function | uniquerows (A) |
count unique rows (same rows need to be stored consecutively) More... | |
subroutine | discretization_marc::buildcellnodes (node_cell, definition, node_elem) |
Calculates cell node coordinates from element node coordinates. More... | |
subroutine | discretization_marc::buildipcoordinates (IPcoordinates, connectivity_cell, node_cell) |
Calculates IP coordinates as center of cell. More... | |
real(preal) function, dimension(elem%nips, size(connectivity, 3)) | discretization_marc::ipvolume (elem, node, connectivity) |
Calculates IP volume. More... | |
real(preal) function, dimension(3, elem%nipneighbors, elem%nips, nelem) | discretization_marc::ipareanormal (elem, nElem, connectivity, node) |
calculation of IP interface areas More... | |
integer function, dimension(1+maxn) | discretization_marc::continuousintvalues (fileContent, maxN, lookupName, lookupMap, lookupMaxN) |
return integer list corresponding to items in consecutive lines. First integer in array is counter More... | |
logical function | discretization_marc::containsrange (str, chunkPos) |
return whether a line contains a range ('X to Y') More... | |
subroutine, public | material::material_init |
parses material configuration file More... | |
subroutine | material::material_parsehomogenization |
parses the homogenization part from the material configuration More... | |
subroutine | material::material_parsemicrostructure |
parses the microstructure part in the material configuration file More... | |
subroutine | material::material_parsephase |
parses the phase part in the material configuration file More... | |
subroutine | material::material_parsetexture |
parses the texture part in the material configuration file More... | |
subroutine, public | material::material_allocateplasticstate (phase, NipcMyPhase, sizeState, sizeDotState, sizeDeltaState) |
allocates the plastic state of a phase More... | |
subroutine, public | material::material_allocatesourcestate (phase, of, NipcMyPhase, sizeState, sizeDotState, sizeDeltaState) |
allocates the source state of a phase More... | |
subroutine, public | lattice::lattice_init |
Module initialization. More... | |
real(preal) function, dimension(sum(ntwin)), public | lattice::lattice_characteristicshear_twin (Ntwin, structure, CoverA) |
Characteristic shear for twinning. More... | |
real(preal) function, dimension(6, 6, sum(ntwin)), public | lattice::lattice_c66_twin (Ntwin, C66, structure, CoverA) |
Rotated elasticity matrices for twinning in 66-vector notation. More... | |
real(preal) function, dimension(6, 6, sum(ntrans)), public | lattice::lattice_c66_trans (Ntrans, C_parent66, structure_target, cOverA_trans, a_bcc, a_fcc) |
Rotated elasticity matrices for transformation in 66-vector notation. More... | |
real(preal) function, dimension(1:3, 1:3, sum(nslip)), public | lattice::lattice_nonschmidmatrix (Nslip, nonSchmidCoefficients, sense) |
Non-schmid projections for bcc with up to 6 coefficients. More... | |
real(preal) function, dimension(sum(nslip), sum(nslip)), public | lattice::lattice_interaction_slipbyslip (Nslip, interactionValues, structure) |
Slip-slip interaction matrix details only active slip systems are considered. More... | |
real(preal) function, dimension(sum(ntwin), sum(ntwin)), public | lattice::lattice_interaction_twinbytwin (Ntwin, interactionValues, structure) |
Twin-twin interaction matrix details only active twin systems are considered. More... | |
real(preal) function, dimension(sum(ntrans), sum(ntrans)), public | lattice::lattice_interaction_transbytrans (Ntrans, interactionValues, structure) |
Trans-trans interaction matrix details only active trans systems are considered. More... | |
real(preal) function, dimension(sum(nslip), sum(ntwin)), public | lattice::lattice_interaction_slipbytwin (Nslip, Ntwin, interactionValues, structure) |
Slip-twin interaction matrix details only active slip and twin systems are considered. More... | |
real(preal) function, dimension(sum(nslip), sum(ntrans)), public | lattice::lattice_interaction_slipbytrans (Nslip, Ntrans, interactionValues, structure) |
Slip-trans interaction matrix details only active slip and trans systems are considered. More... | |
real(preal) function, dimension(sum(ntwin), sum(nslip)), public | lattice::lattice_interaction_twinbyslip (Ntwin, Nslip, interactionValues, structure) |
Twin-slip interaction matrix details only active twin and slip systems are considered. More... | |
real(preal) function, dimension(3, 3, sum(nslip)), public | lattice::lattice_schmidmatrix_slip (Nslip, structure, cOverA) |
Schmid matrix for slip details only active slip systems are considered. More... | |
real(preal) function, dimension(3, 3, sum(ntwin)), public | lattice::lattice_schmidmatrix_twin (Ntwin, structure, cOverA) |
Schmid matrix for twinning details only active twin systems are considered. More... | |
real(preal) function, dimension(3, 3, sum(ntrans)), public | lattice::lattice_schmidmatrix_trans (Ntrans, structure_target, cOverA, a_bcc, a_fcc) |
Schmid matrix for twinning details only active twin systems are considered. More... | |
real(preal) function, dimension(3, 3, 3, sum(ncleavage)), public | lattice::lattice_schmidmatrix_cleavage (Ncleavage, structure, cOverA) |
Schmid matrix for cleavage details only active cleavage systems are considered. More... | |
real(preal) function, dimension(3, sum(nslip)), public | lattice::lattice_slip_direction (Nslip, structure, cOverA) |
Slip direction of slip systems (|| b) More... | |
real(preal) function, dimension(3, sum(nslip)), public | lattice::lattice_slip_normal (Nslip, structure, cOverA) |
Normal direction of slip systems (|| n) More... | |
real(preal) function, dimension(3, sum(nslip)), public | lattice::lattice_slip_transverse (Nslip, structure, cOverA) |
Transverse direction of slip systems ( || t = b x n) More... | |
character(len=:) function, dimension(:), allocatable, public | lattice::lattice_labels_slip (Nslip, structure) |
Labels for slip systems details only active slip systems are considered. More... | |
real(preal) function, dimension(3, 3), public | lattice::lattice_applylatticesymmetry33 (T, structure) |
Return 3x3 tensor with symmetry according to given crystal structure. More... | |
real(preal) function, dimension(6, 6) | lattice::applylatticesymmetryc66 (C66, structure) |
Return stiffness matrix in 6x6 notation with symmetry according to given crystal structure. More... | |
character(len=:) function, dimension(:), allocatable, public | lattice::lattice_labels_twin (Ntwin, structure) |
Labels for twin systems details only active twin systems are considered. More... | |
real(preal) function, dimension(sum(nslip), sum(nslip)) | lattice::slipprojection_transverse (Nslip, structure, cOverA) |
Projection of the transverse direction onto the slip plane. More... | |
real(preal) function, dimension(sum(nslip), sum(nslip)) | lattice::slipprojection_direction (Nslip, structure, cOverA) |
Projection of the slip direction onto the slip plane. More... | |
real(preal) function, dimension(3, 3, sum(nslip)) | lattice::coordinatesystem_slip (Nslip, structure, cOverA) |
build a local coordinate system on slip systems More... | |
real(preal) function, dimension(sum(reacting_used), sum(acting_used)) | lattice::buildinteraction (reacting_used, acting_used, reacting_max, acting_max, values, matrix) |
Populate reduced interaction matrix. More... | |
real(preal) function, dimension(3, 3, sum(active)) | lattice::buildcoordinatesystem (active, potential, system, structure, cOverA) |
Build a local coordinate system on slip, twin, trans, cleavage systems. More... | |
subroutine | lattice::buildtransformationsystem (Q, S, Ntrans, cOverA, a_fcc, a_bcc) |
Helper function to define transformation systems. More... | |
character(len=:) function, dimension(:), allocatable | lattice::getlabels (active, potential, system) |
select active systems as strings More... | |
real(preal) function | lattice::equivalent_nu (C, assumption) |
Equivalent Poisson's ratio (ν) More... | |
real(preal) function | lattice::equivalent_mu (C, assumption) |
Equivalent shear modulus (μ) More... | |
subroutine | lattice::unittest |
check correctness of some lattice functions More... | |
subroutine, public | source_thermal_dissipation::source_thermal_dissipation_init |
module initialization More... | |
subroutine, public | source_thermal_dissipation::source_thermal_dissipation_getrateanditstangent (TDot, dTDot_dT, Tstar, Lp, phase) |
Ninstances dissipation rate. More... | |
subroutine, public | source_thermal_externalheat::source_thermal_externalheat_init |
module initialization More... | |
subroutine, public | source_thermal_externalheat::source_thermal_externalheat_dotstate (phase, of) |
rate of change of state More... | |
subroutine, public | source_thermal_externalheat::source_thermal_externalheat_getrateanditstangent (TDot, dTDot_dT, phase, of) |
returns local heat generation rate More... | |
subroutine, public | source_damage_isobrittle::source_damage_isobrittle_init |
module initialization More... | |
subroutine, public | source_damage_isobrittle::source_damage_isobrittle_deltastate (C, Fe, ipc, ip, el) |
calculates derived quantities from state More... | |
subroutine, public | source_damage_isobrittle::source_damage_isobrittle_getrateanditstangent (localphiDot, dLocalphiDot_dPhi, phi, phase, constituent) |
returns local part of nonlocal damage driving force More... | |
subroutine, public | source_damage_isobrittle::source_damage_isobrittle_results (phase, group) |
writes results to HDF5 output file More... | |
subroutine, public | source_damage_isoductile::source_damage_isoductile_init |
module initialization More... | |
subroutine, public | source_damage_isoductile::source_damage_isoductile_dotstate (ipc, ip, el) |
calculates derived quantities from state More... | |
subroutine, public | source_damage_isoductile::source_damage_isoductile_getrateanditstangent (localphiDot, dLocalphiDot_dPhi, phi, phase, constituent) |
returns local part of nonlocal damage driving force More... | |
subroutine, public | source_damage_isoductile::source_damage_isoductile_results (phase, group) |
writes results to HDF5 output file More... | |
subroutine, public | source_damage_anisobrittle::source_damage_anisobrittle_init |
module initialization More... | |
subroutine, public | source_damage_anisobrittle::source_damage_anisobrittle_dotstate (S, ipc, ip, el) |
calculates derived quantities from state More... | |
subroutine, public | source_damage_anisobrittle::source_damage_anisobrittle_getrateanditstangent (localphiDot, dLocalphiDot_dPhi, phi, phase, constituent) |
returns local part of nonlocal damage driving force More... | |
subroutine, public | source_damage_anisobrittle::source_damage_anisobrittle_results (phase, group) |
writes results to HDF5 output file More... | |
subroutine, public | source_damage_anisoductile::source_damage_anisoductile_init |
module initialization More... | |
subroutine, public | source_damage_anisoductile::source_damage_anisoductile_dotstate (ipc, ip, el) |
calculates derived quantities from state More... | |
subroutine, public | source_damage_anisoductile::source_damage_anisoductile_getrateanditstangent (localphiDot, dLocalphiDot_dPhi, phi, phase, constituent) |
returns local part of nonlocal damage driving force More... | |
subroutine, public | source_damage_anisoductile::source_damage_anisoductile_results (phase, group) |
writes results to HDF5 output file More... | |
subroutine, public | kinematics_cleavage_opening::kinematics_cleavage_opening_init |
module initialization More... | |
subroutine, public | kinematics_cleavage_opening::kinematics_cleavage_opening_lianditstangent (Ld, dLd_dTstar, S, ipc, ip, el) |
contains the constitutive equation for calculating the velocity gradient More... | |
subroutine, public | kinematics_slipplane_opening::kinematics_slipplane_opening_init |
module initialization More... | |
subroutine, public | kinematics_slipplane_opening::kinematics_slipplane_opening_lianditstangent (Ld, dLd_dTstar, S, ipc, ip, el) |
contains the constitutive equation for calculating the velocity gradient More... | |
subroutine, public | kinematics_thermal_expansion::kinematics_thermal_expansion_init |
module initialization More... | |
pure real(preal) function, dimension(3, 3), public | kinematics_thermal_expansion::kinematics_thermal_expansion_initialstrain (homog, phase, offset) |
report initial thermal strain based on current temperature deviation from reference More... | |
subroutine, public | kinematics_thermal_expansion::kinematics_thermal_expansion_lianditstangent (Li, dLi_dTstar, ipc, ip, el) |
contains the constitutive equation for calculating the velocity gradient More... | |
subroutine, public | constitutive::constitutive_init |
allocates arrays pointing to array of the various constitutive modules More... | |
real(preal) function, dimension(6, 6), public | constitutive::constitutive_homogenizedc (ipc, ip, el) |
returns the homogenize elasticity matrix ToDo: homogenizedC66 would be more consistent More... | |
subroutine, public | constitutive::constitutive_dependentstate (F, Fp, ipc, ip, el) |
calls microstructure function of the different constitutive models More... | |
subroutine, public | constitutive::constitutive_lpanditstangents (Lp, dLp_dS, dLp_dFi, S, Fi, ipc, ip, el) |
contains the constitutive equation for calculating the velocity gradient More... | |
subroutine, public | constitutive::constitutive_lianditstangents (Li, dLi_dS, dLi_dFi, S, Fi, ipc, ip, el) |
contains the constitutive equation for calculating the velocity gradient More... | |
pure real(preal) function, dimension(3, 3), public | constitutive::constitutive_initialfi (ipc, ip, el) |
collects initial intermediate deformation gradient More... | |
subroutine, public | constitutive::constitutive_sanditstangents (S, dS_dFe, dS_dFi, Fe, Fi, ipc, ip, el) |
returns the 2nd Piola-Kirchhoff stress tensor and its tangent with respect to the elastic/intermediate deformation gradients depending on the selected elastic law (so far no case switch because only Hooke is implemented) More... | |
subroutine | constitutive::constitutive_hooke_sanditstangents (S, dS_dFe, dS_dFi, Fe, Fi, ipc, ip, el) |
returns the 2nd Piola-Kirchhoff stress tensor and its tangent with respect to the elastic and intermeidate deformation gradients using Hookes law More... | |
subroutine, public | constitutive::constitutive_collectdotstate (S, FArray, Fi, FpArray, subdt, ipc, ip, el) |
contains the constitutive equation for calculating the rate of change of microstructure More... | |
subroutine, public | constitutive::constitutive_collectdeltastate (S, Fe, Fi, ipc, ip, el) |
for constitutive models having an instantaneous change of state will return false if delta state is not needed/supported by the constitutive model More... | |
subroutine, public | constitutive::constitutive_results |
writes constitutive results to HDF5 output file More... | |
program | __damask_marc.f90__ |
Dummy plasticity for purely elastic material. More... | |
pure subroutine | kinetics_slip (Mp, instance, of, gdot_slip_pos, gdot_slip_neg, dgdot_dtau_slip_pos, dgdot_dtau_slip_neg) |
module initialization More... | |
pure subroutine | kinetics_twin (Mp, instance, of, gdot_twin, dgdot_dtau_twin) |
Calculate shear rates on twin systems and their derivatives with respect to resolved. More... | |
pure subroutine | kinetics (Mp, instance, of, gdot_pos, gdot_neg, dgdot_dtau_pos, dgdot_dtau_neg) |
Phenomenological crystal plasticity using a power law formulation for the shear rates and a Voce-type kinematic hardening rule. More... | |
pure subroutine | kinetics_slip (Mp, T, instance, of, dot_gamma_sl, ddot_gamma_dtau_slip, tau_slip) |
material subroutine incoprorating dislocation and twinning physics More... | |
pure subroutine | kinetics_twin (Mp, T, dot_gamma_sl, instance, of, dot_gamma_twin, ddot_gamma_dtau_twin) |
Calculate shear rates on twin systems and their derivatives with respect to resolved. More... | |
pure subroutine | kinetics_trans (Mp, T, dot_gamma_sl, instance, of, dot_gamma_tr, ddot_gamma_dtau_trans) |
Calculate shear rates on transformation systems and their derivatives with respect to. More... | |
pure subroutine | kinetics (Mp, T, instance, of, dot_gamma_pos, dot_gamma_neg, ddot_gamma_dtau_pos, ddot_gamma_dtau_neg, tau_pos_out, tau_neg_out) |
crystal plasticity model for bcc metals, especially Tungsten More... | |
subroutine | stateinit (ini, phase, NipcMyPhase) |
material subroutine for plasticity including dislocation flux More... | |
subroutine | kinetics (v, dv_dtau, dv_dtauNS, tau, tauNS, tauThreshold, c, Temperature, instance) |
calculates kinetics More... | |
real(preal) function, dimension(param(instance)%sum_n_sl, 10) | getrho (instance, of, ip, el) |
returns copy of current dislocation densities from state More... | |
real(preal) function, dimension(param(instance)%sum_n_sl, 10) | getrho0 (instance, of, ip, el) |
returns copy of current dislocation densities from state More... | |
subroutine | crystallite_init |
crystallite state integration functions and reporting of results More... | |
logical function, dimension(discretization_nip, discretization_nelem) | crystallite_stress (dummyArgumentToPreventInternalCompilerErrorWithGCC) |
calculate stress (P) More... | |
subroutine | crystallite_stresstangent |
calculate tangent (dPdF) More... | |
subroutine | crystallite_orientations |
calculates orientations More... | |
real(preal) function, dimension(3, 3) | crystallite_push33toref (ipc, ip, el, tensor33) |
Map 2nd order tensor to reference config. More... | |
subroutine | crystallite_results |
writes crystallite results to HDF5 output file More... | |
real(preal) function, dimension(:,:,:), allocatable | select_tensors (dataset, instance) |
select tensors for output More... | |
type(rotation) function, dimension(:), allocatable | select_rotations (dataset, instance) |
select rotations for output More... | |
logical function | integratestress (ipc, ip, el, timeFraction) |
calculation of stress (P) with time integration based on a residuum in Lp and intermediate acceleration of the Newton-Raphson correction More... | |
subroutine | integratestatefpi |
integrate stress, state with adaptive 1st order explicit Euler method using Fixed Point Iteration to adapt the stepsize More... | |
real(preal) pure function | damper (current, previous, previous2) |
calculate the damping for correction of state and dot state More... | |
subroutine | integratestateeuler |
integrate state with 1st order explicit Euler method More... | |
subroutine | integratestateadaptiveeuler |
integrate stress, state with 1st order Euler method with adaptive step size More... | |
subroutine | integratestaterk4 |
integrate stress, state with 4th order explicit Runge Kutta method More... | |
subroutine | integratestaterkck45 |
integrate stress, state with 5th order Runge-Kutta Cash-Karp method with adaptive step size (use 5th order solution to advance = "local extrapolation") More... | |
subroutine | nonlocalconvergencecheck |
sets convergence flag for nonlocal calculations More... | |
logical pure function | converged (residuum, state, atol) |
determines whether a point is converged More... | |
logical function | statejump (ipc, ip, el) |
calculates a jump in the state according to the current state and the current stress returns true, if state jump was successfull or not needed. false indicates NaN in delta state More... | |
subroutine | crystallite_restartwrite |
Write current restart information (Field and constitutive data) to file. More... | |
subroutine | crystallite_restartread |
Read data for restart. More... | |
subroutine | crystallite_forward |
Forward data after successful increment. More... | |
subroutine | thermal_isothermal::thermal_isothermal_init |
allocates all neccessary fields, reads information from material configuration file More... | |
subroutine, public | thermal_adiabatic::thermal_adiabatic_init |
module initialization More... | |
logical function, dimension(2), public | thermal_adiabatic::thermal_adiabatic_updatestate (subdt, ip, el) |
calculates adiabatic change in temperature based on local heat generation model More... | |
subroutine, public | thermal_adiabatic::thermal_adiabatic_getsourceanditstangent (Tdot, dTdot_dT, T, ip, el) |
returns heat generation rate More... | |
real(preal) function, public | thermal_adiabatic::thermal_adiabatic_getspecificheat (ip, el) |
returns homogenized specific heat capacity More... | |
real(preal) function, public | thermal_adiabatic::thermal_adiabatic_getmassdensity (ip, el) |
returns homogenized mass density More... | |
subroutine, public | thermal_adiabatic::thermal_adiabatic_results (homog, group) |
writes results to HDF5 output file More... | |
subroutine, public | thermal_conduction::thermal_conduction_init |
module initialization More... | |
subroutine, public | thermal_conduction::thermal_conduction_getsourceanditstangent (Tdot, dTdot_dT, T, ip, el) |
returns heat generation rate More... | |
real(preal) function, dimension(3, 3), public | thermal_conduction::thermal_conduction_getconductivity (ip, el) |
returns homogenized thermal conductivity in reference configuration More... | |
real(preal) function, public | thermal_conduction::thermal_conduction_getspecificheat (ip, el) |
returns homogenized specific heat capacity More... | |
real(preal) function, public | thermal_conduction::thermal_conduction_getmassdensity (ip, el) |
returns homogenized mass density More... | |
subroutine, public | thermal_conduction::thermal_conduction_puttemperatureanditsrate (T, Tdot, ip, el) |
updates thermal state with solution from heat conduction PDE More... | |
subroutine, public | thermal_conduction::thermal_conduction_results (homog, group) |
writes results to HDF5 output file More... | |
subroutine | damage_none::damage_none_init |
allocates all neccessary fields, reads information from material configuration file More... | |
subroutine, public | damage_local::damage_local_init |
module initialization More... | |
logical function, dimension(2), public | damage_local::damage_local_updatestate (subdt, ip, el) |
calculates local change in damage field More... | |
subroutine | damage_local::damage_local_getsourceanditstangent (phiDot, dPhiDot_dPhi, phi, ip, el) |
calculates homogenized local damage driving forces More... | |
subroutine, public | damage_local::damage_local_results (homog, group) |
writes results to HDF5 output file More... | |
subroutine, public | damage_nonlocal::damage_nonlocal_init |
module initialization More... | |
subroutine, public | damage_nonlocal::damage_nonlocal_getsourceanditstangent (phiDot, dPhiDot_dPhi, phi, ip, el) |
calculates homogenized damage driving forces More... | |
real(preal) function, dimension(3, 3), public | damage_nonlocal::damage_nonlocal_getdiffusion (ip, el) |
returns homogenized non local damage diffusion tensor in reference configuration More... | |
real(preal) function, public | damage_nonlocal::damage_nonlocal_getmobility (ip, el) |
Returns homogenized nonlocal damage mobility. More... | |
subroutine, public | damage_nonlocal::damage_nonlocal_putnonlocaldamage (phi, ip, el) |
updated nonlocal damage field with solution from damage phase field PDE More... | |
subroutine, public | damage_nonlocal::damage_nonlocal_results (homog, group) |
writes results to HDF5 output file More... | |
subroutine, public | homogenization::homogenization_init |
module initialization More... | |
subroutine, public | homogenization::materialpoint_stressanditstangent (updateJaco, dt) |
parallelized calculation of stress and corresponding tangent at material points More... | |
subroutine | homogenization::partitiondeformation (ip, el) |
partition material point def grad onto constituents More... | |
logical function, dimension(2) | homogenization::updatestate (ip, el) |
update the internal state of the homogenization scheme and tell whether "done" and "happy" with result More... | |
subroutine | homogenization::averagestressanditstangent (ip, el) |
derive average stress and stiffness from constituent quantities More... | |
subroutine, public | homogenization::homogenization_results |
writes homogenization results to HDF5 output file More... | |
subroutine | stresspenalty (rPen, nMis, avgF, fDef, ip, el, instance, of) |
allocates all neccessary fields, reads information from material configuration file More... | |
subroutine | volumepenalty (vPen, vDiscrep, fAvg, fDef, nGrain, instance, of) |
calculate stress-like penalty due to volume discrepancy More... | |
real(preal) function, dimension(3) | surfacecorrection (avgF, instance, of) |
compute the correction factor accouted for surface evolution (area change) due to More... | |
real(preal) function, dimension(2) | equivalentmoduli (grainID, ip, el) |
compute the equivalent shear and bulk moduli from the elasticity tensor More... | |
subroutine | graindeformation (F, avgF, instance, of) |
calculating the grain deformation gradient (the same with More... | |
pure real(preal) function, dimension(3) | relaxationvector (intFace, instance, of) |
derive average stress and stiffness from constituent quantities More... | |
pure real(preal) function, dimension(3) | interfacenormal (intFace, instance, of) |
identify the normal of an interface More... | |
pure integer function, dimension(4) | getinterface (iFace, iGrain3) |
collect six faces of a grain in 4D (normal and position) More... | |
pure integer function, dimension(3) | grain1to3 (grain1, nGDim) |
map grain ID from in 1D (global array) to in 3D (local position) More... | |
integer pure function | grain3to1 (grain3, nGDim) |
map grain ID from in 3D (local position) to in 1D (global array) More... | |
integer pure function | interface4to1 (iFace4D, nGDim) |
maps interface ID from 4D (normal and local position) into 1D (global array) More... | |
pure integer function, dimension(4) | interface1to4 (iFace1D, nGDim) |
maps interface ID from 1D (global array) into 4D (normal and local position) More... | |
subroutine | cpfem_initall (el, ip) |
CPFEM engine. More... | |
subroutine | cpfem_init |
allocate the arrays defined in module CPFEM and initialize them More... | |
subroutine | cpfem_general (mode, parallelExecution, ffn, ffn1, temperature_inp, dt, elFE, ip, cauchyStress, jacobian) |
perform initialization at first call, update variables and call the actual material model More... | |
subroutine | cpfem_forward |
Forward data for new time increment. More... | |
subroutine | cpfem_results (inc, time) |
Trigger writing of results. More... | |
subroutine | hypela2 (d, g, e, de, s, t, dt, ngens, m, nn, kcus, matus, ndi, nshear, disp, dispt, coord, ffn, frotn, strechn, eigvn, ffn1, frotn1, strechn1, eigvn1, ncrd, itel, ndeg, ndm, nnode, jtype, lclass, ifr, ifu) |
This is the MSC.Marc user subroutine for defining material behavior. More... | |
subroutine | flux (f, ts, n, time) |
calculate internal heat generated due to inelastic energy dissipation More... | |
subroutine | uedinc (inc, incsub) |
trigger writing of results More... | |
Variables | |
integer, parameter | prec::preal = IEEE_selected_real_kind(15, 307) |
number with 15 significant digits, up to 1e+-307 (typically 64 bit) More... | |
integer, parameter | prec::pint = selected_int_kind(18) |
number with at least up to +-1e18 (typically 64 bit) More... | |
integer, parameter | prec::plongint = selected_int_kind(18) |
number with at least up to +-1e18 (typically 64 bit) More... | |
integer, parameter | prec::pstringlen = 256 |
default string length More... | |
integer, parameter | prec::ppathlen = 4096 |
maximum length of a path name on linux More... | |
real(preal), parameter | prec::tol_math_check = 1.0e-8_pReal |
tolerance for internal math self-checks (rotation) More... | |
real(preal), parameter, private | prec::preal_epsilon = epsilon(0.0_pReal) |
minimum positive number such that 1.0 + EPSILON /= 1.0. More... | |
real(preal), parameter, private | prec::preal_min = tiny(0.0_pReal) |
smallest normalized floating point number More... | |
integer, dimension(0), parameter | prec::emptyintarray = [integer::] |
real(preal), dimension(0), parameter | prec::emptyrealarray = [real(pReal)::] |
character(len=pstringlen), dimension(0), parameter | prec::emptystringarray = [character(len=pStringLen)::] |
logical, public, protected | damask_interface::symmetricsolver |
character(len= *), parameter, public | damask_interface::inputfileextension = '.dat' |
character(len= *), parameter, public | io::io_eof = '#EOF#' |
end of file string More... | |
character(len= *), parameter, public | io::io_whitespace = achar(44)//achar(32)//achar(9)//achar(10)//achar(13) |
whitespace characters More... | |
character, parameter, public | io::io_eol = new_line('DAMASK') |
end of line character More... | |
character, parameter, public | io::io_comment = '#' |
character(len= *), parameter, private | io::io_divider = '───────────────────'// '───────────────────'// '───────────────────'// '────────────' |
integer, public, protected | numerics::ijacostiffness = 1 |
frequency of stiffness update More... | |
integer, public, protected | numerics::randomseed = 0 |
fixed seeding for pseudo-random number generator, Default 0: use random seed More... | |
integer, public, protected | numerics::worldrank = 0 |
MPI worldrank (/=0 for MPI simulations only) More... | |
integer, public, protected | numerics::worldsize = 1 |
MPI worldsize (/=1 for MPI simulations only) More... | |
integer, public, protected | numerics::numerics_integrator = 1 |
method used for state integration Default 1: fix-point iteration More... | |
integer(4), public, protected | numerics::damask_numthreadsint = 0 |
value stored in environment variable DAMASK_NUM_THREADS, set to zero if no OpenMP directive More... | |
real(preal), public, protected | numerics::defgradtolerance = 1.0e-7_pReal |
deviation of deformation gradient that is still allowed (used by CPFEM to determine outdated ffn1) More... | |
real(preal), public, protected | numerics::numerics_unitlength = 1.0_pReal |
determines the physical length of one computational length unit More... | |
real(preal), public, protected | numerics::charlength = 1.0_pReal |
characteristic length scale for gradient problems More... | |
real(preal), public, protected | numerics::residualstiffness = 1.0e-6_pReal |
non-zero residual damage More... | |
logical, public, protected | numerics::usepingpong = .true. |
real(preal), public, protected | numerics::err_struct_tolabs = 1.0e-10_pReal |
absolute tolerance for mechanical equilibrium More... | |
real(preal), public, protected | numerics::err_struct_tolrel = 1.0e-4_pReal |
relative tolerance for mechanical equilibrium More... | |
real(preal), public, protected | numerics::err_thermal_tolabs = 1.0e-2_pReal |
absolute tolerance for thermal equilibrium More... | |
real(preal), public, protected | numerics::err_thermal_tolrel = 1.0e-6_pReal |
relative tolerance for thermal equilibrium More... | |
real(preal), public, protected | numerics::err_damage_tolabs = 1.0e-2_pReal |
absolute tolerance for damage evolution More... | |
real(preal), public, protected | numerics::err_damage_tolrel = 1.0e-6_pReal |
relative tolerance for damage evolution More... | |
integer, public, protected | numerics::itmax = 250 |
maximum number of iterations More... | |
integer, public, protected | numerics::itmin = 1 |
minimum number of iterations More... | |
integer, public, protected | numerics::stagitmax = 10 |
max number of field level staggered iterations More... | |
integer, public, protected | numerics::maxcutback = 3 |
max number of cut backs More... | |
integer, parameter, public | debug::debug_levelselective = 2**0 |
integer, parameter, public | debug::debug_levelbasic = 2**1 |
integer, parameter, public | debug::debug_levelextensive = 2**2 |
integer, parameter, private | debug::debug_maxgeneral = debug_LEVELEXTENSIVE |
integer, parameter, public | debug::debug_spectralrestart = debug_MAXGENERAL*2**1 |
integer, parameter, public | debug::debug_spectralfftw = debug_MAXGENERAL*2**2 |
integer, parameter, public | debug::debug_spectraldivergence = debug_MAXGENERAL*2**3 |
integer, parameter, public | debug::debug_spectralrotation = debug_MAXGENERAL*2**4 |
integer, parameter, public | debug::debug_spectralpetsc = debug_MAXGENERAL*2**5 |
integer, parameter, public | debug::debug_debug = 1 |
integer, parameter, public | debug::debug_math = 2 |
integer, parameter, public | debug::debug_fesolving = 3 |
integer, parameter, public | debug::debug_mesh = 4 |
stores debug level for mesh part of DAMASK bitwise coded More... | |
integer, parameter, public | debug::debug_material = 5 |
stores debug level for material part of DAMASK bitwise coded More... | |
integer, parameter, public | debug::debug_lattice = 6 |
stores debug level for lattice part of DAMASK bitwise coded More... | |
integer, parameter, public | debug::debug_constitutive = 7 |
stores debug level for constitutive part of DAMASK bitwise coded More... | |
integer, parameter, public | debug::debug_crystallite = 8 |
integer, parameter, public | debug::debug_homogenization = 9 |
integer, parameter, public | debug::debug_cpfem = 10 |
integer, parameter, public | debug::debug_spectral = 11 |
integer, parameter, public | debug::debug_marc = 12 |
integer, parameter, private | debug::debug_maxntype = debug_MARC |
must be set to the maximum defined debug type More... | |
integer, dimension(debug_maxntype+2), public, protected | debug::debug_level = 0 |
integer, public, protected | debug::debug_e = 1 |
integer, public, protected | debug::debug_i = 1 |
integer, public, protected | debug::debug_g = 1 |
integer, dimension(2), public | debug::debug_stressmaxlocation = 0 |
integer, dimension(2), public | debug::debug_stressminlocation = 0 |
integer, dimension(2), public | debug::debug_jacobianmaxlocation = 0 |
integer, dimension(2), public | debug::debug_jacobianminlocation = 0 |
real(preal), public | debug::debug_stressmax = -huge(1.0_pReal) |
real(preal), public | debug::debug_stressmin = huge(1.0_pReal) |
real(preal), public | debug::debug_jacobianmax = -huge(1.0_pReal) |
real(preal), public | debug::debug_jacobianmin = huge(1.0_pReal) |
type(tpartitionedstringlist), dimension(:), allocatable, public, protected | config::config_phase |
type(tpartitionedstringlist), dimension(:), allocatable, public, protected | config::config_microstructure |
type(tpartitionedstringlist), dimension(:), allocatable, public, protected | config::config_homogenization |
type(tpartitionedstringlist), dimension(:), allocatable, public, protected | config::config_texture |
type(tpartitionedstringlist), dimension(:), allocatable, public, protected | config::config_crystallite |
type(tpartitionedstringlist), public, protected | config::config_numerics |
type(tpartitionedstringlist), public, protected | config::config_debug |
character(len=pstringlen), dimension(:), allocatable, public, protected | config::config_name_phase |
name of each phase More... | |
character(len=pstringlen), dimension(:), allocatable, public, protected | config::config_name_homogenization |
name of each homogenization More... | |
character(len=pstringlen), dimension(:), allocatable, public, protected | config::config_name_crystallite |
name of each crystallite setting More... | |
character(len=pstringlen), dimension(:), allocatable, public, protected | config::config_name_microstructure |
name of each microstructure More... | |
character(len=pstringlen), dimension(:), allocatable, public, protected | config::config_name_texture |
name of each texture More... | |
real(preal), parameter | math::pi = acos(-1.0_pReal) |
ratio of a circle's circumference to its diameter More... | |
real(preal), parameter | math::indeg = 180.0_pReal/PI |
conversion from radian into degree More... | |
real(preal), parameter | math::inrad = PI/180.0_pReal |
conversion from degree into radian More... | |
complex(preal), parameter | math::twopiimg = cmplx(0.0_pReal, 2.0_pReal*PI) |
Re(0.0), Im(2xPi) More... | |
real(preal), dimension(3, 3), parameter | math::math_i3 = reshape([ 1.0_pReal,0.0_pReal,0.0_pReal, 0.0_pReal,1.0_pReal,0.0_pReal, 0.0_pReal,0.0_pReal,1.0_pReal ], [3,3]) |
3x3 Identity More... | |
real(preal), dimension(6), parameter, private | math::nrmmandel = [ 1.0_pReal, 1.0_pReal, 1.0_pReal, sqrt(2.0_pReal), sqrt(2.0_pReal), sqrt(2.0_pReal) ] |
forward weighting for Mandel notation More... | |
real(preal), dimension(6), parameter, private | math::invnrmmandel = 1.0_pReal/NRMMANDEL |
backward weighting for Mandel notation More... | |
integer, dimension(2, 6), parameter, private | math::mapnye = reshape([ 1,1, 2,2, 3,3, 1,2, 2,3, 1,3 ], [2,6]) |
arrangement in Nye notation. More... | |
integer, dimension(2, 6), parameter, private | math::mapvoigt = reshape([ 1,1, 2,2, 3,3, 2,3, 1,3, 1,2 ], [2,6]) |
arrangement in Voigt notation More... | |
integer, dimension(2, 9), parameter, private | math::mapplain = reshape([ 1,1, 1,2, 1,3, 2,1, 2,2, 2,3, 3,1, 3,2, 3,3 ], [2,9]) |
arrangement in Plain notation More... | |
real(preal), parameter, public | quaternions::p = -1.0_pReal |
parameter for orientation conversion. More... | |
real(preal), parameter | lambert::spi = sqrt(PI) |
real(preal), parameter | lambert::pref = sqrt(6.0_pReal/PI) |
real(preal), parameter | lambert::a = PI**(5.0_pReal/6.0_pReal)/6.0_pReal**(1.0_pReal/6.0_pReal) |
real(preal), parameter | lambert::ap = PI**(2.0_pReal/3.0_pReal) |
real(preal), parameter | lambert::sc = A/AP |
real(preal), parameter | lambert::beta = A/2.0_pReal |
real(preal), parameter | lambert::r1 = (3.0_pReal*PI/4.0_pReal)**(1.0_pReal/3.0_pReal) |
real(preal), parameter | lambert::r2 = sqrt(2.0_pReal) |
real(preal), parameter | lambert::pi12 = PI/12.0_pReal |
real(preal), parameter | lambert::prek = R1 * 2.0_pReal**(1.0_pReal/4.0_pReal)/BETA |
logical | fesolving::terminallyill = .false. |
at least one material point is terminally ill More... | |
integer, dimension(2) | fesolving::fesolving_execelem |
for ping-pong scheme always whole range, otherwise one specific element More... | |
integer, dimension(2) | fesolving::fesolving_execip |
for ping-pong scheme always range to max IP, otherwise one specific IP More... | |
logical, dimension(:,:), allocatable | fesolving::calcmode |
do calculation or simply collect when using ping pong scheme More... | |
integer, parameter | element::nelemtype = 13 |
integer, dimension(nelemtype), parameter | element::nnode = [ 3, 6, 4, 8, 8, 4, 5, 10, 6, 8, 8, 20, 20 ] |
number of nodes that constitute a specific type of element More... | |
integer, dimension(nelemtype), parameter | element::geomtype = [ 1, 2, 3, 4, 3, 5, 6, 6, 7, 8, 9, 9, 10 ] |
geometry type (same number of cell nodes and IPs) More... | |
integer, dimension(maxval(geomtype)), parameter | element::ncellnode = [ 3, 7, 9, 16, 4, 15, 21, 8, 27, 64 ] |
number of cell nodes More... | |
integer, dimension(maxval(geomtype)), parameter | element::nip = [ 1, 3, 4, 9, 1, 4, 6, 1, 8, 27 ] |
number of IPs More... | |
integer, dimension(maxval(geomtype)), parameter | element::celltype = [ 1, 2, 2, 2, 3, 4, 4, 4, 4, 4 ] |
cell type More... | |
integer, dimension(maxval(celltype)), parameter | element::nipneighbor = [ 3, 4, 4, 6 ] |
number of ip neighbors / cell faces More... | |
integer, dimension(maxval(celltype)), parameter | element::ncellnodepercellface = [ 2, 2, 3, 4 ] |
number of cell nodes per face More... | |
integer, dimension(maxval(celltype)), parameter | element::ncellnodepercell = [ 3, 4, 4, 8 ] |
number of total cell nodes More... | |
integer, dimension(nipneighbor(celltype(1)), nip(1)), parameter | element::ipneighbor1 = reshape([ -2,-3,-1 ], [NIPNEIGHBOR(CELLTYPE(1)),NIP(1)]) |
integer, dimension(nipneighbor(celltype(2)), nip(2)), parameter | element::ipneighbor2 = reshape([ 2,-3, 3,-1, -2, 1, 3,-1, 2,-3,-2, 1 ], [NIPNEIGHBOR(CELLTYPE(2)),NIP(2)]) |
integer, dimension(nipneighbor(celltype(3)), nip(3)), parameter | element::ipneighbor3 = reshape([ 2,-4, 3,-1, -2, 1, 4,-1, 4,-4,-3, 1, -2, 3,-3, 2 ], [NIPNEIGHBOR(CELLTYPE(3)),NIP(3)]) |
integer, dimension(nipneighbor(celltype(4)), nip(4)), parameter | element::ipneighbor4 = reshape([ 2,-4, 4,-1, 3, 1, 5,-1, -2, 2, 6,-1, 5,-4, 7, 1, 6, 4, 8, 2, -2, 5, 9, 3, 8,-4,-3, 4, 9, 7,-3, 5, -2, 8,-3, 6 ], [NIPNEIGHBOR(CELLTYPE(4)),NIP(4)]) |
integer, dimension(nipneighbor(celltype(5)), nip(5)), parameter | element::ipneighbor5 = reshape([ -1,-2,-3,-4 ], [NIPNEIGHBOR(CELLTYPE(5)),NIP(5)]) |
integer, dimension(nipneighbor(celltype(6)), nip(6)), parameter | element::ipneighbor6 = reshape([ 2,-4, 3,-2, 4,-1, -2, 1, 3,-2, 4,-1, 2,-4,-3, 1, 4,-1, 2,-4, 3,-2,-3, 1 ], [NIPNEIGHBOR(CELLTYPE(6)),NIP(6)]) |
integer, dimension(nipneighbor(celltype(7)), nip(7)), parameter | element::ipneighbor7 = reshape([ 2,-4, 3,-2, 4,-1, -3, 1, 3,-2, 5,-1, 2,-4,-3, 1, 6,-1, 5,-4, 6,-2,-5, 1, -3, 4, 6,-2,-5, 2, 5,-4,-3, 4,-5, 3 ], [NIPNEIGHBOR(CELLTYPE(7)),NIP(7)]) |
integer, dimension(nipneighbor(celltype(8)), nip(8)), parameter | element::ipneighbor8 = reshape([ -3,-5,-4,-2,-6,-1 ], [NIPNEIGHBOR(CELLTYPE(8)),NIP(8)]) |
integer, dimension(nipneighbor(celltype(9)), nip(9)), parameter | element::ipneighbor9 = reshape([ 2,-5, 3,-2, 5,-1, -3, 1, 4,-2, 6,-1, 4,-5,-4, 1, 7,-1, -3, 3,-4, 2, 8,-1, 6,-5, 7,-2,-6, 1, -3, 5, 8,-2,-6, 2, 8,-5,-4, 5,-6, 3, -3, 7,-4, 6,-6, 4 ], [NIPNEIGHBOR(CELLTYPE(9)),NIP(9)]) |
integer, dimension(nipneighbor(celltype(10)), nip(10)), parameter | element::ipneighbor10 = reshape([ 2,-5, 4,-2,10,-1, 3, 1, 5,-2,11,-1, -3, 2, 6,-2,12,-1, 5,-5, 7, 1,13,-1, 6, 4, 8, 2,14,-1, -3, 5, 9, 3,15,-1, 8,-5,-4, 4,16,-1, 9, 7,-4, 5,17,-1, -3, 8,-4, 6,18,-1, 11,-5,13,-2,19, 1, 12,10,14,-2,20, 2, -3,11,15,-2,21, 3, 14,-5,16,10,22, 4, 15,13,17,11,23, 5, -3,14,18,12,24, 6, 17,-5,-4,13,25, 7, 18,16,-4,14,26, 8, -3,17,-4,15,27, 9, 20,-5,22,-2,-6,10, 21,19,23,-2,-6,11, -3,20,24,-2,-6,12, 23,-5,25,19,-6,13, 24,22,26,20,-6,14, -3,23,27,21,-6,15, 26,-5,-4,22,-6,16, 27,25,-4,23,-6,17, -3,26,-4,24,-6,18 ], [NIPNEIGHBOR(CELLTYPE(10)),NIP(10)]) |
integer, dimension(nnode(1), ncellnode(geomtype(1))), parameter | element::cellnodeparentnodeweights1 = reshape([ 1, 0, 0, 0, 1, 0, 0, 0, 1 ], [NNODE(1),NCELLNODE(GEOMTYPE(1))]) |
integer, dimension(nnode(2), ncellnode(geomtype(2))), parameter | element::cellnodeparentnodeweights2 = reshape([ 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2 ], [NNODE(2),NCELLNODE(GEOMTYPE(2))]) |
integer, dimension(nnode(3), ncellnode(geomtype(3))), parameter | element::cellnodeparentnodeweights3 = reshape([ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1 ], [NNODE(3),NCELLNODE(GEOMTYPE(3))]) |
integer, dimension(nnode(4), ncellnode(geomtype(4))), parameter | element::cellnodeparentnodeweights4 = reshape([ 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 2, 4, 1, 1, 1, 8, 2, 2, 8, 1, 4, 1, 1, 8, 8, 2, 2, 1, 1, 4, 1, 2, 8, 8, 2, 1, 1, 1, 4, 2, 2, 8, 8 ], [NNODE(4),NCELLNODE(GEOMTYPE(4))]) |
integer, dimension(nnode(5), ncellnode(geomtype(5))), parameter | element::cellnodeparentnodeweights5 = reshape([ 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2 ], [NNODE(5),NCELLNODE(GEOMTYPE(5))]) |
integer, dimension(nnode(6), ncellnode(geomtype(6))), parameter | element::cellnodeparentnodeweights6 = reshape([ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ], [NNODE(6),NcellNode(GEOMTYPE(6))]) |
integer, dimension(nnode(7), ncellnode(geomtype(7))), parameter | element::cellnodeparentnodeweights7 = reshape([ 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1 ], [NNODE(7),NCELLNODE(GEOMTYPE(7))]) |
integer, dimension(nnode(8), ncellnode(geomtype(8))), parameter | element::cellnodeparentnodeweights8 = reshape([ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 2, 2, 2, 0, 0, 0, 1, 1, 0, 1, 2, 0, 0, 2, 2, 0, 0, 1, 1, 1, 0, 2, 0, 0, 2, 2, 1, 0, 1, 1, 0, 0, 2, 2, 0, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4 ], [NNODE(8),NCELLNODE(GEOMTYPE(8))]) |
integer, dimension(nnode(9), ncellnode(geomtype(9))), parameter | element::cellnodeparentnodeweights9 = reshape([ 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [NNODE(9),NCELLNODE(GEOMTYPE(9))]) |
integer, dimension(nnode(10), ncellnode(geomtype(10))), parameter | element::cellnodeparentnodeweights10 = reshape([ 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 ], [NNODE(10),NCELLNODE(GEOMTYPE(10))]) |
integer, dimension(nnode(11), ncellnode(geomtype(11))), parameter | element::cellnodeparentnodeweights11 = reshape([ 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [NNODE(11),NCELLNODE(GEOMTYPE(11))]) |
integer, dimension(nnode(12), ncellnode(geomtype(12))), parameter | element::cellnodeparentnodeweights12 = reshape([ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 2, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 2, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 2, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 2, 2, 0, 0, 2, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ], [NNODE(12),NCELLNODE(GEOMTYPE(12))]) |
integer, dimension(nnode(13), ncellnode(geomtype(13))), parameter | element::cellnodeparentnodeweights13 = reshape([ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 1, 1, 1, 0, 0, 0, 0, 8, 2, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 1, 1, 0, 0, 0, 0, 8, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 4, 1, 0, 0, 0, 0, 2, 8, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 4, 0, 0, 0, 0, 2, 2, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 8, 2, 0, 0, 1, 4, 0, 0, 1, 1, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 2, 8, 0, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 8, 2, 0, 0, 1, 4, 0, 0, 1, 1, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 2, 8, 0, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 8, 2, 0, 0, 1, 4, 0, 0, 1, 1, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 2, 8, 1, 0, 0, 4, 1, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 2, 2, 0, 0, 8, 4, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 2, 8, 0, 0, 2, 1, 1, 0, 0, 4, 1, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 8, 2, 0, 0, 1, 1, 0, 0, 1, 4, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 2, 8, 0, 0, 0, 1, 1, 0, 0, 4, 1, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 8, 2, 0, 0, 1, 1, 0, 0, 1, 4, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 2, 8, 0, 0, 0, 1, 1, 0, 0, 4, 1, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 8, 2, 0, 0, 1, 1, 0, 0, 1, 4, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 2, 8, 1, 0, 0, 1, 1, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 8, 2, 0, 0, 8, 1, 0, 0, 1, 4, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 8, 8, 0, 0, 2, 0, 0, 0, 0, 4, 1, 1, 1, 0, 0, 0, 0, 8, 2, 2, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 1, 1, 0, 0, 0, 0, 8, 8, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 4, 1, 0, 0, 0, 0, 2, 8, 8, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 4, 0, 0, 0, 0, 2, 2, 8, 8, 0, 0, 0, 0, 24, 8, 4, 8, 8, 4, 3, 4, 32,12,12,32, 12, 4, 4,12, 32,12, 4,12, 8,24, 8, 4, 4, 8, 4, 3, 32,32,12,12, 12,12, 4, 4, 12,32,12, 4, 4, 8,24, 8, 3, 4, 8, 4, 12,32,32,12, 4,12,12, 4, 4,12,32,12, 8, 4, 8,24, 4, 3, 4, 8, 12,12,32,32, 4, 4,12,12, 12, 4,12,32, 8, 4, 3, 4, 24, 8, 4, 8, 12, 4, 4,12, 32,12,12,32, 32,12, 4,12, 4, 8, 4, 3, 8,24, 8, 4, 12,12, 4, 4, 32,32,12,12, 12,32,12, 4, 3, 4, 8, 4, 4, 8,24, 8, 4,12,12, 4, 12,32,32,12, 4,12,32,12, 4, 3, 4, 8, 8, 4, 8,24, 4, 4,12,12, 12,12,32,32, 12, 4,12,32 ], [NNODE(13),NCELLNODE(GEOMTYPE(13))]) |
integer, dimension(ncellnodepercell(celltype(1)), nip(1)), parameter | element::cell1 = reshape([ 1,2,3 ], [NCELLNODEPERCELL(CELLTYPE(1)),NIP(1)]) |
integer, dimension(ncellnodepercell(celltype(2)), nip(2)), parameter | element::cell2 = reshape([ 1, 4, 7, 6, 2, 5, 7, 4, 3, 6, 7, 5 ], [NCELLNODEPERCELL(CELLTYPE(2)),NIP(2)]) |
integer, dimension(ncellnodepercell(celltype(3)), nip(3)), parameter | element::cell3 = reshape([ 1, 5, 9, 8, 5, 2, 6, 9, 8, 9, 7, 4, 9, 6, 3, 7 ], [NCELLNODEPERCELL(CELLTYPE(3)),NIP(3)]) |
integer, dimension(ncellnodepercell(celltype(4)), nip(4)), parameter | element::cell4 = reshape([ 1, 5,13,12, 5, 6,14,13, 6, 2, 7,14, 12,13,16,11, 13,14,15,16, 14, 7, 8,15, 11,16,10, 4, 16,15, 9,10, 15, 8, 3, 9 ], [NCELLNODEPERCELL(CELLTYPE(4)),NIP(4)]) |
integer, dimension(ncellnodepercell(celltype(5)), nip(5)), parameter | element::cell5 = reshape([ 1, 2, 3, 4 ], [NCELLNODEPERCELL(CELLTYPE(5)),NIP(5)]) |
integer, dimension(ncellnodepercell(celltype(6)), nip(6)), parameter | element::cell6 = reshape([ 1, 5,11, 7, 8,12,15,14, 5, 2, 6,11,12, 9,13,15, 7,11, 6, 3,14,15,13,10, 8,12,15, 4, 4, 9,13,10 ], [NCELLNODEPERCELL(CELLTYPE(6)),NIP(6)]) |
integer, dimension(ncellnodepercell(celltype(7)), nip(7)), parameter | element::cell7 = reshape([ 1, 7,16, 9,10,17,21,19, 7, 2, 8,16,17,11,18,21, 9,16, 8, 3,19,21,18,12, 10,17,21,19, 4,13,20,15, 17,11,18,21,13, 5,14,20, 19,21,18,12,15,20,14, 6 ], [NCELLNODEPERCELL(CELLTYPE(7)),NIP(7)]) |
integer, dimension(ncellnodepercell(celltype(8)), nip(8)), parameter | element::cell8 = reshape([ 1, 2, 3, 4, 5, 6, 7, 8 ], [NCELLNODEPERCELL(CELLTYPE(8)),NIP(8)]) |
integer, dimension(ncellnodepercell(celltype(9)), nip(9)), parameter | element::cell9 = reshape([ 1, 9,21,12,17,22,27,25, 9, 2,10,21,22,18,23,27, 12,21,11, 4,25,27,24,20, 21,10, 3,11,27,23,19,24, 17,22,27,25, 5,13,26,16, 22,18,23,27,13, 6,14,26, 25,27,24,20,16,26,15, 8, 27,23,19,24,26,14, 7,15 ], [NCELLNODEPERCELL(CELLTYPE(9)),NIP(9)]) |
integer, dimension(ncellnodepercell(celltype(10)), nip(10)), parameter | element::cell10 = reshape([ 1, 9,33,16,17,37,57,44, 9,10,34,33,37,38,58,57, 10, 2,11,34,38,18,39,58, 16,33,36,15,44,57,60,43, 33,34,35,36,57,58,59,60, 34,11,12,35,58,39,40,59, 15,36,14, 4,43,60,42,20, 36,35,13,14,60,59,41,42, 35,12, 3,13,59,40,19,41, 17,37,57,44,21,45,61,52, 37,38,58,57,45,46,62,61, 38,18,39,58,46,22,47,62, 44,57,60,43,52,61,64,51, 57,58,59,60,61,62,63,64, 58,39,40,59,62,47,48,63, 43,60,42,20,51,64,50,24, 60,59,41,42,64,63,49,50, 59,40,19,41,63,48,23,49, 21,45,61,52, 5,25,53,32, 45,46,62,61,25,26,54,53, 46,22,47,62,26, 6,27,54, 52,61,64,51,32,53,56,31, 61,62,63,64,53,54,55,56, 62,47,48,63,54,27,28,55, 51,64,50,24,31,56,30, 8, 64,63,49,50,56,55,29,30, 63,48,23,49,55,28, 7,29 ], [NCELLNODEPERCELL(CELLTYPE(10)),NIP(10)]) |
integer, dimension(ncellnodepercellface(1), nipneighbor(1)), parameter | element::cellface1 = reshape([ 2,3, 3,1, 1,2 ], [NCELLNODEPERCELLFACE(1),NIPNEIGHBOR(1)]) |
integer, dimension(ncellnodepercellface(2), nipneighbor(2)), parameter | element::cellface2 = reshape([ 2,3, 4,1, 3,4, 1,2 ], [NCELLNODEPERCELLFACE(2),NIPNEIGHBOR(2)]) |
integer, dimension(ncellnodepercellface(3), nipneighbor(3)), parameter | element::cellface3 = reshape([ 1,3,2, 1,2,4, 2,3,4, 1,4,3 ], [NCELLNODEPERCELLFACE(3),NIPNEIGHBOR(3)]) |
integer, dimension(ncellnodepercellface(4), nipneighbor(4)), parameter | element::cellface4 = reshape([ 2,3,7,6, 4,1,5,8, 3,4,8,7, 1,2,6,5, 5,6,7,8, 1,4,3,2 ], [NCELLNODEPERCELLFACE(4),NIPNEIGHBOR(4)]) |
integer(hid_t) | results::resultsfile |
integer, protected | geometry_plastic_nonlocal::geometry_plastic_nonlocal_nipneighbors |
integer, dimension(:,:,:,:), allocatable, protected | geometry_plastic_nonlocal::geometry_plastic_nonlocal_ipneighborhood |
6 or less neighboring IPs as [element ID, IP ID, face ID that point to me] More... | |
real(preal), dimension(:,:), allocatable, protected | geometry_plastic_nonlocal::geometry_plastic_nonlocal_ipvolume0 |
volume associated with IP (initially!) More... | |
real(preal), dimension(:,:,:), allocatable, protected | geometry_plastic_nonlocal::geometry_plastic_nonlocal_iparea0 |
area of interface to neighboring IP (initially!) More... | |
real(preal), dimension(:,:,:,:), allocatable, protected | geometry_plastic_nonlocal::geometry_plastic_nonlocal_ipareanormal0 |
area normal of interface to neighboring IP (initially!) More... | |
integer, public, protected | discretization::discretization_nip |
integer, public, protected | discretization::discretization_nelem |
integer, dimension(:), allocatable, public, protected | discretization::discretization_homogenizationat |
integer, dimension(:), allocatable, public, protected | discretization::discretization_microstructureat |
real(preal), dimension(:,:), allocatable, public, protected | discretization::discretization_ipcoords0 |
real(preal), dimension(:,:), allocatable, public, protected | discretization::discretization_ipcoords |
real(preal), dimension(:,:), allocatable, public, protected | discretization::discretization_nodecoords0 |
real(preal), dimension(:,:), allocatable, public, protected | discretization::discretization_nodecoords |
integer | discretization::discretization_sharednodesbegin |
type(tcellnodedefinition), dimension(:), allocatable | discretization_marc::cellnodedefinition |
real(preal), public, protected | discretization_marc::mesh_unitlength |
physical length of one unit in mesh More... | |
integer, dimension(:), allocatable, public | discretization_marc::mesh_fem2damask_elem |
DAMASK element ID for Marc element ID. More... | |
integer, dimension(:), allocatable, public | discretization_marc::mesh_fem2damask_node |
DAMASK node ID for Marc node ID. More... | |
character(len= *), parameter, public | material::elasticity_hooke_label = 'hooke' |
character(len= *), parameter, public | material::plasticity_none_label = 'none' |
character(len= *), parameter, public | material::plasticity_isotropic_label = 'isotropic' |
character(len= *), parameter, public | material::plasticity_phenopowerlaw_label = 'phenopowerlaw' |
character(len= *), parameter, public | material::plasticity_kinehardening_label = 'kinehardening' |
character(len= *), parameter, public | material::plasticity_dislotwin_label = 'dislotwin' |
character(len= *), parameter, public | material::plasticity_disloucla_label = 'disloucla' |
character(len= *), parameter, public | material::plasticity_nonlocal_label = 'nonlocal' |
character(len= *), parameter, public | material::source_thermal_dissipation_label = 'thermal_dissipation' |
character(len= *), parameter, public | material::source_thermal_externalheat_label = 'thermal_externalheat' |
character(len= *), parameter, public | material::source_damage_isobrittle_label = 'damage_isobrittle' |
character(len= *), parameter, public | material::source_damage_isoductile_label = 'damage_isoductile' |
character(len= *), parameter, public | material::source_damage_anisobrittle_label = 'damage_anisobrittle' |
character(len= *), parameter, public | material::source_damage_anisoductile_label = 'damage_anisoductile' |
character(len= *), parameter, public | material::kinematics_thermal_expansion_label = 'thermal_expansion' |
character(len= *), parameter, public | material::kinematics_cleavage_opening_label = 'cleavage_opening' |
character(len= *), parameter, public | material::kinematics_slipplane_opening_label = 'slipplane_opening' |
character(len= *), parameter, public | material::stiffness_degradation_damage_label = 'damage' |
character(len= *), parameter, public | material::thermal_isothermal_label = 'isothermal' |
character(len= *), parameter, public | material::thermal_adiabatic_label = 'adiabatic' |
character(len= *), parameter, public | material::thermal_conduction_label = 'conduction' |
character(len= *), parameter, public | material::damage_none_label = 'none' |
character(len= *), parameter, public | material::damage_local_label = 'local' |
character(len= *), parameter, public | material::damage_nonlocal_label = 'nonlocal' |
character(len= *), parameter, public | material::homogenization_none_label = 'none' |
character(len= *), parameter, public | material::homogenization_isostrain_label = 'isostrain' |
character(len= *), parameter, public | material::homogenization_rgc_label = 'rgc' |
@, public | material::elasticity_hooke_id |
@, public | material::plasticity_none_id |
@, public | material::plasticity_isotropic_id |
@, public | material::plasticity_phenopowerlaw_id |
@, public | material::plasticity_kinehardening_id |
@, public | material::plasticity_dislotwin_id |
@, public | material::plasticity_disloucla_id |
@, public | material::plasticity_nonlocal_id |
@, public | material::source_thermal_dissipation_id |
@, public | material::source_thermal_externalheat_id |
@, public | material::source_damage_isobrittle_id |
@, public | material::source_damage_isoductile_id |
@, public | material::source_damage_anisobrittle_id |
@, public | material::source_damage_anisoductile_id |
@, public | material::kinematics_cleavage_opening_id |
@, public | material::kinematics_slipplane_opening_id |
@, public | material::kinematics_thermal_expansion_id |
@, public | material::stiffness_degradation_damage_id |
@, public | material::thermal_isothermal_id |
@, public | material::thermal_adiabatic_id |
@, public | material::thermal_conduction_id |
@, public | material::damage_none_id |
@, public | material::damage_local_id |
@, public | material::damage_nonlocal_id |
@, public | material::homogenization_none_id |
@, public | material::homogenization_isostrain_id |
@, public | material::homogenization_rgc_id |
integer(kind(elasticity_undefined_id)), dimension(:), allocatable, public, protected | material::phase_elasticity |
elasticity of each phase More... | |
integer(kind(plasticity_undefined_id)), dimension(:), allocatable, public, protected | material::phase_plasticity |
plasticity of each phase More... | |
integer(kind(thermal_isothermal_id)), dimension(:), allocatable, public, protected | material::thermal_type |
thermal transport model More... | |
integer(kind(damage_none_id)), dimension(:), allocatable, public, protected | material::damage_type |
nonlocal damage model More... | |
integer(kind(homogenization_undefined_id)), dimension(:), allocatable, public, protected | material::homogenization_type |
type of each homogenization More... | |
integer, public, protected | material::material_nphase |
number of phases More... | |
integer, public, protected | material::material_nhomogenization |
number of homogenizations More... | |
integer(kind(source_undefined_id)), dimension(:,:), allocatable, public, protected | material::phase_source |
active sources mechanisms of each phase More... | |
integer(kind(source_undefined_id)), dimension(:,:), allocatable, public, protected | material::phase_kinematics |
active kinematic mechanisms of each phase More... | |
integer(kind(source_undefined_id)), dimension(:,:), allocatable, public, protected | material::phase_stiffnessdegradation |
active stiffness degradation mechanisms of each phase More... | |
integer, public, protected | material::homogenization_maxngrains |
max number of grains in any USED homogenization More... | |
integer, dimension(:), allocatable, public, protected | material::phase_nsources |
number of source mechanisms active in each phase More... | |
integer, dimension(:), allocatable, public, protected | material::phase_nkinematics |
number of kinematic mechanisms active in each phase More... | |
integer, dimension(:), allocatable, public, protected | material::phase_nstiffnessdegradations |
number of stiffness degradation mechanisms active in each phase More... | |
integer, dimension(:), allocatable, public, protected | material::phase_elasticityinstance |
instance of particular elasticity of each phase More... | |
integer, dimension(:), allocatable, public, protected | material::phase_plasticityinstance |
instance of particular plasticity of each phase More... | |
integer, dimension(:), allocatable, public, protected | material::homogenization_ngrains |
number of grains in each homogenization More... | |
integer, dimension(:), allocatable, public, protected | material::homogenization_typeinstance |
instance of particular type of each homogenization More... | |
integer, dimension(:), allocatable, public, protected | material::thermal_typeinstance |
instance of particular type of each thermal transport More... | |
integer, dimension(:), allocatable, public, protected | material::damage_typeinstance |
instance of particular type of each nonlocal damage More... | |
real(preal), dimension(:), allocatable, public, protected | material::thermal_initialt |
initial temperature per each homogenization More... | |
real(preal), dimension(:), allocatable, public, protected | material::damage_initialphi |
initial damage per each homogenization More... | |
integer, dimension(:), allocatable, public, protected | material::material_homogenizationat |
homogenization ID of each element (copy of discretization_homogenizationAt) More... | |
integer, dimension(:,:), allocatable, target, public | material::material_homogenizationmemberat |
position of the element within its homogenization instance More... | |
integer, dimension(:,:), allocatable, public, protected | material::material_phaseat |
phase ID of each element More... | |
integer, dimension(:,:,:), allocatable, public, protected | material::material_phasememberat |
position of the element within its phase instance More... | |
type(tplasticstate), dimension(:), allocatable, public | material::plasticstate |
type(tsourcestate), dimension(:), allocatable, public | material::sourcestate |
type(tstate), dimension(:), allocatable, public | material::homogstate |
type(tstate), dimension(:), allocatable, public | material::thermalstate |
type(tstate), dimension(:), allocatable, public | material::damagestate |
integer, dimension(:,:,:), allocatable, public, protected | material::material_texture |
texture (index) of each grain,IP,element. Only used by plastic_nonlocal More... | |
type(rotation), dimension(:,:,:), allocatable, public, protected | material::material_orientation0 |
initial orientation of each grain,IP,element More... | |
logical, dimension(:), allocatable, public, protected | material::phase_localplasticity |
flags phases with local constitutive law More... | |
integer, dimension(:), allocatable, private | material::microstructure_nconstituents |
number of constituents in each microstructure More... | |
integer, dimension(:,:), allocatable, private | material::microstructure_phase |
phase IDs of each microstructure More... | |
integer, dimension(:,:), allocatable, private | material::microstructure_texture |
texture IDs of each microstructure More... | |
type(rotation), dimension(:), allocatable, private | material::texture_orientation |
Euler angles in material.config (possibly rotated for alignment) More... | |
integer, dimension(:,:), allocatable, target, private | material::mappinghomogenizationconst |
mapping from material points to offset in constant state/field More... | |
type(thomogmapping), dimension(:), allocatable, public | material::thermalmapping |
mapping for thermal state/fields More... | |
type(thomogmapping), dimension(:), allocatable, public | material::damagemapping |
mapping for damage state/fields More... | |
type(group_float), dimension(:), allocatable, public | material::temperature |
temperature field More... | |
type(group_float), dimension(:), allocatable, public | material::damage |
damage field More... | |
type(group_float), dimension(:), allocatable, public | material::temperaturerate |
temperature change rate field More... | |
integer, dimension(2), parameter | lattice::fcc_nslipsystem = [12, 6] |
integer, dimension(1), parameter | lattice::fcc_ntwinsystem = [12] |
integer, dimension(1), parameter | lattice::fcc_ntranssystem = [12] |
integer, dimension(1), parameter | lattice::fcc_ncleavagesystem = [3] |
integer, parameter | lattice::fcc_nslip = sum(FCC_NSLIPSYSTEM) |
total # of slip systems for fcc More... | |
integer, parameter | lattice::fcc_ntwin = sum(FCC_NTWINSYSTEM) |
total # of twin systems for fcc More... | |
integer, parameter | lattice::fcc_ntrans = sum(FCC_NTRANSSYSTEM) |
total # of transformation systems for fcc More... | |
integer, parameter | lattice::fcc_ncleavage = sum(FCC_NCLEAVAGESYSTEM) |
total # of cleavage systems for fcc More... | |
real(preal), dimension(3+3, fcc_nslip), parameter | lattice::fcc_systemslip = reshape(real([ 0, 1,-1, 1, 1, 1, -1, 0, 1, 1, 1, 1, 1,-1, 0, 1, 1, 1, 0,-1,-1, -1,-1, 1, 1, 0, 1, -1,-1, 1, -1, 1, 0, -1,-1, 1, 0,-1, 1, 1,-1,-1, -1, 0,-1, 1,-1,-1, 1, 1, 0, 1,-1,-1, 0, 1, 1, -1, 1,-1, 1, 0,-1, -1, 1,-1, -1,-1, 0, -1, 1,-1, 1, 1, 0, 1,-1, 0, 1,-1, 0, 1, 1, 0, 1, 0, 1, 1, 0,-1, 1, 0,-1, 1, 0, 1, 0, 1, 1, 0, 1,-1, 0, 1,-1, 0, 1, 1 ], pReal), shape(FCC_SYSTEMSLIP)) |
Slip system <110>{111} directions. Sorted according to Eisenlohr & Hantcherli. More... | |
real(preal), dimension(3+3, fcc_ntwin), parameter | lattice::fcc_systemtwin = reshape(real( [ -2, 1, 1, 1, 1, 1, 1,-2, 1, 1, 1, 1, 1, 1,-2, 1, 1, 1, 2,-1, 1, -1,-1, 1, -1, 2, 1, -1,-1, 1, -1,-1,-2, -1,-1, 1, -2,-1,-1, 1,-1,-1, 1, 2,-1, 1,-1,-1, 1,-1, 2, 1,-1,-1, 2, 1,-1, -1, 1,-1, -1,-2,-1, -1, 1,-1, -1, 1, 2, -1, 1,-1 ], pReal), shape(FCC_SYSTEMTWIN)) |
Twin system <112>{111} directions. Sorted according to Eisenlohr & Hantcherli. More... | |
integer, dimension(2, fcc_ntwin), parameter, public | lattice::lattice_fcc_twinnucleationslippair = reshape( [ 2,3, 1,3, 1,2, 5,6, 4,6, 4,5, 8,9, 7,9, 7,8, 11,12, 10,12, 10,11 ], shape(lattice_FCC_TWINNUCLEATIONSLIPPAIR)) |
real(preal), dimension(3+3, fcc_ncleavage), parameter | lattice::fcc_systemcleavage = reshape(real([ 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 ], pReal), shape(FCC_SYSTEMCLEAVAGE)) |
integer, dimension(2), parameter | lattice::bcc_nslipsystem = [12, 12] |
integer, dimension(1), parameter | lattice::bcc_ntwinsystem = [12] |
integer, dimension(1), parameter | lattice::bcc_ncleavagesystem = [3] |
integer, parameter | lattice::bcc_nslip = sum(BCC_NSLIPSYSTEM) |
total # of slip systems for bcc More... | |
integer, parameter | lattice::bcc_ntwin = sum(BCC_NTWINSYSTEM) |
total # of twin systems for bcc More... | |
integer, parameter | lattice::bcc_ncleavage = sum(BCC_NCLEAVAGESYSTEM) |
total # of cleavage systems for bcc More... | |
real(preal), dimension(3+3, bcc_nslip), parameter | lattice::bcc_systemslip = reshape(real([ 1,-1, 1, 0, 1, 1, -1,-1, 1, 0, 1, 1, 1, 1, 1, 0,-1, 1, -1, 1, 1, 0,-1, 1, -1, 1, 1, 1, 0, 1, -1,-1, 1, 1, 0, 1, 1, 1, 1, -1, 0, 1, 1,-1, 1, -1, 0, 1, -1, 1, 1, 1, 1, 0, -1, 1,-1, 1, 1, 0, 1, 1, 1, -1, 1, 0, 1, 1,-1, -1, 1, 0, -1, 1, 1, 2, 1, 1, 1, 1, 1, -2, 1, 1, 1, 1,-1, 2,-1, 1, 1,-1, 1, 2, 1,-1, 1,-1, 1, 1, 2, 1, 1, 1,-1, -1, 2, 1, 1, 1, 1, 1,-2, 1, -1, 1, 1, 1, 2,-1, 1, 1,-1, 1, 1, 2, 1,-1, 1, -1, 1, 2, -1, 1, 1, 1,-1, 2, 1, 1, 1, 1, 1,-2 ], pReal), shape(BCC_SYSTEMSLIP)) |
real(preal), dimension(3+3, bcc_ntwin), parameter | lattice::bcc_systemtwin = reshape(real([ -1, 1, 1, 2, 1, 1, 1, 1, 1, -2, 1, 1, 1, 1,-1, 2,-1, 1, 1,-1, 1, 2, 1,-1, 1,-1, 1, 1, 2, 1, 1, 1,-1, -1, 2, 1, 1, 1, 1, 1,-2, 1, -1, 1, 1, 1, 2,-1, 1, 1,-1, 1, 1, 2, 1,-1, 1, -1, 1, 2, -1, 1, 1, 1,-1, 2, 1, 1, 1, 1, 1,-2 ], pReal), shape(BCC_SYSTEMTWIN)) |
real(preal), dimension(3+3, bcc_ncleavage), parameter | lattice::bcc_systemcleavage = reshape(real([ 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 ], pReal), shape(BCC_SYSTEMCLEAVAGE)) |
integer, dimension(6), parameter | lattice::hex_nslipsystem = [3, 3, 3, 6, 12, 6] |
integer, dimension(4), parameter | lattice::hex_ntwinsystem = [6, 6, 6, 6] |
integer, parameter | lattice::hex_nslip = sum(HEX_NSLIPSYSTEM) |
total # of slip systems for hex More... | |
integer, parameter | lattice::hex_ntwin = sum(HEX_NTWINSYSTEM) |
total # of twin systems for hex More... | |
real(preal), dimension(4+4, hex_nslip), parameter | lattice::hex_systemslip = reshape(real([ 2, -1, -1, 0, 0, 0, 0, 1, -1, 2, -1, 0, 0, 0, 0, 1, -1, -1, 2, 0, 0, 0, 0, 1, 2, -1, -1, 0, 0, 1, -1, 0, -1, 2, -1, 0, -1, 0, 1, 0, -1, -1, 2, 0, 1, -1, 0, 0, -1, 1, 0, 0, 1, 1, -2, 0, 0, -1, 1, 0, -2, 1, 1, 0, 1, 0, -1, 0, 1, -2, 1, 0, -1, 2, -1, 0, 1, 0, -1, 1, -2, 1, 1, 0, 0, 1, -1, 1, -1, -1, 2, 0, -1, 1, 0, 1, 1, -2, 1, 0, -1, 0, 1, 1, 2, -1, -1, 0, 0, -1, 1, 1, 1, 1, -2, 0, 1, -1, 0, 1, -2, 1, 1, 3, 1, 0, -1, 1, -1, -1, 2, 3, 1, 0, -1, 1, -1, -1, 2, 3, 0, 1, -1, 1, 1, -2, 1, 3, 0, 1, -1, 1, 1, -2, 1, 3, -1, 1, 0, 1, 2, -1, -1, 3, -1, 1, 0, 1, 2, -1, -1, 3, -1, 0, 1, 1, 1, 1, -2, 3, -1, 0, 1, 1, 1, 1, -2, 3, 0, -1, 1, 1, -1, 2, -1, 3, 0, -1, 1, 1, -1, 2, -1, 3, 1, -1, 0, 1, -2, 1, 1, 3, 1, -1, 0, 1, -1, -1, 2, 3, 1, 1, -2, 2, 1, -2, 1, 3, -1, 2, -1, 2, 2, -1, -1, 3, -2, 1, 1, 2, 1, 1, -2, 3, -1, -1, 2, 2, -1, 2, -1, 3, 1, -2, 1, 2, -2, 1, 1, 3, 2, -1, -1, 2 ], pReal), shape(HEX_SYSTEMSLIP)) |
slip systems for hex, sorted by P. Eisenlohr CCW around starting next to a_1 axis More... | |
real(preal), dimension(4+4, hex_ntwin), parameter | lattice::hex_systemtwin = reshape(real([ -1, 0, 1, 1, 1, 0, -1, 2, 0, -1, 1, 1, 0, 1, -1, 2, 1, -1, 0, 1, -1, 1, 0, 2, 1, 0, -1, 1, -1, 0, 1, 2, 0, 1, -1, 1, 0, -1, 1, 2, -1, 1, 0, 1, 1, -1, 0, 2, -1, -1, 2, 6, 1, 1, -2, 1, 1, -2, 1, 6, -1, 2, -1, 1, 2, -1, -1, 6, -2, 1, 1, 1, 1, 1, -2, 6, -1, -1, 2, 1, -1, 2, -1, 6, 1, -2, 1, 1, -2, 1, 1, 6, 2, -1, -1, 1, 1, 0, -1, -2, 1, 0, -1, 1, 0, 1, -1, -2, 0, 1, -1, 1, -1, 1, 0, -2, -1, 1, 0, 1, -1, 0, 1, -2, -1, 0, 1, 1, 0, -1, 1, -2, 0, -1, 1, 1, 1, -1, 0, -2, 1, -1, 0, 1, 1, 1, -2, -3, 1, 1, -2, 2, -1, 2, -1, -3, -1, 2, -1, 2, -2, 1, 1, -3, -2, 1, 1, 2, -1, -1, 2, -3, -1, -1, 2, 2, 1, -2, 1, -3, 1, -2, 1, 2, 2, -1, -1, -3, 2, -1, -1, 2 ], pReal), shape(HEX_SYSTEMTWIN)) |
twin systems for hex, sorted by P. Eisenlohr CCW around starting next to a_1 axis More... | |
integer, dimension(13), parameter | lattice::bct_nslipsystem = [2, 2, 2, 4, 2, 4, 2, 2, 4, 8, 4, 8, 8 ] |
integer, parameter | lattice::bct_nslip = sum(BCT_NSLIPSYSTEM) |
total # of slip systems for bct More... | |
real(preal), dimension(3+3, bct_nslip), parameter | lattice::bct_systemslip = reshape(real([ 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, -1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1,-1, 1, 1, 1, 0, 1,-1,-1, 1, 1, 0, -1,-1,-1, -1, 1, 0, -1,-1, 1, -1, 1, 0, 1, -1, 0, 1, 1, 0, 1, 1, 0, 1,-1, 0, 0, 1, 1, 1, 0, 0, 0,-1, 1, 1, 0, 0, -1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, -1, 1, 0, 0, 0, 1, 0, 1,-1, 0, 1, 1, 0,-1,-1, 0,-1, 1, -1, 0,-1, -1, 0, 1, 1, 0,-1, 1, 0, 1, 1,-1, 1, 0, 1, 1, 1, 1,-1, 0, 1, 1, 1, 1, 1, 0, 1,-1, -1, 1, 1, 0, 1,-1, 1,-1,-1, 1, 0, 1, -1,-1, 1, 1, 0, 1, 1, 1, 1, 1, 0,-1, 1,-1, 1, 1, 0,-1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1,-1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,-1, 0, 1,-1, 2, 1, 1, 0,-1,-1, 2,-1, 1, 1, 0,-1, 1, 2, 1, -1, 0,-1, -1, 2, 1, 0, 1,-1, -2, 1, 1, 0,-1,-1, -2,-1, 1, -1, 0,-1, -1,-2, 1, 1, 0,-1, 1,-2, 1, -1, 1, 1, 2, 1, 1, -1,-1, 1, 2,-1, 1, 1,-1, 1, 1, 2, 1, -1,-1, 1, -1, 2, 1, 1, 1, 1, -2, 1, 1, 1,-1, 1, -2,-1, 1, -1, 1, 1, -1,-2, 1, 1, 1, 1, 1,-2, 1 ], pReal), shape(BCT_SYSTEMSLIP)) |
slip systems for bct sorted by Bieler More... | |
integer, dimension(3), parameter | lattice::ort_ncleavagesystem = [1, 1, 1] |
integer, parameter | lattice::ort_ncleavage = sum(ORT_NCLEAVAGESYSTEM) |
total # of cleavage systems for ortho More... | |
real(preal), dimension(3+3, ort_ncleavage), parameter | lattice::ort_systemcleavage = reshape(real([ 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1 ], pReal), shape(ORT_SYSTEMCLEAVAGE)) |
@, public | lattice::lattice_iso_id |
@, public | lattice::lattice_fcc_id |
@, public | lattice::lattice_bcc_id |
@, public | lattice::lattice_bct_id |
@, public | lattice::lattice_hex_id |
@, public | lattice::lattice_ort_id |
real(preal), dimension(:), allocatable, public, protected | lattice::lattice_mu |
real(preal), dimension(:), allocatable, public, protected | lattice::lattice_nu |
real(preal), dimension(:), allocatable, public, protected | lattice::lattice_damagemobility |
real(preal), dimension(:), allocatable, public, protected | lattice::lattice_massdensity |
real(preal), dimension(:), allocatable, public, protected | lattice::lattice_specificheat |
real(preal), dimension(:,:,:), allocatable, public, protected | lattice::lattice_c66 |
real(preal), dimension(:,:,:), allocatable, public, protected | lattice::lattice_thermalconductivity |
real(preal), dimension(:,:,:), allocatable, public, protected | lattice::lattice_damagediffusion |
integer(kind(lattice_undefined_id)), dimension(:), allocatable, public, protected | lattice::lattice_structure |
integer, dimension(:), allocatable | source_thermal_dissipation::source_thermal_dissipation_offset |
which source is my current thermal dissipation mechanism? More... | |
integer, dimension(:), allocatable | source_thermal_dissipation::source_thermal_dissipation_instance |
instance of thermal dissipation source mechanism More... | |
type(tparameters), dimension(:), allocatable | source_thermal_dissipation::param |
containers of constitutive parameters (len Ninstance) More... | |
integer, dimension(:), allocatable | source_thermal_externalheat::source_thermal_externalheat_offset |
which source is my current thermal dissipation mechanism? More... | |
integer, dimension(:), allocatable | source_thermal_externalheat::source_thermal_externalheat_instance |
instance of thermal dissipation source mechanism More... | |
type(tparameters), dimension(:), allocatable | source_thermal_externalheat::param |
containers of constitutive parameters (len Ninstance) More... | |
integer, dimension(:), allocatable | source_damage_isobrittle::source_damage_isobrittle_offset |
integer, dimension(:), allocatable | source_damage_isobrittle::source_damage_isobrittle_instance |
type(tparameters), dimension(:), allocatable | source_damage_isobrittle::param |
containers of constitutive parameters (len Ninstance) More... | |
integer, dimension(:), allocatable | source_damage_isoductile::source_damage_isoductile_offset |
which source is my current damage mechanism? More... | |
integer, dimension(:), allocatable | source_damage_isoductile::source_damage_isoductile_instance |
instance of damage source mechanism More... | |
type(tparameters), dimension(:), allocatable, private | source_damage_isoductile::param |
containers of constitutive parameters (len Ninstance) More... | |
integer, dimension(:), allocatable | source_damage_anisobrittle::source_damage_anisobrittle_offset |
which source is my current source mechanism? More... | |
integer, dimension(:), allocatable | source_damage_anisobrittle::source_damage_anisobrittle_instance |
instance of source mechanism More... | |
type(tparameters), dimension(:), allocatable | source_damage_anisobrittle::param |
containers of constitutive parameters (len Ninstance) More... | |
integer, dimension(:), allocatable | source_damage_anisoductile::source_damage_anisoductile_offset |
which source is my current damage mechanism? More... | |
integer, dimension(:), allocatable | source_damage_anisoductile::source_damage_anisoductile_instance |
instance of damage source mechanism More... | |
type(tparameters), dimension(:), allocatable, private | source_damage_anisoductile::param |
containers of constitutive parameters (len Ninstance) More... | |
integer, dimension(:), allocatable | kinematics_cleavage_opening::kinematics_cleavage_opening_instance |
type(tparameters), dimension(:), allocatable | kinematics_cleavage_opening::param |
containers of constitutive parameters (len Ninstance) More... | |
integer, dimension(:), allocatable | kinematics_slipplane_opening::kinematics_slipplane_opening_instance |
type(tparameters), dimension(:), allocatable | kinematics_slipplane_opening::param |
containers of constitutive parameters (len Ninstance) More... | |
integer, dimension(:), allocatable | kinematics_thermal_expansion::kinematics_thermal_expansion_instance |
type(tparameters), dimension(:), allocatable | kinematics_thermal_expansion::param |
integer, public, protected | constitutive::constitutive_plasticity_maxsizedotstate |
integer, public, protected | constitutive::constitutive_source_maxsizedotstate |
type(tparameters), dimension(:), allocatable | thermal_adiabatic::param |
type(tparameters), dimension(:), allocatable | thermal_conduction::param |
type(tparameters), dimension(:), allocatable | damage_local::param |
type(tparameters), dimension(:), allocatable | damage_nonlocal::param |
real(preal), dimension(:,:,:,:), allocatable, public | homogenization::materialpoint_f0 |
def grad of IP at start of FE increment More... | |
real(preal), dimension(:,:,:,:), allocatable, public | homogenization::materialpoint_f |
def grad of IP to be reached at end of FE increment More... | |
real(preal), dimension(:,:,:,:), allocatable, public | homogenization::materialpoint_p |
first P–K stress of IP More... | |
real(preal), dimension(:,:,:,:,:,:), allocatable, public | homogenization::materialpoint_dpdf |
tangent of first P–K stress at IP More... | |
real(preal), dimension(:,:,:,:), allocatable | homogenization::materialpoint_subf0 |
def grad of IP at beginning of homogenization increment More... | |
real(preal), dimension(:,:,:,:), allocatable | homogenization::materialpoint_subf |
def grad of IP to be reached at end of homog inc More... | |
real(preal), dimension(:,:), allocatable | homogenization::materialpoint_subfrac |
real(preal), dimension(:,:), allocatable | homogenization::materialpoint_substep |
real(preal), dimension(:,:), allocatable | homogenization::materialpoint_subdt |
logical, dimension(:,:), allocatable | homogenization::materialpoint_requested |
logical, dimension(:,:), allocatable | homogenization::materialpoint_converged |
logical, dimension(:,:,:), allocatable | homogenization::materialpoint_doneandhappy |
type(tnumerics) | homogenization::num |
anonymous enum |
allocates all neccessary fields, reads information from material configuration file
Isostrain (full constraint Taylor assuption) homogenization scheme
Enumerator | |
---|---|
parallel_id | |
average_id |
Definition at line 24963 of file DAMASK_marc.f90.
program __damask_marc.f90__ |
Dummy plasticity for purely elastic material.
dummy homogenization homogenization scheme for 1 constituent per material point
Definition at line 16718 of file DAMASK_marc.f90.
References kinetics_slip(), and kinetics_twin().
logical pure function __damask_marc.f90__::converged | ( | real(preal), dimension(:), intent(in) | residuum, |
real(preal), dimension(:), intent(in) | state, | ||
real(preal), dimension(:), intent(in) | atol | ||
) |
determines whether a point is converged
Definition at line 23085 of file DAMASK_marc.f90.
Referenced by integratestateadaptiveeuler(), integratestatefpi(), integratestaterkck45(), and homogenization::materialpoint_stressanditstangent().
subroutine __damask_marc.f90__::cpfem_forward |
Forward data for new time increment.
Definition at line 26450 of file DAMASK_marc.f90.
References results::results_addincrement(), and results::results_openjobfile().
Referenced by cpfem_general().
subroutine __damask_marc.f90__::cpfem_general | ( | integer(pint), intent(in) | mode, |
logical, intent(in) | parallelExecution, | ||
real(preal), dimension (3,3), intent(in) | ffn, | ||
real(preal), dimension (3,3), intent(in) | ffn1, | ||
real(preal), intent(in) | temperature_inp, | ||
real(preal), intent(in) | dt, | ||
integer(pint), intent(in) | elFE, | ||
integer(pint), intent(in) | ip, | ||
real(preal), dimension(6), intent(out) | cauchyStress, | ||
real(preal), dimension(6,6), intent(out) | jacobian | ||
) |
perform initialization at first call, update variables and call the actual material model
[in] | ip | integration point number |
[in] | dt | time increment |
[in] | ffn1 | deformation gradient for t=t1 |
[in] | mode | computation mode 1: regular computation plus aging of results |
[in] | temperature_inp | temperature |
[in] | parallelexecution | flag indicating parallel computation of requested IPs |
[out] | cauchystress | stress as 6 vector |
[out] | jacobian | jacobian as 66 tensor (Consistent tangent dcs/dE) |
ffn | deformation gradient for t=t0 |
elFE | FE element number |
Definition at line 26246 of file DAMASK_marc.f90.
References cpfem_forward(), crystallite_forward(), debug::debug_cpfem, debug::debug_e, debug::debug_i, debug::debug_jacobianmax, debug::debug_jacobianmaxlocation, debug::debug_jacobianmin, debug::debug_jacobianminlocation, debug::debug_level, debug::debug_levelbasic, debug::debug_levelextensive, debug::debug_levelselective, debug::debug_stressmax, debug::debug_stressmaxlocation, debug::debug_stressmin, debug::debug_stressminlocation, numerics::defgradtolerance, fesolving::fesolving_execelem, fesolving::fesolving_execip, numerics::ijacostiffness, io::io_warning(), material::material_homogenizationat, homogenization::materialpoint_dpdf, homogenization::materialpoint_f, homogenization::materialpoint_f0, homogenization::materialpoint_p, homogenization::materialpoint_stressanditstangent(), math::math_66tosym3333(), math::math_6tosym33(), math::math_delta(), math::math_det33(), math::math_identity2nd(), math::math_sym3333to66(), math::math_sym33to6(), discretization_marc::mesh_fem2damask_elem, material::temperature, fesolving::terminallyill, material::thermal_conduction_id, material::thermal_type, and material::thermalmapping.
Referenced by hypela2(), and interface1to4().
subroutine __damask_marc.f90__::cpfem_init |
allocate the arrays defined in module CPFEM and initialize them
Definition at line 26224 of file DAMASK_marc.f90.
References debug::debug_cpfem, debug::debug_level, debug::debug_levelbasic, discretization::discretization_nelem, and discretization::discretization_nip.
Referenced by cpfem_initall().
subroutine __damask_marc.f90__::cpfem_initall | ( | integer(pint), intent(in) | el, |
integer(pint), intent(in) | ip | ||
) |
CPFEM engine.
call (thread safe) all module initializations
[in] | ip | FE integration point number |
el | FE el number |
Definition at line 26190 of file DAMASK_marc.f90.
References config::config_init(), constitutive::constitutive_init(), cpfem_init(), crystallite_init(), damask_interface::damask_interface_init(), debug::debug_init(), discretization_marc::discretization_marc_init(), discretization::discretization_nelem, discretization::discretization_nip, hdf5_utilities::hdf5_utilities_init(), homogenization::homogenization_init(), io::io_init(), lattice::lattice_init(), material::material_init(), math::math_init(), numerics::numerics_init(), prec::prec_init(), results::results_init(), and rotations::rotations_init().
Referenced by hypela2(), and interface1to4().
subroutine __damask_marc.f90__::cpfem_results | ( | integer(pint), intent(in) | inc, |
real(preal), intent(in) | time | ||
) |
Trigger writing of results.
Definition at line 26460 of file DAMASK_marc.f90.
References constitutive::constitutive_results(), crystallite_results(), discretization::discretization_results(), homogenization::homogenization_results(), results::results_closejobfile(), and results::results_finalizeincrement().
Referenced by interface1to4(), and uedinc().
subroutine __damask_marc.f90__::crystallite_forward |
Forward data after successful increment.
Definition at line 23238 of file DAMASK_marc.f90.
Referenced by cpfem_general(), and getrho0().
subroutine __damask_marc.f90__::crystallite_init |
crystallite state integration functions and reporting of results
allocates and initialize per grain variables
Definition at line 21524 of file DAMASK_marc.f90.
References config::config_deallocate(), config::config_numerics, config::config_phase, constitutive::constitutive_dependentstate(), constitutive::constitutive_initialfi(), crystallite_orientations(), crystallite_stress(), crystallite_stresstangent(), discretization::discretization_nelem, discretization::discretization_nip, fesolving::fesolving_execelem, fesolving::fesolving_execip, material::homogenization_maxngrains, material::homogenization_ngrains, integratestateadaptiveeuler(), integratestateeuler(), integratestatefpi(), integratestaterk4(), integratestaterkck45(), io::io_error(), material::material_homogenizationat, material::material_orientation0, material::material_phaseat, math::math_det33(), math::math_i3, math::math_inv33(), numerics::numerics_integrator, material::phase_localplasticity, and numerics::usepingpong.
Referenced by cpfem_initall(), and getrho0().
subroutine __damask_marc.f90__::crystallite_orientations |
calculates orientations
Definition at line 21972 of file DAMASK_marc.f90.
References fesolving::fesolving_execelem, fesolving::fesolving_execip, material::homogenization_ngrains, material::material_homogenizationat, material::material_phaseat, math::math_rotationalpart(), material::phase_plasticityinstance, and material::plasticstate.
Referenced by crystallite_init(), getrho0(), and homogenization::materialpoint_stressanditstangent().
real(preal) function, dimension(3,3) __damask_marc.f90__::crystallite_push33toref | ( | integer, intent(in) | ipc, |
integer, intent(in) | ip, | ||
integer, intent(in) | el, | ||
real(preal), dimension(3,3), intent(in) | tensor33 | ||
) |
Map 2nd order tensor to reference config.
Definition at line 22004 of file DAMASK_marc.f90.
References material::material_orientation0, and math::math_inv33().
Referenced by damage_nonlocal::damage_nonlocal_getdiffusion(), getrho0(), and thermal_conduction::thermal_conduction_getconductivity().
subroutine __damask_marc.f90__::crystallite_restartread |
Read data for restart.
Definition at line 23197 of file DAMASK_marc.f90.
Referenced by getrho0().
subroutine __damask_marc.f90__::crystallite_restartwrite |
Write current restart information (Field and constitutive data) to file.
Definition at line 23156 of file DAMASK_marc.f90.
Referenced by getrho0().
subroutine __damask_marc.f90__::crystallite_results |
writes crystallite results to HDF5 output file
Definition at line 22024 of file DAMASK_marc.f90.
References config::config_name_phase, lattice::lattice_bcc_id, lattice::lattice_bct_id, lattice::lattice_fcc_id, lattice::lattice_hex_id, lattice::lattice_iso_id, lattice::lattice_ort_id, lattice::lattice_structure, results::results_addgroup(), results::results_closegroup(), select_rotations(), and select_tensors().
Referenced by cpfem_results(), and getrho0().
logical function, dimension(discretization_nip,discretization_nelem) __damask_marc.f90__::crystallite_stress | ( | real(preal), intent(in), optional | dummyArgumentToPreventInternalCompilerErrorWithGCC | ) |
calculate stress (P)
Definition at line 21683 of file DAMASK_marc.f90.
References discretization::discretization_nip, fesolving::fesolving_execelem, fesolving::fesolving_execip, material::homogenization_ngrains, material::material_homogenizationat, material::material_phaseat, material::material_phasememberat, math::math_inv33(), material::phase_nsources, material::plasticstate, and material::sourcestate.
Referenced by crystallite_init(), getrho0(), and homogenization::materialpoint_stressanditstangent().
subroutine __damask_marc.f90__::crystallite_stresstangent |
calculate tangent (dPdF)
Definition at line 21836 of file DAMASK_marc.f90.
References constitutive::constitutive_lianditstangents(), constitutive::constitutive_lpanditstangents(), constitutive::constitutive_sanditstangents(), fesolving::fesolving_execelem, fesolving::fesolving_execip, material::homogenization_ngrains, io::io_warning(), material::material_homogenizationat, math::math_3333to99(), math::math_99to3333(), math::math_identity2nd(), math::math_inv33(), math::math_invert(), math::math_mul3333xx3333(), and prec::tol_math_check.
Referenced by crystallite_init(), getrho0(), and homogenization::materialpoint_stressanditstangent().
real(preal) pure function integratestatefpi::damper | ( | real(preal), dimension(:), intent(in) | current, |
real(preal), dimension(:), intent(in) | previous, | ||
real(preal), dimension(:), intent(in) | previous2 | ||
) |
calculate the damping for correction of state and dot state
Definition at line 22521 of file DAMASK_marc.f90.
Referenced by integratestatefpi().
pure real(preal) function, dimension(3,3) math_rotationalpart::eigenvectorbasis | ( | real(preal), dimension(3,3), intent(in) | m | ) |
eigenvector basis of positive-definite 3x3 matrix
[in] | m | positive-definite matrix of which the basis is computed |
Definition at line 3444 of file DAMASK_marc.f90.
References math::math_clip(), math::math_i3, math::math_invariantssym33(), and math::pi.
Referenced by math::math_rotationalpart().
real(preal) function, dimension(2) __damask_marc.f90__::equivalentmoduli | ( | integer, intent(in) | grainID, |
integer, intent(in) | ip, | ||
integer, intent(in) | el | ||
) |
compute the equivalent shear and bulk moduli from the elasticity tensor
[in] | el | element number |
ip | integration point number |
Definition at line 25796 of file DAMASK_marc.f90.
Referenced by stresspenalty().
subroutine flux | ( | real(preal), dimension(2), intent(out) | f, |
real(preal), dimension(6), intent(in) | ts, | ||
integer, dimension(10), intent(in) | n, | ||
real(preal), intent(in) | time | ||
) |
calculate internal heat generated due to inelastic energy dissipation
Definition at line 26694 of file DAMASK_marc.f90.
References discretization_marc::mesh_fem2damask_elem, and thermal_conduction::thermal_conduction_getsourceanditstangent().
pure integer function, dimension(4) __damask_marc.f90__::getinterface | ( | integer, intent(in) | iFace, |
integer, dimension(3), intent(in) | iGrain3 | ||
) |
collect six faces of a grain in 4D (normal and position)
[in] | igrain3 | grain ID in 3D array |
[in] | iface | face index (1..6) mapped like (-e1,-e2,-e3,+e1,+e2,+e3) or iDir = (-1,-2,-3,1,2,3) |
Definition at line 25979 of file DAMASK_marc.f90.
Referenced by graindeformation(), and stresspenalty().
real(preal) function, dimension(param(instance)%sum_n_sl,10) __damask_marc.f90__::getrho | ( | integer, intent(in) | instance, |
integer, intent(in) | of, | ||
integer, intent(in) | ip, | ||
integer, intent(in) | el | ||
) |
returns copy of current dislocation densities from state
raw values is rectified
Definition at line 21356 of file DAMASK_marc.f90.
Referenced by kinetics().
real(preal) function, dimension(param(instance)%sum_n_sl,10) __damask_marc.f90__::getrho0 | ( | integer, intent(in) | instance, |
integer, intent(in) | of, | ||
integer, intent(in) | ip, | ||
integer, intent(in) | el | ||
) |
returns copy of current dislocation densities from state
raw values is rectified
Definition at line 21381 of file DAMASK_marc.f90.
References crystallite_forward(), crystallite_init(), crystallite_orientations(), crystallite_push33toref(), crystallite_restartread(), crystallite_restartwrite(), crystallite_results(), crystallite_stress(), and crystallite_stresstangent().
Referenced by kinetics().
pure integer function, dimension(3) __damask_marc.f90__::grain1to3 | ( | integer, intent(in) | grain1, |
integer, dimension(3), intent(in) | nGDim | ||
) |
map grain ID from in 1D (global array) to in 3D (local position)
[in] | grain1 | grain ID in 1D array |
Definition at line 26002 of file DAMASK_marc.f90.
References grain3to1().
Referenced by graindeformation(), and stresspenalty().
integer pure function __damask_marc.f90__::grain3to1 | ( | integer, dimension(3), intent(in) | grain3, |
integer, dimension(3), intent(in) | nGDim | ||
) |
map grain ID from in 3D (local position) to in 1D (global array)
[in] | grain3 | grain ID in 3D array (pos.x,pos.y,pos.z) |
Definition at line 26019 of file DAMASK_marc.f90.
Referenced by grain1to3(), and stresspenalty().
subroutine __damask_marc.f90__::graindeformation | ( | real(preal), dimension(:,:,:), intent(out) | F, |
real(preal), dimension(:,:), intent(in) | avgF, | ||
integer, intent(in) | instance, | ||
integer, intent(in) | of | ||
) |
calculating the grain deformation gradient (the same with
[out] | f | partioned F per grain |
[in] | avgf | averaged F |
Definition at line 25831 of file DAMASK_marc.f90.
References getinterface(), grain1to3(), interfacenormal(), and relaxationvector().
subroutine hypela2 | ( | real(preal), dimension(ngens,ngens), intent(out) | d, |
real(preal), dimension(ndi+nshear), intent(out) | g, | ||
real(preal), dimension(*), intent(in) | e, | ||
real(preal), dimension(*), intent(in) | de, | ||
real(preal), dimension(ndi+nshear), intent(out) | s, | ||
real(preal), dimension(*), intent(inout) | t, | ||
real(preal), dimension(*), intent(in) | dt, | ||
integer, intent(in) | ngens, | ||
integer, dimension(2), intent(in) | m, | ||
integer, intent(in) | nn, | ||
integer, dimension(2), intent(in) | kcus, | ||
integer, dimension(2), intent(in) | matus, | ||
integer, intent(in) | ndi, | ||
integer, intent(in) | nshear, | ||
real(preal), dimension(ndeg,*), intent(in) | disp, | ||
real(preal), dimension(ndeg,*), intent(in) | dispt, | ||
real(preal), dimension(ncrd,*), intent(in) | coord, | ||
real(preal), dimension(3,3), intent(in) | ffn, | ||
real(preal), dimension(itel,*), intent(in) | frotn, | ||
real(preal), dimension(itel), intent(in) | strechn, | ||
real(preal), dimension(itel,*), intent(in) | eigvn, | ||
real(preal), dimension(3,3), intent(in) | ffn1, | ||
real(preal), dimension(itel,*), intent(in) | frotn1, | ||
real(preal), dimension(itel), intent(in) | strechn1, | ||
real(preal), dimension(itel,*), intent(in) | eigvn1, | ||
integer, intent(in) | ncrd, | ||
integer, intent(in) | itel, | ||
integer, intent(in) | ndeg, | ||
integer, intent(in) | ndm, | ||
integer, intent(in) | nnode, | ||
integer, intent(in) | jtype, | ||
integer, dimension(2), intent(in) | lclass, | ||
integer, intent(in) | ifr, | ||
integer, intent(in) | ifu | ||
) |
This is the MSC.Marc user subroutine for defining material behavior.
(1) F,R,U are only available for continuum and membrane elements (not for
shells and beams).
(2) Use the -> 'Plasticity,3' card(=update+finite+large disp+constant d)
in the parameter section of input deck (updated Lagrangian formulation).
[in] | ifu | set to 1 if stretch has been calculated |
[in] | lclass | (1) element class, (2) 0: displacement, 1: low order Herrmann, 2: high order Herrmann |
[in] | dt | increment of state variables |
[in] | strechn1 | square of principal stretch ratios, lambda(i) at t=n+1 |
[in] | ffn1 | deformation gradient at t=n+1 |
[in] | eigvn1 | i principal direction components for j eigenvalues at t=n+1 |
[in] | dispt | displacements at t=n (at assembly, lovl=4) and displacements at t=n+1 (at stress recovery, lovl=6) |
[in] | coord | coordinates |
[in,out] | t | state variables (comes in at t=n, must be updated to have state variables at t=n+1) |
[out] | g | change in stress due to temperature effects |
[out] | d | stress-strain law to be formed |
e | total elastic strain |
de | increment of strain |
s | stress - should be updated by user |
ngens | size of stress-strain law |
m | (1) user element number, (2) internal element number |
nn | integration point number |
kcus | (1) layer number, (2) internal layer number |
matus | (1) user material identification number, (2) internal material identification number |
ndi | number of direct components |
nshear | number of shear components |
disp | incremental displacements |
ffn | deformation gradient at t=n |
frotn | rotation tensor at t=n |
strechn | square of principal stretch ratios, lambda(i) at t=n |
eigvn | i principal direction components for j eigenvalues at t=n |
frotn1 | rotation tensor at t=n+1 |
ncrd | number of coordinates |
itel | dimension of F and R, either 2 or 3 |
ndeg | number of degrees of freedom |
ndm | not specified in MSC.Marc 2012 Manual D |
nnode | number of nodes per element |
jtype | element type |
ifr | set to 1 if R has been calculated |
Definition at line 26491 of file DAMASK_marc.f90.
References fesolving::calcmode, cpfem_general(), cpfem_initall(), debug::debug_info(), debug::debug_level, debug::debug_levelbasic, debug::debug_marc, debug::debug_reset(), discretization_marc::mesh_fem2damask_elem, damask_interface::symmetricsolver, fesolving::terminallyill, and numerics::usepingpong.
subroutine __damask_marc.f90__::integratestateadaptiveeuler |
integrate stress, state with 1st order Euler method with adaptive step size
Definition at line 22618 of file DAMASK_marc.f90.
References converged(), integratestress(), nonlocalconvergencecheck(), and statejump().
Referenced by crystallite_init().
subroutine __damask_marc.f90__::integratestateeuler |
integrate state with 1st order explicit Euler method
Definition at line 22544 of file DAMASK_marc.f90.
References integratestress(), nonlocalconvergencecheck(), and statejump().
Referenced by crystallite_init().
subroutine __damask_marc.f90__::integratestatefpi |
integrate stress, state with adaptive 1st order explicit Euler method using Fixed Point Iteration to adapt the stepsize
Definition at line 22378 of file DAMASK_marc.f90.
References constitutive::constitutive_collectdotstate(), constitutive::constitutive_dependentstate(), converged(), damper(), fesolving::fesolving_execelem, fesolving::fesolving_execip, material::homogenization_ngrains, integratestress(), material::material_homogenizationat, material::material_phaseat, material::material_phasememberat, nonlocalconvergencecheck(), material::phase_nsources, material::plasticstate, material::sourcestate, and statejump().
Referenced by crystallite_init().
subroutine __damask_marc.f90__::integratestaterk4 |
integrate stress, state with 4th order explicit Runge Kutta method
Definition at line 22738 of file DAMASK_marc.f90.
References integratestress(), nonlocalconvergencecheck(), and statejump().
Referenced by crystallite_init().
subroutine __damask_marc.f90__::integratestaterkck45 |
integrate stress, state with 5th order Runge-Kutta Cash-Karp method with adaptive step size (use 5th order solution to advance = "local extrapolation")
Definition at line 22893 of file DAMASK_marc.f90.
References converged(), integratestress(), nonlocalconvergencecheck(), and statejump().
Referenced by crystallite_init().
logical function __damask_marc.f90__::integratestress | ( | integer, intent(in) | ipc, |
integer, intent(in) | ip, | ||
integer, intent(in) | el, | ||
real(preal), intent(in), optional | timeFraction | ||
) |
calculation of stress (P) with time integration based on a residuum in Lp and intermediate acceleration of the Newton-Raphson correction
Definition at line 22154 of file DAMASK_marc.f90.
References constitutive::constitutive_lianditstangents(), constitutive::constitutive_lpanditstangents(), constitutive::constitutive_sanditstangents(), math::math_3333to99(), math::math_33to9(), math::math_9to33(), math::math_det33(), math::math_i3, math::math_identity2nd(), math::math_inv33(), math::math_invert33(), and math::math_mul3333xx3333().
Referenced by integratestateadaptiveeuler(), integratestateeuler(), integratestatefpi(), integratestaterk4(), and integratestaterkck45().
pure integer function, dimension(4) __damask_marc.f90__::interface1to4 | ( | integer, intent(in) | iFace1D, |
integer, dimension(3), intent(in) | nGDim | ||
) |
maps interface ID from 1D (global array) into 4D (normal and local position)
[in] | iface1d | interface ID in 1D array |
Definition at line 26080 of file DAMASK_marc.f90.
References cpfem_general(), cpfem_initall(), and cpfem_results().
integer pure function __damask_marc.f90__::interface4to1 | ( | integer, dimension(4), intent(in) | iFace4D, |
integer, dimension(3), intent(in) | nGDim | ||
) |
maps interface ID from 4D (normal and local position) into 1D (global array)
[in] | iface4d | interface ID in 4D array (n.dir,pos.x,pos.y,pos.z) |
Definition at line 26034 of file DAMASK_marc.f90.
Referenced by relaxationvector().
pure real(preal) function, dimension(3) __damask_marc.f90__::interfacenormal | ( | integer, dimension(4), intent(in) | intFace, |
integer, intent(in) | instance, | ||
integer, intent(in) | of | ||
) |
identify the normal of an interface
[in] | intface | interface ID in 4D array (normal and position) |
Definition at line 25954 of file DAMASK_marc.f90.
Referenced by graindeformation(), stresspenalty(), and surfacecorrection().
pure subroutine __damask_marc.f90__::kinetics | ( | real(preal), dimension(3,3), intent(in) | Mp, |
integer, intent(in) | instance, | ||
integer, intent(in) | of, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(out) | gdot_pos, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(out) | gdot_neg, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(out), optional | dgdot_dtau_pos, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(out), optional | dgdot_dtau_neg | ||
) |
Phenomenological crystal plasticity using a power law formulation for the shear rates and a Voce-type kinematic hardening rule.
Perform module initialization.
reads in material parameters, allocates arrays, and does sanity checks
Calculate plastic velocity gradient and its tangent.
Calculate the rate of change of microstructure.
Calculate (instantaneous) incremental change of microstructure.
Write results to HDF5 output file.
Calculate shear rates on slip systems and their derivatives with respect to resolved
: Derivatives are calculated only optionally.
[in] | mp | Mandel stress |
Definition at line 17999 of file DAMASK_marc.f90.
References kinetics_slip(), kinetics_trans(), and kinetics_twin().
Referenced by kinetics(), kinetics_trans(), and kinetics_twin().
pure subroutine __damask_marc.f90__::kinetics | ( | real(preal), dimension(3,3), intent(in) | Mp, |
real(preal), intent(in) | T, | ||
integer, intent(in) | instance, | ||
integer, intent(in) | of, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(out) | dot_gamma_pos, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(out) | dot_gamma_neg, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(out), optional | ddot_gamma_dtau_pos, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(out), optional | ddot_gamma_dtau_neg, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(out), optional | tau_pos_out, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(out), optional | tau_neg_out | ||
) |
crystal plasticity model for bcc metals, especially Tungsten
Perform module initialization.
reads in material parameters, allocates arrays, and does sanity checks
Calculate plastic velocity gradient and its tangent.
Calculate the rate of change of microstructure.
Calculate derived quantities from state.
Write results to HDF5 output file.
Calculate shear rates on slip systems, their derivatives with respect to resolved
Derivatives and resolved stress are calculated only optionally.
[in] | mp | Mandel stress |
[in] | t | temperature |
Definition at line 19571 of file DAMASK_marc.f90.
References geometry_plastic_nonlocal::geometry_plastic_nonlocal_iparea0, geometry_plastic_nonlocal::geometry_plastic_nonlocal_ipareanormal0, geometry_plastic_nonlocal::geometry_plastic_nonlocal_ipneighborhood, geometry_plastic_nonlocal::geometry_plastic_nonlocal_ipvolume0, geometry_plastic_nonlocal::geometry_plastic_nonlocal_nipneighbors, getrho(), getrho0(), kinetics(), and stateinit().
subroutine __damask_marc.f90__::kinetics | ( | real(preal), dimension(param(instance)%sum_n_sl), intent(out) | v, |
real(preal), dimension(param(instance)%sum_n_sl), intent(out) | dv_dtau, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(out) | dv_dtauNS, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(in) | tau, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(in) | tauNS, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(in) | tauThreshold, | ||
integer, intent(in) | c, | ||
real(preal), intent(in) | Temperature, | ||
integer, intent(in) | instance | ||
) |
calculates kinetics
[in] | tauthreshold | threshold shear stress |
[out] | dv_dtauns | velocity derivative with respect to resolved shear stress (including non Schmid contributions) |
v | velocity |
dv_dtau | velocity derivative with respect to resolved shear stress (without non Schmid contributions) |
tau | resolved external shear stress (without non Schmid effects) |
tauNS | resolved external shear stress (including non Schmid effects) |
c | dislocation character (1:edge, 2:screw) |
Definition at line 21241 of file DAMASK_marc.f90.
pure subroutine __damask_marc.f90__::kinetics_slip | ( | real(preal), dimension(3,3), intent(in) | Mp, |
integer, intent(in) | instance, | ||
integer, intent(in) | of, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(out) | gdot_slip_pos, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(out) | gdot_slip_neg, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(out), optional | dgdot_dtau_slip_pos, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(out), optional | dgdot_dtau_slip_neg | ||
) |
module initialization
reads in material parameters, allocates arrays, and does sanity checks
material subroutine for isotropic plasticity
Isotropic Plasticity which resembles the phenopowerlaw plasticity without resolving the stress on the slip systems. Will give the response of phenopowerlaw for an untextured polycrystal
Perform module initialization.
reads in material parameters, allocates arrays, and does sanity checks
Calculate plastic velocity gradient and its tangent.
Calculate inelastic velocity gradient and its tangent.
Calculate the rate of change of microstructure.
Write results to HDF5 output file.
phenomenological crystal plasticity formulation using a powerlaw fitting
Perform module initialization.
reads in material parameters, allocates arrays, and does sanity checks
Calculate plastic velocity gradient and its tangent.
asummes that deformation by dislocation glide affects twinned and untwinned volume
Calculate the rate of change of microstructure.
Write results to HDF5 output file.
Calculate shear rates on slip systems and their derivatives with respect to resolved
Derivatives are calculated only optionally.
[in] | mp | Mandel stress |
Definition at line 17490 of file DAMASK_marc.f90.
Referenced by __damask_marc.f90__(), and kinetics().
pure subroutine __damask_marc.f90__::kinetics_slip | ( | real(preal), dimension(3,3), intent(in) | Mp, |
real(preal), intent(in) | T, | ||
integer, intent(in) | instance, | ||
integer, intent(in) | of, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(out) | dot_gamma_sl, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(out), optional | ddot_gamma_dtau_slip, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(out), optional | tau_slip | ||
) |
material subroutine incoprorating dislocation and twinning physics
to be done
Perform module initialization.
reads in material parameters, allocates arrays, and does sanity checks
Return the homogenized elasticity matrix.
Calculate plastic velocity gradient and its tangent.
Calculate the rate of change of microstructure.
Calculate derived quantities from state.
Write results to HDF5 output file.
Calculate shear rates on slip systems, their derivatives with respect to resolved
Derivatives and resolved stress are calculated only optionally.
[in] | mp | Mandel stress |
[in] | t | temperature |
Definition at line 18937 of file DAMASK_marc.f90.
pure subroutine __damask_marc.f90__::kinetics_trans | ( | real(preal), dimension(3,3), intent(in) | Mp, |
real(preal), intent(in) | T, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(in) | dot_gamma_sl, | ||
integer, intent(in) | instance, | ||
integer, intent(in) | of, | ||
real(preal), dimension(param(instance)%sum_n_tr), intent(out) | dot_gamma_tr, | ||
real(preal), dimension(param(instance)%sum_n_tr), intent(out), optional | ddot_gamma_dtau_trans | ||
) |
Calculate shear rates on transformation systems and their derivatives with respect to.
Derivatives are calculated only optionally.
[in] | mp | Mandel stress |
[in] | t | temperature |
Definition at line 19083 of file DAMASK_marc.f90.
References kinetics().
Referenced by kinetics().
pure subroutine __damask_marc.f90__::kinetics_twin | ( | real(preal), dimension(3,3), intent(in) | Mp, |
integer, intent(in) | instance, | ||
integer, intent(in) | of, | ||
real(preal), dimension(param(instance)%sum_n_tw), intent(out) | gdot_twin, | ||
real(preal), dimension(param(instance)%sum_n_tw), intent(out), optional | dgdot_dtau_twin | ||
) |
Calculate shear rates on twin systems and their derivatives with respect to resolved.
Derivatives are calculated only optionally.
[in] | mp | Mandel stress |
Definition at line 17559 of file DAMASK_marc.f90.
References kinetics().
Referenced by __damask_marc.f90__(), and kinetics().
pure subroutine __damask_marc.f90__::kinetics_twin | ( | real(preal), dimension(3,3), intent(in) | Mp, |
real(preal), intent(in) | T, | ||
real(preal), dimension(param(instance)%sum_n_sl), intent(in) | dot_gamma_sl, | ||
integer, intent(in) | instance, | ||
integer, intent(in) | of, | ||
real(preal), dimension(param(instance)%sum_n_tw), intent(out) | dot_gamma_twin, | ||
real(preal), dimension(param(instance)%sum_n_tw), intent(out), optional | ddot_gamma_dtau_twin | ||
) |
Calculate shear rates on twin systems and their derivatives with respect to resolved.
Derivatives are calculated only optionally.
[in] | mp | Mandel stress |
[in] | t | temperature |
Definition at line 19014 of file DAMASK_marc.f90.
|
private |
changes characters in string to lower case
copied from IO_lc
[in] | string | string to convert |
Definition at line 411 of file DAMASK_marc.f90.
Referenced by damask_interface::solverissymmetric().
|
private |
mapping of Marc element types to internal representation
Definition at line 10626 of file DAMASK_marc.f90.
References io::io_error(), and io::io_lc().
Referenced by discretization_marc::inputread_elemtype().
subroutine __damask_marc.f90__::nonlocalconvergencecheck |
sets convergence flag for nonlocal calculations
one non-converged nonlocal sets all other nonlocals to non-converged to trigger cut back
Definition at line 23074 of file DAMASK_marc.f90.
Referenced by integratestateadaptiveeuler(), integratestateeuler(), integratestatefpi(), integratestaterk4(), and integratestaterkck45().
|
private |
parses the material.config file
Definition at line 2415 of file DAMASK_marc.f90.
Referenced by config::config_init().
|
private |
parses the material.config file
Definition at line 2363 of file DAMASK_marc.f90.
References io::io_error(), and io::io_gettag().
Referenced by config::config_init().
integer function math_sort::qsort_partition | ( | integer, dimension(:,:), intent(inout) | a, |
integer, intent(in) | istart, | ||
integer, intent(in) | iend, | ||
integer, intent(in) | sort | ||
) |
Partitioning required for quicksort.
Definition at line 2630 of file DAMASK_marc.f90.
Referenced by math::math_sort().
|
private |
reads material.config Recursion is triggered by "{path/to/inputfile}" in a line
[in] | filename | name of the material configuration file |
[in] | cnt | recursion counter |
Definition at line 2281 of file DAMASK_marc.f90.
References io::io_eol, io::io_error(), io::io_warning(), and prec::pstringlen.
Referenced by config::config_init().
pure real(preal) function, dimension (3) __damask_marc.f90__::relaxationvector | ( | integer, dimension(4), intent(in) | intFace, |
integer, intent(in) | instance, | ||
integer, intent(in) | of | ||
) |
derive average stress and stiffness from constituent quantities
writes results to HDF5 output file
collect relaxation vectors of an interface
[in] | intface | set of interface ID in 4D array (normal and position) |
Definition at line 25929 of file DAMASK_marc.f90.
References interface4to1().
Referenced by graindeformation().
type(rotation) function, dimension(:), allocatable crystallite_results::select_rotations | ( | type(rotation), dimension(:,:,:), intent(in) | dataset, |
integer, intent(in) | instance | ||
) |
select rotations for output
Definition at line 22124 of file DAMASK_marc.f90.
References discretization::discretization_nip, material::homogenization_maxngrains, and material::material_phaseat.
Referenced by crystallite_results().
real(preal) function, dimension(:,:,:), allocatable crystallite_results::select_tensors | ( | real(preal), dimension(:,:,:,:,:), intent(in) | dataset, |
integer, intent(in) | instance | ||
) |
select tensors for output
Definition at line 22097 of file DAMASK_marc.f90.
References discretization::discretization_nip, and material::material_phaseat.
Referenced by crystallite_results().
subroutine __damask_marc.f90__::stateinit | ( | type(tinitialparameters) | ini, |
integer, intent(in) | phase, | ||
integer, intent(in) | NipcMyPhase | ||
) |
material subroutine for plasticity including dislocation flux
module initialization
reads in material parameters, allocates arrays, and does sanity checks
calculates quantities characterizing the microstructure
calculates plastic velocity gradient and its tangent
(instantaneous) incremental change of microstructure
calculates the rate of change of microstructure
Compatibility update @detail Compatibility is defined as normalized product of signed cosine of the angle between the slip
writes results to HDF5 output file
populates the initial dislocation density
Definition at line 21165 of file DAMASK_marc.f90.
Referenced by kinetics().
logical function __damask_marc.f90__::statejump | ( | integer, intent(in) | ipc, |
integer, intent(in) | ip, | ||
integer, intent(in) | el | ||
) |
calculates a jump in the state according to the current state and the current stress returns true, if state jump was successfull or not needed. false indicates NaN in delta state
Definition at line 23103 of file DAMASK_marc.f90.
Referenced by integratestateadaptiveeuler(), integratestateeuler(), integratestatefpi(), integratestaterk4(), and integratestaterkck45().
subroutine __damask_marc.f90__::stresspenalty | ( | real(preal), dimension (:,:,:), intent(out) | rPen, |
real(preal), dimension (:,:), intent(out) | nMis, | ||
real(preal), dimension (3,3), intent(in) | avgF, | ||
real(preal), dimension (:,:,:), intent(in) | fDef, | ||
integer, intent(in) | ip, | ||
integer, intent(in) | el, | ||
integer, intent(in) | instance, | ||
integer, intent(in) | of | ||
) |
allocates all neccessary fields, reads information from material configuration file
partitions the deformation gradient onto the constituents
derive average stress and stiffness from constituent quantities
Relaxed grain cluster (RGC) homogenization scheme Nconstituents is defined as p x q x r (cluster)
allocates all necessary fields, reads information from material configuration file
partitions the deformation gradient onto the constituents
update the internal state of the homogenization scheme and tell whether "done" and
calculate stress-like penalty due to deformation mismatch
[out] | rpen | stress-like penalty |
[out] | nmis | total amount of mismatch |
[in] | fdef | deformation gradients |
[in] | avgf | initial effective stretch tensor |
Definition at line 25613 of file DAMASK_marc.f90.
References equivalentmoduli(), getinterface(), grain1to3(), grain3to1(), interfacenormal(), and surfacecorrection().
real(preal) function, dimension(3) __damask_marc.f90__::surfacecorrection | ( | real(preal), dimension(3,3), intent(in) | avgF, |
integer, intent(in) | instance, | ||
integer, intent(in) | of | ||
) |
compute the correction factor accouted for surface evolution (area change) due to
[in] | avgf | average F |
Definition at line 25765 of file DAMASK_marc.f90.
References interfacenormal().
Referenced by stresspenalty().
subroutine uedinc | ( | integer, intent(in) | inc, |
integer, intent(in) | incsub | ||
) |
trigger writing of results
uedinc is called before each new increment, not at the end of a converged one. Therefore, storing the last written inc with an 'save' variable is required to avoid writing the
Definition at line 26720 of file DAMASK_marc.f90.
References cpfem_results().
|
private |
count unique rows (same rows need to be stored consecutively)
[in] | a | array, rows need to be sorted |
Definition at line 10903 of file DAMASK_marc.f90.
Referenced by discretization_marc::buildcells().
subroutine __damask_marc.f90__::volumepenalty | ( | real(preal), dimension (:,:,:), intent(out) | vPen, |
real(preal), intent(out) | vDiscrep, | ||
real(preal), dimension (3,3), intent(in) | fAvg, | ||
real(preal), dimension (:,:,:), intent(in) | fDef, | ||
integer, intent(in) | nGrain, | ||
integer, intent(in) | instance, | ||
integer, intent(in) | of | ||
) |
calculate stress-like penalty due to volume discrepancy
Definition at line 25717 of file DAMASK_marc.f90.