Merge branch 'fix-random-infinite-loop-marc' into 'development'
Fix random infinite loop marc See merge request damask/DAMASK!163
This commit is contained in:
commit
524706d346
|
@ -73,28 +73,24 @@ 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)
|
CPFEM_init_done = .true.
|
||||||
if (.not. CPFEM_init_done) then
|
call DAMASK_interface_init
|
||||||
call DAMASK_interface_init
|
call prec_init
|
||||||
call prec_init
|
call IO_init
|
||||||
call IO_init
|
call numerics_init
|
||||||
call numerics_init
|
call debug_init
|
||||||
call debug_init
|
call config_init
|
||||||
call config_init
|
call math_init
|
||||||
call math_init
|
call rotations_init
|
||||||
call rotations_init
|
call HDF5_utilities_init
|
||||||
call HDF5_utilities_init
|
call results_init
|
||||||
call results_init
|
call discretization_marc_init(ip, el)
|
||||||
call discretization_marc_init(ip, el)
|
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 CPFEM_init
|
|
||||||
CPFEM_init_done = .true.
|
|
||||||
endif
|
|
||||||
!$OMP END CRITICAL(init)
|
|
||||||
|
|
||||||
end subroutine CPFEM_initAll
|
end subroutine CPFEM_initAll
|
||||||
|
|
||||||
|
|
|
@ -261,11 +261,10 @@ subroutine hypela2(d,g,e,de,s,t,dt,ngens,m,nn,kcus,matus,ndi,nshear,disp, &
|
||||||
endif
|
endif
|
||||||
|
|
||||||
!$ defaultNumThreadsInt = omp_get_num_threads() ! remember number of threads set by Marc
|
!$ defaultNumThreadsInt = omp_get_num_threads() ! remember number of threads set by Marc
|
||||||
|
!$ call omp_set_num_threads(DAMASK_NumThreadsInt) ! set number of threads for parallel execution set by DAMASK_NUM_THREADS
|
||||||
|
|
||||||
if (.not. CPFEM_init_done) call CPFEM_initAll(m(1),nn)
|
if (.not. CPFEM_init_done) call CPFEM_initAll(m(1),nn)
|
||||||
|
|
||||||
!$ call omp_set_num_threads(DAMASK_NumThreadsInt) ! set number of threads for parallel execution set by DAMASK_NUM_THREADS
|
|
||||||
|
|
||||||
computationMode = 0 ! save initialization value, since it does not result in any calculation
|
computationMode = 0 ! save initialization value, since it does not result in any calculation
|
||||||
if (lovl == 4 ) then ! jacobian requested by marc
|
if (lovl == 4 ) then ! jacobian requested by marc
|
||||||
if (timinc < theDelta .and. theInc == inc .and. lastLovl /= lovl) & ! first after cutback
|
if (timinc < theDelta .and. theInc == inc .and. lastLovl /= lovl) & ! first after cutback
|
||||||
|
|
|
@ -303,6 +303,7 @@ function crystallite_stress(dummyArgumentToPreventInternalCompilerErrorWithGCC)
|
||||||
s
|
s
|
||||||
logical, dimension(homogenization_maxNgrains,discretization_nIP,discretization_nElem) :: todo !ToDo: need to set some values to false for different Ngrains
|
logical, dimension(homogenization_maxNgrains,discretization_nIP,discretization_nElem) :: todo !ToDo: need to set some values to false for different Ngrains
|
||||||
|
|
||||||
|
todo = .false.
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
if (iand(debug_level(debug_crystallite),debug_levelSelective) /= 0 &
|
if (iand(debug_level(debug_crystallite),debug_levelSelective) /= 0 &
|
||||||
.and. FEsolving_execElem(1) <= debug_e &
|
.and. FEsolving_execElem(1) <= debug_e &
|
||||||
|
|
Loading…
Reference in New Issue