DAMASK with grid solvers  Revision: v2.0.3-2204-gdb1f2151
The Düsseldorf Advanced Material Simulation Kit with Grid Solvers
crystallite.f90 File Reference

Go to the source code of this file.

Data Types

type  crystallite::toutput
 new requested output (per phase) More...
 
type  crystallite::tnumerics
 

Modules

module  crystallite
 crystallite state integration functions and reporting of results
 

Functions/Subroutines

subroutine, public crystallite::crystallite_init
 allocates and initialize per grain variables More...
 
logical function, dimension(discretization_nip, discretization_nelem), public crystallite::crystallite_stress (dummyArgumentToPreventInternalCompilerErrorWithGCC)
 calculate stress (P) More...
 
subroutine, public crystallite::crystallite_stresstangent
 calculate tangent (dPdF) More...
 
subroutine, public crystallite::crystallite_orientations
 calculates orientations More...
 
real(preal) function, dimension(3, 3), public crystallite::crystallite_push33toref (ipc, ip, el, tensor33)
 Map 2nd order tensor to reference config. More...
 
subroutine, public crystallite::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 crystallite::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 crystallite::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 crystallite::integratestateeuler
 integrate state with 1st order explicit Euler method More...
 
subroutine crystallite::integratestateadaptiveeuler
 integrate stress, state with 1st order Euler method with adaptive step size More...
 
subroutine crystallite::integratestaterk4
 integrate stress, state with 4th order explicit Runge Kutta method More...
 
subroutine crystallite::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 crystallite::nonlocalconvergencecheck
 sets convergence flag for nonlocal calculations More...
 
logical pure function crystallite::converged (residuum, state, atol)
 determines whether a point is converged More...
 
logical function crystallite::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, public crystallite::crystallite_restartwrite
 Write current restart information (Field and constitutive data) to file. More...
 
subroutine, public crystallite::crystallite_restartread
 Read data for restart. More...
 
subroutine, public crystallite::crystallite_forward
 Forward data after successful increment. More...
 

Variables

real(preal), dimension(:,:,:), allocatable, public crystallite::crystallite_dt
 requested time increment of each grain More...
 
real(preal), dimension(:,:,:), allocatable crystallite::crystallite_subdt
 substepped time increment of each grain More...
 
real(preal), dimension(:,:,:), allocatable crystallite::crystallite_subfrac
 already calculated fraction of increment More...
 
real(preal), dimension(:,:,:), allocatable crystallite::crystallite_substep
 size of next integration step More...
 
type(rotation), dimension(:,:,:), allocatable crystallite::crystallite_orientation
 current orientation More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public, protected crystallite::crystallite_fe
 current "elastic" def grad (end of converged time step) More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public, protected crystallite::crystallite_p
 1st Piola-Kirchhoff stress per grain More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public, protected crystallite::crystallite_s0
 2nd Piola-Kirchhoff stress vector at start of FE inc More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public, protected crystallite::crystallite_fp0
 plastic def grad at start of FE inc More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public, protected crystallite::crystallite_fi0
 intermediate def grad at start of FE inc More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public, protected crystallite::crystallite_f0
 def grad at start of FE inc More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public, protected crystallite::crystallite_lp0
 plastic velocitiy grad at start of FE inc More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public, protected crystallite::crystallite_li0
 intermediate velocitiy grad at start of FE inc More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public crystallite::crystallite_s
 current 2nd Piola-Kirchhoff stress vector (end of converged time step) More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public crystallite::crystallite_partioneds0
 2nd Piola-Kirchhoff stress vector at start of homog inc More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public crystallite::crystallite_fp
 current plastic def grad (end of converged time step) More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public crystallite::crystallite_partionedfp0
 plastic def grad at start of homog inc More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public crystallite::crystallite_fi
 current intermediate def grad (end of converged time step) More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public crystallite::crystallite_partionedfi0
 intermediate def grad at start of homog inc More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public crystallite::crystallite_partionedf
 def grad to be reached at end of homog inc More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public crystallite::crystallite_partionedf0
 def grad at start of homog inc More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public crystallite::crystallite_lp
 current plastic velocitiy grad (end of converged time step) More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public crystallite::crystallite_partionedlp0
 plastic velocity grad at start of homog inc More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public crystallite::crystallite_li
 current intermediate velocitiy grad (end of converged time step) More...
 
real(preal), dimension(:,:,:,:,:), allocatable, public crystallite::crystallite_partionedli0
 intermediate velocity grad at start of homog inc More...
 
real(preal), dimension(:,:,:,:,:), allocatable crystallite::crystallite_subfp0
 plastic def grad at start of crystallite inc More...
 
real(preal), dimension(:,:,:,:,:), allocatable crystallite::crystallite_subfi0
 intermediate def grad at start of crystallite inc More...
 
real(preal), dimension(:,:,:,:,:), allocatable crystallite::crystallite_subf
 def grad to be reached at end of crystallite inc More...
 
real(preal), dimension(:,:,:,:,:), allocatable crystallite::crystallite_subf0
 def grad at start of crystallite inc More...
 
real(preal), dimension(:,:,:,:,:), allocatable crystallite::crystallite_sublp0
 plastic velocity grad at start of crystallite inc More...
 
real(preal), dimension(:,:,:,:,:), allocatable crystallite::crystallite_subli0
 intermediate velocity grad at start of crystallite inc More...
 
real(preal), dimension(:,:,:,:,:,:,:), allocatable, public, protected crystallite::crystallite_dpdf
 current individual dPdF per grain (end of converged time step) More...
 
logical, dimension(:,:,:), allocatable, public crystallite::crystallite_requested
 used by upper level (homogenization) to request crystallite calculation More...
 
logical, dimension(:,:,:), allocatable crystallite::crystallite_converged
 convergence flag More...
 
logical, dimension(:,:,:), allocatable crystallite::crystallite_todo
 flag to indicate need for further computation More...
 
logical, dimension(:,:,:), allocatable crystallite::crystallite_localplasticity
 indicates this grain to have purely local constitutive law More...
 
type(toutput), dimension(:), allocatable crystallite::output_constituent
 
type(tnumerics) crystallite::num
 
procedure(), pointer crystallite::integratestate
 

Function/Subroutine Documentation

◆ damper()

real(preal) pure function integratestatefpi::damper ( real(preal), dimension(:), intent(in)  current,
real(preal), dimension(:), intent(in)  previous,
real(preal), dimension(:), intent(in)  previous2 
)
private

calculate the damping for correction of state and dot state

Definition at line 1122 of file crystallite.f90.

Referenced by crystallite::integratestatefpi().

+ Here is the caller graph for this function:

◆ select_rotations()

type(rotation) function, dimension(:), allocatable crystallite_results::select_rotations ( type(rotation), dimension(:,:,:), intent(in)  dataset,
integer, intent(in)  instance 
)
private

select rotations for output

Definition at line 725 of file crystallite.f90.

References discretization::discretization_nip, material::homogenization_maxngrains, and material::material_phaseat.

Referenced by crystallite::crystallite_results().

+ Here is the caller graph for this function:

◆ select_tensors()

real(preal) function, dimension(:,:,:), allocatable crystallite_results::select_tensors ( real(preal), dimension(:,:,:,:,:), intent(in)  dataset,
integer, intent(in)  instance 
)
private

select tensors for output

Definition at line 698 of file crystallite.f90.

References discretization::discretization_nip, and material::material_phaseat.

Referenced by crystallite::crystallite_results().

+ Here is the caller graph for this function: