Merge branch '30_parsePhasePartOnce' into 19-NewStylePhenopowerlaw
This commit is contained in:
commit
e8a4f588f4
|
@ -7,10 +7,7 @@ stages:
|
|||
- compileSpectralGNU
|
||||
- prepareSpectral
|
||||
- spectral
|
||||
- compileMarc2014
|
||||
- compileMarc2014.2
|
||||
- compileMarc2015
|
||||
- compileMarc2016
|
||||
- compileMarc2017
|
||||
- marc
|
||||
- compileAbaqus2016
|
||||
- compileAbaqus2017
|
||||
|
@ -72,13 +69,10 @@ variables:
|
|||
# ++++++++++++ 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"
|
||||
MSC2017: "FEM/MSC/2017"
|
||||
# ------------ Defaults ----------------------------------------------
|
||||
Abaqus: "$Abaqus2017"
|
||||
MSC: "$MSC2016"
|
||||
MSC: "$MSC2017"
|
||||
# ++++++++++++ Documentation +++++++++++++++++++++++++++++++++++++++++
|
||||
Doxygen1_8_13: "Documentation/Doxygen/1.8.13"
|
||||
# ------------ Defaults ----------------------------------------------
|
||||
|
@ -331,42 +325,13 @@ TextureComponents:
|
|||
- 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
|
||||
Marc_compileIfort2017:
|
||||
stage: compileMarc2017
|
||||
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
|
||||
- module load $IntelCompiler17_0 $MSC2017
|
||||
- Marc_compileIfort/test.py -m 2017
|
||||
except:
|
||||
- master
|
||||
- release
|
||||
|
@ -375,7 +340,7 @@ Marc_compileIfort2016:
|
|||
Hex_elastic:
|
||||
stage: marc
|
||||
script:
|
||||
- module load $IntelCompiler16_0 $MSC
|
||||
- module load $IntelCompiler17_0 $MSC
|
||||
- Hex_elastic/test.py
|
||||
except:
|
||||
- master
|
||||
|
@ -384,7 +349,7 @@ Hex_elastic:
|
|||
CubicFCC_elastic:
|
||||
stage: marc
|
||||
script:
|
||||
- module load $IntelCompiler16_0 $MSC
|
||||
- module load $IntelCompiler17_0 $MSC
|
||||
- CubicFCC_elastic/test.py
|
||||
except:
|
||||
- master
|
||||
|
@ -393,7 +358,7 @@ CubicFCC_elastic:
|
|||
CubicBCC_elastic:
|
||||
stage: marc
|
||||
script:
|
||||
- module load $IntelCompiler16_0 $MSC
|
||||
- module load $IntelCompiler17_0 $MSC
|
||||
- CubicBCC_elastic/test.py
|
||||
except:
|
||||
- master
|
||||
|
@ -402,7 +367,7 @@ CubicBCC_elastic:
|
|||
J2_plasticBehavior:
|
||||
stage: marc
|
||||
script:
|
||||
- module load $IntelCompiler16_0 $MSC
|
||||
- module load $IntelCompiler17_0 $MSC
|
||||
- J2_plasticBehavior/test.py
|
||||
except:
|
||||
- master
|
||||
|
|
2
CONFIG
2
CONFIG
|
@ -6,6 +6,6 @@ set DAMASK_BIN = ${DAMASK_ROOT}/bin
|
|||
set DAMASK_NUM_THREADS = 4
|
||||
|
||||
set MSC_ROOT = /opt/msc
|
||||
set MARC_VERSION = 2016
|
||||
set MARC_VERSION = 2017
|
||||
|
||||
set ABAQUS_VERSION = 2017
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# usage: source DAMASK.sh
|
||||
|
||||
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 {
|
||||
|
@ -17,12 +17,8 @@ else
|
|||
DAMASK_ROOT=${STAT##* }
|
||||
fi
|
||||
|
||||
# transition compatibility (renamed $DAMASK_ROOT/DAMASK_env.sh to $DAMASK_ROOT/env/DAMASK.sh)
|
||||
if [ ${BASH_SOURCE##*/} == "DAMASK.sh" ]; then
|
||||
DAMASK_ROOT="$DAMASK_ROOT/.."
|
||||
fi
|
||||
DAMASK_ROOT=$(canonicalPath "$DAMASK_ROOT/../")
|
||||
|
||||
DAMASK_ROOT=$(canonicalPath $DAMASK_ROOT)
|
||||
|
||||
# shorthand command to change to DAMASK_ROOT directory
|
||||
eval "function DAMASK_root() { cd $DAMASK_ROOT; }"
|
||||
|
|
|
@ -2,15 +2,14 @@
|
|||
# usage: source DAMASK.zsh
|
||||
|
||||
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)
|
||||
if [ ${0:t:r} = 'DAMASK' ]; then
|
||||
DAMASK_ROOT=${0:a:h}'/..'
|
||||
else
|
||||
DAMASK_ROOT=${0:a:h}
|
||||
fi
|
||||
function blink {
|
||||
echo -e "\033[2;5m$1\033[0m"
|
||||
}
|
||||
|
||||
DAMASK_ROOT=$(canonicalPath "${0:a:h}'/..")
|
||||
|
||||
# shorthand command to change to DAMASK_ROOT directory
|
||||
eval "function DAMASK_root() { cd $DAMASK_ROOT; }"
|
||||
|
@ -25,13 +24,13 @@ unset -f set
|
|||
# add DAMASK_BIN if present
|
||||
[ "x$DAMASK_BIN != x" ] && PATH=$DAMASK_BIN:$PATH
|
||||
|
||||
SOLVER=$(type -p DAMASK_spectral || true 2>/dev/null)
|
||||
[ "x$SOLVER == x" ] && SOLVER='Not found!'
|
||||
SOLVER=$(which DAMASK_spectral || true 2>/dev/null)
|
||||
[ "x$SOLVER" = "x" ] && SOLVER=$(blink 'Not found!')
|
||||
|
||||
PROCESSING=$(type -p postResults || true 2>/dev/null)
|
||||
[ "x$PROCESSING == x" ] && PROCESSING='Not found!'
|
||||
PROCESSING=$(which postResults || true 2>/dev/null)
|
||||
[ "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
|
||||
# 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 "Spectral Solver $SOLVER"
|
||||
echo "Post Processing $PROCESSING"
|
||||
echo "Multithreading DAMASK_NUM_THREADS=$DAMASK_NUM_THREADS"
|
||||
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 ]] \
|
||||
|| echo " ~~> "$(canonicalPath "$PETSC_DIR")
|
||||
fi
|
||||
[[ "x$PETSC_ARCH" == "x" ]] \
|
||||
|| 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 "Multithreading DAMASK_NUM_THREADS=$DAMASK_NUM_THREADS"
|
||||
echo -n "heap size "
|
||||
[[ "$(ulimit -d)" == "unlimited" ]] \
|
||||
&& echo "unlimited" \
|
||||
|
|
|
@ -9,10 +9,8 @@ class Marc(Solver):
|
|||
def __init__(self):
|
||||
self.solver = 'Marc'
|
||||
self.releases = { \
|
||||
'2017': ['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
|
||||
!! 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: &
|
||||
IO_error, &
|
||||
IO_stringValue, &
|
||||
|
@ -542,6 +542,7 @@ function getFloats(this,key,defaultVal)
|
|||
class(tPartitionedStringList), intent(in) :: this
|
||||
character(len=*), intent(in) :: key
|
||||
real(pReal), dimension(:), intent(in), optional :: defaultVal
|
||||
integer(pInt), dimension(:), intent(in), optional :: requiredShape
|
||||
type(tPartitionedStringList), pointer :: item
|
||||
integer(pInt) :: i
|
||||
logical :: found, &
|
||||
|
@ -577,7 +578,7 @@ end function getFloats
|
|||
!> @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.
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
function getInts(this,key,defaultVal)
|
||||
function getInts(this,key,defaultVal,requiredShape)
|
||||
use IO, only: &
|
||||
IO_error, &
|
||||
IO_stringValue, &
|
||||
|
@ -587,7 +588,8 @@ function getInts(this,key,defaultVal)
|
|||
integer(pInt), dimension(:), allocatable :: getInts
|
||||
class(tPartitionedStringList), intent(in) :: this
|
||||
character(len=*), intent(in) :: key
|
||||
integer(pInt), dimension(:), intent(in), optional :: defaultVal
|
||||
integer(pInt), dimension(:), intent(in), optional :: defaultVal, &
|
||||
requiredShape
|
||||
type(tPartitionedStringList), pointer :: item
|
||||
integer(pInt) :: i
|
||||
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.
|
||||
!! 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: &
|
||||
IO_error, &
|
||||
IO_StringValue
|
||||
|
@ -634,6 +636,7 @@ function getStrings(this,key,defaultVal,raw)
|
|||
class(tPartitionedStringList), intent(in) :: this
|
||||
character(len=*), intent(in) :: key
|
||||
character(len=65536),dimension(:), intent(in), optional :: defaultVal
|
||||
integer(pInt), dimension(:), intent(in), optional :: requiredShape
|
||||
logical, intent(in), optional :: raw
|
||||
type(tPartitionedStringList), pointer :: item
|
||||
character(len=65536) :: str
|
||||
|
|
|
@ -370,11 +370,11 @@ subroutine plastic_kinehardening_init(fileUnit)
|
|||
!--------------------------------------------------------------------------------------------------
|
||||
! sanity checks
|
||||
|
||||
if (any(plastic_kinehardening_Nslip(1:nSlipFamilies,instance) > 0_pInt &
|
||||
.and. param(instance)%crss0(1:nSlipFamilies) < 0.0_pReal)) extmsg = trim(extmsg)//' crss0'
|
||||
if (any(plastic_kinehardening_Nslip(1:nSlipFamilies,instance) > 0_pInt &
|
||||
.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)%crss0 (1:nSlipFamilies) < 0.0_pReal)) extmsg = trim(extmsg)//' crss0'
|
||||
if (any(plastic_kinehardening_Nslip (1:nSlipFamilies,instance) > 0_pInt &
|
||||
.and. param(instance)%tau1 (1:nSlipFamilies) <= 0.0_pReal)) extmsg = trim(extmsg)//' tau1'
|
||||
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'
|
||||
if (param(instance)%gdot0 <= 0.0_pReal) extmsg = trim(extmsg)//' gdot0'
|
||||
if (param(instance)%n_slip <= 0.0_pReal) extmsg = trim(extmsg)//' n_slip'
|
||||
|
|
Loading…
Reference in New Issue