DAMASK_EICMD/src/homogenization_mechanical_p...

42 lines
1.6 KiB
Fortran
Raw Normal View History

!--------------------------------------------------------------------------------------------------
!> @author Franz Roters, Max-Planck-Institut für Eisenforschung GmbH
!> @author Philip Eisenlohr, Max-Planck-Institut für Eisenforschung GmbH
!> @author Martin Diehl, Max-Planck-Institut für Eisenforschung GmbH
2019-01-13 02:34:03 +05:30
!> @brief dummy homogenization homogenization scheme for 1 constituent per material point
!--------------------------------------------------------------------------------------------------
submodule(homogenization:mechanical) mechanical_pass
contains
!--------------------------------------------------------------------------------------------------
2020-07-03 20:15:11 +05:30
!> @brief allocates all necessary fields, reads information from material configuration file
!--------------------------------------------------------------------------------------------------
module subroutine pass_init
2020-07-03 20:15:11 +05:30
2019-03-09 12:17:01 +05:30
integer :: &
Ninstances, &
2019-03-09 12:17:01 +05:30
h, &
Nmaterialpoints
2020-07-03 20:15:11 +05:30
2021-02-13 23:27:41 +05:30
print'(/,a)', ' <<<+- homogenization:mechanical:pass init -+>>>'
Ninstances = count(homogenization_type == HOMOGENIZATION_NONE_ID)
print'(a,i2)', ' # instances: ',Ninstances; flush(IO_STDOUT)
2020-07-03 20:15:11 +05:30
2019-03-09 12:17:01 +05:30
do h = 1, size(homogenization_type)
2020-10-07 21:14:54 +05:30
if(homogenization_type(h) /= HOMOGENIZATION_NONE_ID) cycle
2020-07-03 20:15:11 +05:30
if(homogenization_Nconstituents(h) /= 1) &
call IO_error(211,ext_msg='N_constituents (pass)')
2020-12-16 15:51:24 +05:30
Nmaterialpoints = count(material_homogenizationAt == h)
2019-03-09 12:17:01 +05:30
homogState(h)%sizeState = 0
allocate(homogState(h)%state0 (0,Nmaterialpoints))
allocate(homogState(h)%state (0,Nmaterialpoints))
2020-07-03 20:15:11 +05:30
2019-03-09 12:17:01 +05:30
enddo
end subroutine pass_init
end submodule mechanical_pass