Merge branch '30_parsePhasePartOnce' into 19-NewStylePhenopowerlaw
This commit is contained in:
commit
e8a4f588f4
|
@ -7,10 +7,7 @@ stages:
|
||||||
- compileSpectralGNU
|
- compileSpectralGNU
|
||||||
- prepareSpectral
|
- prepareSpectral
|
||||||
- spectral
|
- spectral
|
||||||
- compileMarc2014
|
- compileMarc2017
|
||||||
- compileMarc2014.2
|
|
||||||
- compileMarc2015
|
|
||||||
- compileMarc2016
|
|
||||||
- marc
|
- marc
|
||||||
- compileAbaqus2016
|
- compileAbaqus2016
|
||||||
- compileAbaqus2017
|
- compileAbaqus2017
|
||||||
|
@ -72,13 +69,10 @@ variables:
|
||||||
# ++++++++++++ FEM +++++++++++++++++++++++++++++++++++++++++++++++++++
|
# ++++++++++++ FEM +++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
Abaqus2016: "FEM/Abaqus/2016"
|
Abaqus2016: "FEM/Abaqus/2016"
|
||||||
Abaqus2017: "FEM/Abaqus/2017"
|
Abaqus2017: "FEM/Abaqus/2017"
|
||||||
MSC2014: "FEM/MSC/2014"
|
MSC2017: "FEM/MSC/2017"
|
||||||
MSC2014_2: "FEM/MSC/2014.2"
|
|
||||||
MSC2015: "FEM/MSC/2015"
|
|
||||||
MSC2016: "FEM/MSC/2016"
|
|
||||||
# ------------ Defaults ----------------------------------------------
|
# ------------ Defaults ----------------------------------------------
|
||||||
Abaqus: "$Abaqus2017"
|
Abaqus: "$Abaqus2017"
|
||||||
MSC: "$MSC2016"
|
MSC: "$MSC2017"
|
||||||
# ++++++++++++ Documentation +++++++++++++++++++++++++++++++++++++++++
|
# ++++++++++++ Documentation +++++++++++++++++++++++++++++++++++++++++
|
||||||
Doxygen1_8_13: "Documentation/Doxygen/1.8.13"
|
Doxygen1_8_13: "Documentation/Doxygen/1.8.13"
|
||||||
# ------------ Defaults ----------------------------------------------
|
# ------------ Defaults ----------------------------------------------
|
||||||
|
@ -331,42 +325,13 @@ TextureComponents:
|
||||||
- master
|
- master
|
||||||
- release
|
- release
|
||||||
|
|
||||||
###################################################################################################
|
|
||||||
Marc_compileIfort2014:
|
|
||||||
stage: compileMarc2014
|
|
||||||
script:
|
|
||||||
- module load $IntelCompiler16_0 $MSC2014
|
|
||||||
- Marc_compileIfort/test.py -m 2014
|
|
||||||
except:
|
|
||||||
- master
|
|
||||||
- release
|
|
||||||
|
|
||||||
###################################################################################################
|
###################################################################################################
|
||||||
Marc_compileIfort2014.2:
|
Marc_compileIfort2017:
|
||||||
stage: compileMarc2014.2
|
stage: compileMarc2017
|
||||||
script:
|
script:
|
||||||
- module load $IntelCompiler16_0 $MSC2014_2
|
- module load $IntelCompiler17_0 $MSC2017
|
||||||
- Marc_compileIfort/test.py -m 2014.2
|
- Marc_compileIfort/test.py -m 2017
|
||||||
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:
|
except:
|
||||||
- master
|
- master
|
||||||
- release
|
- release
|
||||||
|
@ -375,7 +340,7 @@ Marc_compileIfort2016:
|
||||||
Hex_elastic:
|
Hex_elastic:
|
||||||
stage: marc
|
stage: marc
|
||||||
script:
|
script:
|
||||||
- module load $IntelCompiler16_0 $MSC
|
- module load $IntelCompiler17_0 $MSC
|
||||||
- Hex_elastic/test.py
|
- Hex_elastic/test.py
|
||||||
except:
|
except:
|
||||||
- master
|
- master
|
||||||
|
@ -384,7 +349,7 @@ Hex_elastic:
|
||||||
CubicFCC_elastic:
|
CubicFCC_elastic:
|
||||||
stage: marc
|
stage: marc
|
||||||
script:
|
script:
|
||||||
- module load $IntelCompiler16_0 $MSC
|
- module load $IntelCompiler17_0 $MSC
|
||||||
- CubicFCC_elastic/test.py
|
- CubicFCC_elastic/test.py
|
||||||
except:
|
except:
|
||||||
- master
|
- master
|
||||||
|
@ -393,7 +358,7 @@ CubicFCC_elastic:
|
||||||
CubicBCC_elastic:
|
CubicBCC_elastic:
|
||||||
stage: marc
|
stage: marc
|
||||||
script:
|
script:
|
||||||
- module load $IntelCompiler16_0 $MSC
|
- module load $IntelCompiler17_0 $MSC
|
||||||
- CubicBCC_elastic/test.py
|
- CubicBCC_elastic/test.py
|
||||||
except:
|
except:
|
||||||
- master
|
- master
|
||||||
|
@ -402,7 +367,7 @@ CubicBCC_elastic:
|
||||||
J2_plasticBehavior:
|
J2_plasticBehavior:
|
||||||
stage: marc
|
stage: marc
|
||||||
script:
|
script:
|
||||||
- module load $IntelCompiler16_0 $MSC
|
- module load $IntelCompiler17_0 $MSC
|
||||||
- J2_plasticBehavior/test.py
|
- J2_plasticBehavior/test.py
|
||||||
except:
|
except:
|
||||||
- master
|
- master
|
||||||
|
|
2
CONFIG
2
CONFIG
|
@ -6,6 +6,6 @@ set DAMASK_BIN = ${DAMASK_ROOT}/bin
|
||||||
set DAMASK_NUM_THREADS = 4
|
set DAMASK_NUM_THREADS = 4
|
||||||
|
|
||||||
set MSC_ROOT = /opt/msc
|
set MSC_ROOT = /opt/msc
|
||||||
set MARC_VERSION = 2016
|
set MARC_VERSION = 2017
|
||||||
|
|
||||||
set ABAQUS_VERSION = 2017
|
set ABAQUS_VERSION = 2017
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# usage: source DAMASK.sh
|
# usage: source DAMASK.sh
|
||||||
|
|
||||||
function canonicalPath {
|
function canonicalPath {
|
||||||
python -c "import os,sys; print(os.path.realpath(os.path.expanduser(sys.argv[1])))" $1
|
python -c "import os,sys; print(os.path.normpath(os.path.realpath(os.path.expanduser(sys.argv[1]))))" $1
|
||||||
}
|
}
|
||||||
|
|
||||||
function blink {
|
function blink {
|
||||||
|
@ -17,12 +17,8 @@ else
|
||||||
DAMASK_ROOT=${STAT##* }
|
DAMASK_ROOT=${STAT##* }
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# transition compatibility (renamed $DAMASK_ROOT/DAMASK_env.sh to $DAMASK_ROOT/env/DAMASK.sh)
|
DAMASK_ROOT=$(canonicalPath "$DAMASK_ROOT/../")
|
||||||
if [ ${BASH_SOURCE##*/} == "DAMASK.sh" ]; then
|
|
||||||
DAMASK_ROOT="$DAMASK_ROOT/.."
|
|
||||||
fi
|
|
||||||
|
|
||||||
DAMASK_ROOT=$(canonicalPath $DAMASK_ROOT)
|
|
||||||
|
|
||||||
# shorthand command to change to DAMASK_ROOT directory
|
# shorthand command to change to DAMASK_ROOT directory
|
||||||
eval "function DAMASK_root() { cd $DAMASK_ROOT; }"
|
eval "function DAMASK_root() { cd $DAMASK_ROOT; }"
|
||||||
|
|
|
@ -2,15 +2,14 @@
|
||||||
# usage: source DAMASK.zsh
|
# usage: source DAMASK.zsh
|
||||||
|
|
||||||
function canonicalPath {
|
function canonicalPath {
|
||||||
python -c "import os,sys; print(os.path.realpath(os.path.expanduser(sys.argv[1])))" $1
|
python -c "import os,sys; print(os.path.normpath(os.path.realpath(os.path.expanduser(sys.argv[1]))))" $1
|
||||||
}
|
}
|
||||||
|
|
||||||
# transition compatibility (renamed $DAMASK_ROOT/DAMASK_env.zsh to $DAMASK_ROOT/env/DAMASK.zsh)
|
function blink {
|
||||||
if [ ${0:t:r} = 'DAMASK' ]; then
|
echo -e "\033[2;5m$1\033[0m"
|
||||||
DAMASK_ROOT=${0:a:h}'/..'
|
}
|
||||||
else
|
|
||||||
DAMASK_ROOT=${0:a:h}
|
DAMASK_ROOT=$(canonicalPath "${0:a:h}'/..")
|
||||||
fi
|
|
||||||
|
|
||||||
# shorthand command to change to DAMASK_ROOT directory
|
# shorthand command to change to DAMASK_ROOT directory
|
||||||
eval "function DAMASK_root() { cd $DAMASK_ROOT; }"
|
eval "function DAMASK_root() { cd $DAMASK_ROOT; }"
|
||||||
|
@ -25,13 +24,13 @@ unset -f set
|
||||||
# add DAMASK_BIN if present
|
# add DAMASK_BIN if present
|
||||||
[ "x$DAMASK_BIN != x" ] && PATH=$DAMASK_BIN:$PATH
|
[ "x$DAMASK_BIN != x" ] && PATH=$DAMASK_BIN:$PATH
|
||||||
|
|
||||||
SOLVER=$(type -p DAMASK_spectral || true 2>/dev/null)
|
SOLVER=$(which DAMASK_spectral || true 2>/dev/null)
|
||||||
[ "x$SOLVER == x" ] && SOLVER='Not found!'
|
[ "x$SOLVER" = "x" ] && SOLVER=$(blink 'Not found!')
|
||||||
|
|
||||||
PROCESSING=$(type -p postResults || true 2>/dev/null)
|
PROCESSING=$(which postResults || true 2>/dev/null)
|
||||||
[ "x$PROCESSING == x" ] && PROCESSING='Not found!'
|
[ "x$PROCESSING" = "x" ] && PROCESSING=$(blink 'Not found!')
|
||||||
|
|
||||||
[ "x$DAMASK_NUM_THREADS == x" ] && DAMASK_NUM_THREADS=1
|
[ "x$DAMASK_NUM_THREADS" = "x" ] && DAMASK_NUM_THREADS=1
|
||||||
|
|
||||||
# currently, there is no information that unlimited causes problems
|
# currently, there is no information that unlimited causes problems
|
||||||
# still, http://software.intel.com/en-us/forums/topic/501500 suggest to fix it
|
# still, http://software.intel.com/en-us/forums/topic/501500 suggest to fix it
|
||||||
|
@ -52,16 +51,18 @@ if [ ! -z "$PS1" ]; then
|
||||||
echo "DAMASK $DAMASK_ROOT"
|
echo "DAMASK $DAMASK_ROOT"
|
||||||
echo "Spectral Solver $SOLVER"
|
echo "Spectral Solver $SOLVER"
|
||||||
echo "Post Processing $PROCESSING"
|
echo "Post Processing $PROCESSING"
|
||||||
echo "Multithreading DAMASK_NUM_THREADS=$DAMASK_NUM_THREADS"
|
|
||||||
if [ "x$PETSC_DIR" != "x" ]; then
|
if [ "x$PETSC_DIR" != "x" ]; then
|
||||||
echo "PETSc location $PETSC_DIR"
|
echo -n "PETSc location "
|
||||||
|
[ -d $PETSC_DIR ] && echo $PETSC_DIR || blink $PETSC_DIR
|
||||||
[[ $(canonicalPath "$PETSC_DIR") == $PETSC_DIR ]] \
|
[[ $(canonicalPath "$PETSC_DIR") == $PETSC_DIR ]] \
|
||||||
|| echo " ~~> "$(canonicalPath "$PETSC_DIR")
|
|| echo " ~~> "$(canonicalPath "$PETSC_DIR")
|
||||||
fi
|
fi
|
||||||
[[ "x$PETSC_ARCH" == "x" ]] \
|
[[ "x$PETSC_ARCH" == "x" ]] \
|
||||||
|| echo "PETSc architecture $PETSC_ARCH"
|
|| echo "PETSc architecture $PETSC_ARCH"
|
||||||
echo "MSC.Marc/Mentat $MSC_ROOT"
|
echo -n "MSC.Marc/Mentat "
|
||||||
|
[ -d $MSC_ROOT ] && echo $MSC_ROOT || blink $MSC_ROOT
|
||||||
echo
|
echo
|
||||||
|
echo "Multithreading DAMASK_NUM_THREADS=$DAMASK_NUM_THREADS"
|
||||||
echo -n "heap size "
|
echo -n "heap size "
|
||||||
[[ "$(ulimit -d)" == "unlimited" ]] \
|
[[ "$(ulimit -d)" == "unlimited" ]] \
|
||||||
&& echo "unlimited" \
|
&& echo "unlimited" \
|
||||||
|
|
|
@ -9,10 +9,8 @@ class Marc(Solver):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.solver = 'Marc'
|
self.solver = 'Marc'
|
||||||
self.releases = { \
|
self.releases = { \
|
||||||
|
'2017': ['linux64',''],
|
||||||
'2016': ['linux64',''],
|
'2016': ['linux64',''],
|
||||||
'2015': ['linux64',''],
|
|
||||||
'2014.2':['linux64',''],
|
|
||||||
'2014' :['linux64',''],
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
DAMASK_marc.f90
|
|
|
@ -1 +0,0 @@
|
||||||
DAMASK_marc.f90
|
|
|
@ -1 +0,0 @@
|
||||||
DAMASK_marc.f90
|
|
|
@ -531,7 +531,7 @@ end function getString
|
||||||
!> @details for cumulative keys, "()", values from all occurrences are return. Otherwise only all
|
!> @details for cumulative keys, "()", values from all occurrences are return. Otherwise only all
|
||||||
!! values from the last occurrence. If key is not found exits with error unless default is given.
|
!! values from the last occurrence. If key is not found exits with error unless default is given.
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function getFloats(this,key,defaultVal)
|
function getFloats(this,key,defaultVal,requiredShape)
|
||||||
use IO, only: &
|
use IO, only: &
|
||||||
IO_error, &
|
IO_error, &
|
||||||
IO_stringValue, &
|
IO_stringValue, &
|
||||||
|
@ -542,6 +542,7 @@ function getFloats(this,key,defaultVal)
|
||||||
class(tPartitionedStringList), intent(in) :: this
|
class(tPartitionedStringList), intent(in) :: this
|
||||||
character(len=*), intent(in) :: key
|
character(len=*), intent(in) :: key
|
||||||
real(pReal), dimension(:), intent(in), optional :: defaultVal
|
real(pReal), dimension(:), intent(in), optional :: defaultVal
|
||||||
|
integer(pInt), dimension(:), intent(in), optional :: requiredShape
|
||||||
type(tPartitionedStringList), pointer :: item
|
type(tPartitionedStringList), pointer :: item
|
||||||
integer(pInt) :: i
|
integer(pInt) :: i
|
||||||
logical :: found, &
|
logical :: found, &
|
||||||
|
@ -577,7 +578,7 @@ end function getFloats
|
||||||
!> @details for cumulative keys, "()", values from all occurrences are return. Otherwise only all
|
!> @details for cumulative keys, "()", values from all occurrences are return. Otherwise only all
|
||||||
!! values from the last occurrence. If key is not found exits with error unless default is given.
|
!! values from the last occurrence. If key is not found exits with error unless default is given.
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function getInts(this,key,defaultVal)
|
function getInts(this,key,defaultVal,requiredShape)
|
||||||
use IO, only: &
|
use IO, only: &
|
||||||
IO_error, &
|
IO_error, &
|
||||||
IO_stringValue, &
|
IO_stringValue, &
|
||||||
|
@ -587,7 +588,8 @@ function getInts(this,key,defaultVal)
|
||||||
integer(pInt), dimension(:), allocatable :: getInts
|
integer(pInt), dimension(:), allocatable :: getInts
|
||||||
class(tPartitionedStringList), intent(in) :: this
|
class(tPartitionedStringList), intent(in) :: this
|
||||||
character(len=*), intent(in) :: key
|
character(len=*), intent(in) :: key
|
||||||
integer(pInt), dimension(:), intent(in), optional :: defaultVal
|
integer(pInt), dimension(:), intent(in), optional :: defaultVal, &
|
||||||
|
requiredShape
|
||||||
type(tPartitionedStringList), pointer :: item
|
type(tPartitionedStringList), pointer :: item
|
||||||
integer(pInt) :: i
|
integer(pInt) :: i
|
||||||
logical :: found, &
|
logical :: found, &
|
||||||
|
@ -624,7 +626,7 @@ end function getInts
|
||||||
!! values from the last occurrence. If key is not found exits with error unless default is given.
|
!! values from the last occurrence. If key is not found exits with error unless default is given.
|
||||||
!! If raw is true, the the complete string is returned, otherwise the individual chunks are returned
|
!! If raw is true, the the complete string is returned, otherwise the individual chunks are returned
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function getStrings(this,key,defaultVal,raw)
|
function getStrings(this,key,defaultVal,requiredShape,raw)
|
||||||
use IO, only: &
|
use IO, only: &
|
||||||
IO_error, &
|
IO_error, &
|
||||||
IO_StringValue
|
IO_StringValue
|
||||||
|
@ -634,6 +636,7 @@ function getStrings(this,key,defaultVal,raw)
|
||||||
class(tPartitionedStringList), intent(in) :: this
|
class(tPartitionedStringList), intent(in) :: this
|
||||||
character(len=*), intent(in) :: key
|
character(len=*), intent(in) :: key
|
||||||
character(len=65536),dimension(:), intent(in), optional :: defaultVal
|
character(len=65536),dimension(:), intent(in), optional :: defaultVal
|
||||||
|
integer(pInt), dimension(:), intent(in), optional :: requiredShape
|
||||||
logical, intent(in), optional :: raw
|
logical, intent(in), optional :: raw
|
||||||
type(tPartitionedStringList), pointer :: item
|
type(tPartitionedStringList), pointer :: item
|
||||||
character(len=65536) :: str
|
character(len=65536) :: str
|
||||||
|
|
|
@ -370,11 +370,11 @@ subroutine plastic_kinehardening_init(fileUnit)
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! sanity checks
|
! sanity checks
|
||||||
|
|
||||||
if (any(plastic_kinehardening_Nslip(1:nSlipFamilies,instance) > 0_pInt &
|
if (any(plastic_kinehardening_Nslip (1:nSlipFamilies,instance) > 0_pInt &
|
||||||
.and. param(instance)%crss0(1:nSlipFamilies) < 0.0_pReal)) extmsg = trim(extmsg)//' crss0'
|
.and. param(instance)%crss0 (1:nSlipFamilies) < 0.0_pReal)) extmsg = trim(extmsg)//' crss0'
|
||||||
if (any(plastic_kinehardening_Nslip(1:nSlipFamilies,instance) > 0_pInt &
|
if (any(plastic_kinehardening_Nslip (1:nSlipFamilies,instance) > 0_pInt &
|
||||||
.and. param(instance)%tau1(1:nSlipFamilies) <= 0.0_pReal)) extmsg = trim(extmsg)//' tau1'
|
.and. param(instance)%tau1 (1:nSlipFamilies) <= 0.0_pReal)) extmsg = trim(extmsg)//' tau1'
|
||||||
if (any(plastic_kinehardening_Nslip(1:nSlipFamilies,instance) > 0_pInt &
|
if (any(plastic_kinehardening_Nslip (1:nSlipFamilies,instance) > 0_pInt &
|
||||||
.and. param(instance)%tau1_b(1:nSlipFamilies) < 0.0_pReal)) extmsg = trim(extmsg)//' tau1_b'
|
.and. param(instance)%tau1_b(1:nSlipFamilies) < 0.0_pReal)) extmsg = trim(extmsg)//' tau1_b'
|
||||||
if (param(instance)%gdot0 <= 0.0_pReal) extmsg = trim(extmsg)//' gdot0'
|
if (param(instance)%gdot0 <= 0.0_pReal) extmsg = trim(extmsg)//' gdot0'
|
||||||
if (param(instance)%n_slip <= 0.0_pReal) extmsg = trim(extmsg)//' n_slip'
|
if (param(instance)%n_slip <= 0.0_pReal) extmsg = trim(extmsg)//' n_slip'
|
||||||
|
|
Loading…
Reference in New Issue