DAMASK_EICMD/src/CPFEM2.f90

99 lines
2.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
!> @brief needs a good name and description
!--------------------------------------------------------------------------------------------------
module CPFEM2
use prec
use numerics
use debug
use config
use FEsolving
use math
2019-09-22 19:23:03 +05:30
use rotations
use material
use lattice
use IO
use DAMASK_interface
use results
use discretization
use HDF5_utilities
use homogenization
use constitutive
use crystallite
2019-06-11 19:46:10 +05:30
#ifdef FEM
use FEM_Zoo
2019-09-28 03:04:34 +05:30
use mesh
#else
use mesh_grid
2019-06-11 19:46:10 +05:30
#endif
implicit none
2020-01-27 01:45:21 +05:30
public
2019-05-15 02:42:32 +05:30
contains
!--------------------------------------------------------------------------------------------------
2019-12-07 19:50:04 +05:30
!> @brief call all module initializations
!--------------------------------------------------------------------------------------------------
2019-06-11 19:46:10 +05:30
subroutine CPFEM_initAll
call DAMASK_interface_init ! Spectral and FEM interface to commandline
2019-06-11 19:46:10 +05:30
call prec_init
call IO_init
#ifdef FEM
2019-06-11 19:46:10 +05:30
call FEM_Zoo_init
#endif
2019-06-11 19:46:10 +05:30
call numerics_init
call debug_init
call config_init
call math_init
2019-09-22 19:23:03 +05:30
call rotations_init
2019-06-11 19:46:10 +05:30
call lattice_init
call HDF5_utilities_init
call results_init
2019-11-24 12:14:17 +05:30
call mesh_init
2019-06-11 19:46:10 +05:30
call material_init
call constitutive_init
call crystallite_init
call homogenization_init
call CPFEM_init
call CPFEM_initX
end subroutine CPFEM_initAll
2019-12-07 19:50:04 +05:30
!--------------------------------------------------------------------------------------------------
!> @brief allocate the arrays defined in module CPFEM and initialize them
!--------------------------------------------------------------------------------------------------
subroutine CPFEM_init
2019-06-11 19:46:10 +05:30
2019-12-07 19:50:04 +05:30
write(6,'(/,a)') ' <<<+- CPFEM init -+>>>'; flush(6)
2019-06-11 19:46:10 +05:30
end subroutine CPFEM_init
2018-12-05 04:25:39 +05:30
2018-12-05 04:25:39 +05:30
!--------------------------------------------------------------------------------------------------
!> @brief Trigger writing of results.
2018-12-05 04:25:39 +05:30
!--------------------------------------------------------------------------------------------------
subroutine CPFEM_results(inc,time)
integer, intent(in) :: inc
real(pReal), intent(in) :: time
2019-06-11 19:46:10 +05:30
call results_openJobFile
call results_addIncrement(inc,time)
call constitutive_results
call crystallite_results
call homogenization_results
call discretization_results
2020-01-10 06:15:00 +05:30
call results_finalizeIncrement
2019-06-11 19:46:10 +05:30
call results_closeJobFile
2018-12-05 04:25:39 +05:30
end subroutine CPFEM_results
end module CPFEM2