From 3b673d23dc1ecb8a191592bc272b25c0df38ea5d Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Tue, 3 May 2016 17:06:55 +0200 Subject: [PATCH 01/95] added code for solving heat equation --- code/DAMASK_marc.f90 | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/code/DAMASK_marc.f90 b/code/DAMASK_marc.f90 index a4542f96a..bef54489e 100644 --- a/code/DAMASK_marc.f90 +++ b/code/DAMASK_marc.f90 @@ -384,6 +384,33 @@ subroutine hypela2(d,g,e,de,s,t,dt,ngens,m,nn,kcus,matus,ndi,nshear,disp, & end subroutine hypela2 +!-------------------------------------------------------------------------------------------------- +!> @brief thermomechanical coupling +!-------------------------------------------------------------------------------------------------- +subroutine flux(f,ts,n,time) + use prec, only: & + pReal, & + pInt + use homogenization, only: & + materialpoint_heat + use mesh, only: & + mesh_FEasCP + + implicit none + real(pReal), dimension(6), intent(in) :: & + ts + integer(pInt), dimension(10), intent(in) :: & + n + real(pReal), intent(in) :: & + time + real(pReal), dimension(2), intent(out) :: & + f + + f(1) = materialpoint_heat(n(3),mesh_FEasCP('elem',n(1))) + +end subroutine flux + + !-------------------------------------------------------------------------------------------------- !> @brief sets user defined output variables for Marc !> @details select a variable contour plotting (user subroutine). From 1753d35e875b8804ce0b83fac3b23efe4cc46bb9 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Tue, 3 May 2016 17:07:51 +0200 Subject: [PATCH 02/95] corrected subroutine description --- code/DAMASK_marc.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/DAMASK_marc.f90 b/code/DAMASK_marc.f90 index bef54489e..5750b8850 100644 --- a/code/DAMASK_marc.f90 +++ b/code/DAMASK_marc.f90 @@ -385,7 +385,7 @@ end subroutine hypela2 !-------------------------------------------------------------------------------------------------- -!> @brief thermomechanical coupling +!> @brief solve the heat equation !-------------------------------------------------------------------------------------------------- subroutine flux(f,ts,n,time) use prec, only: & @@ -413,7 +413,7 @@ end subroutine flux !-------------------------------------------------------------------------------------------------- !> @brief sets user defined output variables for Marc -!> @details select a variable contour plotting (user subroutine). +!> @details select a variable contour plotting (user subgiroutine). !-------------------------------------------------------------------------------------------------- subroutine plotv(v,s,sp,etot,eplas,ecreep,t,m,nn,layer,ndi,nshear,jpltcd) use prec, only: & From 2d26cfe7b87fe7956a423d8a2699865fac03eb1e Mon Sep 17 00:00:00 2001 From: Franz Roters Date: Wed, 20 Jul 2016 08:44:12 +0200 Subject: [PATCH 03/95] adapted flux routine to current state of source_thermal_dissipation.f90 --- code/DAMASK_marc.f90 | 52 ++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/code/DAMASK_marc.f90 b/code/DAMASK_marc.f90 index 5750b8850..6c4294163 100644 --- a/code/DAMASK_marc.f90 +++ b/code/DAMASK_marc.f90 @@ -1,5 +1,5 @@ -#define QUOTE(x) #x -#define PASTE(x,y) x ## y +#define QUOTE(x) #x +#define PASTE(x,y) x ## y #ifndef INT #define INT 4 @@ -35,7 +35,7 @@ !> @details - creeps: timinc !-------------------------------------------------------------------------------------------------- module DAMASK_interface - + implicit none character(len=4), parameter :: InputFileExtension = '.dat' character(len=4), parameter :: LogFileExtension = '.log' @@ -57,18 +57,18 @@ subroutine DAMASK_interface_init write(6,'(/,a)') ' Version: '//DAMASKVERSION write(6,'(a,2(i2.2,a),i4.4)') ' Date: ',dateAndTime(3),'/',& dateAndTime(2),'/',& - dateAndTime(1) + dateAndTime(1) write(6,'(a,2(i2.2,a),i2.2)') ' Time: ',dateAndTime(5),':',& dateAndTime(6),':',& - dateAndTime(7) + dateAndTime(7) write(6,'(/,a)') ' <<<+- DAMASK_interface init -+>>>' -#include "compilation_info.f90" +#include "compilation_info.f90" end subroutine DAMASK_interface_init !-------------------------------------------------------------------------------------------------- -!> @brief returns the current workingDir +!> @brief returns the current workingDir !-------------------------------------------------------------------------------------------------- function getSolverWorkingDirectoryName() @@ -185,7 +185,7 @@ subroutine hypela2(d,g,e,de,s,t,dt,ngens,m,nn,kcus,matus,ndi,nshear,disp, & !$ include "omp_lib.h" ! the openMP function library integer(pInt), intent(in) :: & ! according to MSC.Marc 2012 Manual D ngens, & !< size of stress-strain law - nn, & !< integration point number + nn, & !< integration point number ndi, & !< number of direct components nshear, & !< number of shear components ncrd, & !< number of coordinates @@ -199,7 +199,7 @@ subroutine hypela2(d,g,e,de,s,t,dt,ngens,m,nn,kcus,matus,ndi,nshear,disp, & integer(pInt), dimension(2), intent(in) :: & ! according to MSC.Marc 2012 Manual D m, & !< (1) user element number, (2) internal element number matus, & !< (1) user material identification number, (2) internal material identification number - kcus, & !< (1) layer number, (2) internal layer number + kcus, & !< (1) layer number, (2) internal layer number lclass !< (1) element class, (2) 0: displacement, 1: low order Herrmann, 2: high order Herrmann real(pReal), dimension(*), intent(in) :: & ! has dimension(1) according to MSC.Marc 2012 Manual D, but according to example hypela2.f dimension(*) e, & !< total elastic strain @@ -244,13 +244,13 @@ subroutine hypela2(d,g,e,de,s,t,dt,ngens,m,nn,kcus,matus,ndi,nshear,disp, & if (iand(debug_level(debug_MARC),debug_LEVELBASIC) /= 0_pInt) then write(6,'(a,/,i8,i8,i2)') ' MSC.MARC information on shape of element(2), IP:', m, nn - write(6,'(a,2(1i))'), ' Jacobian: ', ngens,ngens - write(6,'(a,1i)'), ' Direct stress: ', ndi - write(6,'(a,1i)'), ' Shear stress: ', nshear + write(6,'(a,2(1i))'), ' Jacobian: ', ngens,ngens + write(6,'(a,1i)'), ' Direct stress: ', ndi + write(6,'(a,1i)'), ' Shear stress: ', nshear write(6,'(a,1i)'), ' DoF: ', ndeg write(6,'(a,1i)'), ' Coordinates: ', ncrd - write(6,'(a,1i)'), ' Nodes: ', nnode - write(6,'(a,1i)'), ' Deformation gradient: ', itel + write(6,'(a,1i)'), ' Nodes: ', nnode + write(6,'(a,1i)'), ' Deformation gradient: ', itel write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') ' Deformation gradient at t=n:', & math_transpose33(ffn) write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') ' Deformation gradient at t=n+1:', & @@ -310,7 +310,7 @@ subroutine hypela2(d,g,e,de,s,t,dt,ngens,m,nn,kcus,matus,ndi,nshear,disp, & !$OMP END CRITICAL (write2out) endif ! convergence treatment end - + if (usePingPong) then calcMode(nn,cp_en) = .not. calcMode(nn,cp_en) ! ping pong (calc <--> collect) if (calcMode(nn,cp_en)) then ! now --- CALC --- @@ -339,7 +339,7 @@ subroutine hypela2(d,g,e,de,s,t,dt,ngens,m,nn,kcus,matus,ndi,nshear,disp, & mesh_node(1:ndeg,CPnodeID) = mesh_node0(1:ndeg,CPnodeID) + numerics_unitlength * dispt(1:ndeg,node) enddo endif - + else ! --- PLAIN MODE --- computationMode = CPFEM_CALCRESULTS ! always calc if (lastLovl /= lovl) then @@ -378,7 +378,7 @@ subroutine hypela2(d,g,e,de,s,t,dt,ngens,m,nn,kcus,matus,ndi,nshear,disp, & s(1:ndi+nshear) = stress(1:ndi+nshear)*invnrmMandel(1:ndi+nshear) g = 0.0_pReal if(symmetricSolver) d = 0.5_pReal*(d+transpose(d)) - + !$ call omp_set_num_threads(defaultNumThreadsInt) ! reset number of threads to stored default value end subroutine hypela2 @@ -391,11 +391,11 @@ subroutine flux(f,ts,n,time) use prec, only: & pReal, & pInt - use homogenization, only: & - materialpoint_heat + use thermal_conduction, only: & + thermal_conduction_getSourceAndItsTangent use mesh, only: & mesh_FEasCP - + implicit none real(pReal), dimension(6), intent(in) :: & ts @@ -405,9 +405,9 @@ subroutine flux(f,ts,n,time) time real(pReal), dimension(2), intent(out) :: & f - - f(1) = materialpoint_heat(n(3),mesh_FEasCP('elem',n(1))) - + +! f(1) = materialpoint_heat(n(3),mesh_FEasCP('elem',n(1))) + call thermal_conduction_getSourceAndItsTangent(f(1), f(2), ts(3), n(3),mesh_FEasCP('elem',n(1))) end subroutine flux @@ -426,7 +426,7 @@ subroutine plotv(v,s,sp,etot,eplas,ecreep,t,m,nn,layer,ndi,nshear,jpltcd) use homogenization, only: & materialpoint_results,& materialpoint_sizeResults - + implicit none integer(pInt), intent(in) :: & m, & !< element number @@ -438,7 +438,7 @@ subroutine plotv(v,s,sp,etot,eplas,ecreep,t,m,nn,layer,ndi,nshear,jpltcd) real(pReal), dimension(*), intent(in) :: & s, & !< stress array sp, & !< stresses in preferred direction - etot, & !< total strain (generalized) + etot, & !< total strain (generalized) eplas, & !< total plastic strain ecreep, & !< total creep strain t !< current temperature @@ -448,4 +448,4 @@ subroutine plotv(v,s,sp,etot,eplas,ecreep,t,m,nn,layer,ndi,nshear,jpltcd) if (jpltcd > materialpoint_sizeResults) call IO_error(700_pInt,jpltcd) ! complain about out of bounds error v = materialpoint_results(jpltcd,nn,mesh_FEasCP('elem', m)) -end subroutine plotv \ No newline at end of file +end subroutine plotv From cadac1e363ea47fcdae3646c5ac7f9c19c2a49c0 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 4 Feb 2017 23:53:22 +0100 Subject: [PATCH 04/95] no need to inlcude twice --- code/mesh.f90 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/mesh.f90 b/code/mesh.f90 index 7da3d4968..30555c34e 100644 --- a/code/mesh.f90 +++ b/code/mesh.f90 @@ -472,9 +472,8 @@ contains !! Order and routines strongly depend on type of solver !-------------------------------------------------------------------------------------------------- subroutine mesh_init(ip,el) - use, intrinsic :: iso_c_binding - use DAMASK_interface use, intrinsic :: iso_fortran_env ! to get compiler_version and compiler_options (at least for gfortran 4.6 at the moment) + use DAMASK_interface use IO, only: & #ifdef Abaqus IO_abaqus_hasNoPart, & From 7081931c02623369bac1123bfa99edd94dbfba97 Mon Sep 17 00:00:00 2001 From: Franz Roters Date: Wed, 8 Feb 2017 10:02:56 +0100 Subject: [PATCH 05/95] cleaning up Marc subroutine flux can be used for specifying volume flux boundary condition (dissipated plastic work) in thermomechanically coupled simulations --- code/DAMASK_marc.f90 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/DAMASK_marc.f90 b/code/DAMASK_marc.f90 index 6c4294163..105db0543 100644 --- a/code/DAMASK_marc.f90 +++ b/code/DAMASK_marc.f90 @@ -385,7 +385,7 @@ end subroutine hypela2 !-------------------------------------------------------------------------------------------------- -!> @brief solve the heat equation +!> @brief calculate internal heat generated due to inelastic energy dissipation !-------------------------------------------------------------------------------------------------- subroutine flux(f,ts,n,time) use prec, only: & @@ -406,9 +406,9 @@ subroutine flux(f,ts,n,time) real(pReal), dimension(2), intent(out) :: & f -! f(1) = materialpoint_heat(n(3),mesh_FEasCP('elem',n(1))) call thermal_conduction_getSourceAndItsTangent(f(1), f(2), ts(3), n(3),mesh_FEasCP('elem',n(1))) -end subroutine flux + + end subroutine flux !-------------------------------------------------------------------------------------------------- From 829c89247f57f29d4d4ff5e1c981136773e0f602 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 8 Feb 2017 20:04:47 +0100 Subject: [PATCH 06/95] not needed (processes >0 write to dev/Null) --- code/lattice.f90 | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/code/lattice.f90 b/code/lattice.f90 index 06f9c84d9..332647d9e 100644 --- a/code/lattice.f90 +++ b/code/lattice.f90 @@ -1283,11 +1283,9 @@ subroutine lattice_init a_fcc, & !< lattice parameter a for fcc austenite a_bcc !< lattice paramater a for bcc martensite - mainProcess: if (worldrank == 0) then - write(6,'(/,a)') ' <<<+- lattice init -+>>>' - write(6,'(a15,a)') ' Current time: ',IO_timeStamp() + write(6,'(/,a)') ' <<<+- lattice init -+>>>' + write(6,'(a15,a)') ' Current time: ',IO_timeStamp() #include "compilation_info.f90" - endif mainProcess !-------------------------------------------------------------------------------------------------- ! consistency checks (required since ifort 15.0 does not support sum/maxval in parameter definition) From a3e9e51f781c700442096a890c772001f26e55e1 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 9 Feb 2017 10:12:35 +0100 Subject: [PATCH 07/95] inconsistency lead to compile error undefined reference to 'matmul_mkl_f64_' --- code/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/Makefile b/code/Makefile index 49ce9c50e..79accdfdd 100644 --- a/code/Makefile +++ b/code/Makefile @@ -51,7 +51,7 @@ MAXOPTI := DEFENSIVE endif ifeq "$(OPTIMIZATION)" "AGGRESSIVE" OPTI := AGGRESSIVE -MAXOPTI := DEFENSIVE +MAXOPTI := AGGRESSIVE endif ifeq "$(OPTIMIZATION)" "ULTRA" OPTI := AGGRESSIVE From b37ccdc60f5203bc199cd6ce5cdcf6bbc9680a7b Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 9 Feb 2017 22:41:23 +0100 Subject: [PATCH 08/95] 2016 is newest supported version --- CONFIG | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONFIG b/CONFIG index 9be3a95fb..209e4660c 100644 --- a/CONFIG +++ b/CONFIG @@ -5,7 +5,7 @@ set DAMASK_BIN = ${DAMASK_ROOT}/bin set DAMASK_NUM_THREADS = 4 -set MSC_ROOT = /opt/MSC -set MARC_VERSION = 2015 +set MSC_ROOT = /opt/msc +set MARC_VERSION = 2016 set ABAQUS_VERSION = 6.14-5 From ab8569447759d2f82a74a64a1756ccfdcd89c5f8 Mon Sep 17 00:00:00 2001 From: Philip Eisenlohr Date: Fri, 10 Feb 2017 18:32:02 -0500 Subject: [PATCH 09/95] give feedback on invalid MSC version and path input --- installation/mods_MarcMentat/apply_DAMASK_modifications.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/installation/mods_MarcMentat/apply_DAMASK_modifications.sh b/installation/mods_MarcMentat/apply_DAMASK_modifications.sh index f52b70e36..389b05c9f 100755 --- a/installation/mods_MarcMentat/apply_DAMASK_modifications.sh +++ b/installation/mods_MarcMentat/apply_DAMASK_modifications.sh @@ -25,6 +25,7 @@ do if [ -z "$VERSION" ]; then VERSION=${DEFAULT_VERSION} fi + [[ -d "$SCRIPTLOCATION/$VERSION" ]] || echo -e "$VERSION not supported..!\n" done echo "MSC version: $VERSION" @@ -35,6 +36,7 @@ do if [ -z "$INSTALLDIR" ]; then INSTALLDIR=${DEFAULT_DIR} fi + [[ -d "$INSTALLDIR" ]] || echo -e "$INSTALLDIR not found..!\n" done INSTALLDIR=${INSTALLDIR%/} # remove trailing slash From d403f5f346f99f766b1f6cf52efa36f0b77e8fc1 Mon Sep 17 00:00:00 2001 From: Philip Eisenlohr Date: Fri, 10 Feb 2017 18:32:02 -0500 Subject: [PATCH 10/95] give feedback on invalid MSC version and path input --- installation/mods_MarcMentat/apply_DAMASK_modifications.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/installation/mods_MarcMentat/apply_DAMASK_modifications.sh b/installation/mods_MarcMentat/apply_DAMASK_modifications.sh index f52b70e36..389b05c9f 100755 --- a/installation/mods_MarcMentat/apply_DAMASK_modifications.sh +++ b/installation/mods_MarcMentat/apply_DAMASK_modifications.sh @@ -25,6 +25,7 @@ do if [ -z "$VERSION" ]; then VERSION=${DEFAULT_VERSION} fi + [[ -d "$SCRIPTLOCATION/$VERSION" ]] || echo -e "$VERSION not supported..!\n" done echo "MSC version: $VERSION" @@ -35,6 +36,7 @@ do if [ -z "$INSTALLDIR" ]; then INSTALLDIR=${DEFAULT_DIR} fi + [[ -d "$INSTALLDIR" ]] || echo -e "$INSTALLDIR not found..!\n" done INSTALLDIR=${INSTALLDIR%/} # remove trailing slash From abe042c15c8aac60476aa0ff7732bdd7ba6d0802 Mon Sep 17 00:00:00 2001 From: Test User Date: Sat, 11 Feb 2017 05:29:05 +0100 Subject: [PATCH 11/95] updated version information after successful test of v2.0.1-370-gb37ccdc --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 2aa809898..5f5d370b7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-357-g38471c1 +v2.0.1-370-gb37ccdc From 1de49bbc7b69bc3fe7c667c8c7039a45cb6b10c1 Mon Sep 17 00:00:00 2001 From: Test User Date: Sun, 12 Feb 2017 16:25:19 +0100 Subject: [PATCH 12/95] updated version information after successful test of v2.0.1-375-g7be89de --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 5f5d370b7..dd257a279 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-370-gb37ccdc +v2.0.1-375-g7be89de From 95f7ef8015bcc062174ce79513d0a940d7ae1840 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sun, 12 Feb 2017 22:59:14 +0100 Subject: [PATCH 13/95] IO_error should report to STDERR (otherwise not visible for MPI proc >0) --- code/IO.f90 | 24 ++++++++++++------------ code/spectral_interface.f90 | 4 ++++ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/code/IO.f90 b/code/IO.f90 index 894e81852..c55a03b6a 100644 --- a/code/IO.f90 +++ b/code/IO.f90 @@ -1669,33 +1669,33 @@ subroutine IO_error(error_ID,el,ip,g,ext_msg) end select !$OMP CRITICAL (write2out) - write(6,'(/,a)') ' +--------------------------------------------------------+' - write(6,'(a)') ' + error +' - write(6,'(a,i3,a)') ' + ',error_ID,' +' - write(6,'(a)') ' + +' + write(0,'(/,a)') ' +--------------------------------------------------------+' + write(0,'(a)') ' + error +' + write(0,'(a,i3,a)') ' + ',error_ID,' +' + write(0,'(a)') ' + +' write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a2,a',max(1,len(trim(msg))),',',& max(1,60-len(trim(msg))-5),'x,a)' - write(6,formatString) '+ ', trim(msg),'+' + write(0,formatString) '+ ', trim(msg),'+' if (present(ext_msg)) then write(formatString,'(a,i6.6,a,i6.6,a)') '(1x,a2,a',max(1,len(trim(ext_msg))),',',& max(1,60-len(trim(ext_msg))-5),'x,a)' - write(6,formatString) '+ ', trim(ext_msg),'+' + write(0,formatString) '+ ', trim(ext_msg),'+' endif if (present(el)) then if (present(ip)) then if (present(g)) then - write(6,'(a13,1x,i9,1x,a2,1x,i2,1x,a5,1x,i4,18x,a1)') ' + at element',el,'IP',ip,'grain',g,'+' + write(0,'(a13,1x,i9,1x,a2,1x,i2,1x,a5,1x,i4,18x,a1)') ' + at element',el,'IP',ip,'grain',g,'+' else - write(6,'(a13,1x,i9,1x,a2,1x,i2,29x,a1)') ' + at element',el,'IP',ip,'+' + write(0,'(a13,1x,i9,1x,a2,1x,i2,29x,a1)') ' + at element',el,'IP',ip,'+' endif else - write(6,'(a13,1x,i9,35x,a1)') ' + at element',el,'+' + write(0,'(a13,1x,i9,35x,a1)') ' + at element',el,'+' endif elseif (present(ip)) then ! now having the meaning of "instance" - write(6,'(a15,1x,i9,33x,a1)') ' + for instance',ip,'+' + write(0,'(a15,1x,i9,33x,a1)') ' + for instance',ip,'+' endif - write(6,'(a)') ' +--------------------------------------------------------+' - flush(6) + write(0,'(a)') ' +--------------------------------------------------------+' + flush(0) call quit(9000_pInt+error_ID) !$OMP END CRITICAL (write2out) diff --git a/code/spectral_interface.f90 b/code/spectral_interface.f90 index 8d9a41619..fdef1a9fb 100644 --- a/code/spectral_interface.f90 +++ b/code/spectral_interface.f90 @@ -95,6 +95,10 @@ subroutine DAMASK_interface_init() write(output_unit,'(a)') ' STDOUT != 6' call quit(1_pInt) endif + if (error_unit /= 0) then + write(output_unit,'(a)') ' STERR != 0' + call quit(1_pInt) + endif else mainProcess close(6) ! disable output for non-master processes (open 6 to rank specific file for debug) open(6,file='/dev/null',status='replace') ! close(6) alone will leave some temp files in cwd From ae180662e93183790f2aa2aef615d297beb57084 Mon Sep 17 00:00:00 2001 From: Test User Date: Mon, 13 Feb 2017 04:25:46 +0100 Subject: [PATCH 14/95] updated version information after successful test of v2.0.1-377-g95f7ef8 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index dd257a279..12eec0af5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-375-g7be89de +v2.0.1-377-g95f7ef8 From f6a62939c8c3abb9983d00a496c3568233ba69c7 Mon Sep 17 00:00:00 2001 From: Philip Eisenlohr Date: Mon, 13 Feb 2017 13:04:49 -0500 Subject: [PATCH 15/95] updated path to include ConfigFiles --- examples/MSC.Marc/material.config | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/MSC.Marc/material.config b/examples/MSC.Marc/material.config index c9c23ba84..635902314 100644 --- a/examples/MSC.Marc/material.config +++ b/examples/MSC.Marc/material.config @@ -2,7 +2,7 @@ #-------------------# -{../../code/config/Homogenization_None_Dummy.config} +{../ConfigFiles/Homogenization_None_Dummy.config} #-------------------# @@ -524,12 +524,12 @@ crystallite 1 #-------------------# -{../../code/config/Crystallite_All.config} +{../ConfigFiles/Crystallite_All.config} #-------------------# #-------------------# -{../../code/config/Phase_Phenopowerlaw_Aluminum.config} +{../ConfigFiles/Phase_Phenopowerlaw_Aluminum.config} -{../../code/config/Phase_J2_AluminumIsotropic.config} +{../ConfigFiles/Phase_J2_AluminumIsotropic.config} From 467577d50ae8bba5b8c4afb9ed3b2756a396c8bb Mon Sep 17 00:00:00 2001 From: Philip Eisenlohr Date: Mon, 13 Feb 2017 13:41:40 -0500 Subject: [PATCH 16/95] fixed renamed J2 --> Isotropic example phase configuration --- examples/MSC.Marc/material.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/MSC.Marc/material.config b/examples/MSC.Marc/material.config index 635902314..92a3ed38e 100644 --- a/examples/MSC.Marc/material.config +++ b/examples/MSC.Marc/material.config @@ -532,4 +532,4 @@ crystallite 1 {../ConfigFiles/Phase_Phenopowerlaw_Aluminum.config} -{../ConfigFiles/Phase_J2_AluminumIsotropic.config} +{../ConfigFiles/Phase_Isotropic_AluminumIsotropic.config} From a854d2f416a42ab75c4d0650762b152996f7d522 Mon Sep 17 00:00:00 2001 From: Test User Date: Tue, 14 Feb 2017 04:26:03 +0100 Subject: [PATCH 17/95] updated version information after successful test of v2.0.1-380-g467577d --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 12eec0af5..619471ea6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-377-g95f7ef8 +v2.0.1-380-g467577d From 947858d1921ae51496e78db10956eab6eba61cf4 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sun, 5 Feb 2017 17:19:47 +0100 Subject: [PATCH 18/95] caused trouble when writing ASCII table to stdout --- lib/damask/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/damask/__init__.py b/lib/damask/__init__.py index c71d50a94..eedfdd0c0 100644 --- a/lib/damask/__init__.py +++ b/lib/damask/__init__.py @@ -1,7 +1,7 @@ # -*- coding: UTF-8 no BOM -*- """Main aggregator""" -import os +import os,sys with open(os.path.join(os.path.dirname(__file__),'../../VERSION')) as f: version = f.readline()[:-1] @@ -11,7 +11,7 @@ from .asciitable import ASCIItable # noqa try: from .h5table import H5Table # noqa except ImportError: - print("h5py module not found") + sys.stderr.write("h5py module not found") from .config import Material # noqa from .colormaps import Colormap, Color # noqa from .orientation import Quaternion, Rodrigues, Symmetry, Orientation # noqa From 4117c0375ee7ad19ef466be05ddf84e678a94a28 Mon Sep 17 00:00:00 2001 From: Test User Date: Tue, 14 Feb 2017 16:26:18 +0100 Subject: [PATCH 19/95] updated version information after successful test of v2.0.1-382-g947858d --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 619471ea6..64b4b1d34 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-380-g467577d +v2.0.1-382-g947858d From 71e2c3f203a43da166f9e6d4f80e3cbe7a572560 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Tue, 14 Feb 2017 22:33:27 +0100 Subject: [PATCH 20/95] switching to PETSc 3.7.x --- code/spectral_utilities.f90 | 9 +++++---- installation/patch/README.md | 2 -- installation/patch/petsc3.7 | 22 ---------------------- 3 files changed, 5 insertions(+), 28 deletions(-) delete mode 100644 installation/patch/petsc3.7 diff --git a/code/spectral_utilities.f90 b/code/spectral_utilities.f90 index 34eb0eab0..a33c7a9f5 100644 --- a/code/spectral_utilities.f90 +++ b/code/spectral_utilities.f90 @@ -227,12 +227,13 @@ subroutine utilities_init() trim(PETScDebug), & ' add more using the PETSc_Options keyword in numerics.config '; flush(6) - call PetscOptionsClear(ierr); CHKERRQ(ierr) - if(debugPETSc) call PetscOptionsInsertString(trim(PETSCDEBUG),ierr) + call PetscOptionsClear(PETSC_NULL_OBJECT,ierr) CHKERRQ(ierr) - call PetscOptionsInsertString(trim(petsc_defaultOptions),ierr) + if(debugPETSc) call PetscOptionsInsertString(PETSC_NULL_OBJECT,trim(PETSCDEBUG),ierr) CHKERRQ(ierr) - call PetscOptionsInsertString(trim(petsc_options),ierr) + call PetscOptionsInsertString(PETSC_NULL_OBJECT,trim(petsc_defaultOptions),ierr) + CHKERRQ(ierr) + call PetscOptionsInsertString(PETSC_NULL_OBJECT,trim(petsc_options),ierr) CHKERRQ(ierr) grid1Red = grid(1)/2_pInt + 1_pInt diff --git a/installation/patch/README.md b/installation/patch/README.md index 86ed44f0d..f5b9f9706 100644 --- a/installation/patch/README.md +++ b/installation/patch/README.md @@ -13,5 +13,3 @@ patch -p1 < installation/patch/nameOfPatch * **fwbw_derivative** switches the default spatial derivative from continuous to forward/backward difference. This generally reduces spurious oscillations in the result as the spatial accuracy of the derivative is then compatible with the underlying solution grid. - * **petsc3.7** adapts to API changes introduced between PETSc 3.6.x and 3.7.x for setting PETSc options. - Use this patch if your system runs PETSc 3.7.x. diff --git a/installation/patch/petsc3.7 b/installation/patch/petsc3.7 deleted file mode 100644 index b5fd696fb..000000000 --- a/installation/patch/petsc3.7 +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/code/spectral_utilities.f90 b/code/spectral_utilities.f90 -index 34eb0ea..a33c7a9 100644 ---- a/code/spectral_utilities.f90 -+++ b/code/spectral_utilities.f90 -@@ -227,12 +227,13 @@ subroutine utilities_init() - trim(PETScDebug), & - ' add more using the PETSc_Options keyword in numerics.config '; flush(6) - -- call PetscOptionsClear(ierr); CHKERRQ(ierr) -- if(debugPETSc) call PetscOptionsInsertString(trim(PETSCDEBUG),ierr) -+ call PetscOptionsClear(PETSC_NULL_OBJECT,ierr) - CHKERRQ(ierr) -- call PetscOptionsInsertString(trim(petsc_defaultOptions),ierr) -+ if(debugPETSc) call PetscOptionsInsertString(PETSC_NULL_OBJECT,trim(PETSCDEBUG),ierr) - CHKERRQ(ierr) -- call PetscOptionsInsertString(trim(petsc_options),ierr) -+ call PetscOptionsInsertString(PETSC_NULL_OBJECT,trim(petsc_defaultOptions),ierr) -+ CHKERRQ(ierr) -+ call PetscOptionsInsertString(PETSC_NULL_OBJECT,trim(petsc_options),ierr) - CHKERRQ(ierr) - - grid1Red = grid(1)/2_pInt + 1_pInt From 71cc331ff409622295a7870ce6ec01cd246f9c37 Mon Sep 17 00:00:00 2001 From: Test User Date: Wed, 15 Feb 2017 04:26:37 +0100 Subject: [PATCH 21/95] updated version information after successful test of v2.0.1-384-g71e2c3f --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 64b4b1d34..a83331fc5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-382-g947858d +v2.0.1-384-g71e2c3f From f6d025636f204f35ab052b4ec7b2e04a49b554f3 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 15 Feb 2017 20:05:27 +0100 Subject: [PATCH 22/95] latest Abaqus version --- CONFIG | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONFIG b/CONFIG index 209e4660c..db75fa811 100644 --- a/CONFIG +++ b/CONFIG @@ -8,4 +8,4 @@ set DAMASK_NUM_THREADS = 4 set MSC_ROOT = /opt/msc set MARC_VERSION = 2016 -set ABAQUS_VERSION = 6.14-5 +set ABAQUS_VERSION = 2017 From 17c466c3dfc2253b61ea774a3269b6de691739f8 Mon Sep 17 00:00:00 2001 From: Test User Date: Thu, 16 Feb 2017 04:26:29 +0100 Subject: [PATCH 23/95] updated version information after successful test of v2.0.1-386-gf6d0256 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index a83331fc5..eaabb8be2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-384-g71e2c3f +v2.0.1-386-gf6d0256 From b4bfd520908947958d9a23390ccefb6a4745f175 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 16 Feb 2017 09:40:03 +0100 Subject: [PATCH 24/95] transition compatibility --- code/material.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/material.f90 b/code/material.f90 index cd1d21808..ec5537b00 100644 --- a/code/material.f90 +++ b/code/material.f90 @@ -619,7 +619,7 @@ subroutine material_parseHomogenization(fileUnit,myPart) chunkPos = IO_stringPos(line) tag = IO_lc(IO_stringValue(line,chunkPos,1_pInt)) ! extract key select case(tag) - case ('type') + case ('type','mech','mechanical') select case (IO_lc(IO_stringValue(line,chunkPos,2_pInt))) case(HOMOGENIZATION_NONE_label) homogenization_type(section) = HOMOGENIZATION_NONE_ID From fb0439bf44b76986541b58d75942efc0ac082157 Mon Sep 17 00:00:00 2001 From: Test User Date: Fri, 17 Feb 2017 16:28:13 +0100 Subject: [PATCH 25/95] updated version information after successful test of v2.0.1-388-gb4bfd52 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index eaabb8be2..b4296a4dc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-386-gf6d0256 +v2.0.1-388-gb4bfd52 From 2fb97df16cdd72666501a2810ae302b780186e2b Mon Sep 17 00:00:00 2001 From: Philip Eisenlohr Date: Fri, 17 Feb 2017 12:36:01 -0500 Subject: [PATCH 26/95] reduced the frequency of h5py complaints to once every 2h --- lib/damask/__init__.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/damask/__init__.py b/lib/damask/__init__.py index eedfdd0c0..1875ffdae 100644 --- a/lib/damask/__init__.py +++ b/lib/damask/__init__.py @@ -1,7 +1,13 @@ # -*- coding: UTF-8 no BOM -*- """Main aggregator""" -import os,sys +import os,sys,time + +h5py_flag = os.path.join(os.path.dirname(__file__),'../../.noH5py') +h5py_grace = 7200 # only complain once every 7200 sec (2 hours) +h5py_msg = "h5py module not found." + +now = time.time() with open(os.path.join(os.path.dirname(__file__),'../../VERSION')) as f: version = f.readline()[:-1] @@ -9,9 +15,18 @@ with open(os.path.join(os.path.dirname(__file__),'../../VERSION')) as f: from .environment import Environment # noqa from .asciitable import ASCIItable # noqa try: - from .h5table import H5Table # noqa + from .h5table import H5Table # noqa + if os.path.exists(h5py_flag): os.remove(h5py_flag) # delete flagging file on success except ImportError: - sys.stderr.write("h5py module not found") + if os.path.exists(h5py_flag): + if now - os.path.getmtime(h5py_flag) > h5py_grace: # complain (again) every so-and-so often + sys.stderr.write(h5py_msg+'\n') + with open(h5py_flag, 'a'): + os.utime(h5py_flag,(now,now)) # update flag modification time to "now" + else: + open(h5py_flag, 'a').close() # create flagging file + sys.stderr.write(h5py_msg+'\n') # complain for the first time + from .config import Material # noqa from .colormaps import Colormap, Color # noqa from .orientation import Quaternion, Rodrigues, Symmetry, Orientation # noqa From 007495cb71281a23cca29c50315f3f551555ac58 Mon Sep 17 00:00:00 2001 From: Test User Date: Sat, 18 Feb 2017 05:31:32 +0100 Subject: [PATCH 27/95] updated version information after successful test of v2.0.1-390-g2fb97df --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index b4296a4dc..eebf5ac84 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-388-gb4bfd52 +v2.0.1-390-g2fb97df From e5e6bed5de3845c037334f6ffb57344bc57239b9 Mon Sep 17 00:00:00 2001 From: Brendan Vande Kieft Date: Fri, 24 Feb 2017 00:33:47 -0500 Subject: [PATCH 28/95] Improve performance and generalize primitive shape - Behavior is mostly unchanged, but the primitive may be shifted by a voxel when compared to the previous version, which had rounding issues near the edge of the primitive. - exponent flag specifies the exponents that satisfy the equation x^e1 + y^e2 + z^e3 < 1. (1,1,1) gives an octahedron, (2,2,2) a sphere, and large values (1e10, 1e10, 1e10) gives a hexahedral box for any reasonable resolution. Mixing the two can produce a cylinder, (1e10, 2, 2) gives one with rotational symmetry about the x-axis. --- processing/pre/geom_addPrimitive.py | 111 +++++++++++++++++++++------- 1 file changed, 84 insertions(+), 27 deletions(-) diff --git a/processing/pre/geom_addPrimitive.py b/processing/pre/geom_addPrimitive.py index 8d934368f..18a73c4e3 100755 --- a/processing/pre/geom_addPrimitive.py +++ b/processing/pre/geom_addPrimitive.py @@ -33,24 +33,31 @@ Depending on the sign of the dimension parameters, these objects can be boxes, c """, version = scriptID) -parser.add_option('-c', '--center', dest='center', type='int', nargs = 3, metavar=' '.join(['int']*3), +parser.add_option('-c', '--center', dest='center', type='float', nargs = 3, metavar=' '.join(['float']*3), help='a,b,c origin of primitive %default') -parser.add_option('-d', '--dimension', dest='dimension', type='int', nargs = 3, metavar=' '.join(['int']*3), +parser.add_option('-d', '--dimension', dest='dimension', type='float', nargs = 3, metavar=' '.join(['float']*3), help='a,b,c extension of hexahedral box; negative values are diameters') +parser.add_option('-e', '--exponent', dest='exponent', type='float', nargs = 3, metavar=' '.join(['float']*3), + help='i,j,k exponents for axes - 2 gives a sphere (x^2 + y^2 + z^2 < 1), 1 makes \ +octahedron (|x| + |y| + |z| < 1). Large values produce boxes, 0 - 1 is concave. ') parser.add_option('-f', '--fill', dest='fill', type='int', metavar = 'int', help='grain index to fill primitive. "0" selects maximum microstructure index + 1 [%default]') parser.add_option('-q', '--quaternion', dest='quaternion', type='float', nargs = 4, metavar=' '.join(['float']*4), help = 'rotation of primitive as quaternion') parser.add_option('-a', '--angleaxis', dest='angleaxis', nargs = 4, metavar=' '.join(['float']*4), - help = 'rotation of primitive as angle and axis') + help = 'angle,x,y,z clockwise rotation of primitive about axis by angle') parser.add_option( '--degrees', dest='degrees', action='store_true', help = 'angle is given in degrees [%default]') +parser.add_option( '--nonperiodic', dest='periodic', action='store_false', + help = 'wrap around edges [%default]') parser.set_defaults(center = [0,0,0], fill = 0, quaternion = [], angleaxis = [], degrees = False, + exponent = [1e10,1e10,1e10], # box shape by default + periodic = True ) (options, filenames) = parser.parse_args() @@ -58,15 +65,14 @@ parser.set_defaults(center = [0,0,0], if options.angleaxis != []: options.angleaxis = map(float,options.angleaxis) rotation = damask.Quaternion().fromAngleAxis(np.radians(options.angleaxis[0]) if options.degrees else options.angleaxis[0], - options.angleaxis[1:4]).conjugated() + options.angleaxis[1:4]) elif options.quaternion != []: options.quaternion = map(float,options.quaternion) - rotation = damask.Quaternion(options.quaternion).conjugated() + rotation = damask.Quaternion(options.quaternion) else: - rotation = damask.Quaternion().conjugated() + rotation = damask.Quaternion() options.center = np.array(options.center) -invRotation = rotation.conjugated() # rotation of gridpos into primitive coordinate system # --- loop over input files ------------------------------------------------------------------------- if filenames == []: filenames = [None] @@ -108,33 +114,84 @@ for name in filenames: 'microstructures': 0, } - if options.fill == 0: options.fill = microstructure.max()+1 - + + # If we have a negative dimension, make it an ellipsoid for backwards compatibility + options.exponent = np.where(np.array(options.dimension) > 0, options.exponent, 2) + microstructure = microstructure.reshape(info['grid'],order='F') - - if options.dimension is not None: - mask = (np.array(options.dimension) < 0).astype(float) # zero where positive dimension, otherwise one - dim = abs(np.array(options.dimension)) # dimensions of primitive body - pos = np.zeros(3,dtype='float') -# hiresPrimitive = np.zeros((2*dim[0],2*dim[1],2*dim[2],3)) # primitive discretized at twice the grid resolution - for i,pos[0] in enumerate(np.arange(-dim[0]/oversampling,(dim[0]+1)/oversampling,1./oversampling)): - for j,pos[1] in enumerate(np.arange(-dim[1]/oversampling,(dim[1]+1)/oversampling,1./oversampling)): - for k,pos[2] in enumerate(np.arange(-dim[2]/oversampling,(dim[2]+1)/oversampling,1./oversampling)): - gridpos = np.floor(rotation*pos) # rotate and lock into spacial grid - primPos = invRotation*gridpos # rotate back to primitive coordinate system - if np.dot(mask*primPos/dim,mask*primPos/dim) <= 0.25 and \ - np.all(abs((1.-mask)*primPos/dim) <= 0.5): # inside ellipsoid and inside box - microstructure[int((gridpos[0]+options.center[0])%info['grid'][0]), - int((gridpos[1]+options.center[1])%info['grid'][1]), - int((gridpos[2]+options.center[2])%info['grid'][2])] = options.fill # assign microstructure index + + size = microstructure.shape + + if options.periodic: # use padding to achieve periodicity + # change to coordinate space where the primitive is the unit sphere/cube/etc + (Y, X, Z) = np.meshgrid(np.arange(-size[0], 2*size[0], dtype=np.float64), + np.arange(-size[1], 2*size[1], dtype=np.float64), + np.arange(-size[2], 2*size[2], dtype=np.float64)) + # first by translating the center onto 0, 0.5 shifts the voxel origin onto the center of the voxel + X -= options.center[0] - 0.5 + Y -= options.center[1] - 0.5 + Z -= options.center[2] - 0.5 + # and then by applying the quaternion + # this should be rotation.conjugate() * (X,Y,Z), but it is this way for backwards compatibility with the older version of this script + (X, Y, Z) = rotation * (X, Y, Z) + # and finally by scaling (we don't worry about options.dimension being negative, np.abs occurs on the microstructure = np.where... line) + X /= options.dimension[0] * 0.5 + Y /= options.dimension[1] * 0.5 + Z /= options.dimension[2] * 0.5 + + # High exponents can cause underflow & overflow - loss of precision is okay here, we just compare it to 1, so +infinity and 0 are fine + old_settings = np.seterr() + np.seterr(over='ignore', under='ignore') + + inside = np.zeros(size, dtype=bool) + for i in range(3): + for j in range(3): + for k in range(3): + inside = inside | ( # Most of this is handling the padding + np.abs(X[size[0] * i : size[0] * (i+1), + size[1] * j : size[1] * (j+1), + size[2] * k : size[2] * (k+1)])**options.exponent[0] + + np.abs(Y[size[0] * i : size[0] * (i+1), + size[1] * j : size[1] * (j+1), + size[2] * k : size[2] * (k+1)])**options.exponent[1] + + np.abs(Z[size[0] * i : size[0] * (i+1), + size[1] * j : size[1] * (j+1), + size[2] * k : size[2] * (k+1)])**options.exponent[2] < 1) + + microstructure = np.where(inside, options.fill, microstructure) + np.seterr(**old_settings) # Reset warnings to old state + + else: # nonperiodic, much lighter on resources + # change to coordinate space where the primitive is the unit sphere/cube/etc + (Y, X, Z) = np.meshgrid(np.arange(0, size[0], dtype=np.float64), + np.arange(0, size[1], dtype=np.float64), + np.arange(0, size[2], dtype=np.float64)) + # first by translating the center onto 0, 0.5 shifts the voxel origin onto the center of the voxel + X -= options.center[0] - 0.5 + Y -= options.center[1] - 0.5 + Z -= options.center[2] - 0.5 + # and then by applying the quaternion (the implementation of quat. does q*v*q.conj) + # this should be rotation.conjugate() * (X,Y,Z), but it is this way for backwards compatibility with the older version of this script + (X, Y, Z) = rotation * (X, Y, Z) + # and finally by scaling (we don't worry about options.dimension being negative, np.abs occurs on the microstructure = np.where... line) + X /= options.dimension[0] * 0.5 + Y /= options.dimension[1] * 0.5 + Z /= options.dimension[2] * 0.5 + + # High exponents can cause underflow & overflow - loss of precision is okay here, we just compare it to 1, so +infinity and 0 are fine + old_settings = np.seterr() + np.seterr(over='ignore', under='ignore') + microstructure = np.where(np.abs(X)**options.exponent[0] + + np.abs(Y)**options.exponent[1] + + np.abs(Z)**options.exponent[2] < 1, options.fill, microstructure) + np.seterr(**old_settings) # Reset warnings to old state newInfo['microstructures'] = microstructure.max() - # --- report --------------------------------------------------------------------------------------- - if ( newInfo['microstructures'] != info['microstructures']): + if (newInfo['microstructures'] != info['microstructures']): damask.util.croak('--> microstructures: %i'%newInfo['microstructures']) From f010aa97d95bee7c470aad63b03ff8867eefe4bd Mon Sep 17 00:00:00 2001 From: brendanvk Date: Fri, 24 Feb 2017 22:30:04 -0500 Subject: [PATCH 29/95] Fix non-cube geometry structure, reduce memory --- processing/pre/geom_addPrimitive.py | 34 +++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/processing/pre/geom_addPrimitive.py b/processing/pre/geom_addPrimitive.py index 18a73c4e3..b855525da 100755 --- a/processing/pre/geom_addPrimitive.py +++ b/processing/pre/geom_addPrimitive.py @@ -126,9 +126,24 @@ for name in filenames: if options.periodic: # use padding to achieve periodicity # change to coordinate space where the primitive is the unit sphere/cube/etc - (Y, X, Z) = np.meshgrid(np.arange(-size[0], 2*size[0], dtype=np.float64), - np.arange(-size[1], 2*size[1], dtype=np.float64), - np.arange(-size[2], 2*size[2], dtype=np.float64)) + (X, Y, Z) = np.meshgrid(np.arange(-size[0]/2, (3*size[0])/2, dtype=np.float32), # 50% padding on each side + np.arange(-size[1]/2, (3*size[1])/2, dtype=np.float32), + np.arange(-size[2]/2, (3*size[2])/2, dtype=np.float32), + indexing='ij') + # Padding handling + X = np.roll(np.roll(np.roll(X, + -size[0]/2, axis=0), + -size[1]/2, axis=1), + -size[2]/2, axis=2) + Y = np.roll(np.roll(np.roll(Y, + -size[0]/2, axis=0), + -size[1]/2, axis=1), + -size[2]/2, axis=2) + Z = np.roll(np.roll(np.roll(Z, + -size[0]/2, axis=0), + -size[1]/2, axis=1), + -size[2]/2, axis=2) + # first by translating the center onto 0, 0.5 shifts the voxel origin onto the center of the voxel X -= options.center[0] - 0.5 Y -= options.center[1] - 0.5 @@ -146,9 +161,9 @@ for name in filenames: np.seterr(over='ignore', under='ignore') inside = np.zeros(size, dtype=bool) - for i in range(3): - for j in range(3): - for k in range(3): + for i in range(2): + for j in range(2): + for k in range(2): inside = inside | ( # Most of this is handling the padding np.abs(X[size[0] * i : size[0] * (i+1), size[1] * j : size[1] * (j+1), @@ -165,9 +180,10 @@ for name in filenames: else: # nonperiodic, much lighter on resources # change to coordinate space where the primitive is the unit sphere/cube/etc - (Y, X, Z) = np.meshgrid(np.arange(0, size[0], dtype=np.float64), - np.arange(0, size[1], dtype=np.float64), - np.arange(0, size[2], dtype=np.float64)) + (X, Y, Z) = np.meshgrid(np.arange(0, size[0], dtype=np.float32), + np.arange(0, size[1], dtype=np.float32), + np.arange(0, size[2], dtype=np.float32), + indexing='ij') # first by translating the center onto 0, 0.5 shifts the voxel origin onto the center of the voxel X -= options.center[0] - 0.5 Y -= options.center[1] - 0.5 From 846e6928738c88f02e8f48fe79ecb4bd322bdf30 Mon Sep 17 00:00:00 2001 From: Philip Eisenlohr Date: Sat, 25 Feb 2017 15:42:11 -0500 Subject: [PATCH 30/95] slightly more specific why elastic diagonal == 0 --- code/lattice.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/lattice.f90 b/code/lattice.f90 index 332647d9e..91a97c231 100644 --- a/code/lattice.f90 +++ b/code/lattice.f90 @@ -1716,7 +1716,7 @@ subroutine lattice_initializeStructure(myPhase,CoverA,CoverA_trans,a_fcc,a_bcc) lattice_trans_C66(1:6,1:6,myPhase) = math_Mandel3333to66(lattice_trans_C3333(1:3,1:3,1:3,1:3,myPhase)) do i = 1_pInt, 6_pInt if (abs(lattice_trans_C66(i,i,myPhase))bcc transformation') enddo case (LATTICE_hex_ID) c11bar = (lattice_C66(1,1,myPhase) + lattice_C66(1,2,myPhase) + 2.0_pReal*lattice_C66(4,4,myPhase))/2.0_pReal @@ -1749,7 +1749,7 @@ subroutine lattice_initializeStructure(myPhase,CoverA,CoverA_trans,a_fcc,a_bcc) lattice_trans_C66(1:6,1:6,myPhase) = math_Mandel3333to66(lattice_trans_C3333(1:3,1:3,1:3,1:3,myPhase)) do i = 1_pInt, 6_pInt if (abs(lattice_trans_C66(i,i,myPhase))hex transformation') enddo end select end select From b47b67b6d055aefec01d0c2062719b7d3374c55e Mon Sep 17 00:00:00 2001 From: Test User Date: Sun, 26 Feb 2017 16:25:39 +0100 Subject: [PATCH 31/95] updated version information after successful test of v2.0.1-393-gf010aa9 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index eebf5ac84..3f6b37f8f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-390-g2fb97df +v2.0.1-393-gf010aa9 From de57d9514e758470492a4504fdbaa02afb955ce9 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sun, 5 Mar 2017 17:50:17 +0100 Subject: [PATCH 32/95] removed code doubling and unused variables --- processing/pre/geom_addPrimitive.py | 71 ++++++++++++----------------- 1 file changed, 28 insertions(+), 43 deletions(-) diff --git a/processing/pre/geom_addPrimitive.py b/processing/pre/geom_addPrimitive.py index b855525da..349708b3b 100755 --- a/processing/pre/geom_addPrimitive.py +++ b/processing/pre/geom_addPrimitive.py @@ -9,8 +9,6 @@ import damask scriptName = os.path.splitext(os.path.basename(__file__))[0] scriptID = ' '.join([scriptName,damask.version]) -oversampling = 2. - #-------------------------------------------------------------------------------------------------- # MAIN #-------------------------------------------------------------------------------------------------- @@ -123,9 +121,9 @@ for name in filenames: microstructure = microstructure.reshape(info['grid'],order='F') size = microstructure.shape - + + # change to coordinate space where the primitive is the unit sphere/cube/etc if options.periodic: # use padding to achieve periodicity - # change to coordinate space where the primitive is the unit sphere/cube/etc (X, Y, Z) = np.meshgrid(np.arange(-size[0]/2, (3*size[0])/2, dtype=np.float32), # 50% padding on each side np.arange(-size[1]/2, (3*size[1])/2, dtype=np.float32), np.arange(-size[2]/2, (3*size[2])/2, dtype=np.float32), @@ -143,23 +141,31 @@ for name in filenames: -size[0]/2, axis=0), -size[1]/2, axis=1), -size[2]/2, axis=2) + else: # nonperiodic, much lighter on resources + # change to coordinate space where the primitive is the unit sphere/cube/etc + (X, Y, Z) = np.meshgrid(np.arange(0, size[0], dtype=np.float32), + np.arange(0, size[1], dtype=np.float32), + np.arange(0, size[2], dtype=np.float32), + indexing='ij') - # first by translating the center onto 0, 0.5 shifts the voxel origin onto the center of the voxel - X -= options.center[0] - 0.5 - Y -= options.center[1] - 0.5 - Z -= options.center[2] - 0.5 - # and then by applying the quaternion - # this should be rotation.conjugate() * (X,Y,Z), but it is this way for backwards compatibility with the older version of this script - (X, Y, Z) = rotation * (X, Y, Z) - # and finally by scaling (we don't worry about options.dimension being negative, np.abs occurs on the microstructure = np.where... line) - X /= options.dimension[0] * 0.5 - Y /= options.dimension[1] * 0.5 - Z /= options.dimension[2] * 0.5 - - # High exponents can cause underflow & overflow - loss of precision is okay here, we just compare it to 1, so +infinity and 0 are fine - old_settings = np.seterr() - np.seterr(over='ignore', under='ignore') + # first by translating the center onto 0, 0.5 shifts the voxel origin onto the center of the voxel + X -= options.center[0] - 0.5 + Y -= options.center[1] - 0.5 + Z -= options.center[2] - 0.5 + # and then by applying the quaternion + # this should be rotation.conjugate() * (X,Y,Z), but it is this way for backwards compatibility with the older version of this script + (X, Y, Z) = rotation * (X, Y, Z) + # and finally by scaling (we don't worry about options.dimension being negative, np.abs occurs on the microstructure = np.where... line) + X /= options.dimension[0] * 0.5 + Y /= options.dimension[1] * 0.5 + Z /= options.dimension[2] * 0.5 + + # High exponents can cause underflow & overflow - loss of precision is okay here, we just compare it to 1, so +infinity and 0 are fine + old_settings = np.seterr() + np.seterr(over='ignore', under='ignore') + + if options.periodic: # use padding to achieve periodicity inside = np.zeros(size, dtype=bool) for i in range(2): for j in range(2): @@ -175,35 +181,14 @@ for name in filenames: size[1] * j : size[1] * (j+1), size[2] * k : size[2] * (k+1)])**options.exponent[2] < 1) - microstructure = np.where(inside, options.fill, microstructure) - np.seterr(**old_settings) # Reset warnings to old state - + microstructure = np.where(inside, options.fill, microstructure) + else: # nonperiodic, much lighter on resources - # change to coordinate space where the primitive is the unit sphere/cube/etc - (X, Y, Z) = np.meshgrid(np.arange(0, size[0], dtype=np.float32), - np.arange(0, size[1], dtype=np.float32), - np.arange(0, size[2], dtype=np.float32), - indexing='ij') - # first by translating the center onto 0, 0.5 shifts the voxel origin onto the center of the voxel - X -= options.center[0] - 0.5 - Y -= options.center[1] - 0.5 - Z -= options.center[2] - 0.5 - # and then by applying the quaternion (the implementation of quat. does q*v*q.conj) - # this should be rotation.conjugate() * (X,Y,Z), but it is this way for backwards compatibility with the older version of this script - (X, Y, Z) = rotation * (X, Y, Z) - # and finally by scaling (we don't worry about options.dimension being negative, np.abs occurs on the microstructure = np.where... line) - X /= options.dimension[0] * 0.5 - Y /= options.dimension[1] * 0.5 - Z /= options.dimension[2] * 0.5 - - # High exponents can cause underflow & overflow - loss of precision is okay here, we just compare it to 1, so +infinity and 0 are fine - old_settings = np.seterr() - np.seterr(over='ignore', under='ignore') microstructure = np.where(np.abs(X)**options.exponent[0] + np.abs(Y)**options.exponent[1] + np.abs(Z)**options.exponent[2] < 1, options.fill, microstructure) - np.seterr(**old_settings) # Reset warnings to old state + np.seterr(**old_settings) # Reset warnings to old state newInfo['microstructures'] = microstructure.max() # --- report --------------------------------------------------------------------------------------- From 790bae44a1dc00fa61a23f1d29d5ab1dd35e76cf Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sun, 5 Mar 2017 19:04:06 +0100 Subject: [PATCH 33/95] don't catch errors (but output detailed error message) --- .gitignore | 1 + lib/damask/test/test.py | 39 ++++++++++++++++++++++----------------- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index d195179bb..1e991f164 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.noH5py *.pyc *.mod *.o diff --git a/lib/damask/test/test.py b/lib/damask/test/test.py index 5445ee443..94a8d3ef1 100644 --- a/lib/damask/test/test.py +++ b/lib/damask/test/test.py @@ -203,58 +203,63 @@ class Test(): shutil.copy2(source,target) except: logging.critical('error copying {} to {}'.format(source,target)) + raise def copy_Reference2Current(self,sourcefiles=[],targetfiles=[]): if len(targetfiles) == 0: targetfiles = sourcefiles - for i,file in enumerate(sourcefiles): + for i,f in enumerate(sourcefiles): try: - shutil.copy2(self.fileInReference(file),self.fileInCurrent(targetfiles[i])) + shutil.copy2(self.fileInReference(f),self.fileInCurrent(targetfiles[i])) except: - logging.critical('Reference2Current: Unable to copy file "{}"'.format(file)) + logging.critical('Reference2Current: Unable to copy file "{}"'.format(f)) + raise def copy_Base2Current(self,sourceDir,sourcefiles=[],targetfiles=[]): source=os.path.normpath(os.path.join(self.dirBase,'../../..',sourceDir)) if len(targetfiles) == 0: targetfiles = sourcefiles - for i,file in enumerate(sourcefiles): + for i,f in enumerate(sourcefiles): try: - shutil.copy2(os.path.join(source,file),self.fileInCurrent(targetfiles[i])) + shutil.copy2(os.path.join(source,f),self.fileInCurrent(targetfiles[i])) except: - logging.error(os.path.join(source,file)) - logging.critical('Base2Current: Unable to copy file "{}"'.format(file)) + logging.error(os.path.join(source,f)) + logging.critical('Base2Current: Unable to copy file "{}"'.format(f)) + raise def copy_Current2Reference(self,sourcefiles=[],targetfiles=[]): if len(targetfiles) == 0: targetfiles = sourcefiles - for i,file in enumerate(sourcefiles): + for i,f in enumerate(sourcefiles): try: - shutil.copy2(self.fileInCurrent(file),self.fileInReference(targetfiles[i])) + shutil.copy2(self.fileInCurrent(f),self.fileInReference(targetfiles[i])) except: - logging.critical('Current2Reference: Unable to copy file "{}"'.format(file)) + logging.critical('Current2Reference: Unable to copy file "{}"'.format(f)) + raise def copy_Proof2Current(self,sourcefiles=[],targetfiles=[]): if len(targetfiles) == 0: targetfiles = sourcefiles - for i,file in enumerate(sourcefiles): + for i,f in enumerate(sourcefiles): try: - shutil.copy2(self.fileInProof(file),self.fileInCurrent(targetfiles[i])) + shutil.copy2(self.fileInProof(f),self.fileInCurrent(targetfiles[i])) except: - logging.critical('Proof2Current: Unable to copy file "{}"'.format(file)) + logging.critical('Proof2Current: Unable to copy file "{}"'.format(f)) + raise def copy_Current2Current(self,sourcefiles=[],targetfiles=[]): - for i,file in enumerate(sourcefiles): + for i,f in enumerate(sourcefiles): try: - shutil.copy2(self.fileInReference(file),self.fileInCurrent(targetfiles[i])) + shutil.copy2(self.fileInReference(f),self.fileInCurrent(targetfiles[i])) except: - logging.critical('Current2Current: Unable to copy file "{}"'.format(file)) - + logging.critical('Current2Current: Unable to copy file "{}"'.format(f)) + raise def execute_inCurrentDir(self,cmd,streamIn=None): From 64a6476c1a6102d2f52fae8b95a4e283dd0cb35c Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sun, 5 Mar 2017 22:47:28 +0100 Subject: [PATCH 34/95] Abaqus is complaining --- installation/mods_Abaqus/abaqus_v6.env | 2 +- installation/mods_Abaqus/abaqus_v6_serial.env | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/installation/mods_Abaqus/abaqus_v6.env b/installation/mods_Abaqus/abaqus_v6.env index fd9f2ed51..d30554d41 100644 --- a/installation/mods_Abaqus/abaqus_v6.env +++ b/installation/mods_Abaqus/abaqus_v6.env @@ -58,4 +58,4 @@ ask_delete=OFF # Remove the temporary names from the namespace del fortCmd - +del DAMASKVERSION diff --git a/installation/mods_Abaqus/abaqus_v6_serial.env b/installation/mods_Abaqus/abaqus_v6_serial.env index f1a6b2208..8cf9778f2 100644 --- a/installation/mods_Abaqus/abaqus_v6_serial.env +++ b/installation/mods_Abaqus/abaqus_v6_serial.env @@ -58,4 +58,4 @@ ask_delete=OFF # Remove the temporary names from the namespace del fortCmd - +del DAMASKVERSION From 93c5f9adc7c5354b022d9382fb0efc0b6b26feea Mon Sep 17 00:00:00 2001 From: Test User Date: Mon, 6 Mar 2017 04:40:08 +0100 Subject: [PATCH 35/95] updated version information after successful test of v2.0.1-400-g64a6476 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 3f6b37f8f..cf8e44488 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-393-gf010aa9 +v2.0.1-400-g64a6476 From 0d648b8de04c727f7790b0aeb4c6bb1fbf7e8bf3 Mon Sep 17 00:00:00 2001 From: brendanvk Date: Tue, 7 Mar 2017 20:37:30 -0500 Subject: [PATCH 36/95] Change script to use resolution-independent coords - Use the --voxelspace flag to get the old behavior --- processing/pre/geom_addPrimitive.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/processing/pre/geom_addPrimitive.py b/processing/pre/geom_addPrimitive.py index 349708b3b..51dc1db3c 100755 --- a/processing/pre/geom_addPrimitive.py +++ b/processing/pre/geom_addPrimitive.py @@ -48,14 +48,17 @@ parser.add_option( '--degrees', dest='degrees', action='store_true', help = 'angle is given in degrees [%default]') parser.add_option( '--nonperiodic', dest='periodic', action='store_false', help = 'wrap around edges [%default]') - +parser.add_option( '--voxelspace', dest='voxelspace', action='store_true', + help = '-c and -d are given in (0 to grid) coordinates instead of (origin to origin+size) \ +coordinates [%default]') parser.set_defaults(center = [0,0,0], fill = 0, quaternion = [], angleaxis = [], degrees = False, exponent = [1e10,1e10,1e10], # box shape by default - periodic = True + periodic = True, + voxelspace = False ) (options, filenames) = parser.parse_args() @@ -71,6 +74,7 @@ else: rotation = damask.Quaternion() options.center = np.array(options.center) +options.dimension = np.array(options.dimension) # --- loop over input files ------------------------------------------------------------------------- if filenames == []: filenames = [None] @@ -117,9 +121,14 @@ for name in filenames: # If we have a negative dimension, make it an ellipsoid for backwards compatibility options.exponent = np.where(np.array(options.dimension) > 0, options.exponent, 2) - microstructure = microstructure.reshape(info['grid'],order='F') + # coordinates given in real space (default) vs voxel space + if not options.voxelspace: + options.center += info['origin'] + options.center *= np.array(info['grid']) / np.array(info['size']) + options.dimension *= np.array(info['grid']) / np.array(info['size']) + size = microstructure.shape # change to coordinate space where the primitive is the unit sphere/cube/etc From d6b971734180bdb47f2f7867b1c56621085574b1 Mon Sep 17 00:00:00 2001 From: Test User Date: Wed, 8 Mar 2017 16:26:27 +0100 Subject: [PATCH 37/95] updated version information after successful test of v2.0.1-402-g0d648b8 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index cf8e44488..4e401e051 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-400-g64a6476 +v2.0.1-402-g0d648b8 From 709c8c287bd93d86931598a46b96714b0a5aeafd Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 18 Mar 2017 12:10:10 +0100 Subject: [PATCH 38/95] updated year --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 5a76343a0..97d799216 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright 2011-16 Max-Planck-Institut für Eisenforschung GmbH +Copyright 2011-17 Max-Planck-Institut für Eisenforschung GmbH This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by From f2ea0ccf58550436a52e53fc4d783ec2ce29a5aa Mon Sep 17 00:00:00 2001 From: Test User Date: Sun, 19 Mar 2017 16:28:12 +0100 Subject: [PATCH 39/95] updated version information after successful test of v2.0.1-404-g709c8c2 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 4e401e051..80563714f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-402-g0d648b8 +v2.0.1-404-g709c8c2 From 66b4e24ab75ea341e22510aecf0d496856088cd5 Mon Sep 17 00:00:00 2001 From: Philip Eisenlohr Date: Mon, 20 Mar 2017 15:13:54 -0400 Subject: [PATCH 40/95] solver.Marc.version has no argument anymore --- processing/post/postResults.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/processing/post/postResults.py b/processing/post/postResults.py index a3501bc81..23550e980 100755 --- a/processing/post/postResults.py +++ b/processing/post/postResults.py @@ -851,7 +851,7 @@ for opt in ['nodalScalar','elemScalar','elemTensor','homogenizationResult','crys if options.info: if options.filetype == 'marc': - print('\n\nMentat release {}'.format(damask.solver.Marc().version('../../'))) + print('\n\nMentat release {}'.format(damask.solver.Marc().version())) if options.filetype == 'spectral': print('\n\n{}'.format(p)) From bdbaaa3ecf39c94a5ad76734a919f1db9a90b006 Mon Sep 17 00:00:00 2001 From: Test User Date: Tue, 21 Mar 2017 04:25:17 +0100 Subject: [PATCH 41/95] updated version information after successful test of v2.0.1-407-g8880986 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 80563714f..bf90fbdae 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-404-g709c8c2 +v2.0.1-407-g8880986 From 9493807c1d385fe061b5a13a8373f96067e12cd6 Mon Sep 17 00:00:00 2001 From: Franz Roters Date: Fri, 24 Mar 2017 10:54:34 +0100 Subject: [PATCH 42/95] adapted to new license server --- lib/damask/environment.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/damask/environment.py b/lib/damask/environment.py index a37f9dc5c..6ec0bff79 100644 --- a/lib/damask/environment.py +++ b/lib/damask/environment.py @@ -33,7 +33,7 @@ class Environment(): 'explicit':5} if Nneeded == -1: Nneeded = licensesNeeded[software] try: - cmd = """ ssh mulicense2 "/Stat_Flexlm | grep 'Users of %s: ' | cut -d' ' -f7,13" """%software + cmd = """ ssh mulicense2 "/lm-status | grep 'Users of %s: ' | cut -d' ' -f7,13" """%software process = subprocess.Popen(shlex.split(cmd),stdout = subprocess.PIPE,stderr = subprocess.PIPE) licenses = list(map(int, process.stdout.readline().split())) try: From 855c76646807f17674af9d4dca30e7fe1420d463 Mon Sep 17 00:00:00 2001 From: Test User Date: Fri, 24 Mar 2017 16:25:47 +0100 Subject: [PATCH 43/95] updated version information after successful test of v2.0.1-409-g9493807 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index bf90fbdae..1028e7cfe 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-407-g8880986 +v2.0.1-409-g9493807 From 0e0e6addda83fc0244ec7cedae02b5298d268cdb Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sun, 2 Apr 2017 23:17:22 +0200 Subject: [PATCH 44/95] reference for qRand --- code/math.f90 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/math.f90 b/code/math.f90 index 315da2642..e62fe60c3 100644 --- a/code/math.f90 +++ b/code/math.f90 @@ -1181,6 +1181,9 @@ end function math_Voigt66to3333 !-------------------------------------------------------------------------------------------------- !> @brief random quaternion +! http://math.stackexchange.com/questions/131336/uniform-random-quaternion-in-a-restricted-angle-range +! K. Shoemake. Uniform random rotations. In D. Kirk, editor, Graphics Gems III, pages 124-132. +! Academic, New York, 1992. !-------------------------------------------------------------------------------------------------- function math_qRand() From f152e81fcd184d36293caa13efab19d9e10ffca6 Mon Sep 17 00:00:00 2001 From: Test User Date: Mon, 3 Apr 2017 04:25:09 +0200 Subject: [PATCH 45/95] updated version information after successful test of v2.0.1-411-g0e0e6ad --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 1028e7cfe..0903cb219 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-409-g9493807 +v2.0.1-411-g0e0e6ad From 23ecffa2e57d89d5a91429000097ba90e492605c Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Mon, 10 Apr 2017 18:04:26 +0200 Subject: [PATCH 46/95] path sep does not change --- code/spectral_interface.f90 | 52 ++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/code/spectral_interface.f90 b/code/spectral_interface.f90 index fdef1a9fb..6425480af 100644 --- a/code/spectral_interface.f90 +++ b/code/spectral_interface.f90 @@ -20,7 +20,6 @@ module DAMASK_interface geometryFile = '', & !< parameter given for geometry file loadCaseFile = '' !< parameter given for load case file character(len=1024), private :: workingDirectory !< accessed by getSolverWorkingDirectoryName for compatibility reasons - character, private,parameter :: pathSep = '/' public :: & getSolverWorkingDirectoryName, & @@ -168,7 +167,7 @@ subroutine DAMASK_interface_init() write(6,'(a)') ' Help:' write(6,'(/,a)')' --help' write(6,'(a,/)')' Prints this message and exits' - call quit(0_pInt) ! normal Termination + call quit(0_pInt) ! normal Termination case ('-l', '--load', '--loadcase') loadcaseArg = IIO_stringValue(commandLine,chunkPos,i+1_pInt) case ('-g', '--geom', '--geometry') @@ -194,7 +193,6 @@ subroutine DAMASK_interface_init() error = getHostName(hostName) write(6,'(a,a)') ' Host name: ', trim(hostName) write(6,'(a,a)') ' User name: ', trim(userName) - write(6,'(a,a)') ' Path separator: ', pathSep write(6,'(a,a)') ' Command line call: ', trim(commandLine) if (len(trim(workingDirArg))>0) & write(6,'(a,a)') ' Working dir argument: ', trim(workingDirArg) @@ -229,22 +227,22 @@ character(len=1024) function storeWorkingDirectory(workingDirectoryArg,geometryA external :: quit wdGiven: if (len(workingDirectoryArg)>0) then - absolutePath: if (workingDirectoryArg(1:1) == pathSep) then + absolutePath: if (workingDirectoryArg(1:1) == '/') then storeWorkingDirectory = workingDirectoryArg else absolutePath error = getCWD(cwd) if (error) call quit(1_pInt) - storeWorkingDirectory = trim(cwd)//pathSep//workingDirectoryArg + storeWorkingDirectory = trim(cwd)//'/'//workingDirectoryArg endif absolutePath - if (storeWorkingDirectory(len(trim(storeWorkingDirectory)):len(trim(storeWorkingDirectory))) /= pathSep) & - storeWorkingDirectory = trim(storeWorkingDirectory)//pathSep ! if path seperator is not given, append it + if (storeWorkingDirectory(len(trim(storeWorkingDirectory)):len(trim(storeWorkingDirectory))) /= '/') & + storeWorkingDirectory = trim(storeWorkingDirectory)//'/' ! if path seperator is not given, append it else wdGiven - if (geometryArg(1:1) == pathSep) then ! absolute path given as command line argument - storeWorkingDirectory = geometryArg(1:scan(geometryArg,pathSep,back=.true.)) + if (geometryArg(1:1) == '/') then ! absolute path given as command line argument + storeWorkingDirectory = geometryArg(1:scan(geometryArg,'/',back=.true.)) else error = getCWD(cwd) ! relative path given as command line argument if (error) call quit(1_pInt) - storeWorkingDirectory = trim(cwd)//pathSep//geometryArg(1:scan(geometryArg,pathSep,back=.true.)) + storeWorkingDirectory = trim(cwd)//'/'//geometryArg(1:scan(geometryArg,'/',back=.true.)) endif endif wdGiven @@ -281,13 +279,13 @@ character(len=1024) function getSolverJobName() tempString = geometryFile posExt = scan(tempString,'.',back=.true.) - posSep = scan(tempString,pathSep,back=.true.) + posSep = scan(tempString,'/',back=.true.) getSolverJobName = tempString(posSep+1:posExt-1) tempString = loadCaseFile posExt = scan(tempString,'.',back=.true.) - posSep = scan(tempString,pathSep,back=.true.) + posSep = scan(tempString,'/',back=.true.) getSolverJobName = trim(getSolverJobName)//'_'//tempString(posSep+1:posExt-1) @@ -312,13 +310,13 @@ character(len=1024) function getGeometryFile(geometryParameter) getGeometryFile = geometryParameter posExt = scan(getGeometryFile,'.',back=.true.) - posSep = scan(getGeometryFile,pathSep,back=.true.) + posSep = scan(getGeometryFile,'/',back=.true.) if (posExt <= posSep) getGeometryFile = trim(getGeometryFile)//('.geom') ! no extension present - if (scan(getGeometryFile,pathSep) /= 1) then ! relative path given as command line argument + if (scan(getGeometryFile,'/') /= 1) then ! relative path given as command line argument error = getcwd(cwd) if (error) call quit(1_pInt) - getGeometryFile = rectifyPath(trim(cwd)//pathSep//getGeometryFile) + getGeometryFile = rectifyPath(trim(cwd)//'/'//getGeometryFile) else getGeometryFile = rectifyPath(getGeometryFile) endif @@ -346,13 +344,13 @@ character(len=1024) function getLoadCaseFile(loadCaseParameter) getLoadCaseFile = loadcaseParameter posExt = scan(getLoadCaseFile,'.',back=.true.) - posSep = scan(getLoadCaseFile,pathSep,back=.true.) + posSep = scan(getLoadCaseFile,'/',back=.true.) if (posExt <= posSep) getLoadCaseFile = trim(getLoadCaseFile)//('.load') ! no extension present - if (scan(getLoadCaseFile,pathSep) /= 1) then ! relative path given as command line argument + if (scan(getLoadCaseFile,'/') /= 1) then ! relative path given as command line argument error = getcwd(cwd) if (error) call quit(1_pInt) - getLoadCaseFile = rectifyPath(trim(cwd)//pathSep//getLoadCaseFile) + getLoadCaseFile = rectifyPath(trim(cwd)//'/'//getLoadCaseFile) else getLoadCaseFile = rectifyPath(getLoadCaseFile) endif @@ -377,26 +375,26 @@ function rectifyPath(path) l = len_trim(path) rectifyPath = path do i = l,3,-1 - if (rectifyPath(i-2:i) == pathSep//'.'//pathSep) & + if (rectifyPath(i-2:i) == '/'//'.'//'/') & rectifyPath(i-1:l) = rectifyPath(i+1:l)//' ' enddo !-------------------------------------------------------------------------------------------------- ! remove ../ and corresponding directory from rectifyPath l = len_trim(rectifyPath) - i = index(rectifyPath(i:l),'..'//pathSep) + i = index(rectifyPath(i:l),'..'//'/') j = 0 do while (i > j) - j = scan(rectifyPath(1:i-2),pathSep,back=.true.) + j = scan(rectifyPath(1:i-2),'/',back=.true.) rectifyPath(j+1:l) = rectifyPath(i+3:l)//repeat(' ',2+i-j) - if (rectifyPath(j+1:j+1) == pathSep) then !search for '//' that appear in case of XXX/../../XXX + if (rectifyPath(j+1:j+1) == '/') then !search for '//' that appear in case of XXX/../../XXX k = len_trim(rectifyPath) rectifyPath(j+1:k-1) = rectifyPath(j+2:k) rectifyPath(k:k) = ' ' endif - i = j+index(rectifyPath(j+1:l),'..'//pathSep) + i = j+index(rectifyPath(j+1:l),'..'//'/') enddo - if(len_trim(rectifyPath) == 0) rectifyPath = pathSep + if(len_trim(rectifyPath) == 0) rectifyPath = '/' end function rectifyPath @@ -415,12 +413,12 @@ character(len=1024) function makeRelativePath(a,b) do i = 1, min(1024,len_trim(a),len_trim(b)) if (a(i:i) /= b(i:i)) exit - if (a(i:i) == pathSep) posLastCommonSlash = i + if (a(i:i) == '/') posLastCommonSlash = i enddo do i = posLastCommonSlash+1,len_trim(a) - if (a(i:i) == pathSep) remainingSlashes = remainingSlashes + 1 + if (a(i:i) == '/') remainingSlashes = remainingSlashes + 1 enddo - makeRelativePath = repeat('..'//pathSep,remainingSlashes)//b(posLastCommonSlash+1:len_trim(b)) + makeRelativePath = repeat('..'//'/',remainingSlashes)//b(posLastCommonSlash+1:len_trim(b)) end function makeRelativePath From 81d0752c43537c842121fc9a8182450ce85a40be Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Mon, 10 Apr 2017 18:27:07 +0200 Subject: [PATCH 47/95] check for correct PETSc version --- code/spectral_interface.f90 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/spectral_interface.f90 b/code/spectral_interface.f90 index 6425480af..f37f083d6 100644 --- a/code/spectral_interface.f90 +++ b/code/spectral_interface.f90 @@ -95,7 +95,11 @@ subroutine DAMASK_interface_init() call quit(1_pInt) endif if (error_unit /= 0) then - write(output_unit,'(a)') ' STERR != 0' + write(output_unit,'(a)') ' STDERR != 0' + call quit(1_pInt) + endif + if (PETSC_VERSION_MAJOR /= 3 .or. PETSC_VERSION_MINOR /= 7) then + write(6,'(a,2(i1.1,a))') 'PETSc ',PETSC_VERSION_MAJOR,'.',PETSC_VERSION_MINOR,'.x not supported' call quit(1_pInt) endif else mainProcess From c6ae296eb26a03b774fce4cefec6f2d0d2a325c9 Mon Sep 17 00:00:00 2001 From: Test User Date: Tue, 11 Apr 2017 04:39:11 +0200 Subject: [PATCH 48/95] updated version information after successful test of v2.0.1-414-g81d0752 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 0903cb219..1d89fa753 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-411-g0e0e6ad +v2.0.1-414-g81d0752 From 086fffc1b4c3e1bbe3fc45a5d85a0e61aa7cf241 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 12 Apr 2017 13:16:27 +0200 Subject: [PATCH 49/95] using gitlab CI --- .gitlab-ci.yml | 336 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 336 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..17df28dbc --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,336 @@ +stages: + - prepareAll + - preprocessing + - postprocessing + - compileSpectralIntel + - compileSpectralGNU + - prepareSpectral + - spectral + - compileMarc2014 + - compileMarc2014.2 + - compileMarc2015 + - compileMarc2016 + - marc + - compileAbaqus2016 + - compileAbaqus2017 + - example + - updateMaster + - createDocumentation + +################################################################################################### +before_script: + - eval 'source $DAMASKROOT/DAMASK_env.sh' + - module purge + - cd $DAMASKROOT/PRIVATE/testing + +################################################################################################### +variables: + #================================================================================================ + # GitLab Settings + #================================================================================================ + GIT_SUBMODULE_STRATEGY: none + + #================================================================================================ + # Shortcut names + #================================================================================================ + DAMASKROOT: "$HOME/GitlabCI_Pipeline_$CI_PIPELINE_ID/DAMASK" + + #================================================================================================ + # Names of module files to load + #================================================================================================ + # ++++++++++++ Compiler ++++++++++++++++++++++++++++++++++++++++++++++ + IntelCompiler16_0: "Compiler/Intel/16.0 Libraries/IMKL/2016" + IntelCompiler17_0: "Compiler/Intel/17.0 Libraries/IMKL/2017" + GNUCompiler5_3: "Compiler/GNU/5.3" + # ------------ Defaults ---------------------------------------------- + IntelCompiler: "$IntelCompiler17_0" + GNUCompiler: "$GNUCompiler5_3" + # ++++++++++++ MPI +++++++++++++++++++++++++++++++++++++++++++++++++++ + MPICH3_2Intel17_0: "MPI/Intel/17.0/MPICH/3.2" + MPICH3_2GNU5_3: "MPI/GNU/5.3/MPICH/3.2" + # ------------ Defaults ---------------------------------------------- + MPICH_GNU: "$MPICH3_2GNU5_3" + MPICH_Intel: "$MPICH3_2Intel17_0" + # ++++++++++++ PETSc +++++++++++++++++++++++++++++++++++++++++++++++++ + PETSc3_6_4MPICH3_2Intel17_0: "Libraries/PETSc/3.6.4/Intel-17.0-MPICH-3.2" + PETSc3_7_5MPICH3_2Intel17_0: "Libraries/PETSc/3.7.5/Intel-17.0-MPICH-3.2" + PETSc3_7_5MPICH3_2GNU5_3: "Libraries/PETSc/3.7.5/GNU-5.3-MPICH-3.2" + # ------------ Defaults ---------------------------------------------- + PETSc_MPICH_Intel: "$PETSc3_7_5MPICH3_2Intel17_0" + PETSc_MPICH_GNU: "$PETSc3_7_5MPICH3_2GNU5_3" + # ++++++++++++ FEM +++++++++++++++++++++++++++++++++++++++++++++++++++ + Abaqus2016: "FEM/Abaqus/2016" + Abaqus2017: "FEM/Abaqus/2017" + MSC2014: "FEM/MSC/2014" + MSC2014_2: "FEM/MSC/2014.2" + MSC2015: "FEM/MSC/2015" + MSC2016: "FEM/MSC/2016" + # ------------ Defaults ---------------------------------------------- + Abaqus: "$Abaqus2017" + MSC: "$MSC2016" + # ++++++++++++ Documentation +++++++++++++++++++++++++++++++++++++++++ + Doxygen1_8_13: "Documentation/Doxygen/1.8.13" + # ------------ Defaults ---------------------------------------------- + Doxygen: "$Doxygen1_8_13" + + +################################################################################################### +checkout: + stage: prepareAll + before_script: + - echo 'Do nothing' + script: + - mkdir /tmp/GitlabCI_Pipeline_$CI_PIPELINE_ID + - git clone -b GitLabRunner git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT + - git clone git@magit1.mpie.de:damask/PRIVATE.git $DAMASKROOT/PRIVATE + - eval 'source $DAMASKROOT/DAMASK_env.sh' + - make -C $DAMASKROOT install + +################################################################################################### +OrientationRelationship: + stage: preprocessing + script: OrientationRelationship/test.py + +Pre_SeedGeneration: + stage: preprocessing + script: PreProcessing_SeedGeneration/test.py + +Pre_GeomGeneration: + stage: preprocessing + script: PreProcessing_GeomGeneration/test.py + +Pre_GeomModification: + stage: preprocessing + script: PreProcessing_GeomModification/test.py + +Pre_General: + stage: preprocessing + script: PreProcessing/test.py + +Spectral_geometryPacking: + stage: preprocessing + script: Spectral_geometryPacking/test.py + +################################################################################################### +Post_General: + stage: postprocessing + script: PostProcessing/test.py + +Post_GeometryReconstruction: + stage: postprocessing + script: Spectral_geometryReconstruction/test.py + +Post_addCurl: + stage: postprocessing + script: addCurl/test.py + +Post_addDivergence: + stage: postprocessing + script: addDivergence/test.py + +Post_addGradient: + stage: postprocessing + script: addGradient/test.py + +Post_ParaviewRelated: + stage: postprocessing + script: ParaviewRelated/test.py + +################################################################################################### +Compile_Intel: + stage: compileSpectralIntel + script: + - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel + - SpectralAll_compileIfort/test.py + +################################################################################################### +Compile_GNU: + stage: compileSpectralGNU + script: + - module load $GNUCompiler $MPICH_GNU $PETSc_MPICH_GNU + - SpectralAll_compileGfortran/test.py + +################################################################################################### +Compile_Intel_Prepare: + stage: prepareSpectral + script: + - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel + - make -C $DAMASKROOT clean spectral install tidy + +################################################################################################### +Spectral_PackedGeometry: + stage: spectral + script: Spectral_PackedGeometry/test.py + +Spectral_parsingArguments: + stage: spectral + script: Spectral_parsingArguments/test.py + +StateIntegration_compareVariants: + stage: spectral + script: StateIntegration_compareVariants/test.py + +nonlocal_densityConservation: + stage: spectral + script: nonlocal_densityConservation/test.py + +Spectral_ipNeighborhood: + stage: spectral + script: Spectral_ipNeighborhood/test.py + +Nonlocal_Damage_DetectChanges: + stage: spectral + script: Nonlocal_Damage_DetectChanges/test.py + +SpectralAll_restart: + stage: spectral + script: SpectralAll_restart/test.py + +SpectralAll_parsingLoadCase: + stage: spectral + script: SpectralAll_parsingLoadCase/test.py + +SpectralBasic_loadCaseRotation: + stage: spectral + script: SpectralBasic_loadCaseRotation/test.py + +Spectral_MPI: + stage: spectral + script: + - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel + - Spectral_MPI/test.py + +Plasticity_DetectChanges: + stage: spectral + script: Plasticity_DetectChanges/test.py + +Homogenization: + stage: spectral + script: Homogenization/test.py + +Phenopowerlaw_singleSlip: + stage: spectral + script: Phenopowerlaw_singleSlip/test.py + +HybridIA: + stage: spectral + script: HybridIA/test.py + +################################################################################################### +Marc_compileIfort2014: + stage: compileMarc2014 + script: + - module load $IntelCompiler16_0 $MSC2014 + - Marc_compileIfort/test.py -m 2014 + +################################################################################################### +Marc_compileIfort2014.2: + stage: compileMarc2014.2 + script: + - module load $IntelCompiler16_0 $MSC2014_2 + - Marc_compileIfort/test.py -m 2014.2 + +################################################################################################### +Marc_compileIfort2015: + stage: compileMarc2015 + script: + - module load $IntelCompiler16_0 $MSC2015 + - Marc_compileIfort/test.py -m 2015 + +################################################################################################### +Marc_compileIfort2016: + stage: compileMarc2016 + script: + - module load $IntelCompiler16_0 $MSC2016 + - Marc_compileIfort/test.py -m 2016 + +################################################################################################### +Hex_elastic: + stage: marc + script: + - module load $IntelCompiler16_0 $MSC + - Hex_elastic/test.py + +CubicFCC_elastic: + stage: marc + script: + - module load $IntelCompiler16_0 $MSC + - CubicFCC_elastic/test.py + +CubicBCC_elastic: + stage: marc + script: + - module load $IntelCompiler16_0 $MSC + - CubicBCC_elastic/test.py + +J2_plasticBehavior: + stage: marc + script: + - module load $IntelCompiler16_0 $MSC + - J2_plasticBehavior/test.py + +################################################################################################### +Abaqus_compile2016: + stage: compileAbaqus2016 + script: + - module load $IntelCompiler16_0 $Abaqus2016 + - Abaqus_compileIfort/test.py -a 2016 + +################################################################################################### +Abaqus_compile2017: + stage: compileAbaqus2017 + script: + - module load $IntelCompiler16_0 $Abaqus2017 + - Abaqus_compileIfort/test.py -a 2017 + +################################################################################################### +SpectralExample: + stage: example + script: SpectralAll_example/test.py + +AbaqusExample: + stage: example + script: + - module load $IntelCompiler16_0 $Abaqus + - Abaqus_example/test.py + +################################################################################################### +mergeIntoMaster: + stage: updateMaster + only: + - development + script: + - eval 'cd $DAMASKROOT' + - export DEVREV=$(git describe) + - git commit VERSION -m "[skip ci] updated version information after successful test of $DEVREV" + - git checkout master + - git merge development + - git status + - git push origin master + - git checkout development + - git push origin development + +################################################################################################### +AbaqusExp: + stage: createDocumentation + script: + - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel $Doxygen + - $DAMASKROOT/PRIVATE/documenting/runDoxygen.sh $DAMASKROOT abaqus_exp + +AbaqusStd: + stage: createDocumentation + script: + - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel $Doxygen + - $DAMASKROOT/PRIVATE/documenting/runDoxygen.sh $DAMASKROOT abaqus_std + +Marc: + stage: createDocumentation + script: + - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel $Doxygen + - $DAMASKROOT/PRIVATE/documenting/runDoxygen.sh $DAMASKROOT marc + +Spectral: + stage: createDocumentation + script: + - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel $Doxygen + - $DAMASKROOT/PRIVATE/documenting/runDoxygen.sh $DAMASKROOT spectral From 29cabe1df26248e780721a75b3d96da9128fb15a Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 12 Apr 2017 13:19:36 +0200 Subject: [PATCH 50/95] /home/m is not defined --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 17df28dbc..73145d38f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,7 +33,7 @@ variables: #================================================================================================ # Shortcut names #================================================================================================ - DAMASKROOT: "$HOME/GitlabCI_Pipeline_$CI_PIPELINE_ID/DAMASK" + DAMASKROOT: "~/HOME/GitlabCI_Pipeline_$CI_PIPELINE_ID/DAMASK" #================================================================================================ # Names of module files to load From 69d4e51ce0d17d7e030fb25d950d8e254f1eaa11 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 12 Apr 2017 13:22:46 +0200 Subject: [PATCH 51/95] typo --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 73145d38f..c4043a752 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,7 +33,7 @@ variables: #================================================================================================ # Shortcut names #================================================================================================ - DAMASKROOT: "~/HOME/GitlabCI_Pipeline_$CI_PIPELINE_ID/DAMASK" + DAMASKROOT: "~/GitlabCI_Pipeline_$CI_PIPELINE_ID/DAMASK" #================================================================================================ # Names of module files to load From b1ffe883befb9707b18c6d591970f63d8889e654 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 12 Apr 2017 14:28:42 +0200 Subject: [PATCH 52/95] directory was not parameterized --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c4043a752..2c0565503 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -80,7 +80,7 @@ checkout: before_script: - echo 'Do nothing' script: - - mkdir /tmp/GitlabCI_Pipeline_$CI_PIPELINE_ID + - mkdir -p $DAMASKROOT - git clone -b GitLabRunner git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT - git clone git@magit1.mpie.de:damask/PRIVATE.git $DAMASKROOT/PRIVATE - eval 'source $DAMASKROOT/DAMASK_env.sh' From 3fc5d8c5f98bbf4efda3f3638e913a9480268111 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 12 Apr 2017 14:38:23 +0200 Subject: [PATCH 53/95] set home in Gitlab settings --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2c0565503..583aa7b43 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,7 +33,7 @@ variables: #================================================================================================ # Shortcut names #================================================================================================ - DAMASKROOT: "~/GitlabCI_Pipeline_$CI_PIPELINE_ID/DAMASK" + DAMASKROOT: "$HOME/GitlabCI_Pipeline_$CI_PIPELINE_ID/DAMASK" #================================================================================================ # Names of module files to load From f166ba4c9a63fc86bab3447359bf0ed54cc6f929 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 12 Apr 2017 16:47:32 +0200 Subject: [PATCH 54/95] do long example runs only for development --- .gitlab-ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 583aa7b43..bcd694974 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -286,10 +286,14 @@ Abaqus_compile2017: ################################################################################################### SpectralExample: stage: example + only: + - development script: SpectralAll_example/test.py AbaqusExample: stage: example + only: + - development script: - module load $IntelCompiler16_0 $Abaqus - Abaqus_example/test.py From 4bcefa992bf8dbf0077b24b6293b9c7b310e208b Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 12 Apr 2017 23:30:33 +0200 Subject: [PATCH 55/95] trying to avoid conflicts when updating master and development, only one pipeline at the same time --- .gitlab-ci.yml | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bcd694974..7ee1d6884 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,6 +16,7 @@ stages: - example - updateMaster - createDocumentation + - clean ################################################################################################### before_script: @@ -78,11 +79,14 @@ variables: checkout: stage: prepareAll before_script: - - echo 'Do nothing' + - $HOME/wait.sh + - echo $CI_PIPELINE_ID > $HOME/GitLabCI.lock script: - mkdir -p $DAMASKROOT - - git clone -b GitLabRunner git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT - - git clone git@magit1.mpie.de:damask/PRIVATE.git $DAMASKROOT/PRIVATE + - git clone git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT + - cd $DAMASKROOT + - git checkout $CI_COMMIT_SHA git@magit1.mpie.de:damask/DAMASK.git + - git clone git@magit1.mpie.de:damask/PRIVATE.git - eval 'source $DAMASKROOT/DAMASK_env.sh' - make -C $DAMASKROOT install @@ -304,15 +308,16 @@ mergeIntoMaster: only: - development script: - - eval 'cd $DAMASKROOT' - - export DEVREV=$(git describe) - - git commit VERSION -m "[skip ci] updated version information after successful test of $DEVREV" + - cd $DAMASKROOT + - export TESTEDREV=$(git describe) # might be detached from development branch + - git commit VERSION -m "[skip ci] updated version information after successful test of $TESTEDREV" + - export UPDATEDREV=$(git describe) # tested state + 1 commit - git checkout master - - git merge development - - git status - - git push origin master + - git merge $UPDATEDREV + - git push origin master # master is now tested version and has updated VERSION file - git checkout development - - git push origin development + - git merge master -s ours # only possible conflict is in VERSION file + - git push origin development # development is unchanged (as master is based on it) but has updated VERSION file ################################################################################################### AbaqusExp: @@ -338,3 +343,11 @@ Spectral: script: - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel $Doxygen - $DAMASKROOT/PRIVATE/documenting/runDoxygen.sh $DAMASKROOT spectral + +################################################################################################### +removeLock: + stage: clean + before_script: + - echo 'Do nothing' + when: always + script: rm $HOME/GitLabCI.lock From 75a00d53e7fa47029b4709d2a7030ad7ffd1c0aa Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 12 Apr 2017 23:36:04 +0200 Subject: [PATCH 56/95] COMMIT_SHA was not set --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7ee1d6884..47c9c0f6d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -85,6 +85,8 @@ checkout: - mkdir -p $DAMASKROOT - git clone git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT - cd $DAMASKROOT + - export CI_COMMIT_SHA + - echo $CI_COMMIT_SHA - git checkout $CI_COMMIT_SHA git@magit1.mpie.de:damask/DAMASK.git - git clone git@magit1.mpie.de:damask/PRIVATE.git - eval 'source $DAMASKROOT/DAMASK_env.sh' From 5a1f907903331f983f8aa54c49e7f35387f102bd Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 12 Apr 2017 23:38:44 +0200 Subject: [PATCH 57/95] wrong arguments --- .gitlab-ci.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 47c9c0f6d..963f7f63c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -85,9 +85,7 @@ checkout: - mkdir -p $DAMASKROOT - git clone git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT - cd $DAMASKROOT - - export CI_COMMIT_SHA - - echo $CI_COMMIT_SHA - - git checkout $CI_COMMIT_SHA git@magit1.mpie.de:damask/DAMASK.git + - git checkout $CI_COMMIT_SHA - git clone git@magit1.mpie.de:damask/PRIVATE.git - eval 'source $DAMASKROOT/DAMASK_env.sh' - make -C $DAMASKROOT install From e7f8e57221ced02ddd1461b8bcbeb1b9d2ac5ddd Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 12 Apr 2017 23:51:02 +0200 Subject: [PATCH 58/95] absolute path not working --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 963f7f63c..2e23f4122 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -87,6 +87,7 @@ checkout: - cd $DAMASKROOT - git checkout $CI_COMMIT_SHA - git clone git@magit1.mpie.de:damask/PRIVATE.git + - echo $DAMASKROOT - eval 'source $DAMASKROOT/DAMASK_env.sh' - make -C $DAMASKROOT install From 6039c51910004cd88b4ef064f05e9b4f9505c854 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 12 Apr 2017 23:54:42 +0200 Subject: [PATCH 59/95] fixing path --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2e23f4122..60554dfcd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -88,8 +88,8 @@ checkout: - git checkout $CI_COMMIT_SHA - git clone git@magit1.mpie.de:damask/PRIVATE.git - echo $DAMASKROOT - - eval 'source $DAMASKROOT/DAMASK_env.sh' - - make -C $DAMASKROOT install + - eval 'source DAMASK_env.sh' + - make install ################################################################################################### OrientationRelationship: From 50eac331811151166b91e00b9602e9ce0e34a9f0 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 00:00:11 +0200 Subject: [PATCH 60/95] still failing --- .gitlab-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 60554dfcd..291b263d9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -88,7 +88,8 @@ checkout: - git checkout $CI_COMMIT_SHA - git clone git@magit1.mpie.de:damask/PRIVATE.git - echo $DAMASKROOT - - eval 'source DAMASK_env.sh' + - ls + - eval 'source ./DAMASK_env.sh' - make install ################################################################################################### From 53ba9f24977aee2c4f593b0c984f3564445cd96a Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 00:14:15 +0200 Subject: [PATCH 61/95] still failing --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 291b263d9..a8637bbd9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -88,8 +88,8 @@ checkout: - git checkout $CI_COMMIT_SHA - git clone git@magit1.mpie.de:damask/PRIVATE.git - echo $DAMASKROOT - - ls - eval 'source ./DAMASK_env.sh' + - echo p $PYTHONPATH - make install ################################################################################################### From 39732f0ad1ad6e4b74c61e383ddbe3d902040c55 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 07:17:57 +0200 Subject: [PATCH 62/95] debugging source --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a8637bbd9..81d024645 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -86,9 +86,9 @@ checkout: - git clone git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT - cd $DAMASKROOT - git checkout $CI_COMMIT_SHA - - git clone git@magit1.mpie.de:damask/PRIVATE.git + #- git clone git@magit1.mpie.de:damask/PRIVATE.git - echo $DAMASKROOT - - eval 'source ./DAMASK_env.sh' + - eval 'source ./DAMASK_env.sh > /tmp/log' - echo p $PYTHONPATH - make install From f759dd0204cf588def0f15d0d556b5b60d54a801 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 07:20:56 +0200 Subject: [PATCH 63/95] debugging source1 --- .gitlab-ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 81d024645..9ab2e87ef 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -88,7 +88,9 @@ checkout: - git checkout $CI_COMMIT_SHA #- git clone git@magit1.mpie.de:damask/PRIVATE.git - echo $DAMASKROOT - - eval 'source ./DAMASK_env.sh > /tmp/log' + - echo $PWD + - cat DAMASK_env.sh + - eval 'source $DAMASKROOT/DAMASK_env.sh > /tmp/log' - echo p $PYTHONPATH - make install From 043d96f9027bf9b797f8b10b0e01ff0228748a53 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 07:23:27 +0200 Subject: [PATCH 64/95] debugging source statement --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9ab2e87ef..19e16a5ac 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -90,7 +90,7 @@ checkout: - echo $DAMASKROOT - echo $PWD - cat DAMASK_env.sh - - eval 'source $DAMASKROOT/DAMASK_env.sh > /tmp/log' + - source $DAMASKROOT/DAMASK_env.sh > /tmp/log - echo p $PYTHONPATH - make install From 75c3fff355c498c43e8e06611f244feeb55d2692 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 07:31:57 +0200 Subject: [PATCH 65/95] debugging source statement1 --- .gitlab-ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 19e16a5ac..19f43afce 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -89,7 +89,11 @@ checkout: #- git clone git@magit1.mpie.de:damask/PRIVATE.git - echo $DAMASKROOT - echo $PWD + - type source + - type . + - type cd - cat DAMASK_env.sh + - . $DAMASKROOT/DAMASK_env.sh > /tmp/log - source $DAMASKROOT/DAMASK_env.sh > /tmp/log - echo p $PYTHONPATH - make install From 1b71b098d45e39bd7bbd17507a5d15d3a26e71b4 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 07:35:21 +0200 Subject: [PATCH 66/95] debugging source statement2 --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 19f43afce..ce914318f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -93,6 +93,8 @@ checkout: - type . - type cd - cat DAMASK_env.sh + - echo $SHELL + - echo $0 - . $DAMASKROOT/DAMASK_env.sh > /tmp/log - source $DAMASKROOT/DAMASK_env.sh > /tmp/log - echo p $PYTHONPATH From 4d80f7f8ac1ff21bf651ca0836da053f5c0c04c4 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 07:43:36 +0200 Subject: [PATCH 67/95] working around cd --- .gitlab-ci.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ce914318f..f8fa9095f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -83,16 +83,14 @@ checkout: - echo $CI_PIPELINE_ID > $HOME/GitLabCI.lock script: - mkdir -p $DAMASKROOT - - git clone git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT - - cd $DAMASKROOT - - git checkout $CI_COMMIT_SHA - #- git clone git@magit1.mpie.de:damask/PRIVATE.git + - git clone -b $CI_COMMIT_SHA git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT + #- git clone -q git@magit1.mpie.de:damask/PRIVATE.git - echo $DAMASKROOT - echo $PWD - type source - type . - type cd - - cat DAMASK_env.sh + - cat $DAMASKROOT/DAMASK_env.sh - echo $SHELL - echo $0 - . $DAMASKROOT/DAMASK_env.sh > /tmp/log From 8f08c2e8438fe8178ea277c6fd0c4a70bffd3e1b Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 07:50:53 +0200 Subject: [PATCH 68/95] working around cd2 --- .gitlab-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f8fa9095f..134bdea21 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -83,7 +83,8 @@ checkout: - echo $CI_PIPELINE_ID > $HOME/GitLabCI.lock script: - mkdir -p $DAMASKROOT - - git clone -b $CI_COMMIT_SHA git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT + - git clone git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT + - git checkout $CI_COMMIT_SHA --git-dir=$DAMASKROOT/.git #- git clone -q git@magit1.mpie.de:damask/PRIVATE.git - echo $DAMASKROOT - echo $PWD From 6d82566920b9ff239d5fa7e31d5d44cc90a5ea8f Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 07:55:37 +0200 Subject: [PATCH 69/95] working around source statement --- .gitlab-ci.yml | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 134bdea21..c25691d46 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -84,18 +84,10 @@ checkout: script: - mkdir -p $DAMASKROOT - git clone git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT - - git checkout $CI_COMMIT_SHA --git-dir=$DAMASKROOT/.git + - cd $DAMASKROOT + - git checkout $CI_COMMIT_SHA #- git clone -q git@magit1.mpie.de:damask/PRIVATE.git - - echo $DAMASKROOT - - echo $PWD - - type source - - type . - - type cd - - cat $DAMASKROOT/DAMASK_env.sh - - echo $SHELL - - echo $0 - - . $DAMASKROOT/DAMASK_env.sh > /tmp/log - - source $DAMASKROOT/DAMASK_env.sh > /tmp/log + - export PYTHONPATH=$PYTHONPATH:$DAMASKROOT/lib - echo p $PYTHONPATH - make install From 92ce58bcf1a24ac56d00dd63a614b010c4b8746d Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 08:09:07 +0200 Subject: [PATCH 70/95] trying non-NFS location --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c25691d46..94c78a1d6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,7 +20,7 @@ stages: ################################################################################################### before_script: - - eval 'source $DAMASKROOT/DAMASK_env.sh' + - source $DAMASKROOT/DAMASK_env.sh - module purge - cd $DAMASKROOT/PRIVATE/testing @@ -34,7 +34,7 @@ variables: #================================================================================================ # Shortcut names #================================================================================================ - DAMASKROOT: "$HOME/GitlabCI_Pipeline_$CI_PIPELINE_ID/DAMASK" + DAMASKROOT: "/tmp/GitlabCI_Pipeline_$CI_PIPELINE_ID/DAMASK" #================================================================================================ # Names of module files to load From 50b35239276a0365d71912f6e1d37815c613c74d Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 08:11:40 +0200 Subject: [PATCH 71/95] reverting --- .gitlab-ci.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 94c78a1d6..2cef795fd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,7 +20,7 @@ stages: ################################################################################################### before_script: - - source $DAMASKROOT/DAMASK_env.sh + - eval 'source $DAMASKROOT/DAMASK_env.sh' - module purge - cd $DAMASKROOT/PRIVATE/testing @@ -87,8 +87,7 @@ checkout: - cd $DAMASKROOT - git checkout $CI_COMMIT_SHA #- git clone -q git@magit1.mpie.de:damask/PRIVATE.git - - export PYTHONPATH=$PYTHONPATH:$DAMASKROOT/lib - - echo p $PYTHONPATH + - eval 'source $DAMASKROOT/DAMASK_env.sh' - make install ################################################################################################### From 11a3d9c3330f6442ab1044a8e9c7ef2dd0797ec0 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 08:15:01 +0200 Subject: [PATCH 72/95] error in DAMASK_env.sh seems to be the reason --- .gitlab-ci.yml | 6 +++--- DAMASK_env.sh | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2cef795fd..3409c8dbc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -20,7 +20,7 @@ stages: ################################################################################################### before_script: - - eval 'source $DAMASKROOT/DAMASK_env.sh' + - source $DAMASKROOT/DAMASK_env.sh - module purge - cd $DAMASKROOT/PRIVATE/testing @@ -34,7 +34,7 @@ variables: #================================================================================================ # Shortcut names #================================================================================================ - DAMASKROOT: "/tmp/GitlabCI_Pipeline_$CI_PIPELINE_ID/DAMASK" + DAMASKROOT: "$HOME/GitlabCI_Pipeline_$CI_PIPELINE_ID/DAMASK" #================================================================================================ # Names of module files to load @@ -87,7 +87,7 @@ checkout: - cd $DAMASKROOT - git checkout $CI_COMMIT_SHA #- git clone -q git@magit1.mpie.de:damask/PRIVATE.git - - eval 'source $DAMASKROOT/DAMASK_env.sh' + - source $DAMASKROOT/DAMASK_env.sh - make install ################################################################################################### diff --git a/DAMASK_env.sh b/DAMASK_env.sh index fa3171c48..078dd582b 100644 --- a/DAMASK_env.sh +++ b/DAMASK_env.sh @@ -25,11 +25,11 @@ if [[ "x$DAMASK_BIN" != "x" && ! $(echo ":$PATH:" | grep $DAMASK_BIN:) ]]; then export PATH=$DAMASK_BIN:$PATH fi -SOLVER=$(which DAMASK_spectral 2>/dev/null) +SOLVER=$(which DAMASK_spectral || true 2>/dev/null) if [ "x$SOLVER" == "x" ]; then SOLVER='Not found!' fi -PROCESSING=$(which postResults 2>/dev/null) +PROCESSING=$(which postResults || true 2>/dev/null) if [ "x$PROCESSING" == "x" ]; then PROCESSING='Not found!' fi From 97d19320ce1ba11c8e38f18b0a3004f9fbc809c2 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 08:20:30 +0200 Subject: [PATCH 73/95] fixed .zsh script as well, checking out PRIVATE repo again --- .gitlab-ci.yml | 4 ++-- DAMASK_env.zsh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3409c8dbc..bdafe9d72 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -83,10 +83,10 @@ checkout: - echo $CI_PIPELINE_ID > $HOME/GitLabCI.lock script: - mkdir -p $DAMASKROOT - - git clone git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT + - git clone -q git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT - cd $DAMASKROOT - git checkout $CI_COMMIT_SHA - #- git clone -q git@magit1.mpie.de:damask/PRIVATE.git + - git clone -q git@magit1.mpie.de:damask/PRIVATE.git - source $DAMASKROOT/DAMASK_env.sh - make install diff --git a/DAMASK_env.zsh b/DAMASK_env.zsh index dbb781894..0d043c390 100644 --- a/DAMASK_env.zsh +++ b/DAMASK_env.zsh @@ -19,8 +19,8 @@ if [[ ( "x$DAMASK_BIN" != "x" ) && ( "x$MATCH" = "x" ) ]]; then export PATH=$DAMASK_BIN:$PATH fi -SOLVER=`which DAMASK_spectral 2>/dev/null` -PROCESSING=`which postResults 2>/dev/null` +SOLVER=`which DAMASK_spectral || True 2>/dev/null` +PROCESSING=`which postResults || True 2>/dev/null` if [ "x$DAMASK_NUM_THREADS" = "x" ]; then DAMASK_NUM_THREADS=1 fi From aaa41b8232e95c3b14d3a42ddb4982340f1619c3 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Tue, 7 Mar 2017 10:44:39 +0100 Subject: [PATCH 74/95] not needed anymore --- installation/mods_Abaqus/abaqus_v6.env | 2 +- installation/mods_Abaqus/abaqus_v6_serial.env | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/installation/mods_Abaqus/abaqus_v6.env b/installation/mods_Abaqus/abaqus_v6.env index d30554d41..0bc5063a1 100644 --- a/installation/mods_Abaqus/abaqus_v6.env +++ b/installation/mods_Abaqus/abaqus_v6.env @@ -31,7 +31,7 @@ fortCmd = "ifort" # -integer-size 32 -DINT=4 assume size of integer to be 4 bytes, matches our definition of pInt compile_fortran = (fortCmd + " -c -fPIC -auto -shared-intel " + - "-I%I -I../lib -free -O1 -fpp -openmp " + + "-I%I -free -O1 -fpp -openmp " + "-ftz -diag-disable 5268 " + "-implicitnone -assume byterecl -stand f08 -standard-semantics " + "-real-size 64 -integer-size 32 -DFLOAT=8 -DINT=4 " + diff --git a/installation/mods_Abaqus/abaqus_v6_serial.env b/installation/mods_Abaqus/abaqus_v6_serial.env index 8cf9778f2..0469dc5f9 100644 --- a/installation/mods_Abaqus/abaqus_v6_serial.env +++ b/installation/mods_Abaqus/abaqus_v6_serial.env @@ -31,7 +31,7 @@ fortCmd = "ifort" # -integer-size 32 -DINT=4 assume size of integer to be 4 bytes, matches our definition of pInt compile_fortran = (fortCmd + " -c -fPIC -auto -shared-intel " + - "-I%I -I../lib -free -O1 -fpp " + + "-I%I -free -O1 -fpp " + "-ftz -diag-disable 5268 " + "-implicitnone -assume byterecl -stand f08 -standard-semantics " + "-real-size 64 -integer-size 32 -DFLOAT=8 -DINT=4 " + From dc387b4060a7919a7a7cb5b1b41213b1f1fc0e29 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 8 Mar 2017 18:00:13 +0100 Subject: [PATCH 75/95] removed unused parameters. Why was shearbanding on in for HMs TWIP steel? --- .../Phase_Dislotwin_TWIP-Steel-FeMnC.config | 2 +- examples/ConfigFiles/Phase_None_Orthorombic.config | 2 +- .../Phase_Phenopowerlaw_BCC-Ferrite.config | 3 --- .../Phase_Phenopowerlaw_BCC-Martensite.config | 3 --- examples/ConfigFiles/Phase_Phenopowerlaw_Gold.config | 11 ----------- .../ConfigFiles/Phase_Phenopowerlaw_multiField.config | 10 ---------- examples/ConfigFiles/Source_Damage_IsoBrittle.config | 2 +- examples/ConfigFiles/Texture_Gauss_001.config | 2 +- examples/ConfigFiles/Texture_Gauss_101.config | 2 +- examples/ConfigFiles/Texture_Gauss_111.config | 2 +- examples/ConfigFiles/Texture_Gauss_123.config | 2 +- .../ConfigFiles/Texture_RandomSingleCrystals.config | 2 +- 12 files changed, 8 insertions(+), 35 deletions(-) diff --git a/examples/ConfigFiles/Phase_Dislotwin_TWIP-Steel-FeMnC.config b/examples/ConfigFiles/Phase_Dislotwin_TWIP-Steel-FeMnC.config index 2570b1b95..e7c9d4e19 100644 --- a/examples/ConfigFiles/Phase_Dislotwin_TWIP-Steel-FeMnC.config +++ b/examples/ConfigFiles/Phase_Dislotwin_TWIP-Steel-FeMnC.config @@ -50,7 +50,7 @@ interactionSlipSlip 0.122 0.122 0.625 0.07 0.137 0.122 # Interaction coefficient ### Shearband parameters ### shearbandresistance 180e6 -shearbandvelocity 1e-4 # set to zero to turn shear banding of +shearbandvelocity 0e-4 # set to zero to turn shear banding of QedgePerSbSystem 3.7e-19 # Activation energy for shear banding [J] p_shearband 1.0 # p-exponent in glide velocity q_shearband 1.0 # q-exponent in glide velocity diff --git a/examples/ConfigFiles/Phase_None_Orthorombic.config b/examples/ConfigFiles/Phase_None_Orthorombic.config index 006b0e048..d7955cf2a 100644 --- a/examples/ConfigFiles/Phase_None_Orthorombic.config +++ b/examples/ConfigFiles/Phase_None_Orthorombic.config @@ -12,4 +12,4 @@ c13 60.41e9 c23 60.41e9 c44 28.34e9 c55 28.34e9 -c66 28.34e9 \ No newline at end of file +c66 28.34e9 diff --git a/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Ferrite.config b/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Ferrite.config index 6efd84f65..594c5dc22 100644 --- a/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Ferrite.config +++ b/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Ferrite.config @@ -18,8 +18,5 @@ tau0_slip 95.e6 97.e6 # per family, optimization long tausat_slip 222.e6 412.7e6 # per family, optimization long simplex 109 h0_slipslip 1000.0e6 interaction_slipslip 1 1 1.4 1.4 1.4 1.4 -interaction_sliptwin 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -interaction_twinslip 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -interaction_twintwin 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 w0_slip 2.0 (output) totalshear diff --git a/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Martensite.config b/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Martensite.config index 89ae0339b..6e005f251 100644 --- a/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Martensite.config +++ b/examples/ConfigFiles/Phase_Phenopowerlaw_BCC-Martensite.config @@ -18,8 +18,5 @@ tau0_slip 405.8e6 456.7e6 # per family tausat_slip 872.9e6 971.2e6 # per family h0_slipslip 563.0e9 interaction_slipslip 1 1 1.4 1.4 1.4 1.4 -interaction_sliptwin 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -interaction_twinslip 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -interaction_twintwin 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 w0_slip 2.0 (output) totalshear diff --git a/examples/ConfigFiles/Phase_Phenopowerlaw_Gold.config b/examples/ConfigFiles/Phase_Phenopowerlaw_Gold.config index fdae9c8e7..a2e06fc07 100644 --- a/examples/ConfigFiles/Phase_Phenopowerlaw_Gold.config +++ b/examples/ConfigFiles/Phase_Phenopowerlaw_Gold.config @@ -35,18 +35,7 @@ tausat_slip 53.00e6 # per family a_slip 1.0 gdot0_twin 0.001 n_twin 20 -tau0_twin 0 # per family -s_pr 0 # push-up factor for slip saturation due to twinning -twin_b 0 -twin_c 0 -twin_d 0 -twin_e 0 h0_slipslip 75e6 -h0_twinslip 0 -h0_twintwin 0 interaction_slipslip 1 1 1.4 1.4 1.4 1.4 -interaction_sliptwin 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -interaction_twinslip 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -interaction_twintwin 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 atol_resistance 1 diff --git a/examples/ConfigFiles/Phase_Phenopowerlaw_multiField.config b/examples/ConfigFiles/Phase_Phenopowerlaw_multiField.config index 4436564cc..05503a6e7 100644 --- a/examples/ConfigFiles/Phase_Phenopowerlaw_multiField.config +++ b/examples/ConfigFiles/Phase_Phenopowerlaw_multiField.config @@ -29,18 +29,8 @@ a_slip 2.25 gdot0_twin 0.001 n_twin 20 tau0_twin 31e6 # per family -s_pr 0 # push-up factor for slip saturation due to twinning -twin_b 0 -twin_c 0 -twin_d 0 -twin_e 0 h0_slipslip 75e6 -h0_twinslip 0 -h0_twintwin 0 interaction_slipslip 1 1 1.4 1.4 1.4 1.4 -interaction_sliptwin 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -interaction_twinslip 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -interaction_twintwin 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 atol_resistance 1 (stiffness_degradation) damage diff --git a/examples/ConfigFiles/Source_Damage_IsoBrittle.config b/examples/ConfigFiles/Source_Damage_IsoBrittle.config index b248bb8fc..b36165ab4 100644 --- a/examples/ConfigFiles/Source_Damage_IsoBrittle.config +++ b/examples/ConfigFiles/Source_Damage_IsoBrittle.config @@ -2,4 +2,4 @@ isobrittle_criticalStrainEnergy 1400000.0 isobrittle_atol 0.01 isobrittle_N 1.0 -(output) isoBrittle_DrivingForce \ No newline at end of file +(output) isoBrittle_DrivingForce diff --git a/examples/ConfigFiles/Texture_Gauss_001.config b/examples/ConfigFiles/Texture_Gauss_001.config index 153fab381..4711c4135 100644 --- a/examples/ConfigFiles/Texture_Gauss_001.config +++ b/examples/ConfigFiles/Texture_Gauss_001.config @@ -1,2 +1,2 @@ [001] -(gauss) phi1 0.000 Phi 0.000 phi2 0.000 scatter 0.000 fraction 1.000 \ No newline at end of file +(gauss) phi1 0.000 Phi 0.000 phi2 0.000 scatter 0.000 fraction 1.000 diff --git a/examples/ConfigFiles/Texture_Gauss_101.config b/examples/ConfigFiles/Texture_Gauss_101.config index 28351eece..79457aeac 100644 --- a/examples/ConfigFiles/Texture_Gauss_101.config +++ b/examples/ConfigFiles/Texture_Gauss_101.config @@ -1,2 +1,2 @@ [101] -(gauss) phi1 0.000 Phi 45.000 phi2 90.000 scatter 0.000 fraction 1.000 \ No newline at end of file +(gauss) phi1 0.000 Phi 45.000 phi2 90.000 scatter 0.000 fraction 1.000 diff --git a/examples/ConfigFiles/Texture_Gauss_111.config b/examples/ConfigFiles/Texture_Gauss_111.config index e4dc139f8..8204bfb69 100644 --- a/examples/ConfigFiles/Texture_Gauss_111.config +++ b/examples/ConfigFiles/Texture_Gauss_111.config @@ -1,2 +1,2 @@ [111] -(gauss) phi1 0.000 Phi 54.7356 phi2 45.000 scatter 0.000 fraction 1.000 \ No newline at end of file +(gauss) phi1 0.000 Phi 54.7356 phi2 45.000 scatter 0.000 fraction 1.000 diff --git a/examples/ConfigFiles/Texture_Gauss_123.config b/examples/ConfigFiles/Texture_Gauss_123.config index 374674e09..32d28442f 100644 --- a/examples/ConfigFiles/Texture_Gauss_123.config +++ b/examples/ConfigFiles/Texture_Gauss_123.config @@ -1,2 +1,2 @@ [123] -(gauss) phi1 209.805 Phi 29.206 phi2 63.435 scatter 0.000 fraction 1.000 \ No newline at end of file +(gauss) phi1 209.805 Phi 29.206 phi2 63.435 scatter 0.000 fraction 1.000 diff --git a/examples/ConfigFiles/Texture_RandomSingleCrystals.config b/examples/ConfigFiles/Texture_RandomSingleCrystals.config index fac65ae20..6e1f98a3d 100644 --- a/examples/ConfigFiles/Texture_RandomSingleCrystals.config +++ b/examples/ConfigFiles/Texture_RandomSingleCrystals.config @@ -1,2 +1,2 @@ [RandomSingleCrystals] -(random) scatter 0.000 fraction 1.000 \ No newline at end of file +(random) scatter 0.000 fraction 1.000 From 95a982e00207d5b006f8ca411d36d5d38f654c10 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 8 Mar 2017 18:46:53 +0100 Subject: [PATCH 76/95] default type for muliple arguments (not extend) is tuple, not list --- processing/pre/geom_addPrimitive.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/processing/pre/geom_addPrimitive.py b/processing/pre/geom_addPrimitive.py index 51dc1db3c..607e5facd 100755 --- a/processing/pre/geom_addPrimitive.py +++ b/processing/pre/geom_addPrimitive.py @@ -51,23 +51,22 @@ parser.add_option( '--nonperiodic', dest='periodic', action='store_false', parser.add_option( '--voxelspace', dest='voxelspace', action='store_true', help = '-c and -d are given in (0 to grid) coordinates instead of (origin to origin+size) \ coordinates [%default]') -parser.set_defaults(center = [0,0,0], +parser.set_defaults(center = (.0,.0,.0), fill = 0, - quaternion = [], - angleaxis = [], degrees = False, - exponent = [1e10,1e10,1e10], # box shape by default + exponent = (1e10,1e10,1e10), # box shape by default periodic = True, voxelspace = False ) (options, filenames) = parser.parse_args() - -if options.angleaxis != []: +if options.dimension is None: + parser.error('no dimension specified.') +if options.angleaxis is not None: options.angleaxis = map(float,options.angleaxis) rotation = damask.Quaternion().fromAngleAxis(np.radians(options.angleaxis[0]) if options.degrees else options.angleaxis[0], options.angleaxis[1:4]) -elif options.quaternion != []: +elif options.quaternion is not None: options.quaternion = map(float,options.quaternion) rotation = damask.Quaternion(options.quaternion) else: @@ -125,7 +124,7 @@ for name in filenames: # coordinates given in real space (default) vs voxel space if not options.voxelspace: - options.center += info['origin'] + options.center += info['origin'] options.center *= np.array(info['grid']) / np.array(info['size']) options.dimension *= np.array(info['grid']) / np.array(info['size']) From 101913a944cbd6bc7984842665283dc5d6efcc9d Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 8 Mar 2017 19:12:05 +0100 Subject: [PATCH 77/95] rel tol of 0.0 useful when looking for absolute value only --- code/numerics.f90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/numerics.f90 b/code/numerics.f90 index 6569d7cb4..4358624de 100644 --- a/code/numerics.f90 +++ b/code/numerics.f90 @@ -694,9 +694,9 @@ subroutine numerics_init .not. memory_efficient) call IO_error(error_ID = 847_pInt) if (err_stress_tolrel <= 0.0_pReal) call IO_error(301_pInt,ext_msg='err_stress_tolRel') if (err_stress_tolabs <= 0.0_pReal) call IO_error(301_pInt,ext_msg='err_stress_tolAbs') - if (err_div_tolRel <= 0.0_pReal) call IO_error(301_pInt,ext_msg='err_div_tolRel') + if (err_div_tolRel < 0.0_pReal) call IO_error(301_pInt,ext_msg='err_div_tolRel') if (err_div_tolAbs <= 0.0_pReal) call IO_error(301_pInt,ext_msg='err_div_tolAbs') - if (err_curl_tolRel <= 0.0_pReal) call IO_error(301_pInt,ext_msg='err_curl_tolRel') + if (err_curl_tolRel < 0.0_pReal) call IO_error(301_pInt,ext_msg='err_curl_tolRel') if (err_curl_tolAbs <= 0.0_pReal) call IO_error(301_pInt,ext_msg='err_curl_tolAbs') if (polarAlpha <= 0.0_pReal .or. & polarAlpha > 2.0_pReal) call IO_error(301_pInt,ext_msg='polarAlpha') From bdbbcdb908b66da140e0438dc8a321af63bda88c Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 13:02:55 +0200 Subject: [PATCH 78/95] parameters not needed --- examples/SpectralMethod/material.config | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/examples/SpectralMethod/material.config b/examples/SpectralMethod/material.config index 14437c5d8..978e0f511 100644 --- a/examples/SpectralMethod/material.config +++ b/examples/SpectralMethod/material.config @@ -52,22 +52,8 @@ n_slip 20 tau0_slip 31e6 # per family tausat_slip 63e6 # per family a_slip 2.25 -gdot0_twin 0.001 -n_twin 20 -tau0_twin 31e6 # per family -s_pr 0 # push-up factor for slip saturation due to twinning -twin_b 0 -twin_c 0 -twin_d 0 -twin_e 0 h0_slipslip 75e6 -h0_sliptwin 0 -h0_twinslip 0 -h0_twintwin 0 interaction_slipslip 1 1 1.4 1.4 1.4 1.4 -interaction_sliptwin 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -interaction_twinslip 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -interaction_twintwin 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 atol_resistance 1 From f1c6524c34a4c052e1e690a4483b2504a49d416f Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 13:07:38 +0200 Subject: [PATCH 79/95] debugging update procedure --- .gitlab-ci.yml | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bdafe9d72..7cda5b9e9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,19 +1,19 @@ stages: - prepareAll - - preprocessing - - postprocessing - - compileSpectralIntel - - compileSpectralGNU - - prepareSpectral - - spectral - - compileMarc2014 - - compileMarc2014.2 - - compileMarc2015 - - compileMarc2016 - - marc - - compileAbaqus2016 - - compileAbaqus2017 - - example + #- preprocessing + #- postprocessing + #- compileSpectralIntel + #- compileSpectralGNU + #- prepareSpectral + #- spectral + #- compileMarc2014 + #- compileMarc2014.2 + #- compileMarc2015 + #- compileMarc2016 + #- marc + #- compileAbaqus2016 + #- compileAbaqus2017 + #- example - updateMaster - createDocumentation - clean @@ -310,6 +310,7 @@ mergeIntoMaster: script: - cd $DAMASKROOT - export TESTEDREV=$(git describe) # might be detached from development branch + - echo $TESTEDREV > VERSION - git commit VERSION -m "[skip ci] updated version information after successful test of $TESTEDREV" - export UPDATEDREV=$(git describe) # tested state + 1 commit - git checkout master From bf7b4f2af52d1b02425e66d18a5b144842af7c9c Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 13:21:38 +0200 Subject: [PATCH 80/95] debugging update procedure2 --- .gitlab-ci.yml | 424 ++++++++++++++++++++++++------------------------- 1 file changed, 212 insertions(+), 212 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7cda5b9e9..ad8f5d13a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -90,218 +90,218 @@ checkout: - source $DAMASKROOT/DAMASK_env.sh - make install -################################################################################################### -OrientationRelationship: - stage: preprocessing - script: OrientationRelationship/test.py - -Pre_SeedGeneration: - stage: preprocessing - script: PreProcessing_SeedGeneration/test.py - -Pre_GeomGeneration: - stage: preprocessing - script: PreProcessing_GeomGeneration/test.py - -Pre_GeomModification: - stage: preprocessing - script: PreProcessing_GeomModification/test.py - -Pre_General: - stage: preprocessing - script: PreProcessing/test.py - -Spectral_geometryPacking: - stage: preprocessing - script: Spectral_geometryPacking/test.py - -################################################################################################### -Post_General: - stage: postprocessing - script: PostProcessing/test.py - -Post_GeometryReconstruction: - stage: postprocessing - script: Spectral_geometryReconstruction/test.py - -Post_addCurl: - stage: postprocessing - script: addCurl/test.py - -Post_addDivergence: - stage: postprocessing - script: addDivergence/test.py - -Post_addGradient: - stage: postprocessing - script: addGradient/test.py - -Post_ParaviewRelated: - stage: postprocessing - script: ParaviewRelated/test.py - -################################################################################################### -Compile_Intel: - stage: compileSpectralIntel - script: - - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel - - SpectralAll_compileIfort/test.py - -################################################################################################### -Compile_GNU: - stage: compileSpectralGNU - script: - - module load $GNUCompiler $MPICH_GNU $PETSc_MPICH_GNU - - SpectralAll_compileGfortran/test.py - -################################################################################################### -Compile_Intel_Prepare: - stage: prepareSpectral - script: - - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel - - make -C $DAMASKROOT clean spectral install tidy - -################################################################################################### -Spectral_PackedGeometry: - stage: spectral - script: Spectral_PackedGeometry/test.py - -Spectral_parsingArguments: - stage: spectral - script: Spectral_parsingArguments/test.py - -StateIntegration_compareVariants: - stage: spectral - script: StateIntegration_compareVariants/test.py - -nonlocal_densityConservation: - stage: spectral - script: nonlocal_densityConservation/test.py - -Spectral_ipNeighborhood: - stage: spectral - script: Spectral_ipNeighborhood/test.py - -Nonlocal_Damage_DetectChanges: - stage: spectral - script: Nonlocal_Damage_DetectChanges/test.py - -SpectralAll_restart: - stage: spectral - script: SpectralAll_restart/test.py - -SpectralAll_parsingLoadCase: - stage: spectral - script: SpectralAll_parsingLoadCase/test.py - -SpectralBasic_loadCaseRotation: - stage: spectral - script: SpectralBasic_loadCaseRotation/test.py - -Spectral_MPI: - stage: spectral - script: - - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel - - Spectral_MPI/test.py - -Plasticity_DetectChanges: - stage: spectral - script: Plasticity_DetectChanges/test.py - -Homogenization: - stage: spectral - script: Homogenization/test.py - -Phenopowerlaw_singleSlip: - stage: spectral - script: Phenopowerlaw_singleSlip/test.py - -HybridIA: - stage: spectral - script: HybridIA/test.py - -################################################################################################### -Marc_compileIfort2014: - stage: compileMarc2014 - script: - - module load $IntelCompiler16_0 $MSC2014 - - Marc_compileIfort/test.py -m 2014 - -################################################################################################### -Marc_compileIfort2014.2: - stage: compileMarc2014.2 - script: - - module load $IntelCompiler16_0 $MSC2014_2 - - Marc_compileIfort/test.py -m 2014.2 - -################################################################################################### -Marc_compileIfort2015: - stage: compileMarc2015 - script: - - module load $IntelCompiler16_0 $MSC2015 - - Marc_compileIfort/test.py -m 2015 - -################################################################################################### -Marc_compileIfort2016: - stage: compileMarc2016 - script: - - module load $IntelCompiler16_0 $MSC2016 - - Marc_compileIfort/test.py -m 2016 - -################################################################################################### -Hex_elastic: - stage: marc - script: - - module load $IntelCompiler16_0 $MSC - - Hex_elastic/test.py - -CubicFCC_elastic: - stage: marc - script: - - module load $IntelCompiler16_0 $MSC - - CubicFCC_elastic/test.py - -CubicBCC_elastic: - stage: marc - script: - - module load $IntelCompiler16_0 $MSC - - CubicBCC_elastic/test.py - -J2_plasticBehavior: - stage: marc - script: - - module load $IntelCompiler16_0 $MSC - - J2_plasticBehavior/test.py - -################################################################################################### -Abaqus_compile2016: - stage: compileAbaqus2016 - script: - - module load $IntelCompiler16_0 $Abaqus2016 - - Abaqus_compileIfort/test.py -a 2016 - -################################################################################################### -Abaqus_compile2017: - stage: compileAbaqus2017 - script: - - module load $IntelCompiler16_0 $Abaqus2017 - - Abaqus_compileIfort/test.py -a 2017 - -################################################################################################### -SpectralExample: - stage: example - only: - - development - script: SpectralAll_example/test.py - -AbaqusExample: - stage: example - only: - - development - script: - - module load $IntelCompiler16_0 $Abaqus - - Abaqus_example/test.py - +#################################################################################################### +#OrientationRelationship: +# stage: preprocessing +# script: OrientationRelationship/test.py +# +#Pre_SeedGeneration: +# stage: preprocessing +# script: PreProcessing_SeedGeneration/test.py +# +#Pre_GeomGeneration: +# stage: preprocessing +# script: PreProcessing_GeomGeneration/test.py +# +#Pre_GeomModification: +# stage: preprocessing +# script: PreProcessing_GeomModification/test.py +# +#Pre_General: +# stage: preprocessing +# script: PreProcessing/test.py +# +#Spectral_geometryPacking: +# stage: preprocessing +# script: Spectral_geometryPacking/test.py +# +#################################################################################################### +#Post_General: +# stage: postprocessing +# script: PostProcessing/test.py +# +#Post_GeometryReconstruction: +# stage: postprocessing +# script: Spectral_geometryReconstruction/test.py +# +#Post_addCurl: +# stage: postprocessing +# script: addCurl/test.py +# +#Post_addDivergence: +# stage: postprocessing +# script: addDivergence/test.py +# +#Post_addGradient: +# stage: postprocessing +# script: addGradient/test.py +# +#Post_ParaviewRelated: +# stage: postprocessing +# script: ParaviewRelated/test.py +# +#################################################################################################### +#Compile_Intel: +# stage: compileSpectralIntel +# script: +# - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel +# - SpectralAll_compileIfort/test.py +# +#################################################################################################### +#Compile_GNU: +# stage: compileSpectralGNU +# script: +# - module load $GNUCompiler $MPICH_GNU $PETSc_MPICH_GNU +# - SpectralAll_compileGfortran/test.py +# +#################################################################################################### +#Compile_Intel_Prepare: +# stage: prepareSpectral +# script: +# - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel +# - make -C $DAMASKROOT clean spectral install tidy +# +#################################################################################################### +#Spectral_PackedGeometry: +# stage: spectral +# script: Spectral_PackedGeometry/test.py +# +#Spectral_parsingArguments: +# stage: spectral +# script: Spectral_parsingArguments/test.py +# +#StateIntegration_compareVariants: +# stage: spectral +# script: StateIntegration_compareVariants/test.py +# +#nonlocal_densityConservation: +# stage: spectral +# script: nonlocal_densityConservation/test.py +# +#Spectral_ipNeighborhood: +# stage: spectral +# script: Spectral_ipNeighborhood/test.py +# +#Nonlocal_Damage_DetectChanges: +# stage: spectral +# script: Nonlocal_Damage_DetectChanges/test.py +# +#SpectralAll_restart: +# stage: spectral +# script: SpectralAll_restart/test.py +# +#SpectralAll_parsingLoadCase: +# stage: spectral +# script: SpectralAll_parsingLoadCase/test.py +# +#SpectralBasic_loadCaseRotation: +# stage: spectral +# script: SpectralBasic_loadCaseRotation/test.py +# +#Spectral_MPI: +# stage: spectral +# script: +# - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel +# - Spectral_MPI/test.py +# +#Plasticity_DetectChanges: +# stage: spectral +# script: Plasticity_DetectChanges/test.py +# +#Homogenization: +# stage: spectral +# script: Homogenization/test.py +# +#Phenopowerlaw_singleSlip: +# stage: spectral +# script: Phenopowerlaw_singleSlip/test.py +# +#HybridIA: +# stage: spectral +# script: HybridIA/test.py +# +#################################################################################################### +#Marc_compileIfort2014: +# stage: compileMarc2014 +# script: +# - module load $IntelCompiler16_0 $MSC2014 +# - Marc_compileIfort/test.py -m 2014 +# +#################################################################################################### +#Marc_compileIfort2014.2: +# stage: compileMarc2014.2 +# script: +# - module load $IntelCompiler16_0 $MSC2014_2 +# - Marc_compileIfort/test.py -m 2014.2 +# +#################################################################################################### +#Marc_compileIfort2015: +# stage: compileMarc2015 +# script: +# - module load $IntelCompiler16_0 $MSC2015 +# - Marc_compileIfort/test.py -m 2015 +# +#################################################################################################### +#Marc_compileIfort2016: +# stage: compileMarc2016 +# script: +# - module load $IntelCompiler16_0 $MSC2016 +# - Marc_compileIfort/test.py -m 2016 +# +#################################################################################################### +#Hex_elastic: +# stage: marc +# script: +# - module load $IntelCompiler16_0 $MSC +# - Hex_elastic/test.py +# +#CubicFCC_elastic: +# stage: marc +# script: +# - module load $IntelCompiler16_0 $MSC +# - CubicFCC_elastic/test.py +# +#CubicBCC_elastic: +# stage: marc +# script: +# - module load $IntelCompiler16_0 $MSC +# - CubicBCC_elastic/test.py +# +#J2_plasticBehavior: +# stage: marc +# script: +# - module load $IntelCompiler16_0 $MSC +# - J2_plasticBehavior/test.py +# +#################################################################################################### +#Abaqus_compile2016: +# stage: compileAbaqus2016 +# script: +# - module load $IntelCompiler16_0 $Abaqus2016 +# - Abaqus_compileIfort/test.py -a 2016 +# +#################################################################################################### +#Abaqus_compile2017: +# stage: compileAbaqus2017 +# script: +# - module load $IntelCompiler16_0 $Abaqus2017 +# - Abaqus_compileIfort/test.py -a 2017 +# +#################################################################################################### +#SpectralExample: +# stage: example +# only: +# - development +# script: SpectralAll_example/test.py +# +#AbaqusExample: +# stage: example +# only: +# - development +# script: +# - module load $IntelCompiler16_0 $Abaqus +# - Abaqus_example/test.py +# ################################################################################################### mergeIntoMaster: stage: updateMaster From 73ce3c01b72d510e20b8a7107be4f80014eac15f Mon Sep 17 00:00:00 2001 From: Test User Date: Thu, 13 Apr 2017 13:23:07 +0200 Subject: [PATCH 81/95] [skip ci] updated version information after successful test of v2.0.1-447-gbf7b4f2 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 1d89fa753..82fb0985b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-414-g81d0752 +v2.0.1-447-gbf7b4f2 From d595ad56166a1f0d2ba190cf28c8c434facaedd9 Mon Sep 17 00:00:00 2001 From: Test User Date: Thu, 13 Apr 2017 13:27:39 +0200 Subject: [PATCH 82/95] [skip ci] updated version information after successful test of v2.0.1-449-g3898995 --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 1d89fa753..e84d8672e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.1-414-g81d0752 +v2.0.1-449-g3898995 From e5eea4caec9fe3a95abb67b25ba782b387920e17 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 16:06:35 +0200 Subject: [PATCH 83/95] finished debugging, master and release will never be tested --- .gitlab-ci.yml | 591 ++++++++++++++++++++++++++++++------------------- 1 file changed, 363 insertions(+), 228 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ad8f5d13a..bc8af4d11 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,19 +1,19 @@ stages: - prepareAll - #- preprocessing - #- postprocessing - #- compileSpectralIntel - #- compileSpectralGNU - #- prepareSpectral - #- spectral - #- compileMarc2014 - #- compileMarc2014.2 - #- compileMarc2015 - #- compileMarc2016 - #- marc - #- compileAbaqus2016 - #- compileAbaqus2017 - #- example + - preprocessing + - postprocessing + - compileSpectralIntel + - compileSpectralGNU + - prepareSpectral + - spectral + - compileMarc2014 + - compileMarc2014.2 + - compileMarc2015 + - compileMarc2016 + - marc + - compileAbaqus2016 + - compileAbaqus2017 + - example - updateMaster - createDocumentation - clean @@ -89,224 +89,342 @@ checkout: - git clone -q git@magit1.mpie.de:damask/PRIVATE.git - source $DAMASKROOT/DAMASK_env.sh - make install + except: + - master + - release -#################################################################################################### -#OrientationRelationship: -# stage: preprocessing -# script: OrientationRelationship/test.py -# -#Pre_SeedGeneration: -# stage: preprocessing -# script: PreProcessing_SeedGeneration/test.py -# -#Pre_GeomGeneration: -# stage: preprocessing -# script: PreProcessing_GeomGeneration/test.py -# -#Pre_GeomModification: -# stage: preprocessing -# script: PreProcessing_GeomModification/test.py -# -#Pre_General: -# stage: preprocessing -# script: PreProcessing/test.py -# -#Spectral_geometryPacking: -# stage: preprocessing -# script: Spectral_geometryPacking/test.py -# -#################################################################################################### -#Post_General: -# stage: postprocessing -# script: PostProcessing/test.py -# -#Post_GeometryReconstruction: -# stage: postprocessing -# script: Spectral_geometryReconstruction/test.py -# -#Post_addCurl: -# stage: postprocessing -# script: addCurl/test.py -# -#Post_addDivergence: -# stage: postprocessing -# script: addDivergence/test.py -# -#Post_addGradient: -# stage: postprocessing -# script: addGradient/test.py -# -#Post_ParaviewRelated: -# stage: postprocessing -# script: ParaviewRelated/test.py -# -#################################################################################################### -#Compile_Intel: -# stage: compileSpectralIntel -# script: -# - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel -# - SpectralAll_compileIfort/test.py -# -#################################################################################################### -#Compile_GNU: -# stage: compileSpectralGNU -# script: -# - module load $GNUCompiler $MPICH_GNU $PETSc_MPICH_GNU -# - SpectralAll_compileGfortran/test.py -# -#################################################################################################### -#Compile_Intel_Prepare: -# stage: prepareSpectral -# script: -# - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel -# - make -C $DAMASKROOT clean spectral install tidy -# -#################################################################################################### -#Spectral_PackedGeometry: -# stage: spectral -# script: Spectral_PackedGeometry/test.py -# -#Spectral_parsingArguments: -# stage: spectral -# script: Spectral_parsingArguments/test.py -# -#StateIntegration_compareVariants: -# stage: spectral -# script: StateIntegration_compareVariants/test.py -# -#nonlocal_densityConservation: -# stage: spectral -# script: nonlocal_densityConservation/test.py -# -#Spectral_ipNeighborhood: -# stage: spectral -# script: Spectral_ipNeighborhood/test.py -# -#Nonlocal_Damage_DetectChanges: -# stage: spectral -# script: Nonlocal_Damage_DetectChanges/test.py -# -#SpectralAll_restart: -# stage: spectral -# script: SpectralAll_restart/test.py -# -#SpectralAll_parsingLoadCase: -# stage: spectral -# script: SpectralAll_parsingLoadCase/test.py -# -#SpectralBasic_loadCaseRotation: -# stage: spectral -# script: SpectralBasic_loadCaseRotation/test.py -# -#Spectral_MPI: -# stage: spectral -# script: -# - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel -# - Spectral_MPI/test.py -# -#Plasticity_DetectChanges: -# stage: spectral -# script: Plasticity_DetectChanges/test.py -# -#Homogenization: -# stage: spectral -# script: Homogenization/test.py -# -#Phenopowerlaw_singleSlip: -# stage: spectral -# script: Phenopowerlaw_singleSlip/test.py -# -#HybridIA: -# stage: spectral -# script: HybridIA/test.py -# -#################################################################################################### -#Marc_compileIfort2014: -# stage: compileMarc2014 -# script: -# - module load $IntelCompiler16_0 $MSC2014 -# - Marc_compileIfort/test.py -m 2014 -# -#################################################################################################### -#Marc_compileIfort2014.2: -# stage: compileMarc2014.2 -# script: -# - module load $IntelCompiler16_0 $MSC2014_2 -# - Marc_compileIfort/test.py -m 2014.2 -# -#################################################################################################### -#Marc_compileIfort2015: -# stage: compileMarc2015 -# script: -# - module load $IntelCompiler16_0 $MSC2015 -# - Marc_compileIfort/test.py -m 2015 -# -#################################################################################################### -#Marc_compileIfort2016: -# stage: compileMarc2016 -# script: -# - module load $IntelCompiler16_0 $MSC2016 -# - Marc_compileIfort/test.py -m 2016 -# -#################################################################################################### -#Hex_elastic: -# stage: marc -# script: -# - module load $IntelCompiler16_0 $MSC -# - Hex_elastic/test.py -# -#CubicFCC_elastic: -# stage: marc -# script: -# - module load $IntelCompiler16_0 $MSC -# - CubicFCC_elastic/test.py -# -#CubicBCC_elastic: -# stage: marc -# script: -# - module load $IntelCompiler16_0 $MSC -# - CubicBCC_elastic/test.py -# -#J2_plasticBehavior: -# stage: marc -# script: -# - module load $IntelCompiler16_0 $MSC -# - J2_plasticBehavior/test.py -# -#################################################################################################### -#Abaqus_compile2016: -# stage: compileAbaqus2016 -# script: -# - module load $IntelCompiler16_0 $Abaqus2016 -# - Abaqus_compileIfort/test.py -a 2016 -# -#################################################################################################### -#Abaqus_compile2017: -# stage: compileAbaqus2017 -# script: -# - module load $IntelCompiler16_0 $Abaqus2017 -# - Abaqus_compileIfort/test.py -a 2017 -# -#################################################################################################### -#SpectralExample: -# stage: example -# only: -# - development -# script: SpectralAll_example/test.py -# -#AbaqusExample: -# stage: example -# only: -# - development -# script: -# - module load $IntelCompiler16_0 $Abaqus -# - Abaqus_example/test.py -# ################################################################################################### -mergeIntoMaster: - stage: updateMaster +OrientationRelationship: + stage: preprocessing + script: OrientationRelationship/test.py + except: + - master + - release + +Pre_SeedGeneration: + stage: preprocessing + script: PreProcessing_SeedGeneration/test.py + except: + - master + - release + +Pre_GeomGeneration: + stage: preprocessing + script: PreProcessing_GeomGeneration/test.py + except: + - master + - release + +Pre_GeomModification: + stage: preprocessing + script: PreProcessing_GeomModification/test.py + except: + - master + - release + +Pre_General: + stage: preprocessing + script: PreProcessing/test.py + except: + - master + - release + +Spectral_geometryPacking: + stage: preprocessing + script: Spectral_geometryPacking/test.py + except: + - master + - release + +################################################################################################### +Post_General: + stage: postprocessing + script: PostProcessing/test.py + except: + - master + - release + +Post_GeometryReconstruction: + stage: postprocessing + script: Spectral_geometryReconstruction/test.py + except: + - master + - release + +Post_addCurl: + stage: postprocessing + script: addCurl/test.py + except: + - master + - release + +Post_addDivergence: + stage: postprocessing + script: addDivergence/test.py + except: + - master + - release + +Post_addGradient: + stage: postprocessing + script: addGradient/test.py + except: + - master + - release + +Post_ParaviewRelated: + stage: postprocessing + script: ParaviewRelated/test.py + except: + - master + - release + +################################################################################################### +Compile_Intel: + stage: compileSpectralIntel + script: + - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel + - SpectralAll_compileIfort/test.py + except: + - master + - release + +################################################################################################### +Compile_GNU: + stage: compileSpectralGNU + script: + - module load $GNUCompiler $MPICH_GNU $PETSc_MPICH_GNU + - SpectralAll_compileGfortran/test.py + except: + - master + - release + +################################################################################################### +Compile_Intel_Prepare: + stage: prepareSpectral + script: + - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel + - make -C $DAMASKROOT clean spectral install tidy + except: + - master + - release + +################################################################################################### +Spectral_PackedGeometry: + stage: spectral + script: Spectral_PackedGeometry/test.py + except: + - master + - release + +Spectral_parsingArguments: + stage: spectral + script: Spectral_parsingArguments/test.py + except: + - master + - release + +StateIntegration_compareVariants: + stage: spectral + script: StateIntegration_compareVariants/test.py + except: + - master + - release + +nonlocal_densityConservation: + stage: spectral + script: nonlocal_densityConservation/test.py + except: + - master + - release + +Spectral_ipNeighborhood: + stage: spectral + script: Spectral_ipNeighborhood/test.py + except: + - master + - release + +Nonlocal_Damage_DetectChanges: + stage: spectral + script: Nonlocal_Damage_DetectChanges/test.py + except: + - master + - release + +SpectralAll_restart: + stage: spectral + script: SpectralAll_restart/test.py + except: + - master + - release + +SpectralAll_parsingLoadCase: + stage: spectral + script: SpectralAll_parsingLoadCase/test.py + except: + - master + - release + +SpectralBasic_loadCaseRotation: + stage: spectral + script: SpectralBasic_loadCaseRotation/test.py + except: + - master + - release + +Spectral_MPI: + stage: spectral + script: + - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel + - Spectral_MPI/test.py + except: + - master + - release + +Plasticity_DetectChanges: + stage: spectral + script: Plasticity_DetectChanges/test.py + except: + - master + - release + +Homogenization: + stage: spectral + script: Homogenization/test.py + except: + - master + - release + +Phenopowerlaw_singleSlip: + stage: spectral + script: Phenopowerlaw_singleSlip/test.py + except: + - master + - release + +HybridIA: + stage: spectral + script: HybridIA/test.py + except: + - master + - release + +################################################################################################### +Marc_compileIfort2014: + stage: compileMarc2014 + script: + - module load $IntelCompiler16_0 $MSC2014 + - Marc_compileIfort/test.py -m 2014 + except: + - master + - release + +################################################################################################### +Marc_compileIfort2014.2: + stage: compileMarc2014.2 + script: + - module load $IntelCompiler16_0 $MSC2014_2 + - Marc_compileIfort/test.py -m 2014.2 + except: + - master + - release + +################################################################################################### +Marc_compileIfort2015: + stage: compileMarc2015 + script: + - module load $IntelCompiler16_0 $MSC2015 + - Marc_compileIfort/test.py -m 2015 + except: + - master + - release + +################################################################################################### +Marc_compileIfort2016: + stage: compileMarc2016 + script: + - module load $IntelCompiler16_0 $MSC2016 + - Marc_compileIfort/test.py -m 2016 + except: + - master + - release + +################################################################################################### +Hex_elastic: + stage: marc + script: + - module load $IntelCompiler16_0 $MSC + - Hex_elastic/test.py + except: + - master + - release + +CubicFCC_elastic: + stage: marc + script: + - module load $IntelCompiler16_0 $MSC + - CubicFCC_elastic/test.py + except: + - master + - release + +CubicBCC_elastic: + stage: marc + script: + - module load $IntelCompiler16_0 $MSC + - CubicBCC_elastic/test.py + except: + - master + - release + +J2_plasticBehavior: + stage: marc + script: + - module load $IntelCompiler16_0 $MSC + - J2_plasticBehavior/test.py + except: + - master + - release + +################################################################################################### +Abaqus_compile2016: + stage: compileAbaqus2016 + script: + - module load $IntelCompiler16_0 $Abaqus2016 + - Abaqus_compileIfort/test.py -a 2016 + except: + - master + - release + +################################################################################################### +Abaqus_compile2017: + stage: compileAbaqus2017 + script: + - module load $IntelCompiler16_0 $Abaqus2017 + - Abaqus_compileIfort/test.py -a 2017 + except: + - master + - release + +################################################################################################### +SpectralExample: + stage: example + script: SpectralAll_example/test.py only: - development + +AbaqusExample: + stage: example + script: + - module load $IntelCompiler16_0 $Abaqus + - Abaqus_example/test.py + only: + - development + +################################################################################################## +mergeIntoMaster: + stage: updateMaster script: - cd $DAMASKROOT - export TESTEDREV=$(git describe) # might be detached from development branch @@ -319,6 +437,8 @@ mergeIntoMaster: - git checkout development - git merge master -s ours # only possible conflict is in VERSION file - git push origin development # development is unchanged (as master is based on it) but has updated VERSION file + only: + - development ################################################################################################### AbaqusExp: @@ -326,24 +446,36 @@ AbaqusExp: script: - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel $Doxygen - $DAMASKROOT/PRIVATE/documenting/runDoxygen.sh $DAMASKROOT abaqus_exp + except: + - master + - release AbaqusStd: stage: createDocumentation script: - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel $Doxygen - $DAMASKROOT/PRIVATE/documenting/runDoxygen.sh $DAMASKROOT abaqus_std + except: + - master + - release Marc: stage: createDocumentation script: - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel $Doxygen - $DAMASKROOT/PRIVATE/documenting/runDoxygen.sh $DAMASKROOT marc + except: + - master + - release Spectral: stage: createDocumentation script: - module load $IntelCompiler $MPICH_Intel $PETSc_MPICH_Intel $Doxygen - $DAMASKROOT/PRIVATE/documenting/runDoxygen.sh $DAMASKROOT spectral + except: + - master + - release ################################################################################################### removeLock: @@ -352,3 +484,6 @@ removeLock: - echo 'Do nothing' when: always script: rm $HOME/GitLabCI.lock + except: + - master + - release From 67d9fb386b489dea9f1c4b0086d5afe4ba84ecaa Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 19:42:59 +0200 Subject: [PATCH 84/95] in-line code for better readability --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bc8af4d11..06f6909b6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -79,7 +79,7 @@ variables: checkout: stage: prepareAll before_script: - - $HOME/wait.sh + - while [ -e $HOME/GitLabCI.lock ]; do sleep 5m; done - echo $CI_PIPELINE_ID > $HOME/GitLabCI.lock script: - mkdir -p $DAMASKROOT From 45f192be09fa9521217c88d4d3f78b036c2c58af Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 19:56:52 +0200 Subject: [PATCH 85/95] safe in case of failing prepareAll --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 06f6909b6..1403b24c5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -483,7 +483,7 @@ removeLock: before_script: - echo 'Do nothing' when: always - script: rm $HOME/GitLabCI.lock + script: if grep -q $CI_PIPELINE_ID $HOME/GitLabCI.lock; then; rm $HOME/GitLabCI.lock; fi except: - master - release From ae3a5187c098fcee7778d2078565aeca8d559ac3 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 13 Apr 2017 21:35:46 +0200 Subject: [PATCH 86/95] syntax error --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1403b24c5..72728cebe 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -483,7 +483,7 @@ removeLock: before_script: - echo 'Do nothing' when: always - script: if grep -q $CI_PIPELINE_ID $HOME/GitLabCI.lock; then; rm $HOME/GitLabCI.lock; fi + script: if grep -q $CI_PIPELINE_ID $HOME/GitLabCI.lock; then rm $HOME/GitLabCI.lock; fi except: - master - release From 6114541dba9c8c72f59d72f03cfdfe7e977b6a0f Mon Sep 17 00:00:00 2001 From: Philip Eisenlohr Date: Thu, 13 Apr 2017 18:59:52 -0400 Subject: [PATCH 87/95] try unlimited heap and stack first --- DAMASK_env.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/DAMASK_env.sh b/DAMASK_env.sh index 078dd582b..0ae3a2abf 100644 --- a/DAMASK_env.sh +++ b/DAMASK_env.sh @@ -39,12 +39,15 @@ fi # according to http://software.intel.com/en-us/forums/topic/501500 # this seems to make sense for the stack size -FREE=$(which free 2>/dev/null) +FREE=$(type -p free 2>/dev/null) if [ "x$FREE" != "x" ]; then freeMem=$(free -k | grep -E '(Mem|Speicher):' | awk '{print $4;}') # http://superuser.com/questions/220059/what-parameters-has-ulimit - ulimit -d $(expr $freeMem / 2) 2>/dev/null # maximum heap size (kB) - ulimit -s $(expr $freeMem / $DAMASK_NUM_THREADS / 2) 2>/dev/null # maximum stack size (kB) + ulimit -d unlimited 2>/dev/null \ + || ulimit -d $(expr $freeMem / 2) 2>/dev/null # maximum heap size (kB) + ulimit -s unlimited 2>/dev/null \ + || echo "cannot unlimit stack..." \ + && ulimit -s $(expr $freeMem / $DAMASK_NUM_THREADS / 2) 2>/dev/null # maximum stack size (kB) fi ulimit -v unlimited 2>/dev/null # maximum virtual memory size ulimit -m unlimited 2>/dev/null # maximum physical memory size From d1c2e2114d5fe5337ab8a427dcc20d4dfedd52e6 Mon Sep 17 00:00:00 2001 From: Philip Eisenlohr Date: Thu, 13 Apr 2017 19:00:19 -0400 Subject: [PATCH 88/95] switch auto drawing back on at end of pipeline --- processing/pre/mentat_spectralBox.py | 1 + 1 file changed, 1 insertion(+) diff --git a/processing/pre/mentat_spectralBox.py b/processing/pre/mentat_spectralBox.py index 681aca724..16c982f82 100755 --- a/processing/pre/mentat_spectralBox.py +++ b/processing/pre/mentat_spectralBox.py @@ -247,6 +247,7 @@ for name in filenames: '*identify_sets', '*show_model', '*redraw', + '*draw_automatic', ] outputLocals = {} From 4ffca8f0dcc6e5a2cb20fc5a24f4ee185fc6796c Mon Sep 17 00:00:00 2001 From: Philip Eisenlohr Date: Thu, 13 Apr 2017 19:01:42 -0400 Subject: [PATCH 89/95] check for erroneous total phase fraction --- code/IO.f90 | 2 +- code/material.f90 | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/code/IO.f90 b/code/IO.f90 index c55a03b6a..acac40785 100644 --- a/code/IO.f90 +++ b/code/IO.f90 @@ -878,7 +878,7 @@ function IO_spotTagInPart(fileUnit,part,tag,Nsections) IO_spotTagInPart = .false. ! assume to nowhere spot tag section = 0_pInt - line ='' + line = '' rewind(fileUnit) do while (trim(line) /= IO_EOF .and. IO_lc(IO_getTag(line,'<','>')) /= part) ! search for part diff --git a/code/material.f90 b/code/material.f90 index ec5537b00..1945bb7da 100644 --- a/code/material.f90 +++ b/code/material.f90 @@ -758,7 +758,7 @@ subroutine material_parseMicrostructure(fileUnit,myPart) allocate(microstructure_elemhomo(Nsections), source=.false.) if(any(mesh_element(4,1:mesh_NcpElems) > Nsections)) & - call IO_error(155_pInt,ext_msg='Microstructure in geometry > Sections in material.config') + call IO_error(155_pInt,ext_msg='More microstructures in geometry than sections in material.config') forall (e = 1_pInt:mesh_NcpElems) microstructure_active(mesh_element(4,e)) = .true. ! current microstructure used in model? Elementwise view, maximum N operations for N elements @@ -801,7 +801,7 @@ subroutine material_parseMicrostructure(fileUnit,myPart) microstructure_crystallite(section) = IO_intValue(line,chunkPos,2_pInt) case ('(constituent)') constituent = constituent + 1_pInt - do i=2_pInt,6_pInt,2_pInt + do i = 2_pInt,6_pInt,2_pInt tag = IO_lc(IO_stringValue(line,chunkPos,i)) select case (tag) case('phase') @@ -816,6 +816,11 @@ subroutine material_parseMicrostructure(fileUnit,myPart) endif enddo + !sanity check +do section = 1_pInt, Nsections + if (sum(microstructure_fraction(:,section)) /= 1.0_pReal) & + call IO_error(153_pInt,ext_msg=microstructure_name(section)) +enddo end subroutine material_parseMicrostructure From a46107ba7f8fa6f7d204338dce33e2319d6148d0 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Fri, 14 Apr 2017 09:16:21 +0200 Subject: [PATCH 90/95] pull needed to avoid conflicts --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 72728cebe..2767c46dd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -435,6 +435,7 @@ mergeIntoMaster: - git merge $UPDATEDREV - git push origin master # master is now tested version and has updated VERSION file - git checkout development + - git pull - git merge master -s ours # only possible conflict is in VERSION file - git push origin development # development is unchanged (as master is based on it) but has updated VERSION file only: From c34716a0da7fe1a13fcba013ab787039bbd00690 Mon Sep 17 00:00:00 2001 From: Philip Eisenlohr Date: Fri, 14 Apr 2017 15:07:43 -0400 Subject: [PATCH 91/95] modern form of croaking, added '*draw_automatic' as final output --- processing/pre/mentat_pbcOnBoxMesh.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/processing/pre/mentat_pbcOnBoxMesh.py b/processing/pre/mentat_pbcOnBoxMesh.py index 71bc0d121..f71247618 100755 --- a/processing/pre/mentat_pbcOnBoxMesh.py +++ b/processing/pre/mentat_pbcOnBoxMesh.py @@ -153,34 +153,31 @@ parser.add_option("-p", "--port", type="int", dest="port", metavar='int', help="Mentat connection port [%default]") parser.add_option("-v", "--verbose", action="store_true", dest="verbose", help="write Mentat command stream also to stdout [%default]") -parser.set_defaults(port = 40007) -parser.set_defaults(verbose = False) +parser.set_defaults(port = 40007, + verbose = False) (options, args) = parser.parse_args() -if options.verbose: - file={'croak':sys.stderr} -else: - file={'croak':sys.stdout} - try: import py_mentat except: - file['croak'].write('error: no valid Mentat release found') + damask.util.croak('error: no valid Mentat release found') sys.exit(-1) outputLocals = {} -file['croak'].write('\033[1m'+scriptName+'\033[0m\n\n') -file['croak'].write( 'waiting to connect...\n') +damask.util.report(scriptName,'waiting to connect...') + try: py_mentat.py_connect('',options.port) -# prevent redrawing in Mentat, should be much faster. Since py_connect has no return value, try this to determine if failed or not +# prevent redrawing in Mentat, should be much faster. +# Since py_connect has no return value, try this to determine if failed or not output(['*draw_manual'],outputLocals,'Mentat') except: - file['croak'].write('Could not connect. Set Tools/Python/"Run as Separate Process" & "Initiate"...\n') + damask.util.croak('Could not connect. Set Tools/Python/"Run as Separate Process" & "Initiate"...') sys.exit() -file['croak'].write( 'connected...\n') + +damask.util.croak('connected...') output(['*remove_all_servos', '*sweep_all', @@ -190,6 +187,10 @@ output(['*remove_all_servos', cmds = servoLink() output(cmds,outputLocals,'Mentat') + +output(['*draw_automatic', + ],outputLocals,'Mentat') # script depends on consecutive numbering of nodes + py_mentat.py_disconnect() if options.verbose: From 62dd57313e9925284037c19bf496e0d6cf1b930d Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 15 Apr 2017 12:07:59 +0200 Subject: [PATCH 92/95] queue for runners to retain order --- .gitlab-ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2767c46dd..d9aec3a0a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -34,7 +34,7 @@ variables: #================================================================================================ # Shortcut names #================================================================================================ - DAMASKROOT: "$HOME/GitlabCI_Pipeline_$CI_PIPELINE_ID/DAMASK" + DAMASKROOT: "$HOME/GitLabCI_Pipeline_$CI_PIPELINE_ID/DAMASK" #================================================================================================ # Names of module files to load @@ -79,8 +79,8 @@ variables: checkout: stage: prepareAll before_script: - - while [ -e $HOME/GitLabCI.lock ]; do sleep 5m; done - - echo $CI_PIPELINE_ID > $HOME/GitLabCI.lock + - echo $CI_PIPELINE_ID >> $HOME/GitLabCI.queue + - while [ "$(awk '/$CI_PIPELINE_ID/{print NR}' GitLabCI.queue)" -ne 1 ];do sleep 5m; done script: - mkdir -p $DAMASKROOT - git clone -q git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT @@ -484,7 +484,7 @@ removeLock: before_script: - echo 'Do nothing' when: always - script: if grep -q $CI_PIPELINE_ID $HOME/GitLabCI.lock; then rm $HOME/GitLabCI.lock; fi + script: sed -i '/$CI_PIPELINE_ID/d' GitLabCI.queue except: - master - release From d2b6fdd453aae6b3f3c034061cb96e987b922c5f Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 15 Apr 2017 12:33:52 +0200 Subject: [PATCH 93/95] corrected path --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d9aec3a0a..f3c5bdba7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -80,7 +80,7 @@ checkout: stage: prepareAll before_script: - echo $CI_PIPELINE_ID >> $HOME/GitLabCI.queue - - while [ "$(awk '/$CI_PIPELINE_ID/{print NR}' GitLabCI.queue)" -ne 1 ];do sleep 5m; done + - while [ "$(awk '/$CI_PIPELINE_ID/{print NR}' $HOME/GitLabCI.queue)" -ne 1 ];do sleep 5m; done script: - mkdir -p $DAMASKROOT - git clone -q git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT @@ -484,7 +484,7 @@ removeLock: before_script: - echo 'Do nothing' when: always - script: sed -i '/$CI_PIPELINE_ID/d' GitLabCI.queue + script: sed -i '/$CI_PIPELINE_ID/d' $HOME/GitLabCI.queue except: - master - release From 65985e3dd788757d70e547ceada161ac2be6e94d Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 15 Apr 2017 12:44:02 +0200 Subject: [PATCH 94/95] correct escape --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f3c5bdba7..d6b3f1012 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -80,7 +80,7 @@ checkout: stage: prepareAll before_script: - echo $CI_PIPELINE_ID >> $HOME/GitLabCI.queue - - while [ "$(awk '/$CI_PIPELINE_ID/{print NR}' $HOME/GitLabCI.queue)" -ne 1 ];do sleep 5m; done + - while [ $(awk "/$CI_PIPELINE_ID/{print NR}" $HOME/GitLabCI.queue)" -ne 1 ];do sleep 5m; done script: - mkdir -p $DAMASKROOT - git clone -q git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT @@ -484,7 +484,7 @@ removeLock: before_script: - echo 'Do nothing' when: always - script: sed -i '/$CI_PIPELINE_ID/d' $HOME/GitLabCI.queue + script: sed -i "/$CI_PIPELINE_ID/d" $HOME/GitLabCI.queue except: - master - release From 1344905c7e768e24b264b8057ecbe73445c6003d Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sat, 15 Apr 2017 12:45:11 +0200 Subject: [PATCH 95/95] typo --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d6b3f1012..e65d9df60 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -80,7 +80,7 @@ checkout: stage: prepareAll before_script: - echo $CI_PIPELINE_ID >> $HOME/GitLabCI.queue - - while [ $(awk "/$CI_PIPELINE_ID/{print NR}" $HOME/GitLabCI.queue)" -ne 1 ];do sleep 5m; done + - while [ $(awk "/$CI_PIPELINE_ID/{print NR}" $HOME/GitLabCI.queue) -ne 1 ];do sleep 5m; done script: - mkdir -p $DAMASKROOT - git clone -q git@magit1.mpie.de:damask/DAMASK.git $DAMASKROOT