need to write out initial results for new CPFEM2

This commit is contained in:
Martin Diehl 2016-01-20 16:19:05 +00:00
parent 143266dbd4
commit eda03ed3e0
2 changed files with 22 additions and 32 deletions

View File

@ -421,11 +421,8 @@ subroutine CPFEM_general(mode, ffn, ffn1, dt, elFE, ip)
#if defined(Marc4DAMASK) || defined(Abaqus) #if defined(Marc4DAMASK) || defined(Abaqus)
!*** backup jacobian
if (iand(mode, CPFEM_BACKUPJACOBIAN) /= 0_pInt) & if (iand(mode, CPFEM_BACKUPJACOBIAN) /= 0_pInt) &
CPFEM_dcsde_knownGood = CPFEM_dcsde CPFEM_dcsde_knownGood = CPFEM_dcsde
!*** restore jacobian
if (iand(mode, CPFEM_RESTOREJACOBIAN) /= 0_pInt) & if (iand(mode, CPFEM_RESTOREJACOBIAN) /= 0_pInt) &
CPFEM_dcsde = CPFEM_dcsde_knownGood CPFEM_dcsde = CPFEM_dcsde_knownGood
#endif #endif
@ -553,8 +550,6 @@ subroutine CPFEM_general(mode, ffn, ffn1, dt, elFE, ip)
if (rnd < 0.5_pReal) rnd = rnd - 1.0_pReal if (rnd < 0.5_pReal) rnd = rnd - 1.0_pReal
CPFEM_cs(1:6,ip,elCP) = rnd * CPFEM_odd_stress CPFEM_cs(1:6,ip,elCP) = rnd * CPFEM_odd_stress
CPFEM_dcsde(1:6,1:6,ip,elCP) = CPFEM_odd_jacobian * math_identity2nd(6) CPFEM_dcsde(1:6,1:6,ip,elCP) = CPFEM_odd_jacobian * math_identity2nd(6)
#endif
#if defined(Marc4DAMASK) || defined(Abaqus)
temperature(material_homog(ip,elCP))%p(thermalMapping(material_homog(ip,elCP))%p(ip,elCP)) = & temperature(material_homog(ip,elCP))%p(thermalMapping(material_homog(ip,elCP))%p(ip,elCP)) = &
temperature_inp temperature_inp
#endif #endif

View File

@ -6,16 +6,10 @@
!> @brief needs a good name and description !> @brief needs a good name and description
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
module CPFEM2 module CPFEM2
use prec, only: &
pReal, &
pInt
implicit none implicit none
private private
logical, public, protected :: &
CPFEM_init_done = .false. !< remember whether init has been done already
public :: & public :: &
CPFEM_general, & CPFEM_general, &
CPFEM_initAll CPFEM_initAll
@ -27,6 +21,8 @@ contains
!> @brief call (thread safe) all module initializations !> @brief call (thread safe) all module initializations
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
subroutine CPFEM_initAll(el,ip) subroutine CPFEM_initAll(el,ip)
use prec, only: &
pInt
use prec, only: & use prec, only: &
prec_init prec_init
use numerics, only: & use numerics, only: &
@ -48,7 +44,8 @@ subroutine CPFEM_initAll(el,ip)
use crystallite, only: & use crystallite, only: &
crystallite_init crystallite_init
use homogenization, only: & use homogenization, only: &
homogenization_init homogenization_init, &
materialpoint_postResults
use IO, only: & use IO, only: &
IO_init IO_init
use DAMASK_interface use DAMASK_interface
@ -61,28 +58,23 @@ subroutine CPFEM_initAll(el,ip)
integer(pInt), intent(in) :: el, & !< FE el number integer(pInt), intent(in) :: el, & !< FE el number
ip !< FE integration point number ip !< FE integration point number
!$OMP CRITICAL (init) call DAMASK_interface_init ! Spectral and FEM interface to commandline
if (.not. CPFEM_init_done) then call prec_init
call DAMASK_interface_init ! Spectral and FEM interface to commandline call IO_init
call prec_init
call IO_init
#ifdef FEM #ifdef FEM
call FEZoo_init call FEZoo_init
#endif #endif
call numerics_init call numerics_init
call debug_init call debug_init
call math_init call math_init
call FE_init call FE_init
call mesh_init(ip, el) ! pass on coordinates to alter calcMode of first ip call mesh_init(ip, el) ! pass on coordinates to alter calcMode of first ip
call lattice_init call lattice_init
call material_init call material_init
call constitutive_init call constitutive_init
call crystallite_init call crystallite_init
call homogenization_init call homogenization_init
call CPFEM_init call materialpoint_postResults
CPFEM_init_done = .true.
endif
!$OMP END CRITICAL (init)
end subroutine CPFEM_initAll end subroutine CPFEM_initAll
@ -209,6 +201,9 @@ end subroutine CPFEM_init
!> @brief perform initialization at first call, update variables and call the actual material model !> @brief perform initialization at first call, update variables and call the actual material model
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
subroutine CPFEM_general(age, dt) subroutine CPFEM_general(age, dt)
use prec, only: &
pReal, &
pInt
use numerics, only: & use numerics, only: &
worldrank worldrank
use debug, only: & use debug, only: &