diff --git a/code/IO.f90 b/code/IO.f90 index 1b0b44bde..5455acce8 100644 --- a/code/IO.f90 +++ b/code/IO.f90 @@ -1510,7 +1510,7 @@ subroutine IO_error(error_ID,e,i,g,ext_msg) case (156_pInt) msg = 'reading from ODF file' case (157_pInt) - msg = 'illegal texture rotation specified' + msg = 'illegal texture transformation specified' case (160_pInt) msg = 'no entries in config part' case (170_pInt) diff --git a/code/config/material.config b/code/config/material.config index 4d228acb0..a458396fb 100644 --- a/code/config/material.config +++ b/code/config/material.config @@ -442,7 +442,7 @@ interactionSlipSlip 0.122 0.122 0.625 0.07 0.137 0.122 # Interaction coefficient ### Shearband parameters ### shearbandresistance 180e6 shearbandvelocity 1e-4 -QedgePerSbSystem 3.7e-19 # Activation energy for shear banding [J] +QedgePerSbSystem 3.7e-19 # Activation energy for shear banding [J] ### Twinning parameters ### Ntwin 12 @@ -470,7 +470,7 @@ dSFE_dT 0.0002 # temperature dependance of stacking fault e [Rolling] hybridIA DP_EBSD.linearODF symmetry orthotropic # or monoclinic -rotation x +z -y # model coordinate x-, y-, z-axis correspond to which axis during texture measurement? +axes x +z -y # model coordinate x-, y-, z-axes correspond to which axes during texture measurement? [random] @@ -487,7 +487,7 @@ rotation x +z -y # model coordinate x-, y-, z-axis correspond (gauss) phi1 209.805 Phi 29.206 phi2 63.435 scatter 0.000 fraction 1.000 [fiber example] -rotation x y -z # model coordinate x-, y-, z-axis correspond to which axis during texture measurement? this was a left handed coordinate system! +axes x y -z # model coordinate x-, y-, z-axes correspond to which axes during texture measurement? this was a left handed coordinate system! # fiber axis in spherical coordinates: alpha crystal system, beta sample system (fiber) alpha1 123 alpha2 123 beta1 12 beta2 45 scatter 15 fraction 0.333 diff --git a/code/material.f90 b/code/material.f90 index ebb82d877..a8c4fb103 100644 --- a/code/material.f90 +++ b/code/material.f90 @@ -116,7 +116,7 @@ module material material_volume, & !< volume of each grain,IP,element texture_Gauss, & !< data of each Gauss component texture_Fiber, & !< data of each Fiber component - texture_rotation !< rotation of each texture + texture_transformation !< transformation for each texture logical, dimension(:), allocatable, private :: & homogenization_active @@ -607,9 +607,9 @@ subroutine material_parseTexture(myFile,myPart) texture_maxNfiber = maxval(texture_Nfiber) allocate(texture_Gauss (5,texture_maxNgauss,Nsections)); texture_Gauss = 0.0_pReal allocate(texture_Fiber (6,texture_maxNfiber,Nsections)); texture_Fiber = 0.0_pReal - allocate(texture_rotation(3,3,Nsections)); + allocate(texture_transformation(3,3,Nsections)); do j = 1_pInt, Nsections - texture_rotation(1:3,1:3,j) = math_I3 + texture_transformation(1:3,1:3,j) = math_I3 enddo rewind(myFile) @@ -639,22 +639,22 @@ subroutine material_parseTexture(myFile,myPart) tag = IO_lc(IO_stringValue(line,positions,1_pInt)) ! extract key textureType: select case(tag) - case ('rotation') textureType + case ('axes', 'rotation') textureType do j = 1_pInt, 3_pInt ! look for "x", "y", and "z" entries tag = IO_lc(IO_stringValue(line,positions,j+1_pInt)) select case (tag) case('x', '+x') - texture_rotation(j,1:3,section) = (/ 1.0_pReal, 0.0_pReal, 0.0_pReal/) ! original axis is now +x-axis + texture_transformation(j,1:3,section) = (/ 1.0_pReal, 0.0_pReal, 0.0_pReal/) ! original axis is now +x-axis case('-x') - texture_rotation(j,1:3,section) = (/-1.0_pReal, 0.0_pReal, 0.0_pReal/) ! original axis is now -x-axis + texture_transformation(j,1:3,section) = (/-1.0_pReal, 0.0_pReal, 0.0_pReal/) ! original axis is now -x-axis case('y', '+y') - texture_rotation(j,1:3,section) = (/ 0.0_pReal, 1.0_pReal, 0.0_pReal/) ! original axis is now +y-axis + texture_transformation(j,1:3,section) = (/ 0.0_pReal, 1.0_pReal, 0.0_pReal/) ! original axis is now +y-axis case('-y') - texture_rotation(j,1:3,section) = (/ 0.0_pReal,-1.0_pReal, 0.0_pReal/) ! original axis is now -y-axis + texture_transformation(j,1:3,section) = (/ 0.0_pReal,-1.0_pReal, 0.0_pReal/) ! original axis is now -y-axis case('z', '+z') - texture_rotation(j,1:3,section) = (/ 0.0_pReal, 0.0_pReal, 1.0_pReal/) ! original axis is now +z-axis + texture_transformation(j,1:3,section) = (/ 0.0_pReal, 0.0_pReal, 1.0_pReal/) ! original axis is now +z-axis case('-z') - texture_rotation(j,1:3,section) = (/ 0.0_pReal, 0.0_pReal,-1.0_pReal/) ! original axis is now -z-axis + texture_transformation(j,1:3,section) = (/ 0.0_pReal, 0.0_pReal,-1.0_pReal/) ! original axis is now -z-axis case default call IO_error(157_pInt,section) end select @@ -964,13 +964,13 @@ subroutine material_populateGrains endif !-------------------------------------------------------------------------------------------------- -! ...texture rotation +! ...texture transformation do j = 1_pInt,myNorientations ! loop over each "real" orientation orientationOfGrain(1:3,grain+j) = math_RtoEuler( & ! translate back to Euler angles math_mul33x33( & ! pre-multiply math_EulertoR(orientationOfGrain(1:3,grain+j)), & ! face-value orientation - texture_rotation(1:3,1:3,textureID) & ! rotation matrix and + texture_transformation(1:3,1:3,textureID) & ! and transformation matrix ) & ) enddo diff --git a/processing/pre/geom_fromAng.py b/processing/pre/geom_fromAng.py index c4a524840..8ec0e9db4 100755 --- a/processing/pre/geom_fromAng.py +++ b/processing/pre/geom_fromAng.py @@ -48,8 +48,8 @@ parser.add_option('--crystallite', dest='crystallite', type='int', \ help='crystallite index to be used [%default]') parser.add_option('-c', '--configuration', dest='config', action='store_true', \ help='output material configuration [%default]') -parser.add_option('-a', '--axis', dest='axis', type='string', nargs = 3, \ - help='axis assignement of eulerangles x,y,z = %default') +parser.add_option('-a', '--axes', dest='axes', type='string', nargs = 3, \ + help='axes assignement of eulerangles x,y,z = %default') parser.set_defaults(column = 11) @@ -58,12 +58,12 @@ parser.set_defaults(homogenization = 1) parser.set_defaults(phase = [1,2]) parser.set_defaults(crystallite = 1) parser.set_defaults(config = False) -parser.set_defaults(axis = ['y','x','-z']) +parser.set_defaults(axes = ['y','x','-z']) (options,filenames) = parser.parse_args() -for i in options.axis: +for i in options.axes: if i.lower() not in ['x','+x','-x','y','+y','-y','z','+z','-z']: - file['croak'].write('invalid axis %s %s %s' %(options.axis[0],options.axis[1],options.axis[2])) + file['croak'].write('invalid axes %s %s %s' %(options.axes[0],options.axes[1],options.axes[2])) sys.exit() #--- setup file handles --------------------------------------------------------------------------- @@ -123,7 +123,7 @@ for file in files: '(constituent)\tphase %i\ttexture %s\tfraction 1.0\n'%(options.phase[{True:0,False:1}[float(words[options.column-1])