made dotstate and state pointers (targets are not allowed in derived types) and introduced plastic state having aliases to parts of the state.

This commit is contained in:
Martin Diehl 2014-12-09 12:12:53 +00:00
parent e3745c835e
commit 55e2de6ffd
1 changed files with 38 additions and 20 deletions

View File

@ -58,29 +58,47 @@ type, public :: p_intvec
!http://stackoverflow.com/questions/3948210/can-i-have-a-pointer-to-an-item-in-an-allocatable-array !http://stackoverflow.com/questions/3948210/can-i-have-a-pointer-to-an-item-in-an-allocatable-array
type, public :: tState type, public :: tState
integer(pInt) :: sizeState = 0_pInt , & integer(pInt) :: &
sizeDotState = 0_pInt, & sizeState = 0_pInt , & !< size of state
sizePostResults = 0_pInt sizeDotState = 0_pInt, & !< size of dot state, i.e. parts of the state that are integrated
logical :: nonlocal = .false. sizePostResults = 0_pInt !< size of output data
real(pReal), allocatable, dimension(:) :: atolState logical :: &
real(pReal), allocatable, dimension(:,:) :: state, & ! material points, state size nonlocal = .false. !< absolute tolerance for state integration
dotState, & real(pReal), allocatable, dimension(:) :: &
state0, & atolState
partionedState0, & real(pReal), pointer, dimension(:,:) :: &
subState0, & state, & !< state
state_backup, & dotState !< state rate
deltaState, & real(pReal), allocatable, dimension(:,:) :: &
previousDotState, & state0, &
previousDotState2, & partionedState0, &
dotState_backup, & subState0, &
RK4dotState state_backup, &
real(pReal), allocatable, dimension(:,:,:) :: RKCK45dotState deltaState, &
previousDotState, & !< state rate of previous xxxx
previousDotState2, & !< state rate two xxxx ago
dotState_backup, & !< backup of state rate
RK4dotState
real(pReal), allocatable, dimension(:,:,:) :: &
RKCK45dotState
end type
type, extends(tState), public :: tPlasticState
integer(pInt) :: &
nSlip = 0_pInt , &
nTwin = 0_pInt, &
nTrans = 0_pInt
real(pReal), pointer, dimension(:,:) :: &
slipRate, & !< slip rate
accumulatedSlip !< accumulated plastic slip
end type end type
type, public :: tFieldData type, public :: tFieldData
integer(pInt) :: sizeField = 0_pInt , & integer(pInt) :: &
sizePostResults = 0_pInt sizeField = 0_pInt , &
real(pReal), allocatable, dimension(:,:) :: field ! material points, state size sizePostResults = 0_pInt
real(pReal), allocatable, dimension(:,:) :: &
field !< field data
end type end type
public :: & public :: &