diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7e8de3ee4..d610f51f0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -275,6 +275,13 @@ Spectral_ipNeighborhood: - master - release +RGC_DetectChanges: + stage: spectral + script: RGC_DetectChanges/test.py + except: + - master + - release + Nonlocal_Damage_DetectChanges: stage: spectral script: Nonlocal_Damage_DetectChanges/test.py diff --git a/Makefile b/Makefile index 4149078d1..a8a7a6e0f 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ SHELL = /bin/sh # Makefile for the installation of DAMASK ######################################################################################## .PHONY: all -all: spectral FEM marc processing +all: spectral FEM processing .PHONY: spectral spectral: build/spectral @@ -23,10 +23,6 @@ build/FEM: @mkdir -p build/FEM @(cd build/FEM; cmake -Wno-dev -DDAMASK_SOLVER=FEM -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DBUILDCMD_POST=${BUILDCMD_POST} -DBUILDCMD_PRE=${BUILDCMD_PRE} -DOPTIMIZATION=${OPTIMIZATION} -DOPENMP=${OPENMP} ../../;) -.PHONY: marc -marc: - @./installation/mods_MarcMentat/apply_DAMASK_modifications.sh ${MAKEFLAGS} - .PHONY: clean clean: @rm -rf build diff --git a/PRIVATE b/PRIVATE index 70f135395..3d4211812 160000 --- a/PRIVATE +++ b/PRIVATE @@ -1 +1 @@ -Subproject commit 70f135395370b06c424e0dcf163afbd9d8ad24a1 +Subproject commit 3d42118124eb1b4bccb6164d714af25650ba5a93 diff --git a/VERSION b/VERSION index e4ebd3adb..098ab4a69 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.0.2-756-g7217cdac +v2.0.2-830-g0cbcb028 diff --git a/processing/post/filterTable.py b/processing/post/filterTable.py index aca94371c..ce09fc7b3 100755 --- a/processing/post/filterTable.py +++ b/processing/post/filterTable.py @@ -139,6 +139,7 @@ for name in filenames: table.data_readArray(positions+1) # read desired columns (indexed 1,...) table.data_writeArray() # directly write out except: + table.data_rewind() atOnce = False # data contains items that prevent array chunking if not atOnce: # read data line by line diff --git a/processing/post/postResults.py b/processing/post/postResults.py index 8b7e610e3..2343ca3de 100755 --- a/processing/post/postResults.py +++ b/processing/post/postResults.py @@ -79,7 +79,7 @@ class MPIEspectral_result: # mimic py_post result object self.dataOffset = 0 while self.dataOffset < self.filesize: self.file.seek(self.dataOffset) - if self.file.read(3) == 'eoh': break + if self.file.read(3) == b'eoh': break self.dataOffset += 1 self.dataOffset += 7 #search first for the new keywords with ':', if not found try to find the old ones @@ -179,7 +179,7 @@ class MPIEspectral_result: # mimic py_post result object self.file.seek(filepos) # read the starting tag in front of the keyword (Fortran indicates start and end of writing by a 4 byte tag indicating the length of the following data) dataLen=struct.unpack('i',self.file.read(4))[0] - name = self.file.read(len(identifier)) # anticipate identifier + name = self.file.read(len(identifier)).decode(errors="ignore") # anticipate identifier start=filepos+(4+len(identifier)) # position of the values for the found key filepos=filepos+(4+dataLen+4) # forward to next keyword @@ -202,7 +202,7 @@ class MPIEspectral_result: # mimic py_post result object def _keyedString(self,identifier,default=None): value = default self.file.seek(0) - m = re.search(r'(.{4})%s(.*?)\1'%identifier,self.file.read(self.dataOffset),re.DOTALL) + m = re.search(r'(.{4})%s(.*?)\1'%identifier,self.file.read(self.dataOffset).decode(errors="ignore"),re.DOTALL) if m: value = m.group(2) return value @@ -466,7 +466,7 @@ def ParseOutputFormat(filename,what,me): """Parse .output* files in order to get a list of outputs""" content = [] format = {'outputs':{},'specials':{'brothers':[]}} - for prefix in ['']+map(str,range(1,17)): + for prefix in ['']+list(map(str,range(1,17))): if os.path.exists(prefix+filename+'.output'+what): try: file = open(prefix+filename+'.output'+what) @@ -850,7 +850,7 @@ for opt in ['nodalScalar','elemScalar','elemTensor','homogenizationResult','crys if (opt in ['nodalScalar','elemScalar','elemTensor'] and label not in stat['IndexOfLabel'] and label not in ['elements',]) \ or (opt in ['homogenizationResult','crystalliteResult','constitutiveResult'] \ and (not outputFormat[opt[:-6].capitalize()]['outputs'] \ - or label not in zip(*outputFormat[opt[:-6].capitalize()]['outputs'])[0])): + or label not in list(zip(*outputFormat[opt[:-6].capitalize()]['outputs']))[0])): parser.error('%s "%s" unknown...'%(opt,label)) @@ -935,8 +935,8 @@ else: for e in range(stat['NumberOfElements']): if options.verbose and e%1000 == 0: bg.set_message('scan elem %i...'%e) myElemID = p.element_id(e) - myIpCoordinates = ipCoords(p.element(e).type, map(lambda node: [node.x, node.y, node.z], - map(p.node, map(p.node_sequence, p.element(e).items)))) + myIpCoordinates = ipCoords(p.element(e).type, list(map(lambda node: [node.x, node.y, node.z], + list(map(p.node, map(p.node_sequence, p.element(e).items)))))) myIpIDs = ipIDs(p.element(e).type) Nips = len(myIpIDs) myNodeIDs = p.element(e).items[:Nips] @@ -1023,7 +1023,7 @@ if options.verbose: bg.set_message('getting map between positions and increments incAtPosition = {} positionOfInc = {} -for position in range(stat['NumberOfIncrements']): +for position in range(int(stat['NumberOfIncrements'])): p.moveto(position+offset_pos) incAtPosition[position] = p.increment # remember "real" increment at this position positionOfInc[p.increment] = position # remember position of "real" increment @@ -1130,7 +1130,7 @@ for incCount,position in enumerate(locations): # walk through locations ['Crystallite']*len(options.crystalliteResult) + ['Constitutive']*len(options.constitutiveResult) ): - outputIndex = list(zip(*outputFormat[resultType]['outputs'])[0]).index(label) # find the position of this output in the outputFormat + outputIndex = (list(zip(*outputFormat[resultType]['outputs']))[0]).index(label) # find the position of this output in the outputFormat length = int(outputFormat[resultType]['outputs'][outputIndex][1]) thisHead = heading('_',[[component,''.join( label.split() )] for component in range(int(length>1),length+int(length>1))]) if assembleHeader: header += thisHead diff --git a/src/DAMASK_interface.f90 b/src/DAMASK_interface.f90 index 3bd4df68f..a2b4f53f2 100644 --- a/src/DAMASK_interface.f90 +++ b/src/DAMASK_interface.f90 @@ -43,25 +43,42 @@ subroutine DAMASK_interface_init() use, intrinsic :: & iso_fortran_env #include +#if defined(__GFORTRAN__) && __GNUC__ < 5 +=================================================================================================== + 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 +=================================================================================================== +================== THIS VERSION OF DAMASK REQUIRES gfortran > 5.0 ============================== +====================== THIS VERSION OF DAMASK REQUIRES gfortran > 5.0 ========================== +========================= THIS VERSION OF DAMASK REQUIRES gfortran > 5.0 ======================= +=================================================================================================== + 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 +=================================================================================================== +#endif + +#if defined(__INTEL_COMPILER) && __INTEL_COMPILER < 1600 +=================================================================================================== + 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 +=================================================================================================== +================== THIS VERSION OF DAMASK REQUIRES ifort > 16.0 ================================ +====================== THIS VERSION OF DAMASK REQUIRES ifort > 16.0 =========================== +========================= THIS VERSION OF DAMASK REQUIRES ifort > 16.0 ======================== +=================================================================================================== + 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 16.0 +=================================================================================================== +#endif + #if PETSC_VERSION_MAJOR!=3 || PETSC_VERSION_MINOR!=10 =================================================================================================== 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x =================================================================================================== -======= THIS VERSION OF DAMASK REQUIRES PETSc 3.10.x ========================================== -========== THIS VERSION OF DAMASK REQUIRES PETSc 3.10.x ======================================= -============= THIS VERSION OF DAMASK REQUIRES PETSc 3.10.x ==================================== -================ THIS VERSION OF DAMASK REQUIRES PETSc 3.10.x ================================= =================== THIS VERSION OF DAMASK REQUIRES PETSc 3.10.x ============================== ====================== THIS VERSION OF DAMASK REQUIRES PETSc 3.10.x =========================== ========================= THIS VERSION OF DAMASK REQUIRES PETSc 3.10.x ======================== -============================ THIS VERSION OF DAMASK REQUIRES PETSc 3.10.x ===================== -=============================== THIS VERSION OF DAMASK REQUIRES PETSc 3.10.x ================== -================================== THIS VERSION OF DAMASK REQUIRES PETSc 3.10.x =============== -===================================== THIS VERSION OF DAMASK REQUIRES PETSc 3.10.x ============ =================================================================================================== 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x 3.10.x =================================================================================================== #endif + use PETScSys use system_routines, only: & getHostName, & diff --git a/src/DAMASK_marc2018.f90 b/src/DAMASK_marc2018.f90 new file mode 120000 index 000000000..2c5bec706 --- /dev/null +++ b/src/DAMASK_marc2018.f90 @@ -0,0 +1 @@ +DAMASK_marc.f90 \ No newline at end of file