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(:) :: &
atolState
real(pReal), pointer, dimension(:,:) :: &
state, & !< state
dotState !< state rate
real(pReal), allocatable, dimension(:,:) :: &
state0, & state0, &
partionedState0, & partionedState0, &
subState0, & subState0, &
state_backup, & state_backup, &
deltaState, & deltaState, &
previousDotState, & previousDotState, & !< state rate of previous xxxx
previousDotState2, & previousDotState2, & !< state rate two xxxx ago
dotState_backup, & dotState_backup, & !< backup of state rate
RK4dotState RK4dotState
real(pReal), allocatable, dimension(:,:,:) :: RKCK45dotState 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) :: &
sizeField = 0_pInt , &
sizePostResults = 0_pInt sizePostResults = 0_pInt
real(pReal), allocatable, dimension(:,:) :: field ! material points, state size real(pReal), allocatable, dimension(:,:) :: &
field !< field data
end type end type
public :: & public :: &