Merge remote-tracking branch 'origin/development' into 44-column-major-access-to-interaction-matrices
This commit is contained in:
commit
0ea5b58338
|
@ -7,7 +7,7 @@ stages:
|
|||
- compilePETScGNU
|
||||
- prepareSpectral
|
||||
- spectral
|
||||
- compileMarc2017
|
||||
- compileMarc2018_1
|
||||
- marc
|
||||
- compileAbaqus2017
|
||||
- example
|
||||
|
@ -73,10 +73,13 @@ variables:
|
|||
PETSc_MPICH_GNU: "$PETSc3_10_0MPICH3_2GNU7_3"
|
||||
# ++++++++++++ FEM +++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
Abaqus2017: "FEM/Abaqus/2017"
|
||||
MSC2018_1: "FEM/MSC/2018.1"
|
||||
MSC2017: "FEM/MSC/2017"
|
||||
# ------------ Defaults ----------------------------------------------
|
||||
Abaqus: "$Abaqus2017"
|
||||
MSC: "$MSC2017"
|
||||
MSC: "$MSC2018_1"
|
||||
IntelMarc: "$IntelCompiler17_0"
|
||||
IntelAbaqus: "$IntelCompiler16_4"
|
||||
# ++++++++++++ Documentation +++++++++++++++++++++++++++++++++++++++++
|
||||
Doxygen1_8_13: "Documentation/Doxygen/1.8.13"
|
||||
# ------------ Defaults ----------------------------------------------
|
||||
|
@ -148,6 +151,13 @@ Spectral_geometryPacking:
|
|||
- release
|
||||
|
||||
###################################################################################################
|
||||
Post_AverageDown:
|
||||
stage: postprocessing
|
||||
script: averageDown/test.py
|
||||
except:
|
||||
- master
|
||||
- release
|
||||
|
||||
Post_General:
|
||||
stage: postprocessing
|
||||
script: PostProcessing/test.py
|
||||
|
@ -190,6 +200,13 @@ Post_ParaviewRelated:
|
|||
- master
|
||||
- release
|
||||
|
||||
Post_OrientationConversion:
|
||||
stage: postprocessing
|
||||
script: OrientationConversion/test.py
|
||||
except:
|
||||
- master
|
||||
- release
|
||||
|
||||
###################################################################################################
|
||||
Compile_Spectral_Intel:
|
||||
stage: compilePETScIntel
|
||||
|
@ -240,6 +257,13 @@ Compile_Intel_Prepare:
|
|||
- release
|
||||
|
||||
###################################################################################################
|
||||
Thermal:
|
||||
stage: spectral
|
||||
script: Thermal/test.py
|
||||
except:
|
||||
- master
|
||||
- release
|
||||
|
||||
Spectral_PackedGeometry:
|
||||
stage: spectral
|
||||
script: Spectral_PackedGeometry/test.py
|
||||
|
@ -275,6 +299,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
|
||||
|
@ -333,13 +364,6 @@ Phenopowerlaw_singleSlip:
|
|||
- master
|
||||
- release
|
||||
|
||||
HybridIA:
|
||||
stage: spectral
|
||||
script: HybridIA/test.py
|
||||
except:
|
||||
- master
|
||||
- release
|
||||
|
||||
TextureComponents:
|
||||
stage: spectral
|
||||
script: TextureComponents/test.py
|
||||
|
@ -349,20 +373,21 @@ TextureComponents:
|
|||
|
||||
|
||||
###################################################################################################
|
||||
Marc_compileIfort2017:
|
||||
stage: compileMarc2017
|
||||
Marc_compileIfort2018_1:
|
||||
stage: compileMarc2018_1
|
||||
script:
|
||||
- module load $IntelCompiler16_4 $MSC2017
|
||||
- Marc_compileIfort/test.py -m 2017
|
||||
- module load $IntelCompiler17_0 $MSC2018_1
|
||||
- Marc_compileIfort/test.py -m 2018.1
|
||||
except:
|
||||
- master
|
||||
- release
|
||||
|
||||
|
||||
###################################################################################################
|
||||
Hex_elastic:
|
||||
stage: marc
|
||||
script:
|
||||
- module load $IntelCompiler16_4 $MSC
|
||||
- module load $IntelMarc $MSC
|
||||
- Hex_elastic/test.py
|
||||
except:
|
||||
- master
|
||||
|
@ -371,7 +396,7 @@ Hex_elastic:
|
|||
CubicFCC_elastic:
|
||||
stage: marc
|
||||
script:
|
||||
- module load $IntelCompiler16_4 $MSC
|
||||
- module load $IntelMarc $MSC
|
||||
- CubicFCC_elastic/test.py
|
||||
except:
|
||||
- master
|
||||
|
@ -380,7 +405,7 @@ CubicFCC_elastic:
|
|||
CubicBCC_elastic:
|
||||
stage: marc
|
||||
script:
|
||||
- module load $IntelCompiler16_4 $MSC
|
||||
- module load $IntelMarc $MSC
|
||||
- CubicBCC_elastic/test.py
|
||||
except:
|
||||
- master
|
||||
|
@ -389,7 +414,7 @@ CubicBCC_elastic:
|
|||
J2_plasticBehavior:
|
||||
stage: marc
|
||||
script:
|
||||
- module load $IntelCompiler16_4 $MSC
|
||||
- module load $IntelMarc $MSC
|
||||
- J2_plasticBehavior/test.py
|
||||
except:
|
||||
- master
|
||||
|
@ -412,14 +437,6 @@ SpectralExample:
|
|||
only:
|
||||
- development
|
||||
|
||||
AbaqusExample:
|
||||
stage: example
|
||||
script:
|
||||
- module load $IntelCompiler16_4 $Abaqus
|
||||
- Abaqus_example/test.py
|
||||
only:
|
||||
- development
|
||||
|
||||
###################################################################################################
|
||||
SpectralRuntime:
|
||||
stage: performance
|
||||
|
|
|
@ -47,7 +47,7 @@ linker:
|
|||
|
||||
# CMake will execute each target in the ${petsc_config_makefile}
|
||||
# to acquire corresponding PETSc Variables.
|
||||
find_program (MAKE_EXECUTABLE NAMES make gmake)
|
||||
find_program (MAKE_EXECUTABLE NAMES gmake make)
|
||||
# Find the PETSc includes directory settings
|
||||
execute_process (COMMAND ${MAKE_EXECUTABLE} --no-print-directory -f ${petsc_config_makefile} "includes"
|
||||
RESULT_VARIABLE PETSC_INCLUDES_RETURN
|
||||
|
@ -280,7 +280,7 @@ if (CMAKE_Fortran_COMPILER_ID STREQUAL "Intel")
|
|||
# ... for uninitialized variables.
|
||||
set (DEBUG_FLAGS "${DEBUG_FLAGS} -ftrapuv")
|
||||
# ... initializes stack local variables to an unusual value to aid error detection
|
||||
set (DEBUG_FLAGS "${DEBUG_FLAGS} -fpe-all0")
|
||||
set (DEBUG_FLAGS "${DEBUG_FLAGS} -fpe-all=0")
|
||||
# ... capture all floating-point exceptions, sets -ftz automatically
|
||||
|
||||
set (DEBUG_FLAGS "${DEBUG_FLAGS} -warn")
|
||||
|
|
4
CONFIG
4
CONFIG
|
@ -6,6 +6,8 @@ set DAMASK_BIN = ${DAMASK_ROOT}/bin
|
|||
set DAMASK_NUM_THREADS = 4
|
||||
|
||||
set MSC_ROOT = /opt/msc
|
||||
set MARC_VERSION = 2017
|
||||
set MARC_VERSION = 2018.1
|
||||
|
||||
set ABAQUS_VERSION = 2017
|
||||
|
||||
set DAMASK_HDF5 = OFF
|
||||
|
|
|
@ -78,7 +78,7 @@ echo PETSC_DIR: $PETSC_DIR
|
|||
ls $PETSC_DIR/lib
|
||||
|
||||
firstLevel "Python"
|
||||
DEFAULT_PYTHON=python2.7
|
||||
DEFAULT_PYTHON=python3
|
||||
for executable in python python2 python3 python2.7; do
|
||||
getDetails $executable '--version'
|
||||
done
|
||||
|
|
2
PRIVATE
2
PRIVATE
|
@ -1 +1 @@
|
|||
Subproject commit 032ae29de57cc7cc52d429e574b9392e48cc9fcd
|
||||
Subproject commit eb0b46d0b7e23518f13e174bc207ca7cfcb8daac
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
@ -1,23 +0,0 @@
|
|||
# Save by m.diehl on 2017_12_06-18.38.26; build 2017 2016_09_27-23.54.59 126836
|
||||
from abaqus import *
|
||||
upgradeMdb(
|
||||
'/nethome/storage/raid4/m.diehl/DAMASK/examples/AbaqusStandard/SX_PX_compression-6.9-1.cae'
|
||||
,
|
||||
'/nethome/storage/raid4/m.diehl/DAMASK/examples/AbaqusStandard/SX_PX_compression.cae')
|
||||
# Save by m.diehl on 2017_12_06-18.38.26; build 2017 2016_09_27-23.54.59 126836
|
||||
from part import *
|
||||
from material import *
|
||||
from section import *
|
||||
from assembly import *
|
||||
from step import *
|
||||
from interaction import *
|
||||
from load import *
|
||||
from mesh import *
|
||||
from optimization import *
|
||||
from job import *
|
||||
from sketch import *
|
||||
from visualization import *
|
||||
from connectorBehavior import *
|
||||
mdb.jobs['Job_sx-px'].setValues(description='compression', userSubroutine=
|
||||
'$HOME/DAMASK/src/DAMASK_abaqus_std.f')
|
||||
# Save by m.diehl on 2017_12_06-18.39.44; build 2017 2016_09_27-23.54.59 126836
|
|
@ -1,93 +0,0 @@
|
|||
#-------------------#
|
||||
<homogenization>
|
||||
#-------------------#
|
||||
|
||||
[dummy]
|
||||
mech none
|
||||
|
||||
[poly]
|
||||
mech isostrain
|
||||
Nconstituents 10
|
||||
|
||||
|
||||
|
||||
#-------------------#
|
||||
<microstructure>
|
||||
#-------------------#
|
||||
|
||||
|
||||
[Aluminum_001]
|
||||
crystallite 1
|
||||
(constituent) phase 1 texture 1 fraction 1.0
|
||||
|
||||
[Aluminum_10]
|
||||
crystallite 1
|
||||
(constituent) phase 1 texture 2 fraction 1.0
|
||||
|
||||
#-------------------#
|
||||
<crystallite>
|
||||
#-------------------#
|
||||
|
||||
[orientation]
|
||||
(output) eulerangles
|
||||
(output) grainrotation # deviation from initial orientation as axis (1-3) and angle in degree (4)
|
||||
|
||||
#-------------------#
|
||||
<phase>
|
||||
#-------------------#
|
||||
|
||||
|
||||
[Aluminum_phenopowerlaw]
|
||||
# slip only
|
||||
elasticity hooke
|
||||
plasticity phenopowerlaw
|
||||
|
||||
(output) resistance_slip
|
||||
(output) shearrate_slip
|
||||
(output) resolvedstress_slip
|
||||
(output) totalshear
|
||||
(output) resistance_twin
|
||||
(output) shearrate_twin
|
||||
(output) resolvedstress_twin
|
||||
(output) totalvolfrac
|
||||
|
||||
lattice_structure fcc
|
||||
Nslip 12
|
||||
Ntwin 0
|
||||
|
||||
c11 106.75e9
|
||||
c12 60.41e9
|
||||
c44 28.34e9
|
||||
|
||||
gdot0_slip 0.001
|
||||
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
|
||||
|
||||
|
||||
#-------------------#
|
||||
<texture>
|
||||
#-------------------#
|
||||
|
||||
[001]
|
||||
(gauss) phi1 0.000 Phi 45.000 phi2 0.000 scatter 0.000 fraction 1.000
|
||||
|
||||
[random]
|
|
@ -1 +0,0 @@
|
|||
fixed_seed 1697667030
|
|
@ -1,714 +0,0 @@
|
|||
#
|
||||
# General definitions for the Marc 2016 version
|
||||
#
|
||||
# EM64T
|
||||
#
|
||||
# Linux RedHat 6.3 / SuSE 11
|
||||
#
|
||||
# 64 bit MPI version
|
||||
#
|
||||
# Intel(R) Fortran Intel(R) 64 Compiler XE for applications
|
||||
# running on Intel(R) 64, Version 15.0.0.090 Build 20140723
|
||||
#
|
||||
# Intel(R) C Intel(R) 64 Compiler XE for applications
|
||||
# running on Intel(R) 64, Version 15.0.0.090 Build 20140723
|
||||
#
|
||||
# To check the O/S level, type:
|
||||
# uname -a
|
||||
#
|
||||
# Distributed parallel MPI libraries:
|
||||
# 1) HP MPI 2.3
|
||||
# To check the mpi version, type:
|
||||
# mpirun -version
|
||||
# 2) Intel MPI 5.1.3
|
||||
# To check the mpi version, type:
|
||||
# mpiexec.hydra -version
|
||||
#
|
||||
# To check the Compiler level, type using the compiler
|
||||
# installation path:
|
||||
# ifort -V
|
||||
# icc -V
|
||||
#
|
||||
# REMARKS : This file contains the definitions of variables used during
|
||||
# compilation loading and use of the MARC programmes . The
|
||||
# current machine type is identified by means of the variable
|
||||
# MACHINE , defined below.
|
||||
#
|
||||
#
|
||||
# MPI_ROOT: root directory in which mpi shared libraries, etc. are located
|
||||
# DIRJOB : directory in which spawned jobs should look for Marc input
|
||||
# MPI_ARCH: system architecture
|
||||
# MPI_EPATH: path where executable resides
|
||||
#
|
||||
REVISION="VERSION, BUILD"
|
||||
HOSTNAME=`hostname`
|
||||
|
||||
# find available memory in Mbyte on the machine
|
||||
# can be set explicitly
|
||||
MEMLIMIT=`free -m | awk '/Mem:/ {print $2}'`
|
||||
|
||||
# set _OEM_NASTRAN to 1 for MD Nastran build
|
||||
# override _OEM_NASTRAN setting with MARC_MD_NASTRAN environment variable
|
||||
_OEM_NASTRAN="${MARC_MD_NASTRAN:-0}"
|
||||
|
||||
# uncomment the following line for an autoforge build
|
||||
#AUTOFORGE=1
|
||||
AUTOFORGE=0
|
||||
export AUTOFORGE
|
||||
|
||||
# integer size
|
||||
if test "$MARC_INTEGER_SIZE" = "" ; then
|
||||
INTEGER_PATH=
|
||||
else
|
||||
INTEGER_PATH=/$MARC_INTEGER_SIZE
|
||||
fi
|
||||
|
||||
FCOMP=ifort
|
||||
INTELPATH="/opt/intel/composer_xe_2015.0.090"
|
||||
|
||||
# find the root directory of the compiler installation:
|
||||
# - if ifort is found in $PATH, then the root directory is derived
|
||||
# from the path to ifort
|
||||
# - if ifort is not found in $PATH, the root directory is assumed
|
||||
# to be $INTELPATH and the directory in which ifort is found is
|
||||
# added to $PATH
|
||||
FCOMPPATH=`which "$FCOMP" 2>/dev/null`
|
||||
if test -n "$FCOMPPATH"; then
|
||||
# derive the root directory from $FCOMPPATH
|
||||
FCOMPROOT="${FCOMPPATH%/bin/intel64/$FCOMP}"
|
||||
if test "$FCOMPROOT" = "$FCOMPPATH"; then
|
||||
FCOMPROOT="${FCOMPPATH%/bin/$FCOMP}"
|
||||
fi
|
||||
if test "$FCOMPROOT" = "$FCOMPPATH"; then
|
||||
FCOMPROOT=
|
||||
fi
|
||||
elif test -d "$INTELPATH"; then
|
||||
# check for compiler in $INTELPATH
|
||||
if test -d "$INTELPATH/bin/intel64" -a \
|
||||
-x "$INTELPATH/bin/intel64/$FCOMP" ; then
|
||||
FCOMPROOT="$INTELPATH"
|
||||
PATH="$INTELPATH/bin/intel64:$PATH"
|
||||
elif test -d "$INTELPATH/bin" -a \
|
||||
-x "$INTELPATH/bin/$FCOMP"; then
|
||||
FCOMPROOT="$INTELPATH"
|
||||
PATH="$INTELPATH/bin:$PATH"
|
||||
else
|
||||
FCOMPROOT=
|
||||
fi
|
||||
else
|
||||
FCOMPROOT=
|
||||
fi
|
||||
|
||||
# settings for MKL
|
||||
MARC_MKL="$FCOMPROOT/mkl/lib/intel64"
|
||||
|
||||
#
|
||||
# settings for Metis
|
||||
#
|
||||
METIS="-I$METIS_SOURCE/include"
|
||||
METISLIBS="$MARC_LIB/metis.a "
|
||||
|
||||
#
|
||||
# settings for MPI
|
||||
#
|
||||
# RCP and RSH are used for parallel network runs
|
||||
# replace with similar commands like rsh if needed
|
||||
RCP=/usr/bin/scp
|
||||
RSH=/usr/bin/ssh
|
||||
#
|
||||
|
||||
|
||||
MPI_DEFAULT=intelmpi
|
||||
MPI_OTHER=hpmpi
|
||||
|
||||
MPITYPE=$MPI_DEFAULT
|
||||
|
||||
if test $AUTOFORGE
|
||||
then
|
||||
if test $AUTOFORGE = 1
|
||||
then
|
||||
MPITYPE=none
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# overrule MPITYPE setting with environmental variable MARC_MPITYPE
|
||||
if test $MARC_MPITYPE
|
||||
then
|
||||
MPITYPE=$MARC_MPITYPE
|
||||
fi
|
||||
|
||||
# always set MPITYPE to none for MD Nastran
|
||||
if test "$_OEM_NASTRAN" -ne 0
|
||||
then
|
||||
MPITYPE=none
|
||||
fi
|
||||
|
||||
# Edit following lines to build with GPGPU version of BCS Solver for
|
||||
# NVIDIA platforms
|
||||
#BCSGPUSOLVER=NONE
|
||||
BCSGPUSOLVER=BCSGPU
|
||||
|
||||
SOLVERFLAGS=
|
||||
if test "$BCSGPUSOLVER" = BCSGPU
|
||||
then
|
||||
SOLVERFLAGS="$SOLVERFLAGS -DBCSGPU -DCUDA"
|
||||
BCS_DIR=bcsgpusolver
|
||||
export PATH=$MARC_CUDA/bin:$MARC_CUDA/nvvm:$PATH
|
||||
export LD_LIBRARY_PATH=$MARC_CUDA/lib64:$LD_LIBRARY_PATH
|
||||
else
|
||||
BCS_DIR=bcssolver
|
||||
fi
|
||||
#
|
||||
# settings for MPI
|
||||
#
|
||||
DDM=
|
||||
if test $MPITYPE != none
|
||||
then
|
||||
if test $MPITYPE = hpmpi
|
||||
then
|
||||
FCOMPMPI=mpif90
|
||||
export MPI_ROOT=$MARC_HPMPI
|
||||
export MPI_REMSH=$RSH
|
||||
export MPI_F77=$FCOMP
|
||||
ARCHITECTURE=linux_amd64
|
||||
DDM="-I$MPI_ROOT/include/64 -DDDM -DHPMPI"
|
||||
MPI_CLEAN=
|
||||
export MPI_EPATH=$MARC_BIN
|
||||
export LD_LIBRARY_PATH=$MPI_ROOT/lib/$ARCHITECTURE:$MARC_LIB:$MARC_LIB_SHARED:$LD_LIBRARY_PATH
|
||||
export MPIHPSPECIAL="-e MPI_FLAGS=E,T,y1"
|
||||
# Below line is moved in run_marc file
|
||||
# export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
|
||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e BINDIR=$MARC_BIN"
|
||||
if test -n "$MSC_LICENSE_FILE"
|
||||
then
|
||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e MSC_LICENSE_FILE=$MSC_LICENSE_FILE"
|
||||
fi
|
||||
if test -n "$LM_LICENSE_FILE"
|
||||
then
|
||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e LM_LICENSE_FILE=$LM_LICENSE_FILE"
|
||||
fi
|
||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e MPI_LIC_CHECKER=$MPI_ROOT/bin/licensing/amd64_s8/lichk.x"
|
||||
RUN_JOB2="$MPI_ROOT/bin/mpirun ${MPIRUNOPTIONS} -prot -f "
|
||||
RUN_JOB1="$MPI_ROOT/bin/mpirun ${MPIRUNOPTIONS} -prot -w $MPIHPSPECIAL -np "
|
||||
RUN_JOB0=
|
||||
fi
|
||||
if test $MPITYPE = intelmpi
|
||||
then
|
||||
INTELMPI_VERSION=HYDRA
|
||||
FCOMPMPI=mpiifort
|
||||
MPI_ROOT=$MARC_INTELMPI
|
||||
DDM="-I${MPI_ROOT}/include64 -DDDM"
|
||||
PATH=$MPI_ROOT/bin64:$PATH
|
||||
export PATH
|
||||
LD_LIBRARY_PATH=$MPI_ROOT/lib64:$LD_LIBRARY_PATH
|
||||
export LD_LIBRARY_PATH
|
||||
if test $INTELMPI_VERSION = HYDRA
|
||||
then
|
||||
RUN_JOB1="${MPI_ROOT}/bin64/mpiexec.hydra -genvall -n "
|
||||
RUN_JOB2="${MPI_ROOT}/bin64/mpiexec.hydra -genvall"
|
||||
else
|
||||
RUN_JOB1="${MPI_ROOT}/bin64/mpiexec -n "
|
||||
RUN_JOB2="${MPI_ROOT}/bin64/mpiexec -configfile "
|
||||
fi
|
||||
RUN_JOB0=
|
||||
MPI_CLEAN=
|
||||
MPI_EPATH=$MARC_BIN
|
||||
MPIR_HOME=$MPI_ROOT
|
||||
MPICH_F77=$FCOMP
|
||||
MPICH_F77LINKER=$FCOMP
|
||||
export MPI_ROOT MPI_EPATH MPIR_HOME MPICH_F77 MPICH_F77LINKER
|
||||
I_MPI_PIN_DOMAIN=node
|
||||
export I_MPI_PIN_DOMAIN
|
||||
fi
|
||||
else
|
||||
MPI_ROOT=$MARC_DUMMYMPI
|
||||
export MPI_ROOT=$MARC_DUMMYMPI
|
||||
DDM="-I$MPI_ROOT/include"
|
||||
fi
|
||||
|
||||
#
|
||||
# variables for the "maintain" script
|
||||
#
|
||||
|
||||
MACHINENAME=LINUX
|
||||
MACHINE64BIT=yes
|
||||
MACHINE=Linux_EM64T
|
||||
DEV=/dev/tape
|
||||
GETLOG="whoami"
|
||||
CLEAR="clear"
|
||||
MY_UNAME=`uname -a`
|
||||
|
||||
# Edit following 2 lines to build with VKI Solver
|
||||
#VKISOLVER=VKI
|
||||
VKISOLVER=NONE
|
||||
|
||||
# Edit following 2 lines to build with CASI Solver
|
||||
CASISOLVER=CASI
|
||||
if test "$MARC_CASISOLVER" = "NONE" ; then
|
||||
CASISOLVER=NONE
|
||||
fi
|
||||
#CASISOLVER=NONE
|
||||
|
||||
# Edit following 2 lines to build with MF2 Solver
|
||||
MF2SOLVER=NONE
|
||||
#MF2SOLVER=SERIAL
|
||||
#MF2SOLVER=MF2PARALLEL
|
||||
|
||||
# Edit following lines to build with Intel(c) Multithreaded solver (PARDISO)
|
||||
#INTELSOLVER=NONE
|
||||
INTELSOLVER=PARDISO
|
||||
|
||||
# Edit following lines to build with MUMPS
|
||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
||||
#MUMPSSOLVER=NONE
|
||||
MUMPSSOLVER=MUMPS
|
||||
else
|
||||
#MUMPSSOLVER=NONE
|
||||
MUMPSSOLVER=MUMPS
|
||||
fi
|
||||
|
||||
# Edit following 2 lines to build MARC dynamic shared library
|
||||
MARC_DLL=MARC_DLL
|
||||
MARC_DLL=NONE
|
||||
|
||||
# always set VKISOLVER, CASISOLVER, BCSGPUSOLVER, and MARC_DLL to NONE for MD Nastran
|
||||
if test "$_OEM_NASTRAN" -ne 0
|
||||
then
|
||||
VKISOLVER=NONE
|
||||
CASISOLVER=NONE
|
||||
MF2SOLVER=NONE
|
||||
INTELSOLVER=NONE
|
||||
MUMPSSOLVER=NONE
|
||||
BCSGPUSOLVER=NONE
|
||||
MARC_DLL=NONE
|
||||
fi
|
||||
|
||||
#
|
||||
# define Fortran and C compile syntax
|
||||
#
|
||||
if test "$VKISOLVER" = VKI
|
||||
then
|
||||
SOLVERFLAGS="$SOLVERFLAGS -DVKI"
|
||||
fi
|
||||
|
||||
if test "$CASISOLVER" = CASI
|
||||
then
|
||||
SOLVERFLAGS="$SOLVERFLAGS -DCASI"
|
||||
fi
|
||||
|
||||
if test "$MF2SOLVER" = MF2PARALLEL
|
||||
then
|
||||
SOLVERFLAGS="$SOLVERFLAGS -DMF2PARALLEL"
|
||||
fi
|
||||
if test "$MF2SOLVER" = MF2SERIAL
|
||||
then
|
||||
SOLVERFLAGS="$SOLVERFLAGS -DMF2SERIAL"
|
||||
fi
|
||||
|
||||
if test "$INTELSOLVER" = PARDISO
|
||||
then
|
||||
SOLVERFLAGS="$SOLVERFLAGS -DPARDISO"
|
||||
fi
|
||||
|
||||
if test "$MUMPSSOLVER" = MUMPS
|
||||
then
|
||||
SOLVERFLAGS="$SOLVERFLAGS -DMUMPS"
|
||||
fi
|
||||
|
||||
|
||||
if test "$MARC_DLL" = MARC_DLL
|
||||
then
|
||||
SOLVERFLAGS="$SOLVERFLAGS -DMARC_DLL"
|
||||
fi
|
||||
|
||||
LINK_OPT=
|
||||
DEBUG_OPT=
|
||||
C_DEBUG_OPT=
|
||||
|
||||
#Uncomment following line to build Marc in debuggable mode
|
||||
MARCDEBUG=
|
||||
#MARCDEBUG="ON"
|
||||
|
||||
if test "$MARCDEBUG" = "ON"
|
||||
then
|
||||
LINK_OPT="-debug -traceback"
|
||||
DEBUG_OPT="-debug -traceback"
|
||||
C_DEBUG_OPT="-debug -traceback"
|
||||
fi
|
||||
|
||||
|
||||
MARCCHECK=
|
||||
#MARCCHECK="ON"
|
||||
if test "$MARCCHECK" = "ON"
|
||||
then
|
||||
DEBUG_OPT="$DEBUG_OPT -fpe0 -fp-stack-check -check all -ftrapuv "
|
||||
C_DEBUG_OPT="$C_DEBUG_OPT -fp-stack-check -check-uninit -Wformat -ftrapuv "
|
||||
fi
|
||||
|
||||
MARCCODECOV=
|
||||
#MARCCODECOV="ON"
|
||||
|
||||
MARCCODEPROF=
|
||||
#MARCCODEPROF="ON"
|
||||
|
||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
||||
I8FFLAGS=
|
||||
I8DEFINES=
|
||||
I8CDEFINES=
|
||||
I8CASIDEFS=
|
||||
else
|
||||
I8FFLAGS="-i8"
|
||||
I8DEFINES="-DI64"
|
||||
I8CDEFINES="-U_DOUBLE -D_SINGLE"
|
||||
I8CASIDEFS="-DCASI_64BIT_INT=1"
|
||||
fi
|
||||
|
||||
MTHREAD=OPENMP
|
||||
if test "$MARC_OPENMP" = "NONE" ; then
|
||||
MTHREAD=NONE
|
||||
fi
|
||||
#MTHREAD=NONE
|
||||
if test "$_OEM_NASTRAN" -ne 0
|
||||
then
|
||||
MTHREAD=NONE
|
||||
fi
|
||||
|
||||
OMP_COMPAT=NO
|
||||
OMP_COMPAT=YES
|
||||
if test "$MTHREAD" = "NONE"
|
||||
then
|
||||
OMP_COMPAT=NO
|
||||
fi
|
||||
|
||||
CDEFINES=
|
||||
FDEFINES=
|
||||
|
||||
if test "$_OEM_NASTRAN" -ne 0
|
||||
then
|
||||
CDEFINES="$CDEFINES -D_OEM_NASTRAN"
|
||||
FDEFINES="$FDEFINES -D_OEM_NASTRAN"
|
||||
fi
|
||||
|
||||
FDEFINES="$FDEFINES -D_IMPLICITNONE"
|
||||
|
||||
if test "$_OEM_NASTRAN" -eq 0
|
||||
then
|
||||
FDEFINES="$FDEFINES -DMKL -DOPENMP"
|
||||
fi
|
||||
|
||||
if test "$OMP_COMPAT" = "YES"
|
||||
then
|
||||
FDEFINES="$FDEFINES -DOMP_COMPAT"
|
||||
fi
|
||||
|
||||
# -D_MSCMARC
|
||||
FDEFINES="$FDEFINES -D_MSCMARC $DEBUG_OPT $MARC_SIMUFACT"
|
||||
CDEFINES="$CDEFINES -D_MSCMARC $C_DEBUG_OPT $I8CDEFINES"
|
||||
|
||||
CINCL="-I$MARC_SOURCE/mdsrc -I$MARC_SOURCE/csource $METIS"
|
||||
if test "$_OEM_NASTRAN" -ne 0
|
||||
then
|
||||
CINCL="$CINCL -I../../include"
|
||||
fi
|
||||
|
||||
CC="icc -c -O1 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
||||
CCLOW="icc -c -O0 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
||||
CCHIGH="icc -c -O3 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
||||
|
||||
if test "$MARCDEBUG" = "ON"
|
||||
then
|
||||
CC="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
||||
CCLOW="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
||||
CCHIGH="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
||||
fi
|
||||
|
||||
LOAD_CC="icc -O1 -DLinux -DLINUX -DLinux_intel"
|
||||
CCT="$CC"
|
||||
CCTLOW="$CCLOW"
|
||||
CCTHIGH="$CCHIGH"
|
||||
|
||||
CC_CASI="$CC -std=c99 $I8CASIDEFS"
|
||||
CCLOW_CASI="$CCLOW -std=c99 $I8CASIDEFS"
|
||||
CCHIGH_CASI="$CCHIGH -std=c99 $I8CASIDEFS"
|
||||
|
||||
CCT_CASI="$CCT -std=c99 $I8CASIDEFS"
|
||||
CCTLOW_CASI="$CCLOW -std=c99 $I8CASIDEFS"
|
||||
CCTHIGH_CASI="$CCHIGH -std=c99 $I8CASIDEFS"
|
||||
|
||||
#PROFILE="-Mprof=func"
|
||||
#PROFILE="-Mprof=lines"
|
||||
#PROFILE="-Mprof=func,mpi"
|
||||
PROFILE=
|
||||
if test "$MARCCODECOV" = "ON"
|
||||
then
|
||||
PROFILE="-prof-gen=srcpos"
|
||||
fi
|
||||
if test "$MARCCODEPROF" = "ON"
|
||||
then
|
||||
PROFILE=" $PROFILE -pg"
|
||||
fi
|
||||
|
||||
FORT_OPT="-c -assume byterecl -safe_cray_ptr -mp1 -WB -fp-model source"
|
||||
if test "$MTHREAD" = "OPENMP"
|
||||
then
|
||||
FORT_OPT=" $FORT_OPT -openmp"
|
||||
if test "$OMP_COMPAT" = "YES"
|
||||
then
|
||||
FORT_OPT=" $FORT_OPT -openmp-threadprivate=compat"
|
||||
fi
|
||||
else
|
||||
# FORT_OPT=" $FORT_OPT -auto "
|
||||
FORT_OPT=" $FORT_OPT -save -zero"
|
||||
fi
|
||||
|
||||
FORTLOW="$FCOMP $FORT_OPT $PROFILE -O0 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
||||
FORTRAN="$FCOMP $FORT_OPT $PROFILE -O1 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
||||
FORTHIGH="$FCOMP $FORT_OPT $PROFILE -fno-alias -O3 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
||||
FORTNA="$FCOMP $FORT_OPT -fno-alias -O3 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
||||
|
||||
if test "$MARCDEBUG" = "ON"
|
||||
then
|
||||
FORTLOW="$FCOMP $FORT_OPT $PROFILE $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
||||
FORTRAN="$FCOMP $FORT_OPT $PROFILE $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
||||
FORTHIGH="$FCOMP $FORT_OPT $PROFILE -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
||||
FORTNA="$FCOMP $FORT_OPT -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
||||
fi
|
||||
|
||||
FORTLOWT="$FORTLOW"
|
||||
FORTRANT="$FORTRAN"
|
||||
FORTHIGHT="$FORTHIGH"
|
||||
|
||||
FORTRANMNF="$FCOMP -c $FDEFINES "
|
||||
CCMNF="icc -c -O1 -DLinux -DLINUX -DLinux_intel -Dport2egcs -I$MARC_SOURCE/marctoadams/mnf/include -D_LARGEFILE64_SOURCE"
|
||||
|
||||
FORTRANMUMPS="$FCOMP -fpp $FORT_OPT $PROFILE -fno-alias -O1 -fp-model precise $FDEFINES -D_IMPLICITNONE $I8FFLAGS $I8DEFINES $DDM -I$MARC_SOURCE/mumpssolver/include -Dintel_ -DALLOW_NON_INIT -Dmetis -nofor_main"
|
||||
CCMUMPS="icc -c -DAdd_ -Dmetis -I$MARC_SOURCE/mumpssolver/include"
|
||||
|
||||
|
||||
BCSCC="icc -c -O3 -DLOWERCASE_ -I${MARC_SOURCE}/${BCS_DIR}/bcslib_csrc $CDEFINES $CINCL"
|
||||
NVCC="nvcc -c -O3 -arch sm_20 -DLOWERCASE_ -I${MARC_SOURCE}/${BCS_DIR}/bcslib_cuda/include -I${MARC_CUDA}/include -I$MARC_SOURCE/mdsrc $I8DEFINES -Xcompiler -fvisibility=hidden -Xcompiler -fPIC $I8DEFINES "
|
||||
NVCCLIB="ar rvl"
|
||||
NVCCLD=icc
|
||||
BCSFORTLOW="$FORTLOW -I${MARC_SOURCE}/${BCS_DIR}/common"
|
||||
BCSFORTRAN="$FORTRAN -I${MARC_SOURCE}/${BCS_DIR}/common"
|
||||
BCSFORTHIGH="$FORTHIGH -I${MARC_SOURCE}/${BCS_DIR}/common"
|
||||
BCSFORT90HIGH="$BCSFORTHIGH"
|
||||
if test "$MARCDEBUG" = "ON"
|
||||
then
|
||||
BCSFORTRAN=$BCSFORTLOW
|
||||
BCSFORTHIGH=$BCSFORTLOW
|
||||
BCSFORT90HIGH=$BCSFORTLOW
|
||||
fi
|
||||
|
||||
if test $MPITYPE != none
|
||||
then
|
||||
if test $MPITYPE = hpmpi
|
||||
then
|
||||
LOAD="$MPI_ROOT/bin/$FCOMPMPI ${LOADOPTIONS} -L$MPI_ROOT/lib/$ARCHITECTURE $PROFILE $LINK_OPT -o "
|
||||
LOADT="$MPI_ROOT/bin/$FCOMPMPI ${LOADOPTIONS} -L$MPI_ROOT/lib/$ARCHITECTURE $PROFILE $LINK_OPT -o "
|
||||
fi
|
||||
# Uncomment the following lines to turn on the tracer and commnet out the next 5 lines
|
||||
# if test $MPITYPE = intelmpi
|
||||
# then
|
||||
# INCLUDEMPI="-I$MPI_ROOT/include64 -I$VT_ROOT/include"
|
||||
# LOAD="$MPI_ROOT/bin64/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
||||
# LOADT="$MPI_ROOT/bin64/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
||||
# fi
|
||||
if test $MPITYPE = intelmpi
|
||||
then
|
||||
LOAD="ifort $PROFILE $LINK_OPT -o "
|
||||
LOADT="ifort $PROFILE $LINK_OPT -o "
|
||||
fi
|
||||
else
|
||||
LOAD="$FCOMP $LINK_OPT -o "
|
||||
LOADT="$FCOMP $LINK_OPT -o "
|
||||
fi
|
||||
|
||||
if test "$MARC_DLL" = MARC_DLL
|
||||
then
|
||||
FORTLOW="$FORTLOW -fpp -fPIC"
|
||||
FORTRAN="$FORTRAN -fpp -fPIC"
|
||||
FORTHIGH="$FORTHIGH -fpp -fPIC"
|
||||
FORTRANMNF="$FORTRANMNF -fpp -fPIC"
|
||||
CC="$CC -fPIC"
|
||||
CCMNF="$CCMNF -fPIC"
|
||||
CC_CASI="$CC_CASI -fPIC"
|
||||
CCLOW_CASI="$CCLOW_CASI -fPIC"
|
||||
CCHIGH_CASI="$CCHIGH_CASI -fPIC"
|
||||
LINK_EXE_MARC="-L$MARC_LIB -lmarc -L$MARC_LIB_SHARED -lguide -lpthread"
|
||||
LINK_MARC_DLL="-shared -fPIC"
|
||||
LOAD_DLL=$LOAD
|
||||
LOADT_DLL=$LOADT
|
||||
EXT_DLL="so"
|
||||
fi
|
||||
|
||||
|
||||
XLIBS="-L/usr/X11/lib -lX11 "
|
||||
|
||||
#
|
||||
# define archive and ranlib syntax
|
||||
#
|
||||
|
||||
ARC="ar rvl"
|
||||
ARD="ar dvl"
|
||||
ARX="ar xl"
|
||||
RAN=""
|
||||
|
||||
#
|
||||
# choose which libraries you want to use ( e.g. blas )
|
||||
#
|
||||
|
||||
if test "$VKISOLVER" = VKI
|
||||
then
|
||||
VKISOLVERLIBS="$MARC_LIB/vkisolver.a"
|
||||
else
|
||||
VKISOLVERLIBS=
|
||||
fi
|
||||
|
||||
if test "$CASISOLVER" = CASI
|
||||
then
|
||||
CASISOLVERLIBS="$MARC_CASI/casilib.a"
|
||||
else
|
||||
CASISOLVERLIBS=
|
||||
fi
|
||||
|
||||
MF2SOLVERLIBS=
|
||||
if test "$MF2SOLVER" = MF2PARALLEL
|
||||
then
|
||||
MF2SOLVERLIBS="$MARC_LIB/mf2parallel/libseq.a \
|
||||
$MARC_LIB/mf2parallel/libsym.a \
|
||||
$MARC_LIB/mf2parallel/libmet.a \
|
||||
$MARC_LIB/mf2parallel/libmf2.a \
|
||||
$MARC_LIB/mf2parallel/libgauss.a \
|
||||
$MARC_LIB/mf2parallel/libmf2.a \
|
||||
$MARC_LIB/mf2parallel/libgauss.a \
|
||||
$MARC_LIB/mf2parallel/libnum.a \
|
||||
$MARC_LIB/mf2parallel/libutl.a \
|
||||
$MARC_LIB/mf2parallel/libr8.a \
|
||||
$MARC_LIB/mf2parallel/libz.a "
|
||||
fi
|
||||
|
||||
if test "$MUMPSSOLVER" = MUMPS
|
||||
then
|
||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a"
|
||||
if test $MPITYPE = none
|
||||
then
|
||||
MUMPSSOLVERLIBS2=
|
||||
echo hello > /dev/null
|
||||
fi
|
||||
if test $MPITYPE = intelmpi
|
||||
then
|
||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_intelmpi_lp64.a "
|
||||
else
|
||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_intelmpi_ilp64.a "
|
||||
fi
|
||||
fi
|
||||
if test $MPITYPE = hpmpi
|
||||
then
|
||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_lp64.a"
|
||||
else
|
||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_ilp64.a"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
MUMPSSOLVERLIBS=
|
||||
MUMPSSOLVERLIBS2=
|
||||
fi
|
||||
|
||||
if test "$BCSGPUSOLVER" = BCSGPU
|
||||
then
|
||||
BCSSOLVERLIBS="${MARC_LIB}/bcsgpulib.a "
|
||||
MARCCUDALIBS1="-L${MARC_LIB}/cuda_dummy -lmarccuda "
|
||||
MARCCUDALIBS2="-L${MARC_LIB}/cuda -lmarccuda "
|
||||
MARCCUDALIBS=$MARCCUDALIBS1
|
||||
CUDALIBS="-L$MARC_CUDA/lib64 -lcudart -lcublas -L/usr/lib64 -lcuda "
|
||||
else
|
||||
BCSSOLVERLIBS="${MARC_LIB}/bcslib.a "
|
||||
fi
|
||||
|
||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
||||
MKLLIB="$MARC_MKL/libmkl_scalapack_lp64.a $MARC_MKL/libmkl_blacs_lp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_lp64.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_core.a -Wl,--end-group"
|
||||
else
|
||||
MKLLIB="$MARC_MKL/libmkl_scalapack_ilp64.a $MARC_MKL/libmkl_blacs_ilp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_ilp64.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_core.a -Wl,--end-group"
|
||||
fi
|
||||
|
||||
SECLIBS="-L$MARC_LIB -llapi"
|
||||
|
||||
SOLVERLIBS="${BCSSOLVERLIBS} ${VKISOLVERLIBS} ${CASISOLVERLIBS} ${MF2SOLVERLIBS} ${MUMPSSOLVERLIBS2} \
|
||||
$MKLLIB -L$MARC_MKL -liomp5 \
|
||||
$MARC_LIB/blas_src.a ${ACSI_LIB}/ACSI_MarcLib.a "
|
||||
|
||||
SOLVERLIBS_DLL=${SOLVERLIBS}
|
||||
|
||||
MRCLIBS="$MARC_LIB/clib.a ${CASISOLVERLIBS}"
|
||||
MRCLIBSPAR="$MARC_LIB/clib.a"
|
||||
STUBS="$MARC_LIB/stubs.a "
|
||||
MNFLIBS="$MARC_LIB/libmnf.a"
|
||||
MDUSER="$MARC_LIB/md_user.a"
|
||||
if test "X$MARC_SIMUFACT" != "X"
|
||||
then
|
||||
SFLIB="-L$SFMATDIR -lMBA_Grain $SFMATDIR/sfclib.a "
|
||||
else
|
||||
SFLIB=" "
|
||||
fi
|
||||
|
||||
OPENMP="-openmp"
|
||||
|
||||
SYSLIBS=" $OPENMP -lpthread -shared-intel "
|
||||
|
||||
# Uncomment the following lines to turn on the trace and comment out the next 4 lines
|
||||
# if test $MPITYPE = intelmpi
|
||||
# then
|
||||
# SYSLIBS="-L${VT_ROOT}/lib -lVT -ldwarf -lelf -lm -lpthread \
|
||||
# -L${MPI_ROOT}/lib64 -lmpi -lmpiif -lmpigi -lrt"
|
||||
# fi
|
||||
if test $MPITYPE = intelmpi
|
||||
then
|
||||
SYSLIBS="-L${MPI_ROOT}/lib64 -lmpi_mt -lmpifort -lrt $OPENMP -threads -lpthread -shared-intel "
|
||||
fi
|
||||
|
||||
|
||||
SYSLIBSPAR=" "
|
||||
|
||||
MARC_DLL_CODES="runmarc.f"
|
||||
|
||||
|
||||
BLAS_SRC="dzero.f icopy.f izero.f"
|
||||
if test "$_OEM_NASTRAN" -ne 0
|
||||
then
|
||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
||||
BLAS_SRC="$BLAS_SRC dsctr.f zsctr.f dzasum.f daxpyi.f zaxpyi.f dgthr.f zgthr.f"
|
||||
else
|
||||
BLAS_SRC="ALL"
|
||||
fi
|
||||
fi
|
||||
|
||||
LOW_OPT_CODES="are163.f contro.f ndext.f omarc.f omarca.f omarcb.f omarcc.f \
|
||||
omars.f fixbc.f triang.f bet049.f norst3.f eldata.f \
|
||||
elec*.f elct*.f fmeig.f oada00.f ogeig.f updtrbe2.f cycrota.f \
|
||||
cordef.f ogpk.f ogtan.f eldam.f formrbe3.f \
|
||||
inertie.f em_sso072.f cn_fol3d_qpatch6.f cosim_begin.f"
|
||||
if test "$MARC_INTEGER_SIZE" = "i8" ; then
|
||||
LOW_OPT_CODES="$LOW_OPT_CODES bbcseg.f"
|
||||
fi
|
||||
LOW_OPT_CODES_CASI=""
|
||||
|
||||
HIGH_OPT_CODES="dpsmsa1.f dpsmsa2.f dpsmsa3.f dpsmsa4.f dpsmsa5.f dpsmsa6.f \
|
||||
dpsmsa7.f dpsmsa8.f dpsmsa9.f dpsmsa10.f dpsmsa11.f dpsmsa12.f \
|
||||
dpsmsa13.f dpsmsa14.f dpsmsa15.f dpsmsa16.f dpsmsah.f tpsmsah.f cn_qsort4_11.f "
|
||||
|
||||
|
||||
HIGH_OPT_CODES_CASI="arithkernels.c blockedroutines.c blockedroutines_fd.c elemmatgenkernels.c longvecroutines.c sfmultutils.c solvewithbd.c"
|
||||
|
||||
MAXNUM=1000000
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,52 +0,0 @@
|
|||
#!/bin/ksh
|
||||
# 1st arg: $DIR
|
||||
# 2nd arg: $DIRJOB
|
||||
# 3rd arg: $user
|
||||
# 4th arg: $program
|
||||
DIR=$1
|
||||
user=$3
|
||||
program=$4
|
||||
usernoext=$user
|
||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f`
|
||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F`
|
||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .for`
|
||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f90`
|
||||
|
||||
# add BLAS options for linking
|
||||
BLAS="%BLAS%"
|
||||
|
||||
. $DIR/tools/include
|
||||
DIRJOB=$2
|
||||
cd $DIRJOB
|
||||
echo "Compiling and linking user subroutine $user on host `hostname`"
|
||||
echo "program: $program"
|
||||
$DFORTHIGHMP $user || \
|
||||
{
|
||||
echo "$0: compile failed for $user"
|
||||
exit 1
|
||||
}
|
||||
/bin/rm $program 2>/dev/null
|
||||
userobj=$usernoext.o
|
||||
|
||||
|
||||
$LOAD ${program} $DIR/lib/main.o\
|
||||
$DIR/lib/blkdta.o $DIR/lib/comm?.o \
|
||||
${userobj-} \
|
||||
$DIR/lib/srclib.a \
|
||||
$MNFLIBS \
|
||||
$MDUSER \
|
||||
../lib/mdsrc.a \
|
||||
../lib/mcvfit.a \
|
||||
$STUBS \
|
||||
${SOLVERLIBS} \
|
||||
$TKLIBS \
|
||||
$MRCLIBS \
|
||||
$METISLIBS \
|
||||
$BLAS \
|
||||
$SYSLIBS || \
|
||||
{
|
||||
echo "$0: link failed for $usernoext.o on host `hostname`"
|
||||
exit 1
|
||||
}
|
||||
/bin/rm $userobj
|
||||
/bin/rm $DIRJOB/*.mod
|
|
@ -1,52 +0,0 @@
|
|||
#!/bin/ksh
|
||||
# 1st arg: $DIR
|
||||
# 2nd arg: $DIRJOB
|
||||
# 3rd arg: $user
|
||||
# 4th arg: $program
|
||||
DIR=$1
|
||||
user=$3
|
||||
program=$4
|
||||
usernoext=$user
|
||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f`
|
||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F`
|
||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .for`
|
||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f90`
|
||||
|
||||
# add BLAS options for linking
|
||||
BLAS="%BLAS%"
|
||||
|
||||
. $DIR/tools/include
|
||||
DIRJOB=$2
|
||||
cd $DIRJOB
|
||||
echo "Compiling and linking user subroutine $user on host `hostname`"
|
||||
echo "program: $program"
|
||||
$DFORTRANLOWMP $user || \
|
||||
{
|
||||
echo "$0: compile failed for $user"
|
||||
exit 1
|
||||
}
|
||||
/bin/rm $program 2>/dev/null
|
||||
userobj=$usernoext.o
|
||||
|
||||
|
||||
$LOAD ${program} $DIR/lib/main.o\
|
||||
$DIR/lib/blkdta.o $DIR/lib/comm?.o \
|
||||
${userobj-} \
|
||||
$DIR/lib/srclib.a \
|
||||
$MNFLIBS \
|
||||
$MDUSER \
|
||||
../lib/mdsrc.a \
|
||||
../lib/mcvfit.a \
|
||||
$STUBS \
|
||||
${SOLVERLIBS} \
|
||||
$TKLIBS \
|
||||
$MRCLIBS \
|
||||
$METISLIBS \
|
||||
$BLAS \
|
||||
$SYSLIBS || \
|
||||
{
|
||||
echo "$0: link failed for $usernoext.o on host `hostname`"
|
||||
exit 1
|
||||
}
|
||||
/bin/rm $userobj
|
||||
/bin/rm $DIRJOB/*.mod
|
|
@ -1,52 +0,0 @@
|
|||
#!/bin/ksh
|
||||
# 1st arg: $DIR
|
||||
# 2nd arg: $DIRJOB
|
||||
# 3rd arg: $user
|
||||
# 4th arg: $program
|
||||
DIR=$1
|
||||
user=$3
|
||||
program=$4
|
||||
usernoext=$user
|
||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f`
|
||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F`
|
||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .for`
|
||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f90`
|
||||
|
||||
# add BLAS options for linking
|
||||
BLAS="%BLAS%"
|
||||
|
||||
. $DIR/tools/include
|
||||
DIRJOB=$2
|
||||
cd $DIRJOB
|
||||
echo "Compiling and linking user subroutine $user on host `hostname`"
|
||||
echo "program: $program"
|
||||
$DFORTRANMP $user || \
|
||||
{
|
||||
echo "$0: compile failed for $user"
|
||||
exit 1
|
||||
}
|
||||
/bin/rm $program 2>/dev/null
|
||||
userobj=$usernoext.o
|
||||
|
||||
|
||||
$LOAD ${program} $DIR/lib/main.o\
|
||||
$DIR/lib/blkdta.o $DIR/lib/comm?.o \
|
||||
${userobj-} \
|
||||
$DIR/lib/srclib.a \
|
||||
$MNFLIBS \
|
||||
$MDUSER \
|
||||
../lib/mdsrc.a \
|
||||
../lib/mcvfit.a \
|
||||
$STUBS \
|
||||
${SOLVERLIBS} \
|
||||
$TKLIBS \
|
||||
$MRCLIBS \
|
||||
$METISLIBS \
|
||||
$BLAS \
|
||||
$SYSLIBS || \
|
||||
{
|
||||
echo "$0: link failed for $usernoext.o on host `hostname`"
|
||||
exit 1
|
||||
}
|
||||
/bin/rm $userobj
|
||||
/bin/rm $DIRJOB/*.mod
|
|
@ -1,41 +0,0 @@
|
|||
#!/bin/ksh
|
||||
# 1st arg: $DIR
|
||||
# 2nd arg: $DIRJOB
|
||||
# 3rd arg: $user
|
||||
# 4th arg: $program
|
||||
DIR=$1
|
||||
user=$3
|
||||
program=$4
|
||||
. $DIR/tools/include
|
||||
DIRJOB=$2
|
||||
cd $DIRJOB
|
||||
echo "Compiling and linking user subroutine $user.f on host `hostname`"
|
||||
echo "program: $program"
|
||||
$FORTRAN $user.f || \
|
||||
{
|
||||
echo "$0: compile failed for $user.f"
|
||||
exit 1
|
||||
}
|
||||
/bin/rm $program 2>/dev/null
|
||||
userobj=$user.o
|
||||
|
||||
|
||||
$LOAD ${program} $DIR/lib/main.o\
|
||||
$DIR/lib/blkdta.o $DIR/lib/comm?.o \
|
||||
${userobj-} \
|
||||
$DIR/lib/srclib.a \
|
||||
$MNFLIBS \
|
||||
$MDUSER \
|
||||
../lib/mdsrc.a \
|
||||
../lib/mcvfit.a \
|
||||
$STUBS \
|
||||
${SOLVERLIBS} \
|
||||
$TKLIBS \
|
||||
$MRCLIBS \
|
||||
$METISLIBS \
|
||||
$SYSLIBS || \
|
||||
{
|
||||
echo "$0: link failed for $user.o on host `hostname`"
|
||||
exit 1
|
||||
}
|
||||
/bin/rm $userobj
|
|
@ -1,765 +0,0 @@
|
|||
#
|
||||
# General definitions for the Marc 2017 version
|
||||
#
|
||||
# EM64T
|
||||
#
|
||||
# Linux RedHat 6.7 / RedHat 7.1 / SuSE 11 SP3
|
||||
#
|
||||
# 64 bit MPI version
|
||||
#
|
||||
# Intel(R) Fortran Intel(R) 64 Compiler XE for applications
|
||||
# running on Intel(R) 64, Version 16.0.2.181 Build 20160204
|
||||
#
|
||||
# Intel(R) C Intel(R) 64 Compiler XE for applications
|
||||
# running on Intel(R) 64, Version 16.0.2.181 Build 20160204
|
||||
#
|
||||
# To check the O/S level, type:
|
||||
# uname -a
|
||||
#
|
||||
# Distributed parallel MPI libraries:
|
||||
# 1) HP MPI 2.3
|
||||
# To check the mpi version, type:
|
||||
# mpirun -version
|
||||
# 2) Intel MPI 5.1.3
|
||||
# To check the mpi version, type:
|
||||
# mpiexec.hydra -version
|
||||
#
|
||||
# To check the Compiler level, type using the compiler
|
||||
# installation path:
|
||||
# ifort -V
|
||||
# icc -V
|
||||
#
|
||||
# REMARKS : This file contains the definitions of variables used during
|
||||
# compilation loading and use of the MARC programmes . The
|
||||
# current machine type is identified by means of the variable
|
||||
# MACHINE , defined below.
|
||||
#
|
||||
#
|
||||
# MPI_ROOT: root directory in which mpi shared libraries, etc. are located
|
||||
# DIRJOB : directory in which spawned jobs should look for Marc input
|
||||
# MPI_ARCH: system architecture
|
||||
# MPI_EPATH: path where executable resides
|
||||
#
|
||||
REVISION="VERSION, BUILD"
|
||||
HOSTNAME=`hostname`
|
||||
|
||||
# find available memory in Mbyte on the machine
|
||||
# can be set explicitly
|
||||
MEMLIMIT=`free -m | awk '/Mem:/ {print $2}'`
|
||||
|
||||
# set _OEM_NASTRAN to 1 for MD Nastran build
|
||||
# override _OEM_NASTRAN setting with MARC_MD_NASTRAN environment variable
|
||||
_OEM_NASTRAN="${MARC_MD_NASTRAN:-0}"
|
||||
|
||||
# uncomment the following line for an autoforge build
|
||||
#AUTOFORGE=1
|
||||
AUTOFORGE=0
|
||||
export AUTOFORGE
|
||||
|
||||
# integer size
|
||||
if test "$MARC_INTEGER_SIZE" = "" ; then
|
||||
INTEGER_PATH=
|
||||
else
|
||||
INTEGER_PATH=/$MARC_INTEGER_SIZE
|
||||
fi
|
||||
|
||||
FCOMP=ifort
|
||||
INTELPATH="/opt/intel/compilers_and_libraries_2016/linux"
|
||||
|
||||
# find the root directory of the compiler installation:
|
||||
# - if ifort is found in $PATH, then the root directory is derived
|
||||
# from the path to ifort
|
||||
# - if ifort is not found in $PATH, the root directory is assumed
|
||||
# to be $INTELPATH and the directory in which ifort is found is
|
||||
# added to $PATH
|
||||
FCOMPPATH=`which "$FCOMP" 2>/dev/null`
|
||||
if test -n "$FCOMPPATH"; then
|
||||
# derive the root directory from $FCOMPPATH
|
||||
FCOMPROOT="${FCOMPPATH%/bin/intel64/$FCOMP}"
|
||||
if test "$FCOMPROOT" = "$FCOMPPATH"; then
|
||||
FCOMPROOT="${FCOMPPATH%/bin/$FCOMP}"
|
||||
fi
|
||||
if test "$FCOMPROOT" = "$FCOMPPATH"; then
|
||||
FCOMPROOT=
|
||||
fi
|
||||
elif test -d "$INTELPATH"; then
|
||||
# check for compiler in $INTELPATH
|
||||
if test -d "$INTELPATH/bin/intel64" -a \
|
||||
-x "$INTELPATH/bin/intel64/$FCOMP" ; then
|
||||
FCOMPROOT="$INTELPATH"
|
||||
PATH="$INTELPATH/bin/intel64:$PATH"
|
||||
elif test -d "$INTELPATH/bin" -a \
|
||||
-x "$INTELPATH/bin/$FCOMP"; then
|
||||
FCOMPROOT="$INTELPATH"
|
||||
PATH="$INTELPATH/bin:$PATH"
|
||||
else
|
||||
FCOMPROOT=
|
||||
fi
|
||||
else
|
||||
FCOMPROOT=
|
||||
fi
|
||||
|
||||
# settings for MKL
|
||||
MARC_MKL="$FCOMPROOT/mkl/lib/intel64"
|
||||
|
||||
#
|
||||
# settings for Metis
|
||||
#
|
||||
METIS="-I$METIS_SOURCE/include"
|
||||
METISLIBS="$MARC_LIB/metis.a "
|
||||
|
||||
#
|
||||
# settings for MPI
|
||||
#
|
||||
# RCP and RSH are used for parallel network runs
|
||||
# replace with similar commands like rsh if needed
|
||||
RCP=/usr/bin/scp
|
||||
RSH=/usr/bin/ssh
|
||||
#
|
||||
|
||||
|
||||
MPI_DEFAULT=intelmpi
|
||||
MPI_OTHER=hpmpi
|
||||
|
||||
MPITYPE=$MPI_DEFAULT
|
||||
|
||||
if test $AUTOFORGE
|
||||
then
|
||||
if test $AUTOFORGE = 1
|
||||
then
|
||||
MPITYPE=none
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# overrule MPITYPE setting with environmental variable MARC_MPITYPE
|
||||
if test $MARC_MPITYPE
|
||||
then
|
||||
MPITYPE=$MARC_MPITYPE
|
||||
fi
|
||||
|
||||
# always set MPITYPE to none for MD Nastran
|
||||
if test "$_OEM_NASTRAN" -ne 0
|
||||
then
|
||||
MPITYPE=none
|
||||
fi
|
||||
|
||||
# Edit following lines to build with GPGPU version of BCS Solver for
|
||||
# NVIDIA platforms
|
||||
#BCSGPUSOLVER=NONE
|
||||
BCSGPUSOLVER=BCSGPU
|
||||
|
||||
# Edit following lines to set the openssl library
|
||||
if test "$OPENSSL" != "NONE"
|
||||
then
|
||||
OPENSSL_LIB="$MARC_LIB/libcrypto.a"
|
||||
fi
|
||||
OPENSSL_INCLUDE=-I"$MARC_OPENSSL/include/"
|
||||
|
||||
|
||||
SOLVERFLAGS=
|
||||
if test "$BCSGPUSOLVER" = BCSGPU
|
||||
then
|
||||
SOLVERFLAGS="$SOLVERFLAGS -DBCSGPU -DCUDA"
|
||||
BCS_DIR=bcsgpusolver
|
||||
export PATH=$MARC_CUDA/bin:$MARC_CUDA/nvvm:$PATH
|
||||
export LD_LIBRARY_PATH=$MARC_CUDA/lib64:$LD_LIBRARY_PATH
|
||||
else
|
||||
BCS_DIR=bcssolver
|
||||
fi
|
||||
#
|
||||
# settings for MPI
|
||||
#
|
||||
DDM=
|
||||
if test $MPITYPE != none
|
||||
then
|
||||
if test $MPITYPE = hpmpi
|
||||
then
|
||||
FCOMPMPI=mpif90
|
||||
export MPI_ROOT=$MARC_HPMPI
|
||||
export MPI_REMSH=$RSH
|
||||
export MPI_F77=$FCOMP
|
||||
ARCHITECTURE=linux_amd64
|
||||
DDM="-I$MPI_ROOT/include/64 -DDDM -DHPMPI"
|
||||
MPI_CLEAN=
|
||||
export MPI_EPATH=$MARC_BIN
|
||||
export LD_LIBRARY_PATH=$MPI_ROOT/lib/$ARCHITECTURE:$MARC_LIB:$MARC_LIB_SHARED:$LD_LIBRARY_PATH
|
||||
export MPIHPSPECIAL="-e MPI_FLAGS=E,T,y1"
|
||||
# Below line is moved in run_marc file
|
||||
# export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
|
||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e BINDIR=$MARC_BIN"
|
||||
if test -n "$MSC_LICENSE_FILE"
|
||||
then
|
||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e MSC_LICENSE_FILE=$MSC_LICENSE_FILE"
|
||||
fi
|
||||
if test -n "$LM_LICENSE_FILE"
|
||||
then
|
||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e LM_LICENSE_FILE=$LM_LICENSE_FILE"
|
||||
fi
|
||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e MPI_LIC_CHECKER=$MPI_ROOT/bin/licensing/amd64_s8/lichk.x"
|
||||
RUN_JOB2="$MPI_ROOT/bin/mpirun ${MPIRUNOPTIONS} -prot -f "
|
||||
RUN_JOB1="$MPI_ROOT/bin/mpirun ${MPIRUNOPTIONS} -prot -w $MPIHPSPECIAL -np "
|
||||
RUN_JOB0=
|
||||
fi
|
||||
if test $MPITYPE = intelmpi
|
||||
then
|
||||
INTELMPI_VERSION=HYDRA
|
||||
FCOMPMPI=mpiifort
|
||||
MPI_ROOT=$MARC_INTELMPI
|
||||
DDM="-I${MPI_ROOT}/include64 -DDDM"
|
||||
PATH=$MPI_ROOT/bin64:$PATH
|
||||
export PATH
|
||||
LD_LIBRARY_PATH=$MPI_ROOT/lib64:$LD_LIBRARY_PATH
|
||||
export LD_LIBRARY_PATH
|
||||
if test $INTELMPI_VERSION = HYDRA
|
||||
then
|
||||
RUN_JOB1="${MPI_ROOT}/bin64/mpiexec.hydra -genvall -n "
|
||||
RUN_JOB2="${MPI_ROOT}/bin64/mpiexec.hydra -genvall"
|
||||
else
|
||||
RUN_JOB1="${MPI_ROOT}/bin64/mpiexec -n "
|
||||
RUN_JOB2="${MPI_ROOT}/bin64/mpiexec -configfile "
|
||||
fi
|
||||
RUN_JOB0=
|
||||
MPI_CLEAN=
|
||||
MPI_EPATH=$MARC_BIN
|
||||
MPIR_HOME=$MPI_ROOT
|
||||
MPICH_F77=$FCOMP
|
||||
MPICH_F77LINKER=$FCOMP
|
||||
export MPI_ROOT MPI_EPATH MPIR_HOME MPICH_F77 MPICH_F77LINKER
|
||||
I_MPI_PIN_DOMAIN=node
|
||||
export I_MPI_PIN_DOMAIN
|
||||
fi
|
||||
else
|
||||
MPI_ROOT=$MARC_DUMMYMPI
|
||||
export MPI_ROOT=$MARC_DUMMYMPI
|
||||
DDM="-I$MPI_ROOT/include"
|
||||
fi
|
||||
|
||||
#
|
||||
# variables for the "maintain" script
|
||||
#
|
||||
|
||||
MACHINENAME=LINUX
|
||||
MACHINE64BIT=yes
|
||||
MACHINE=Linux_EM64T
|
||||
DEV=/dev/tape
|
||||
GETLOG="whoami"
|
||||
CLEAR="clear"
|
||||
MY_UNAME=`uname -a`
|
||||
|
||||
# Edit following 2 lines to build with VKI Solver
|
||||
#VKISOLVER=VKI
|
||||
VKISOLVER=NONE
|
||||
|
||||
# Edit following 2 lines to build with CASI Solver
|
||||
CASISOLVER=CASI
|
||||
if test "$MARC_CASISOLVER" = "NONE" ; then
|
||||
CASISOLVER=NONE
|
||||
fi
|
||||
#CASISOLVER=NONE
|
||||
|
||||
# Edit following 2 lines to build with MF2 Solver
|
||||
MF2SOLVER=NONE
|
||||
#MF2SOLVER=SERIAL
|
||||
#MF2SOLVER=MF2PARALLEL
|
||||
|
||||
# Edit following lines to build with Intel(c) Multithreaded solver (PARDISO)
|
||||
#INTELSOLVER=NONE
|
||||
INTELSOLVER=PARDISO
|
||||
|
||||
# Edit following lines to build with MUMPS
|
||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
||||
#MUMPSSOLVER=NONE
|
||||
MUMPSSOLVER=MUMPS
|
||||
else
|
||||
#MUMPSSOLVER=NONE
|
||||
MUMPSSOLVER=MUMPS
|
||||
fi
|
||||
|
||||
# Edit following 2 lines to build MARC dynamic shared library
|
||||
MARC_DLL=MARC_DLL
|
||||
MARC_DLL=NONE
|
||||
|
||||
# always set VKISOLVER, CASISOLVER, BCSGPUSOLVER, and MARC_DLL to NONE for MD Nastran
|
||||
if test "$_OEM_NASTRAN" -ne 0
|
||||
then
|
||||
VKISOLVER=NONE
|
||||
CASISOLVER=NONE
|
||||
MF2SOLVER=NONE
|
||||
INTELSOLVER=NONE
|
||||
MUMPSSOLVER=NONE
|
||||
BCSGPUSOLVER=NONE
|
||||
MARC_DLL=NONE
|
||||
fi
|
||||
|
||||
#
|
||||
# define Fortran and C compile syntax
|
||||
#
|
||||
if test "$VKISOLVER" = VKI
|
||||
then
|
||||
SOLVERFLAGS="$SOLVERFLAGS -DVKI"
|
||||
fi
|
||||
|
||||
if test "$CASISOLVER" = CASI
|
||||
then
|
||||
SOLVERFLAGS="$SOLVERFLAGS -DCASI"
|
||||
fi
|
||||
|
||||
if test "$MF2SOLVER" = MF2PARALLEL
|
||||
then
|
||||
SOLVERFLAGS="$SOLVERFLAGS -DMF2PARALLEL"
|
||||
fi
|
||||
if test "$MF2SOLVER" = MF2SERIAL
|
||||
then
|
||||
SOLVERFLAGS="$SOLVERFLAGS -DMF2SERIAL"
|
||||
fi
|
||||
|
||||
if test "$INTELSOLVER" = PARDISO
|
||||
then
|
||||
SOLVERFLAGS="$SOLVERFLAGS -DPARDISO"
|
||||
fi
|
||||
|
||||
if test "$MUMPSSOLVER" = MUMPS
|
||||
then
|
||||
SOLVERFLAGS="$SOLVERFLAGS -DMUMPS"
|
||||
fi
|
||||
|
||||
|
||||
if test "$MARC_DLL" = MARC_DLL
|
||||
then
|
||||
SOLVERFLAGS="$SOLVERFLAGS -DMARC_DLL"
|
||||
fi
|
||||
|
||||
LINK_OPT=
|
||||
DEBUG_OPT=
|
||||
C_DEBUG_OPT=
|
||||
|
||||
#Uncomment following line to build Marc in debuggable mode
|
||||
MARCDEBUG=
|
||||
#MARCDEBUG="ON"
|
||||
|
||||
if test "$MARCDEBUG" = "ON"
|
||||
then
|
||||
LINK_OPT="-debug -traceback"
|
||||
DEBUG_OPT="-debug -traceback"
|
||||
C_DEBUG_OPT="-debug -traceback"
|
||||
fi
|
||||
|
||||
|
||||
MARCCHECK=
|
||||
#MARCCHECK="ON"
|
||||
if test "$MARCCHECK" = "ON"
|
||||
then
|
||||
DEBUG_OPT="$DEBUG_OPT -fpe0 -fp-stack-check -check all -ftrapuv "
|
||||
C_DEBUG_OPT="$C_DEBUG_OPT -fp-stack-check -check-uninit -Wformat -ftrapuv "
|
||||
fi
|
||||
|
||||
MARCCODECOV=
|
||||
#MARCCODECOV="ON"
|
||||
|
||||
MARCCODEPROF=
|
||||
#MARCCODEPROF="ON"
|
||||
|
||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
||||
I8FFLAGS="-real-size 64 -integer-size 32"
|
||||
I8DEFINES="-DFLOAT=8 -DINT=4"
|
||||
I8CDEFINES=
|
||||
I8CASIDEFS=
|
||||
else
|
||||
I8FFLAGS="-i8 -real-size 64 -integer-size 64"
|
||||
I8DEFINES="-DI64 -DFLOAT=8 -DINT=8"
|
||||
I8CDEFINES="-U_DOUBLE -D_SINGLE"
|
||||
I8CASIDEFS="-DCASI_64BIT_INT=1"
|
||||
fi
|
||||
|
||||
MTHREAD=OPENMP
|
||||
if test "$MARC_OPENMP" = "NONE" ; then
|
||||
MTHREAD=NONE
|
||||
fi
|
||||
#MTHREAD=NONE
|
||||
if test "$_OEM_NASTRAN" -ne 0
|
||||
then
|
||||
MTHREAD=NONE
|
||||
fi
|
||||
|
||||
OMP_COMPAT=NO
|
||||
OMP_COMPAT=YES
|
||||
if test "$MTHREAD" = "NONE"
|
||||
then
|
||||
OMP_COMPAT=NO
|
||||
fi
|
||||
|
||||
CDEFINES=
|
||||
FDEFINES=
|
||||
|
||||
if test "$_OEM_NASTRAN" -ne 0
|
||||
then
|
||||
CDEFINES="$CDEFINES -D_OEM_NASTRAN"
|
||||
FDEFINES="$FDEFINES -D_OEM_NASTRAN"
|
||||
fi
|
||||
|
||||
FDEFINES="$FDEFINES -D_IMPLICITNONE"
|
||||
|
||||
if test "$_OEM_NASTRAN" -eq 0
|
||||
then
|
||||
FDEFINES="$FDEFINES -DMKL -DOPENMP"
|
||||
fi
|
||||
|
||||
if test "$OMP_COMPAT" = "YES"
|
||||
then
|
||||
FDEFINES="$FDEFINES -DOMP_COMPAT"
|
||||
fi
|
||||
|
||||
# -D_MSCMARC
|
||||
FDEFINES="$FDEFINES -D_MSCMARC $DEBUG_OPT $MARC_SIMUFACT"
|
||||
CDEFINES="$CDEFINES -D_MSCMARC $C_DEBUG_OPT $I8CDEFINES"
|
||||
|
||||
CINCL="-I$MARC_SOURCE/mdsrc -I$MARC_SOURCE/csource $METIS"
|
||||
if test "$_OEM_NASTRAN" -ne 0
|
||||
then
|
||||
CINCL="$CINCL -I../../include"
|
||||
fi
|
||||
|
||||
CC="icc -c -O1 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
CCLOW="icc -c -O0 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
CCHIGH="icc -c -O3 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
|
||||
if test "$MARCDEBUG" = "ON"
|
||||
then
|
||||
CC="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
CCLOW="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
CCHIGH="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
fi
|
||||
|
||||
LOAD_CC="icc -O1 -DLinux -DLINUX -DLinux_intel"
|
||||
CCT="$CC"
|
||||
CCTLOW="$CCLOW"
|
||||
CCTHIGH="$CCHIGH"
|
||||
|
||||
CC_CASI="$CC -std=c99 $I8CASIDEFS"
|
||||
CCLOW_CASI="$CCLOW -std=c99 $I8CASIDEFS"
|
||||
CCHIGH_CASI="$CCHIGH -std=c99 $I8CASIDEFS"
|
||||
|
||||
CCT_CASI="$CCT -std=c99 $I8CASIDEFS"
|
||||
CCTLOW_CASI="$CCLOW -std=c99 $I8CASIDEFS"
|
||||
CCTHIGH_CASI="$CCHIGH -std=c99 $I8CASIDEFS"
|
||||
|
||||
#PROFILE="-Mprof=func"
|
||||
#PROFILE="-Mprof=lines"
|
||||
#PROFILE="-Mprof=func,mpi"
|
||||
PROFILE=
|
||||
if test "$MARCCODECOV" = "ON"
|
||||
then
|
||||
PROFILE="-prof-gen=srcpos"
|
||||
fi
|
||||
if test "$MARCCODEPROF" = "ON"
|
||||
then
|
||||
PROFILE=" $PROFILE -pg"
|
||||
fi
|
||||
|
||||
FORT_OPT="-c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr -mp1 -WB -fp-model source"
|
||||
if test "$MTHREAD" = "OPENMP"
|
||||
then
|
||||
FORT_OPT=" $FORT_OPT -qopenmp"
|
||||
if test "$OMP_COMPAT" = "YES"
|
||||
then
|
||||
FORT_OPT=" $FORT_OPT -qopenmp-threadprivate=compat"
|
||||
fi
|
||||
else
|
||||
# FORT_OPT=" $FORT_OPT -auto "
|
||||
FORT_OPT=" $FORT_OPT -save -zero"
|
||||
fi
|
||||
|
||||
FORTLOW="$FCOMP $FORT_OPT $PROFILE -O0 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
FORTRAN="$FCOMP $FORT_OPT $PROFILE -O1 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
FORTHIGH="$FCOMP $FORT_OPT $PROFILE -fno-alias -O3 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
FORTNA="$FCOMP $FORT_OPT -fno-alias -O3 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
||||
# for compiling free form f90 files. high opt, integer(4)
|
||||
FORTF90="$FCOMP -c -O3"
|
||||
|
||||
# determine DAMASK version
|
||||
if test -n "$DAMASK_USER"; then
|
||||
DAMASKROOT=`dirname $DAMASK_USER`/..
|
||||
read DAMASKVERSION < $DAMASKROOT/VERSION
|
||||
DAMASKVERSION="'"$DAMASKVERSION"'"
|
||||
else
|
||||
DAMASKVERSION="'N/A'"
|
||||
fi
|
||||
|
||||
# DAMASK compiler calls: additional flags are in line 2 OpenMP flags in line 3
|
||||
DFORTLOWMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -O0 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2017 -DDAMASKVERSION=$DAMASKVERSION \
|
||||
-qopenmp -qopenmp-threadprivate=compat\
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
DFORTRANMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -O1 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2017 -DDAMASKVERSION=$DAMASKVERSION \
|
||||
-qopenmp -qopenmp-threadprivate=compat\
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
DFORTHIGHMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -fno-alias -O2 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2017 -DDAMASKVERSION=$DAMASKVERSION \
|
||||
-qopenmp -qopenmp-threadprivate=compat\
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
|
||||
if test "$MARCDEBUG" = "ON"
|
||||
then
|
||||
FORTLOW="$FCOMP $FORT_OPT $PROFILE $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
FORTRAN="$FCOMP $FORT_OPT $PROFILE $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
FORTHIGH="$FCOMP $FORT_OPT $PROFILE -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
FORTNA="$FCOMP $FORT_OPT -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
||||
|
||||
# DAMASK compiler calls: additional flags are in line 2 OpenMP flags in line 3
|
||||
DFORTLOWMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2017 -DDAMASKVERSION=$DAMASKVERSION \
|
||||
-qopenmp -qopenmp-threadprivate=compat\
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
DFORTRANMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2017 -DDAMASKVERSION=$DAMASKVERSION \
|
||||
-qopenmp -qopenmp-threadprivate=compat\
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
DFORTHIGHMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2017 -DDAMASKVERSION=$DAMASKVERSION \
|
||||
-qopenmp -qopenmp-threadprivate=compat\
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
|
||||
fi
|
||||
|
||||
FORTLOWT="$FORTLOW"
|
||||
FORTRANT="$FORTRAN"
|
||||
FORTHIGHT="$FORTHIGH"
|
||||
|
||||
FORTRANMNF="$FCOMP -c $FDEFINES "
|
||||
CCMNF="icc -c -O1 -DLinux -DLINUX -DLinux_intel -Dport2egcs -I$MARC_SOURCE/marctoadams/mnf/include -D_LARGEFILE64_SOURCE"
|
||||
|
||||
FORTRANMUMPS="$FCOMP -fpp $FORT_OPT $PROFILE -fno-alias -O1 -fp-model precise $FDEFINES -D_IMPLICITNONE $I8FFLAGS $I8DEFINES $DDM -I$MARC_SOURCE/mumpssolver/include -Dintel_ -DALLOW_NON_INIT -Dmetis -DMPI_I8 -nofor_main"
|
||||
CCMUMPS="icc -c -DAdd_ -Dmetis -I$MARC_SOURCE/mumpssolver/include"
|
||||
if test "$MARC_INTEGER_SIZE" = "i8" ; then
|
||||
CCMUMPS="$CCMUMPS -DINTSIZE64"
|
||||
fi
|
||||
|
||||
|
||||
BCSCC="icc -c -O3 -DLOWERCASE_ -I${MARC_SOURCE}/${BCS_DIR}/bcslib_csrc $CDEFINES $CINCL"
|
||||
NVCC="nvcc -c -O3 -arch sm_20 -DLOWERCASE_ -I${MARC_SOURCE}/${BCS_DIR}/bcslib_cuda/include -I${MARC_CUDA}/include -I$MARC_SOURCE/mdsrc $I8DEFINES -Xcompiler -fvisibility=hidden -Xcompiler -fPIC $I8DEFINES "
|
||||
NVCCLIB="ar rvl"
|
||||
NVCCLD=icc
|
||||
BCSFORTLOW="$FORTLOW -I${MARC_SOURCE}/${BCS_DIR}/common"
|
||||
BCSFORTRAN="$FORTRAN -I${MARC_SOURCE}/${BCS_DIR}/common"
|
||||
BCSFORTHIGH="$FORTHIGH -I${MARC_SOURCE}/${BCS_DIR}/common"
|
||||
BCSFORT90HIGH="$BCSFORTHIGH"
|
||||
if test "$MARCDEBUG" = "ON"
|
||||
then
|
||||
BCSFORTRAN=$BCSFORTLOW
|
||||
BCSFORTHIGH=$BCSFORTLOW
|
||||
BCSFORT90HIGH=$BCSFORTLOW
|
||||
fi
|
||||
|
||||
if test $MPITYPE != none
|
||||
then
|
||||
if test $MPITYPE = hpmpi
|
||||
then
|
||||
LOAD="$MPI_ROOT/bin/$FCOMPMPI ${LOADOPTIONS} -L$MPI_ROOT/lib/$ARCHITECTURE $PROFILE $LINK_OPT -o "
|
||||
LOADT="$MPI_ROOT/bin/$FCOMPMPI ${LOADOPTIONS} -L$MPI_ROOT/lib/$ARCHITECTURE $PROFILE $LINK_OPT -o "
|
||||
fi
|
||||
# Uncomment the following lines to turn on the tracer and commnet out the next 5 lines
|
||||
# if test $MPITYPE = intelmpi
|
||||
# then
|
||||
# INCLUDEMPI="-I$MPI_ROOT/include64 -I$VT_ROOT/include"
|
||||
# LOAD="$MPI_ROOT/bin64/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
||||
# LOADT="$MPI_ROOT/bin64/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
||||
# fi
|
||||
if test $MPITYPE = intelmpi
|
||||
then
|
||||
LOAD="ifort $PROFILE $LINK_OPT -o "
|
||||
LOADT="ifort $PROFILE $LINK_OPT -o "
|
||||
fi
|
||||
else
|
||||
LOAD="$FCOMP $LINK_OPT -o "
|
||||
LOADT="$FCOMP $LINK_OPT -o "
|
||||
fi
|
||||
|
||||
if test "$MARC_DLL" = MARC_DLL
|
||||
then
|
||||
FORTLOW="$FORTLOW -fpp -fPIC"
|
||||
FORTRAN="$FORTRAN -fpp -fPIC"
|
||||
FORTHIGH="$FORTHIGH -fpp -fPIC"
|
||||
FORTRANMNF="$FORTRANMNF -fpp -fPIC"
|
||||
CC="$CC -fPIC"
|
||||
CCMNF="$CCMNF -fPIC"
|
||||
CC_CASI="$CC_CASI -fPIC"
|
||||
CCLOW_CASI="$CCLOW_CASI -fPIC"
|
||||
CCHIGH_CASI="$CCHIGH_CASI -fPIC"
|
||||
LINK_EXE_MARC="-L$MARC_LIB -lmarc -L$MARC_LIB_SHARED -lguide -lpthread"
|
||||
LINK_MARC_DLL="-shared -fPIC"
|
||||
LOAD_DLL=$LOAD
|
||||
LOADT_DLL=$LOADT
|
||||
EXT_DLL="so"
|
||||
fi
|
||||
|
||||
|
||||
XLIBS="-L/usr/X11/lib -lX11 "
|
||||
|
||||
#
|
||||
# define archive and ranlib syntax
|
||||
#
|
||||
|
||||
ARC="ar rvl"
|
||||
ARD="ar dvl"
|
||||
ARX="ar xl"
|
||||
RAN=""
|
||||
|
||||
#
|
||||
# choose which libraries you want to use ( e.g. blas )
|
||||
#
|
||||
|
||||
if test "$VKISOLVER" = VKI
|
||||
then
|
||||
VKISOLVERLIBS="$MARC_LIB/vkisolver.a"
|
||||
else
|
||||
VKISOLVERLIBS=
|
||||
fi
|
||||
|
||||
if test "$CASISOLVER" = CASI
|
||||
then
|
||||
CASISOLVERLIBS="$MARC_CASI/casilib.a"
|
||||
else
|
||||
CASISOLVERLIBS=
|
||||
fi
|
||||
|
||||
MF2SOLVERLIBS=
|
||||
if test "$MF2SOLVER" = MF2PARALLEL
|
||||
then
|
||||
MF2SOLVERLIBS="$MARC_LIB/mf2parallel/libseq.a \
|
||||
$MARC_LIB/mf2parallel/libsym.a \
|
||||
$MARC_LIB/mf2parallel/libmet.a \
|
||||
$MARC_LIB/mf2parallel/libmf2.a \
|
||||
$MARC_LIB/mf2parallel/libgauss.a \
|
||||
$MARC_LIB/mf2parallel/libmf2.a \
|
||||
$MARC_LIB/mf2parallel/libgauss.a \
|
||||
$MARC_LIB/mf2parallel/libnum.a \
|
||||
$MARC_LIB/mf2parallel/libutl.a \
|
||||
$MARC_LIB/mf2parallel/libr8.a \
|
||||
$MARC_LIB/mf2parallel/libz.a "
|
||||
fi
|
||||
|
||||
if test "$MUMPSSOLVER" = MUMPS
|
||||
then
|
||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a"
|
||||
if test $MPITYPE = none
|
||||
then
|
||||
MUMPSSOLVERLIBS2=
|
||||
echo hello > /dev/null
|
||||
fi
|
||||
if test $MPITYPE = intelmpi
|
||||
then
|
||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_intelmpi_lp64.a "
|
||||
else
|
||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_intelmpi_ilp64.a "
|
||||
fi
|
||||
fi
|
||||
if test $MPITYPE = hpmpi
|
||||
then
|
||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_lp64.a"
|
||||
else
|
||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_ilp64.a"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
MUMPSSOLVERLIBS=
|
||||
MUMPSSOLVERLIBS2=
|
||||
fi
|
||||
|
||||
if test "$BCSGPUSOLVER" = BCSGPU
|
||||
then
|
||||
BCSSOLVERLIBS="${MARC_LIB}/bcsgpulib.a "
|
||||
MARCCUDALIBS1="-L${MARC_LIB}/cuda_dummy -lmarccuda "
|
||||
MARCCUDALIBS2="-L${MARC_LIB}/cuda -lmarccuda "
|
||||
MARCCUDALIBS=$MARCCUDALIBS1
|
||||
CUDALIBS="-L$MARC_CUDA/lib64 -lcudart -lcublas -L/usr/lib64 -lcuda "
|
||||
else
|
||||
BCSSOLVERLIBS="${MARC_LIB}/bcslib.a "
|
||||
fi
|
||||
|
||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
||||
MKLLIB="$MARC_MKL/libmkl_scalapack_lp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_lp64.a $MARC_MKL/libmkl_core.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_blacs_intelmpi_lp64.a $MUMPSSOLVERLIBS2 -Wl,--end-group"
|
||||
else
|
||||
MKLLIB="$MARC_MKL/libmkl_scalapack_ilp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_ilp64.a $MARC_MKL/libmkl_core.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_blacs_intelmpi_ilp64.a $MUMPSSOLVERLIBS2 -Wl,--end-group"
|
||||
fi
|
||||
|
||||
SECLIBS="-L$MARC_LIB -llapi"
|
||||
|
||||
SOLVERLIBS="${BCSSOLVERLIBS} ${VKISOLVERLIBS} ${CASISOLVERLIBS} ${MF2SOLVERLIBS} \
|
||||
$MKLLIB -L$MARC_MKL -liomp5 \
|
||||
$MARC_LIB/blas_src.a ${ACSI_LIB}/ACSI_MarcLib.a $KDTREE2_LIB/kdtree2.a "
|
||||
|
||||
SOLVERLIBS_DLL=${SOLVERLIBS}
|
||||
|
||||
MRCLIBS="$MARC_LIB/clib.a ${CASISOLVERLIBS}"
|
||||
MRCLIBSPAR="$MARC_LIB/clib.a"
|
||||
STUBS="$MARC_LIB/stubs.a "
|
||||
MNFLIBS="$MARC_LIB/libmnf.a"
|
||||
MDUSER="$MARC_LIB/md_user.a"
|
||||
if test "X$MARC_SIMUFACT" != "X"
|
||||
then
|
||||
SFLIB="-L$SFMATDIR -lMBA_Grain $SFMATDIR/sfclib.a "
|
||||
else
|
||||
SFLIB=" "
|
||||
fi
|
||||
|
||||
OPENMP="-qopenmp"
|
||||
|
||||
SYSLIBS=" $OPENMP -lpthread -cxxlib"
|
||||
|
||||
# Uncomment the following lines to turn on the trace and comment out the next 4 lines
|
||||
# if test $MPITYPE = intelmpi
|
||||
# then
|
||||
# SYSLIBS="-L${VT_ROOT}/lib -lVT -ldwarf -lelf -lm -lpthread \
|
||||
# -L${MPI_ROOT}/lib64 -lmpi -lmpiif -lmpigi -lrt"
|
||||
# fi
|
||||
if test $MPITYPE = intelmpi
|
||||
then
|
||||
SYSLIBS="-L${MPI_ROOT}/lib64 -lmpi_mt -lmpifort -lrt $OPENMP -threads -lpthread -cxxlib"
|
||||
fi
|
||||
|
||||
|
||||
SYSLIBSPAR=" "
|
||||
|
||||
MARC_DLL_CODES="runmarc.f"
|
||||
|
||||
|
||||
BLAS_SRC="dzero.f icopy.f izero.f"
|
||||
if test "$_OEM_NASTRAN" -ne 0
|
||||
then
|
||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
||||
BLAS_SRC="$BLAS_SRC dsctr.f zsctr.f dzasum.f daxpyi.f zaxpyi.f dgthr.f zgthr.f"
|
||||
else
|
||||
BLAS_SRC="ALL"
|
||||
fi
|
||||
fi
|
||||
|
||||
LOW_OPT_CODES="are163.f contro.f ndext.f omarc.f omarca.f omarcb.f omarcc.f \
|
||||
omars.f fixbc.f triang.f bet049.f norst3.f eldata.f \
|
||||
elec*.f elct*.f fmeig.f oada00.f ogeig.f updtrbe2.f cycrota.f \
|
||||
cordef.f ogpk.f ogtan.f eldam.f formrbe3.f \
|
||||
inertie.f em_sso072.f cn_fol3d_qpatch6.f cosim_begin.f"
|
||||
if test "$MARC_INTEGER_SIZE" = "i8" ; then
|
||||
LOW_OPT_CODES="$LOW_OPT_CODES bbcseg.f"
|
||||
fi
|
||||
LOW_OPT_CODES_CASI=""
|
||||
|
||||
HIGH_OPT_CODES="dpsmsa1.f dpsmsa2.f dpsmsa3.f dpsmsa4.f dpsmsa5.f dpsmsa6.f \
|
||||
dpsmsa7.f dpsmsa8.f dpsmsa9.f dpsmsa10.f dpsmsa11.f dpsmsa12.f \
|
||||
dpsmsa13.f dpsmsa14.f dpsmsa15.f dpsmsa16.f dpsmsah.f tpsmsah.f cn_qsort4_11.f "
|
||||
|
||||
|
||||
HIGH_OPT_CODES_CASI="arithkernels.c blockedroutines.c blockedroutines_fd.c elemmatgenkernels.c longvecroutines.c sfmultutils.c solvewithbd.c"
|
||||
|
||||
MAXNUM=1000000
|
|
@ -1,5 +0,0 @@
|
|||
#!/bin/sh
|
||||
# This script opens a window running an editor.
|
||||
# The command to invoke the editor is specified during DAMASK installation
|
||||
|
||||
%EDITOR% $*
|
|
@ -1,18 +0,0 @@
|
|||
#!/bin/sh
|
||||
# This script opens a window running an editor. The default window is an
|
||||
# xterm, and the default editor is vi. These may be customized.
|
||||
|
||||
dir=
|
||||
for d in /usr/bin /usr/bin/X11; do
|
||||
if test -x "$d/xterm"; then
|
||||
dir="$d"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if test -z "$dir"; then
|
||||
echo "$0: Could not find xterm"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
"$dir/xterm" -T "vi $*" -n "vi $*" -e vi $*
|
|
@ -1,8 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ "$1" = "" ]; then
|
||||
echo "usage: $0 job_name"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo STOP > $1.cnt
|
|
@ -1,8 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ "$1" = "" ]; then
|
||||
echo "usage: $0 job_name"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo STOP > $1.cnt
|
|
@ -1,8 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ "$1" = "" ]; then
|
||||
echo "usage: $0 job_name"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo STOP > $1.cnt
|
|
@ -1,8 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ "$1" = "" ]; then
|
||||
echo "usage: $0 job_name"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo STOP > $1.cnt
|
|
@ -1,186 +0,0 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# The exit status of this script is read by Mentat.
|
||||
# Normal exit status is 0.
|
||||
#
|
||||
|
||||
DIR=/opt/msc/marc2017
|
||||
if test $MARCDIR1
|
||||
then
|
||||
DIR=$MARCDIR1
|
||||
fi
|
||||
|
||||
if test -z "$DIR"; then
|
||||
REALCOM="`ls -l $0 |awk '{ print $NF; }'`"
|
||||
DIRSCRIPT=`dirname $REALCOM`
|
||||
case $DIRSCRIPT in
|
||||
\/*)
|
||||
;;
|
||||
*)
|
||||
DIRSCRIPT=`pwd`/$DIRSCRIPT
|
||||
;;
|
||||
esac
|
||||
. $DIRSCRIPT/getarch
|
||||
|
||||
DIR="$MENTAT_MARCDIR"
|
||||
fi
|
||||
|
||||
SRCEXT=.f
|
||||
SRCEXTC=.F
|
||||
RSTEXT=.t08
|
||||
PSTEXT=.t19
|
||||
PSTEXTB=.t16
|
||||
VWFCEXT=.vfs
|
||||
|
||||
slv=$1
|
||||
version=$2
|
||||
ndom_fea_solver=$3
|
||||
ndom_preprocessor=$4
|
||||
hostfile=$5
|
||||
compat=$6
|
||||
job=$7
|
||||
srcfile=$8
|
||||
srcmeth=$9
|
||||
shift 9 # cannot use $10, $11, ...
|
||||
restart=$1
|
||||
postfile=$2
|
||||
viewfactorsfile=$3
|
||||
autorst=$4
|
||||
copy_datfile="-ci $5"
|
||||
copy_postfile="-cr $6"
|
||||
scr_dir=$7
|
||||
dcoup=$8
|
||||
assem_recov_nthread=$9
|
||||
shift 9 # cannot use $10, $11, ...
|
||||
nthread=$1
|
||||
nsolver=$2
|
||||
mode=$3
|
||||
gpu=$4
|
||||
|
||||
if [ "$slv" != "" -a "$slv" != "marc" ]; then
|
||||
slv="-iam sfm"
|
||||
else
|
||||
slv=""
|
||||
fi
|
||||
|
||||
if [ "$ndom_fea_solver" != "" -a "$ndom_fea_solver" != "1" ]; then
|
||||
nprocds="-nprocds $ndom_fea_solver"
|
||||
else
|
||||
nprocd=""
|
||||
if [ "$ndom_preprocessor" != "" -a "$ndom_preprocessor" != "1" ]; then
|
||||
nprocd="-nprocd $ndom_preprocessor"
|
||||
else
|
||||
nprocd=""
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$srcfile" != "" -a "$srcfile" != "-" ]; then
|
||||
srcfile=`echo $srcfile | sed "s/$SRCEXT$//" | sed "s/$SRCEXTC$//"`
|
||||
case "$srcmeth" in
|
||||
-)
|
||||
srcfile="-u $srcfile"
|
||||
;;
|
||||
compsave)
|
||||
srcfile="-u $srcfile -save y"
|
||||
;;
|
||||
runsaved)
|
||||
srcfile="-prog $srcfile"
|
||||
;;
|
||||
esac
|
||||
else
|
||||
srcfile=""
|
||||
fi
|
||||
|
||||
if [ "$restart" != "" -a "$restart" != "-" ]; then
|
||||
restart=`echo $restart | sed "s/$RSTEXT$//"`
|
||||
restart="-r $restart"
|
||||
else
|
||||
restart=""
|
||||
fi
|
||||
|
||||
if [ "$postfile" != "" -a "$postfile" != "-" ]; then
|
||||
postfile=`echo $postfile | sed "s/$PSTEXT$//"`
|
||||
postfile=`echo $postfile | sed "s/$PSTEXTB$//"`
|
||||
postfile="-pid $postfile"
|
||||
else
|
||||
postfile=""
|
||||
fi
|
||||
|
||||
if [ "$viewfactorsfile" != "" -a "$viewfactorsfile" != "-" ]; then
|
||||
viewfactorsfile=`echo $viewfactorsfile | sed "s/$VWFCEXT$//"`
|
||||
viewfactorsfile="-vf $viewfactorsfile"
|
||||
else
|
||||
viewfactorsfile=""
|
||||
fi
|
||||
|
||||
if [ "$hostfile" != "" -a "$hostfile" != "-" ]; then
|
||||
hostfile="-ho $hostfile"
|
||||
else
|
||||
hostfile=""
|
||||
fi
|
||||
|
||||
if [ "$compat" != "" -a "$compat" != "-" ]; then
|
||||
compat="-co $compat"
|
||||
else
|
||||
compat=""
|
||||
fi
|
||||
|
||||
if [ "$scr_dir" != "" -a "$scr_dir" != "-" ]; then
|
||||
scr_dir="-sd $scr_dir"
|
||||
else
|
||||
scr_dir=""
|
||||
fi
|
||||
|
||||
if [ "$dcoup" != "" -a "$dcoup" != "0" ]; then
|
||||
dcoup="-dcoup $dcoup"
|
||||
else
|
||||
dcoup=""
|
||||
fi
|
||||
|
||||
if [ "$assem_recov_nthread" != "" -a "$assem_recov_nthread" != "1" ]; then
|
||||
assem_recov_nthread="-nthread_elem $assem_recov_nthread"
|
||||
else
|
||||
assem_recov_nthread=""
|
||||
fi
|
||||
|
||||
if [ "$nthread" != "" -a "$nthread" != "0" -a "$nthread" != "1" ]; then
|
||||
nthread="-nthread $nthread"
|
||||
else
|
||||
nthread=""
|
||||
fi
|
||||
|
||||
if [ "$nsolver" != "" -a "$nsolver" != "0" ]; then
|
||||
nsolver="-nsolver $nsolver"
|
||||
else
|
||||
nsolver=""
|
||||
fi
|
||||
|
||||
case "$mode" in
|
||||
4) mode="-mo i4" ;;
|
||||
8) mode="-mo i8" ;;
|
||||
*) mode= ;;
|
||||
esac
|
||||
|
||||
if [ "$gpu" != "" -a "$gpu" != "-" ]; then
|
||||
gpu="-gpu $gpu"
|
||||
else
|
||||
gpu=""
|
||||
fi
|
||||
|
||||
rm -f $job.cnt
|
||||
rm -f $job.sts
|
||||
rm -f $job.out
|
||||
rm -f $job.log
|
||||
|
||||
# To prevent a mismatch with the python version used by the solver
|
||||
# do *not* prepend $MENTAT_INSTALL_DIR/python/bin to environment variable PATH
|
||||
# unset environment variables PYTHONHOME and PYTHONPATH
|
||||
unset PYTHONHOME
|
||||
unset PYTHONPATH
|
||||
|
||||
"${DIR}/tools/run_marc" $slv -j $job -v n -b y $nprocds $nprocd -autorst $autorst \
|
||||
$srcfile $restart $postfile $viewfactorsfile $hostfile \
|
||||
$compat $copy_datfile $copy_postfile $scr_dir $dcoup \
|
||||
$assem_recov_nthread $nthread $nsolver $mode $gpu > /dev/null 2>&1
|
||||
sleep 1
|
||||
exit 0
|
|
@ -1,187 +0,0 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# The exit status of this script is read by Mentat.
|
||||
# Normal exit status is 0.
|
||||
#
|
||||
|
||||
DIR=%INSTALLDIR%/marc%VERSION%
|
||||
if test $MARCDIR1
|
||||
then
|
||||
DIR=$MARCDIR1
|
||||
fi
|
||||
|
||||
if test -z "$DIR"; then
|
||||
REALCOM="`ls -l $0 |awk '{ print $NF; }'`"
|
||||
DIRSCRIPT=`dirname $REALCOM`
|
||||
case $DIRSCRIPT in
|
||||
\/*)
|
||||
;;
|
||||
*)
|
||||
DIRSCRIPT=`pwd`/$DIRSCRIPT
|
||||
;;
|
||||
esac
|
||||
. $DIRSCRIPT/getarch
|
||||
|
||||
DIR="$MENTAT_MARCDIR"
|
||||
fi
|
||||
|
||||
SRCEXT=.f
|
||||
SRCEXTC=.F
|
||||
RSTEXT=.t08
|
||||
PSTEXT=.t19
|
||||
PSTEXTB=.t16
|
||||
VWFCEXT=.vfs
|
||||
|
||||
slv=$1
|
||||
version=$2
|
||||
ndom_fea_solver=$3
|
||||
ndom_preprocessor=$4
|
||||
hostfile=$5
|
||||
compat=$6
|
||||
job=$7
|
||||
srcfile=$8
|
||||
srcmeth=$9
|
||||
shift 9 # cannot use $10, $11, ...
|
||||
restart=$1
|
||||
postfile=$2
|
||||
viewfactorsfile=$3
|
||||
autorst=$4
|
||||
copy_datfile="-ci $5"
|
||||
copy_postfile="-cr $6"
|
||||
scr_dir=$7
|
||||
dcoup=$8
|
||||
assem_recov_nthread=$9
|
||||
shift 9 # cannot use $10, $11, ...
|
||||
nthread=$1
|
||||
nsolver=$2
|
||||
mode=$3
|
||||
gpu=$4
|
||||
|
||||
if [ "$slv" != "" -a "$slv" != "marc" ]; then
|
||||
slv="-iam sfm"
|
||||
else
|
||||
slv=""
|
||||
fi
|
||||
|
||||
if [ "$ndom_fea_solver" != "" -a "$ndom_fea_solver" != "1" ]; then
|
||||
nprocds="-nprocds $ndom_fea_solver"
|
||||
else
|
||||
nprocd=""
|
||||
if [ "$ndom_preprocessor" != "" -a "$ndom_preprocessor" != "1" ]; then
|
||||
nprocd="-nprocd $ndom_preprocessor"
|
||||
else
|
||||
nprocd=""
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$srcfile" != "" -a "$srcfile" != "-" ]; then
|
||||
srcfile=`echo $srcfile | sed "s/$SRCEXT$//" | sed "s/$SRCEXTC$//"`
|
||||
case "$srcmeth" in
|
||||
-)
|
||||
srcfile="-u $srcfile"
|
||||
;;
|
||||
compsave)
|
||||
srcfile="-u $srcfile -save y"
|
||||
;;
|
||||
runsaved)
|
||||
srcfile=${srcfile%.*}".marc"
|
||||
srcfile="-prog $srcfile"
|
||||
;;
|
||||
esac
|
||||
else
|
||||
srcfile=""
|
||||
fi
|
||||
|
||||
if [ "$restart" != "" -a "$restart" != "-" ]; then
|
||||
restart=`echo $restart | sed "s/$RSTEXT$//"`
|
||||
restart="-r $restart"
|
||||
else
|
||||
restart=""
|
||||
fi
|
||||
|
||||
if [ "$postfile" != "" -a "$postfile" != "-" ]; then
|
||||
postfile=`echo $postfile | sed "s/$PSTEXT$//"`
|
||||
postfile=`echo $postfile | sed "s/$PSTEXTB$//"`
|
||||
postfile="-pid $postfile"
|
||||
else
|
||||
postfile=""
|
||||
fi
|
||||
|
||||
if [ "$viewfactorsfile" != "" -a "$viewfactorsfile" != "-" ]; then
|
||||
viewfactorsfile=`echo $viewfactorsfile | sed "s/$VWFCEXT$//"`
|
||||
viewfactorsfile="-vf $viewfactorsfile"
|
||||
else
|
||||
viewfactorsfile=""
|
||||
fi
|
||||
|
||||
if [ "$hostfile" != "" -a "$hostfile" != "-" ]; then
|
||||
hostfile="-ho $hostfile"
|
||||
else
|
||||
hostfile=""
|
||||
fi
|
||||
|
||||
if [ "$compat" != "" -a "$compat" != "-" ]; then
|
||||
compat="-co $compat"
|
||||
else
|
||||
compat=""
|
||||
fi
|
||||
|
||||
if [ "$scr_dir" != "" -a "$scr_dir" != "-" ]; then
|
||||
scr_dir="-sd $scr_dir"
|
||||
else
|
||||
scr_dir=""
|
||||
fi
|
||||
|
||||
if [ "$dcoup" != "" -a "$dcoup" != "0" ]; then
|
||||
dcoup="-dcoup $dcoup"
|
||||
else
|
||||
dcoup=""
|
||||
fi
|
||||
|
||||
if [ "$assem_recov_nthread" != "" -a "$assem_recov_nthread" != "1" ]; then
|
||||
assem_recov_nthread="-nthread_elem $assem_recov_nthread"
|
||||
else
|
||||
assem_recov_nthread=""
|
||||
fi
|
||||
|
||||
if [ "$nthread" != "" -a "$nthread" != "0" -a "$nthread" != "1" ]; then
|
||||
nthread="-nthread $nthread"
|
||||
else
|
||||
nthread=""
|
||||
fi
|
||||
|
||||
if [ "$nsolver" != "" -a "$nsolver" != "0" ]; then
|
||||
nsolver="-nsolver $nsolver"
|
||||
else
|
||||
nsolver=""
|
||||
fi
|
||||
|
||||
case "$mode" in
|
||||
4) mode="-mo i4" ;;
|
||||
8) mode="-mo i8" ;;
|
||||
*) mode= ;;
|
||||
esac
|
||||
|
||||
if [ "$gpu" != "" -a "$gpu" != "-" ]; then
|
||||
gpu="-gpu $gpu"
|
||||
else
|
||||
gpu=""
|
||||
fi
|
||||
|
||||
rm -f $job.cnt
|
||||
rm -f $job.sts
|
||||
rm -f $job.out
|
||||
rm -f $job.log
|
||||
|
||||
# To prevent a mismatch with the python version used by the solver
|
||||
# do *not* prepend $MENTAT_INSTALL_DIR/python/bin to environment variable PATH
|
||||
# unset environment variables PYTHONHOME and PYTHONPATH
|
||||
unset PYTHONHOME
|
||||
unset PYTHONPATH
|
||||
|
||||
"${DIR}/tools/run_damask_hmp" $slv -j $job -v n -b y $nprocds $nprocd -autorst $autorst \
|
||||
$srcfile $restart $postfile $viewfactorsfile $hostfile \
|
||||
$compat $copy_datfile $copy_postfile $scr_dir $dcoup \
|
||||
$assem_recov_nthread $nthread $nsolver $mode $gpu > /dev/null 2>&1
|
||||
sleep 1
|
||||
exit 0
|
|
@ -1,187 +0,0 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# The exit status of this script is read by Mentat.
|
||||
# Normal exit status is 0.
|
||||
#
|
||||
|
||||
DIR=%INSTALLDIR%/marc%VERSION%
|
||||
if test $MARCDIR1
|
||||
then
|
||||
DIR=$MARCDIR1
|
||||
fi
|
||||
|
||||
if test -z "$DIR"; then
|
||||
REALCOM="`ls -l $0 |awk '{ print $NF; }'`"
|
||||
DIRSCRIPT=`dirname $REALCOM`
|
||||
case $DIRSCRIPT in
|
||||
\/*)
|
||||
;;
|
||||
*)
|
||||
DIRSCRIPT=`pwd`/$DIRSCRIPT
|
||||
;;
|
||||
esac
|
||||
. $DIRSCRIPT/getarch
|
||||
|
||||
DIR="$MENTAT_MARCDIR"
|
||||
fi
|
||||
|
||||
SRCEXT=.f
|
||||
SRCEXTC=.F
|
||||
RSTEXT=.t08
|
||||
PSTEXT=.t19
|
||||
PSTEXTB=.t16
|
||||
VWFCEXT=.vfs
|
||||
|
||||
slv=$1
|
||||
version=$2
|
||||
ndom_fea_solver=$3
|
||||
ndom_preprocessor=$4
|
||||
hostfile=$5
|
||||
compat=$6
|
||||
job=$7
|
||||
srcfile=$8
|
||||
srcmeth=$9
|
||||
shift 9 # cannot use $10, $11, ...
|
||||
restart=$1
|
||||
postfile=$2
|
||||
viewfactorsfile=$3
|
||||
autorst=$4
|
||||
copy_datfile="-ci $5"
|
||||
copy_postfile="-cr $6"
|
||||
scr_dir=$7
|
||||
dcoup=$8
|
||||
assem_recov_nthread=$9
|
||||
shift 9 # cannot use $10, $11, ...
|
||||
nthread=$1
|
||||
nsolver=$2
|
||||
mode=$3
|
||||
gpu=$4
|
||||
|
||||
if [ "$slv" != "" -a "$slv" != "marc" ]; then
|
||||
slv="-iam sfm"
|
||||
else
|
||||
slv=""
|
||||
fi
|
||||
|
||||
if [ "$ndom_fea_solver" != "" -a "$ndom_fea_solver" != "1" ]; then
|
||||
nprocds="-nprocds $ndom_fea_solver"
|
||||
else
|
||||
nprocd=""
|
||||
if [ "$ndom_preprocessor" != "" -a "$ndom_preprocessor" != "1" ]; then
|
||||
nprocd="-nprocd $ndom_preprocessor"
|
||||
else
|
||||
nprocd=""
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$srcfile" != "" -a "$srcfile" != "-" ]; then
|
||||
srcfile=`echo $srcfile | sed "s/$SRCEXT$//" | sed "s/$SRCEXTC$//"`
|
||||
case "$srcmeth" in
|
||||
-)
|
||||
srcfile="-u $srcfile"
|
||||
;;
|
||||
compsave)
|
||||
srcfile="-u $srcfile -save y"
|
||||
;;
|
||||
runsaved)
|
||||
srcfile=${srcfile%.*}".marc"
|
||||
srcfile="-prog $srcfile"
|
||||
;;
|
||||
esac
|
||||
else
|
||||
srcfile=""
|
||||
fi
|
||||
|
||||
if [ "$restart" != "" -a "$restart" != "-" ]; then
|
||||
restart=`echo $restart | sed "s/$RSTEXT$//"`
|
||||
restart="-r $restart"
|
||||
else
|
||||
restart=""
|
||||
fi
|
||||
|
||||
if [ "$postfile" != "" -a "$postfile" != "-" ]; then
|
||||
postfile=`echo $postfile | sed "s/$PSTEXT$//"`
|
||||
postfile=`echo $postfile | sed "s/$PSTEXTB$//"`
|
||||
postfile="-pid $postfile"
|
||||
else
|
||||
postfile=""
|
||||
fi
|
||||
|
||||
if [ "$viewfactorsfile" != "" -a "$viewfactorsfile" != "-" ]; then
|
||||
viewfactorsfile=`echo $viewfactorsfile | sed "s/$VWFCEXT$//"`
|
||||
viewfactorsfile="-vf $viewfactorsfile"
|
||||
else
|
||||
viewfactorsfile=""
|
||||
fi
|
||||
|
||||
if [ "$hostfile" != "" -a "$hostfile" != "-" ]; then
|
||||
hostfile="-ho $hostfile"
|
||||
else
|
||||
hostfile=""
|
||||
fi
|
||||
|
||||
if [ "$compat" != "" -a "$compat" != "-" ]; then
|
||||
compat="-co $compat"
|
||||
else
|
||||
compat=""
|
||||
fi
|
||||
|
||||
if [ "$scr_dir" != "" -a "$scr_dir" != "-" ]; then
|
||||
scr_dir="-sd $scr_dir"
|
||||
else
|
||||
scr_dir=""
|
||||
fi
|
||||
|
||||
if [ "$dcoup" != "" -a "$dcoup" != "0" ]; then
|
||||
dcoup="-dcoup $dcoup"
|
||||
else
|
||||
dcoup=""
|
||||
fi
|
||||
|
||||
if [ "$assem_recov_nthread" != "" -a "$assem_recov_nthread" != "1" ]; then
|
||||
assem_recov_nthread="-nthread_elem $assem_recov_nthread"
|
||||
else
|
||||
assem_recov_nthread=""
|
||||
fi
|
||||
|
||||
if [ "$nthread" != "" -a "$nthread" != "0" -a "$nthread" != "1" ]; then
|
||||
nthread="-nthread $nthread"
|
||||
else
|
||||
nthread=""
|
||||
fi
|
||||
|
||||
if [ "$nsolver" != "" -a "$nsolver" != "0" ]; then
|
||||
nsolver="-nsolver $nsolver"
|
||||
else
|
||||
nsolver=""
|
||||
fi
|
||||
|
||||
case "$mode" in
|
||||
4) mode="-mo i4" ;;
|
||||
8) mode="-mo i8" ;;
|
||||
*) mode= ;;
|
||||
esac
|
||||
|
||||
if [ "$gpu" != "" -a "$gpu" != "-" ]; then
|
||||
gpu="-gpu $gpu"
|
||||
else
|
||||
gpu=""
|
||||
fi
|
||||
|
||||
rm -f $job.cnt
|
||||
rm -f $job.sts
|
||||
rm -f $job.out
|
||||
rm -f $job.log
|
||||
|
||||
# To prevent a mismatch with the python version used by the solver
|
||||
# do *not* prepend $MENTAT_INSTALL_DIR/python/bin to environment variable PATH
|
||||
# unset environment variables PYTHONHOME and PYTHONPATH
|
||||
unset PYTHONHOME
|
||||
unset PYTHONPATH
|
||||
|
||||
"${DIR}/tools/run_damask_mp" $slv -j $job -v n -b y $nprocds $nprocd -autorst $autorst \
|
||||
$srcfile $restart $postfile $viewfactorsfile $hostfile \
|
||||
$compat $copy_datfile $copy_postfile $scr_dir $dcoup \
|
||||
$assem_recov_nthread $nthread $nsolver $mode $gpu > /dev/null 2>&1
|
||||
sleep 1
|
||||
exit 0
|
|
@ -1,187 +0,0 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# The exit status of this script is read by Mentat.
|
||||
# Normal exit status is 0.
|
||||
#
|
||||
|
||||
DIR=%INSTALLDIR%/marc%VERSION%
|
||||
if test $MARCDIR1
|
||||
then
|
||||
DIR=$MARCDIR1
|
||||
fi
|
||||
|
||||
if test -z "$DIR"; then
|
||||
REALCOM="`ls -l $0 |awk '{ print $NF; }'`"
|
||||
DIRSCRIPT=`dirname $REALCOM`
|
||||
case $DIRSCRIPT in
|
||||
\/*)
|
||||
;;
|
||||
*)
|
||||
DIRSCRIPT=`pwd`/$DIRSCRIPT
|
||||
;;
|
||||
esac
|
||||
. $DIRSCRIPT/getarch
|
||||
|
||||
DIR="$MENTAT_MARCDIR"
|
||||
fi
|
||||
|
||||
SRCEXT=.f
|
||||
SRCEXTC=.F
|
||||
RSTEXT=.t08
|
||||
PSTEXT=.t19
|
||||
PSTEXTB=.t16
|
||||
VWFCEXT=.vfs
|
||||
|
||||
slv=$1
|
||||
version=$2
|
||||
ndom_fea_solver=$3
|
||||
ndom_preprocessor=$4
|
||||
hostfile=$5
|
||||
compat=$6
|
||||
job=$7
|
||||
srcfile=$8
|
||||
srcmeth=$9
|
||||
shift 9 # cannot use $10, $11, ...
|
||||
restart=$1
|
||||
postfile=$2
|
||||
viewfactorsfile=$3
|
||||
autorst=$4
|
||||
copy_datfile="-ci $5"
|
||||
copy_postfile="-cr $6"
|
||||
scr_dir=$7
|
||||
dcoup=$8
|
||||
assem_recov_nthread=$9
|
||||
shift 9 # cannot use $10, $11, ...
|
||||
nthread=$1
|
||||
nsolver=$2
|
||||
mode=$3
|
||||
gpu=$4
|
||||
|
||||
if [ "$slv" != "" -a "$slv" != "marc" ]; then
|
||||
slv="-iam sfm"
|
||||
else
|
||||
slv=""
|
||||
fi
|
||||
|
||||
if [ "$ndom_fea_solver" != "" -a "$ndom_fea_solver" != "1" ]; then
|
||||
nprocds="-nprocds $ndom_fea_solver"
|
||||
else
|
||||
nprocd=""
|
||||
if [ "$ndom_preprocessor" != "" -a "$ndom_preprocessor" != "1" ]; then
|
||||
nprocd="-nprocd $ndom_preprocessor"
|
||||
else
|
||||
nprocd=""
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$srcfile" != "" -a "$srcfile" != "-" ]; then
|
||||
srcfile=`echo $srcfile | sed "s/$SRCEXT$//" | sed "s/$SRCEXTC$//"`
|
||||
case "$srcmeth" in
|
||||
-)
|
||||
srcfile="-u $srcfile"
|
||||
;;
|
||||
compsave)
|
||||
srcfile="-u $srcfile -save y"
|
||||
;;
|
||||
runsaved)
|
||||
srcfile=${srcfile%.*}".marc"
|
||||
srcfile="-prog $srcfile"
|
||||
;;
|
||||
esac
|
||||
else
|
||||
srcfile=""
|
||||
fi
|
||||
|
||||
if [ "$restart" != "" -a "$restart" != "-" ]; then
|
||||
restart=`echo $restart | sed "s/$RSTEXT$//"`
|
||||
restart="-r $restart"
|
||||
else
|
||||
restart=""
|
||||
fi
|
||||
|
||||
if [ "$postfile" != "" -a "$postfile" != "-" ]; then
|
||||
postfile=`echo $postfile | sed "s/$PSTEXT$//"`
|
||||
postfile=`echo $postfile | sed "s/$PSTEXTB$//"`
|
||||
postfile="-pid $postfile"
|
||||
else
|
||||
postfile=""
|
||||
fi
|
||||
|
||||
if [ "$viewfactorsfile" != "" -a "$viewfactorsfile" != "-" ]; then
|
||||
viewfactorsfile=`echo $viewfactorsfile | sed "s/$VWFCEXT$//"`
|
||||
viewfactorsfile="-vf $viewfactorsfile"
|
||||
else
|
||||
viewfactorsfile=""
|
||||
fi
|
||||
|
||||
if [ "$hostfile" != "" -a "$hostfile" != "-" ]; then
|
||||
hostfile="-ho $hostfile"
|
||||
else
|
||||
hostfile=""
|
||||
fi
|
||||
|
||||
if [ "$compat" != "" -a "$compat" != "-" ]; then
|
||||
compat="-co $compat"
|
||||
else
|
||||
compat=""
|
||||
fi
|
||||
|
||||
if [ "$scr_dir" != "" -a "$scr_dir" != "-" ]; then
|
||||
scr_dir="-sd $scr_dir"
|
||||
else
|
||||
scr_dir=""
|
||||
fi
|
||||
|
||||
if [ "$dcoup" != "" -a "$dcoup" != "0" ]; then
|
||||
dcoup="-dcoup $dcoup"
|
||||
else
|
||||
dcoup=""
|
||||
fi
|
||||
|
||||
if [ "$assem_recov_nthread" != "" -a "$assem_recov_nthread" != "1" ]; then
|
||||
assem_recov_nthread="-nthread_elem $assem_recov_nthread"
|
||||
else
|
||||
assem_recov_nthread=""
|
||||
fi
|
||||
|
||||
if [ "$nthread" != "" -a "$nthread" != "0" -a "$nthread" != "1" ]; then
|
||||
nthread="-nthread $nthread"
|
||||
else
|
||||
nthread=""
|
||||
fi
|
||||
|
||||
if [ "$nsolver" != "" -a "$nsolver" != "0" ]; then
|
||||
nsolver="-nsolver $nsolver"
|
||||
else
|
||||
nsolver=""
|
||||
fi
|
||||
|
||||
case "$mode" in
|
||||
4) mode="-mo i4" ;;
|
||||
8) mode="-mo i8" ;;
|
||||
*) mode= ;;
|
||||
esac
|
||||
|
||||
if [ "$gpu" != "" -a "$gpu" != "-" ]; then
|
||||
gpu="-gpu $gpu"
|
||||
else
|
||||
gpu=""
|
||||
fi
|
||||
|
||||
rm -f $job.cnt
|
||||
rm -f $job.sts
|
||||
rm -f $job.out
|
||||
rm -f $job.log
|
||||
|
||||
# To prevent a mismatch with the python version used by the solver
|
||||
# do *not* prepend $MENTAT_INSTALL_DIR/python/bin to environment variable PATH
|
||||
# unset environment variables PYTHONHOME and PYTHONPATH
|
||||
unset PYTHONHOME
|
||||
unset PYTHONPATH
|
||||
|
||||
"${DIR}/tools/run_damask_lmp" $slv -j $job -v n -b y $nprocds $nprocd -autorst $autorst \
|
||||
$srcfile $restart $postfile $viewfactorsfile $hostfile \
|
||||
$compat $copy_datfile $copy_postfile $scr_dir $dcoup \
|
||||
$assem_recov_nthread $nthread $nsolver $mode $gpu > /dev/null 2>&1
|
||||
sleep 1
|
||||
exit 0
|
|
@ -1,17 +1,17 @@
|
|||
#
|
||||
# General definitions for the Marc 2016 version
|
||||
# General definitions for the Marc 2018.1 version
|
||||
#
|
||||
# EM64T
|
||||
#
|
||||
# Linux RedHat 6.3 / SuSE 11
|
||||
# Linux RedHat 7.1 / SuSE 11 SP4
|
||||
#
|
||||
# 64 bit MPI version
|
||||
#
|
||||
# Intel(R) Fortran Intel(R) 64 Compiler XE for applications
|
||||
# running on Intel(R) 64, Version 15.0.0.090 Build 20140723
|
||||
# running on Intel(R) 64, Version 17.0.2.174 Build 20170213
|
||||
#
|
||||
# Intel(R) C Intel(R) 64 Compiler XE for applications
|
||||
# running on Intel(R) 64, Version 15.0.0.090 Build 20140723
|
||||
# running on Intel(R) 64, Version 17.0.2.174 Build 20170213
|
||||
#
|
||||
# To check the O/S level, type:
|
||||
# uname -a
|
||||
|
@ -20,7 +20,7 @@
|
|||
# 1) HP MPI 2.3
|
||||
# To check the mpi version, type:
|
||||
# mpirun -version
|
||||
# 2) Intel MPI 5.1.3
|
||||
# 2) Intel MPI 2017.1
|
||||
# To check the mpi version, type:
|
||||
# mpiexec.hydra -version
|
||||
#
|
||||
|
@ -64,7 +64,7 @@ else
|
|||
fi
|
||||
|
||||
FCOMP=ifort
|
||||
INTELPATH="/opt/intel/composer_xe_2015.0.090"
|
||||
INTELPATH="/opt/intel/compilers_and_libraries_2017/linux"
|
||||
|
||||
# find the root directory of the compiler installation:
|
||||
# - if ifort is found in $PATH, then the root directory is derived
|
||||
|
@ -99,14 +99,25 @@ else
|
|||
FCOMPROOT=
|
||||
fi
|
||||
|
||||
# AEM
|
||||
if test "$MARCDLLOUTDIR" = ""; then
|
||||
DLLOUTDIR="$MARC_LIB"
|
||||
else
|
||||
DLLOUTDIR="$MARCDLLOUTDIR"
|
||||
fi
|
||||
|
||||
# settings for MKL
|
||||
MARC_MKL="$FCOMPROOT/mkl/lib/intel64"
|
||||
if test "$IMKLDIR" = ""; then
|
||||
MARC_MKL="$FCOMPROOT/mkl/lib/intel64"
|
||||
else
|
||||
MARC_MKL=$IMKLDIR/lib/intel64
|
||||
fi
|
||||
|
||||
#
|
||||
# settings for Metis
|
||||
#
|
||||
METIS="-I$METIS_SOURCE/include"
|
||||
METISLIBS="$MARC_LIB/metis.a "
|
||||
METISLIBS="$METISLIB_DIR/libmarcddm.a $METISLIB_DIR/libmarcmetis.a "
|
||||
|
||||
#
|
||||
# settings for MPI
|
||||
|
@ -149,13 +160,31 @@ fi
|
|||
#BCSGPUSOLVER=NONE
|
||||
BCSGPUSOLVER=BCSGPU
|
||||
|
||||
# Edit following lines to set the openssl library
|
||||
if test "$OPENSSL" != "NONE"
|
||||
then
|
||||
OPENSSL_LIB="$MARC_LIB/libcrypto.a"
|
||||
fi
|
||||
OPENSSL_INCLUDE=-I"$MARC_OPENSSL/include/"
|
||||
|
||||
# activate contact component build if flagged
|
||||
AEM_DLL=0
|
||||
if test "$AEM_BUILD" = "ON" ; then
|
||||
AEM_DLL=1
|
||||
LINK_MARC_DLL="-shared -fPIC"
|
||||
EXT_DLL="so"
|
||||
MPITYPE=none
|
||||
MPI_OTHER=
|
||||
BCSGPUSOLVER=NONE
|
||||
MUMPSSOLVER=NONE
|
||||
CASISOLVER=NONE
|
||||
fi
|
||||
|
||||
SOLVERFLAGS=
|
||||
if test "$BCSGPUSOLVER" = BCSGPU
|
||||
then
|
||||
SOLVERFLAGS="$SOLVERFLAGS -DBCSGPU -DCUDA"
|
||||
BCS_DIR=bcsgpusolver
|
||||
export PATH=$MARC_CUDA/bin:$MARC_CUDA/nvvm:$PATH
|
||||
export LD_LIBRARY_PATH=$MARC_CUDA/lib64:$LD_LIBRARY_PATH
|
||||
else
|
||||
BCS_DIR=bcssolver
|
||||
fi
|
||||
|
@ -198,18 +227,18 @@ then
|
|||
INTELMPI_VERSION=HYDRA
|
||||
FCOMPMPI=mpiifort
|
||||
MPI_ROOT=$MARC_INTELMPI
|
||||
DDM="-I${MPI_ROOT}/include64 -DDDM"
|
||||
PATH=$MPI_ROOT/bin64:$PATH
|
||||
DDM="-I${MPI_ROOT}/include -DDDM"
|
||||
PATH=$MPI_ROOT/bin:$PATH
|
||||
export PATH
|
||||
LD_LIBRARY_PATH=$MPI_ROOT/lib64:$LD_LIBRARY_PATH
|
||||
LD_LIBRARY_PATH=$MPI_ROOT/lib:$LD_LIBRARY_PATH
|
||||
export LD_LIBRARY_PATH
|
||||
if test $INTELMPI_VERSION = HYDRA
|
||||
then
|
||||
RUN_JOB1="${MPI_ROOT}/bin64/mpiexec.hydra -genvall -n "
|
||||
RUN_JOB2="${MPI_ROOT}/bin64/mpiexec.hydra -genvall"
|
||||
RUN_JOB1="${MPI_ROOT}/bin/mpiexec.hydra -genvall -n "
|
||||
RUN_JOB2="${MPI_ROOT}/bin/mpiexec.hydra -genvall"
|
||||
else
|
||||
RUN_JOB1="${MPI_ROOT}/bin64/mpiexec -n "
|
||||
RUN_JOB2="${MPI_ROOT}/bin64/mpiexec -configfile "
|
||||
RUN_JOB1="${MPI_ROOT}/bin/mpiexec -n "
|
||||
RUN_JOB2="${MPI_ROOT}/bin/mpiexec -configfile "
|
||||
fi
|
||||
RUN_JOB0=
|
||||
MPI_CLEAN=
|
||||
|
@ -283,6 +312,15 @@ then
|
|||
BCSGPUSOLVER=NONE
|
||||
MARC_DLL=NONE
|
||||
fi
|
||||
if test "$AEM_DLL" -eq 1
|
||||
then
|
||||
VKISOLVER=NONE
|
||||
CASISOLVER=NONE
|
||||
MF2SOLVER=NONE
|
||||
INTELSOLVER=NONE
|
||||
MUMPSSOLVER=NONE
|
||||
BCSGPUSOLVER=NONE
|
||||
fi
|
||||
|
||||
#
|
||||
# define Fortran and C compile syntax
|
||||
|
@ -356,12 +394,10 @@ if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|||
I8FFLAGS="-real-size 64 -integer-size 32"
|
||||
I8DEFINES="-DFLOAT=8 -DINT=4"
|
||||
I8CDEFINES=
|
||||
I8CASIDEFS=
|
||||
else
|
||||
I8FFLAGS="-i8 -real-size 64 -integer-size 64"
|
||||
I8DEFINES="-DI64 -DFLOAT=8 -DINT=8"
|
||||
I8CDEFINES="-U_DOUBLE -D_SINGLE"
|
||||
I8CASIDEFS="-DCASI_64BIT_INT=1"
|
||||
fi
|
||||
|
||||
MTHREAD=OPENMP
|
||||
|
@ -373,6 +409,18 @@ if test "$_OEM_NASTRAN" -ne 0
|
|||
then
|
||||
MTHREAD=NONE
|
||||
fi
|
||||
if test "$AEM_DLL" -eq 1
|
||||
then
|
||||
MTHREAD=NONE
|
||||
CASISOLVER=NONE
|
||||
VKISOLVER=NONE
|
||||
MF2SOLVER=NONE
|
||||
INTELSOLVER=NONE
|
||||
BCSGPUSOLVER=NONE
|
||||
OPENSSL_LIB=
|
||||
MARC_DLL=NONE
|
||||
METISLIBS=
|
||||
fi
|
||||
|
||||
OMP_COMPAT=NO
|
||||
OMP_COMPAT=YES
|
||||
|
@ -406,40 +454,45 @@ fi
|
|||
FDEFINES="$FDEFINES -D_MSCMARC $DEBUG_OPT $MARC_SIMUFACT"
|
||||
CDEFINES="$CDEFINES -D_MSCMARC $C_DEBUG_OPT $I8CDEFINES"
|
||||
|
||||
if test "$AEM_DLL" -eq 1
|
||||
then
|
||||
FDEFINES="$FDEFINES -D_AEMNL -DAAA"
|
||||
CDEFINES="$CDEFINES -D_AEMNL -DAAA"
|
||||
fi
|
||||
|
||||
CINCL="-I$MARC_SOURCE/mdsrc -I$MARC_SOURCE/csource $METIS"
|
||||
if test "$_OEM_NASTRAN" -ne 0
|
||||
then
|
||||
CINCL="$CINCL -I../../include"
|
||||
fi
|
||||
|
||||
CC="icc -c -O1 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
||||
CCLOW="icc -c -O0 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
||||
CCHIGH="icc -c -O3 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
||||
CC_OPT=
|
||||
if test "$MTHREAD" = "OPENMP"
|
||||
then
|
||||
CC_OPT=" $CC_OPT -qopenmp"
|
||||
fi
|
||||
|
||||
CC="icc -c $CC_OPT -O1 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
CCLOW="icc -c $CC_OPT -O0 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
CCHIGH="icc -c $CC_OPT -O3 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
|
||||
if test "$MARCDEBUG" = "ON"
|
||||
then
|
||||
CC="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
||||
CCLOW="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
||||
CCHIGH="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
||||
CC="icc -c $CC_OPT -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
CCLOW="icc $CC_OPT -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
CCHIGH="icc $CC_OPT -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
fi
|
||||
|
||||
LOAD_CC="icc -O1 -DLinux -DLINUX -DLinux_intel"
|
||||
LOAD_CC="icc $CC_OPT -O1 -DLinux -DLINUX -DLinux_intel"
|
||||
CCT="$CC"
|
||||
CCTLOW="$CCLOW"
|
||||
CCTHIGH="$CCHIGH"
|
||||
|
||||
CC_CASI="$CC -std=c99 $I8CASIDEFS"
|
||||
CCLOW_CASI="$CCLOW -std=c99 $I8CASIDEFS"
|
||||
CCHIGH_CASI="$CCHIGH -std=c99 $I8CASIDEFS"
|
||||
|
||||
CCT_CASI="$CCT -std=c99 $I8CASIDEFS"
|
||||
CCTLOW_CASI="$CCLOW -std=c99 $I8CASIDEFS"
|
||||
CCTHIGH_CASI="$CCHIGH -std=c99 $I8CASIDEFS"
|
||||
|
||||
#PROFILE="-Mprof=func"
|
||||
#PROFILE="-Mprof=lines"
|
||||
#PROFILE="-Mprof=func,mpi"
|
||||
PROFILE=
|
||||
#PROFILE="-init=snan,arrays -CB -traceback -fpe0 -fp-stack-check -check all -check uninit -ftrapuv"
|
||||
if test "$MARCCODECOV" = "ON"
|
||||
then
|
||||
PROFILE="-prof-gen=srcpos"
|
||||
|
@ -449,7 +502,7 @@ then
|
|||
PROFILE=" $PROFILE -pg"
|
||||
fi
|
||||
|
||||
FORT_OPT="-c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr -mp1 -WB -fp-model source"
|
||||
FORT_OPT="-c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr -mp1 -WB -fp-model source"
|
||||
if test "$MTHREAD" = "OPENMP"
|
||||
then
|
||||
FORT_OPT=" $FORT_OPT -qopenmp"
|
||||
|
@ -463,13 +516,15 @@ else
|
|||
fi
|
||||
|
||||
FORTLOW="$FCOMP $FORT_OPT $PROFILE -O0 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
FORTRAN="$FCOMP $FORT_OPT $PROFILE -O1 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
FORTHIGH="$FCOMP $FORT_OPT $PROFILE -fno-alias -O3 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
FORTNA="$FCOMP $FORT_OPT -fno-alias -O3 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
||||
# for compiling free form f90 files. high opt, integer(4)
|
||||
FORTF90="$FCOMP -c -O3"
|
||||
|
||||
# determine DAMASK version
|
||||
if test -n "$DAMASK_USER"; then
|
||||
|
@ -480,46 +535,54 @@ else
|
|||
DAMASKVERSION="'N/A'"
|
||||
fi
|
||||
|
||||
if test "$DAMASK_HDF5" = "ON";then
|
||||
DFCOMP="$(h5fc -show) -DDAMASKHDF5"
|
||||
else
|
||||
DFCOMP=$FCOMP
|
||||
fi
|
||||
|
||||
#
|
||||
# DAMASK compiler calls: additional flags are in line 2 OpenMP flags in line 3
|
||||
DFORTLOWMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -O0 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2016 -DDAMASKVERSION=$DAMASKVERSION \
|
||||
DFORTLOWMP="$DFCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -O0 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2018.1 -DDAMASKVERSION=$DAMASKVERSION \
|
||||
-qopenmp -qopenmp-threadprivate=compat\
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
||||
DFORTRANMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -O1 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2016 -DDAMASKVERSION=$DAMASKVERSION \
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
DFORTRANMP="$DFCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -O1 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2018.1 -DDAMASKVERSION=$DAMASKVERSION \
|
||||
-qopenmp -qopenmp-threadprivate=compat\
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
||||
DFORTHIGHMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -fno-alias -O2 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2016 -DDAMASKVERSION=$DAMASKVERSION \
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
DFORTHIGHMP="$DFCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -fno-alias -O2 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2018.1 -DDAMASKVERSION=$DAMASKVERSION \
|
||||
-qopenmp -qopenmp-threadprivate=compat\
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
|
||||
|
||||
if test "$MARCDEBUG" = "ON"
|
||||
then
|
||||
FORTLOW="$FCOMP $FORT_OPT $PROFILE $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
FORTRAN="$FCOMP $FORT_OPT $PROFILE $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
FORTHIGH="$FCOMP $FORT_OPT $PROFILE -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
FORTNA="$FCOMP $FORT_OPT -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
||||
fi
|
||||
|
||||
# DAMASK compiler calls: additional flags are in line 2 OpenMP flags in line 3
|
||||
DFORTLOWMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2016 -DDAMASKVERSION=$DAMASKVERSION \
|
||||
DFORTLOWMP="$DFCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2018.1 -DDAMASKVERSION=$DAMASKVERSION \
|
||||
-qopenmp -qopenmp-threadprivate=compat\
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
||||
DFORTRANMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2016 -DDAMASKVERSION=$DAMASKVERSION \
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
DFORTRANMP="$DFCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2018.1 -DDAMASKVERSION=$DAMASKVERSION \
|
||||
-qopenmp -qopenmp-threadprivate=compat\
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
||||
DFORTHIGHMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2016 -DDAMASKVERSION=$DAMASKVERSION \
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
DFORTHIGHMP="$DFCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2018.1 -DDAMASKVERSION=$DAMASKVERSION \
|
||||
-qopenmp -qopenmp-threadprivate=compat\
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
|
||||
fi
|
||||
|
||||
FORTLOWT="$FORTLOW"
|
||||
FORTRANT="$FORTRAN"
|
||||
|
@ -528,25 +591,6 @@ FORTHIGHT="$FORTHIGH"
|
|||
FORTRANMNF="$FCOMP -c $FDEFINES "
|
||||
CCMNF="icc -c -O1 -DLinux -DLINUX -DLinux_intel -Dport2egcs -I$MARC_SOURCE/marctoadams/mnf/include -D_LARGEFILE64_SOURCE"
|
||||
|
||||
FORTRANMUMPS="$FCOMP -fpp $FORT_OPT $PROFILE -fno-alias -O1 -fp-model precise $FDEFINES -D_IMPLICITNONE $I8FFLAGS $I8DEFINES $DDM -I$MARC_SOURCE/mumpssolver/include -Dintel_ -DALLOW_NON_INIT -Dmetis -nofor_main"
|
||||
CCMUMPS="icc -c -DAdd_ -Dmetis -I$MARC_SOURCE/mumpssolver/include"
|
||||
|
||||
|
||||
BCSCC="icc -c -O3 -DLOWERCASE_ -I${MARC_SOURCE}/${BCS_DIR}/bcslib_csrc $CDEFINES $CINCL"
|
||||
NVCC="nvcc -c -O3 -arch sm_20 -DLOWERCASE_ -I${MARC_SOURCE}/${BCS_DIR}/bcslib_cuda/include -I${MARC_CUDA}/include -I$MARC_SOURCE/mdsrc $I8DEFINES -Xcompiler -fvisibility=hidden -Xcompiler -fPIC $I8DEFINES "
|
||||
NVCCLIB="ar rvl"
|
||||
NVCCLD=icc
|
||||
BCSFORTLOW="$FORTLOW -I${MARC_SOURCE}/${BCS_DIR}/common"
|
||||
BCSFORTRAN="$FORTRAN -I${MARC_SOURCE}/${BCS_DIR}/common"
|
||||
BCSFORTHIGH="$FORTHIGH -I${MARC_SOURCE}/${BCS_DIR}/common"
|
||||
BCSFORT90HIGH="$BCSFORTHIGH"
|
||||
if test "$MARCDEBUG" = "ON"
|
||||
then
|
||||
BCSFORTRAN=$BCSFORTLOW
|
||||
BCSFORTHIGH=$BCSFORTLOW
|
||||
BCSFORT90HIGH=$BCSFORTLOW
|
||||
fi
|
||||
|
||||
if test $MPITYPE != none
|
||||
then
|
||||
if test $MPITYPE = hpmpi
|
||||
|
@ -557,9 +601,9 @@ then
|
|||
# Uncomment the following lines to turn on the tracer and commnet out the next 5 lines
|
||||
# if test $MPITYPE = intelmpi
|
||||
# then
|
||||
# INCLUDEMPI="-I$MPI_ROOT/include64 -I$VT_ROOT/include"
|
||||
# LOAD="$MPI_ROOT/bin64/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
||||
# LOADT="$MPI_ROOT/bin64/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
||||
# INCLUDEMPI="-I$MPI_ROOT/include -I$VT_ROOT/include"
|
||||
# LOAD="$MPI_ROOT/bin/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
||||
# LOADT="$MPI_ROOT/bin/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
||||
# fi
|
||||
if test $MPITYPE = intelmpi
|
||||
then
|
||||
|
@ -579,9 +623,6 @@ then
|
|||
FORTRANMNF="$FORTRANMNF -fpp -fPIC"
|
||||
CC="$CC -fPIC"
|
||||
CCMNF="$CCMNF -fPIC"
|
||||
CC_CASI="$CC_CASI -fPIC"
|
||||
CCLOW_CASI="$CCLOW_CASI -fPIC"
|
||||
CCHIGH_CASI="$CCHIGH_CASI -fPIC"
|
||||
LINK_EXE_MARC="-L$MARC_LIB -lmarc -L$MARC_LIB_SHARED -lguide -lpthread"
|
||||
LINK_MARC_DLL="-shared -fPIC"
|
||||
LOAD_DLL=$LOAD
|
||||
|
@ -589,6 +630,21 @@ then
|
|||
EXT_DLL="so"
|
||||
fi
|
||||
|
||||
if test "$AEM_DLL" -eq 1
|
||||
then
|
||||
FORTLOW="$FORTLOW -fpp -fPIC"
|
||||
FORTRAN="$FORTRAN -fpp -fPIC"
|
||||
FORTHIGH="$FORTHIGH -fpp -fPIC"
|
||||
FORTRANMNF="$FORTRANMNF -fpp -fPIC"
|
||||
CC="$CC -fPIC"
|
||||
CCMNF="$CCMNF -fPIC"
|
||||
LINK_EXE_MARC="-L$MARC_LIB -lmarc -L$MARC_LIB_SHARED -lguide"
|
||||
LINK_MARC_DLL="-shared -fPIC"
|
||||
LOAD_DLL=$LOAD
|
||||
LOADT_DLL=$LOADT
|
||||
EXT_DLL="so"
|
||||
fi
|
||||
|
||||
|
||||
XLIBS="-L/usr/X11/lib -lX11 "
|
||||
|
||||
|
@ -614,7 +670,7 @@ fi
|
|||
|
||||
if test "$CASISOLVER" = CASI
|
||||
then
|
||||
CASISOLVERLIBS="$MARC_CASI/casilib.a"
|
||||
CASISOLVERLIBS="$CASILIB_DIR/libmarccasi.a $CASILIB_DIR/libcasi.a"
|
||||
else
|
||||
CASISOLVERLIBS=
|
||||
fi
|
||||
|
@ -637,7 +693,7 @@ fi
|
|||
|
||||
if test "$MUMPSSOLVER" = MUMPS
|
||||
then
|
||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a"
|
||||
MUMPSSOLVERLIBS="$MUMPSLIB_DIR/libmumps.a"
|
||||
if test $MPITYPE = none
|
||||
then
|
||||
MUMPSSOLVERLIBS2=
|
||||
|
@ -654,9 +710,9 @@ then
|
|||
if test $MPITYPE = hpmpi
|
||||
then
|
||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_lp64.a"
|
||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_intelmpi_lp64.a"
|
||||
else
|
||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_ilp64.a"
|
||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_intelmpi_ilp64.a"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
|
@ -666,29 +722,35 @@ fi
|
|||
|
||||
if test "$BCSGPUSOLVER" = BCSGPU
|
||||
then
|
||||
BCSSOLVERLIBS="${MARC_LIB}/bcsgpulib.a "
|
||||
MARCCUDALIBS1="-L${MARC_LIB}/cuda_dummy -lmarccuda "
|
||||
MARCCUDALIBS2="-L${MARC_LIB}/cuda -lmarccuda "
|
||||
BCSSOLVERLIBS="${BCSLIB_DIR}/bcsgpulib.a "
|
||||
MARCCUDALIBS1="-L${BCSLIB_DIR}/cuda_dummy -lmarccuda "
|
||||
MARCCUDALIBS2="-L${BCSLIB_DIR}/cuda -lmarccuda "
|
||||
MARCCUDALIBS=$MARCCUDALIBS1
|
||||
CUDALIBS="-L$MARC_CUDA/lib64 -lcudart -lcublas -L/usr/lib64 -lcuda "
|
||||
else
|
||||
BCSSOLVERLIBS="${MARC_LIB}/bcslib.a "
|
||||
fi
|
||||
if test "$AEM_DLL" -eq 1
|
||||
then
|
||||
BCSSOLVERLIBS=
|
||||
fi
|
||||
|
||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
||||
MKLLIB="$MARC_MKL/libmkl_scalapack_lp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_lp64.a $MARC_MKL/libmkl_core.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_blacs_intelmpi_lp64.a -Wl,--end-group"
|
||||
MKLLIB="$MARC_MKL/libmkl_scalapack_lp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_lp64.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_core.a $MARC_MKL/libmkl_blacs_intelmpi_lp64.a $MUMPSSOLVERLIBS2 -Wl,--end-group"
|
||||
else
|
||||
MKLLIB="$MARC_MKL/libmkl_scalapack_ilp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_ilp64.a $MARC_MKL/libmkl_core.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_blacs_intelmpi_ilp64.a -Wl,--end-group"
|
||||
MKLLIB="$MARC_MKL/libmkl_scalapack_ilp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_ilp64.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_core.a $MARC_MKL/libmkl_blacs_intelmpi_ilp64.a $MUMPSSOLVERLIBS2 -Wl,--end-group"
|
||||
fi
|
||||
|
||||
SECLIBS="-L$MARC_LIB -llapi"
|
||||
|
||||
SOLVERLIBS="${BCSSOLVERLIBS} ${VKISOLVERLIBS} ${CASISOLVERLIBS} ${MF2SOLVERLIBS} ${MUMPSSOLVERLIBS2} \
|
||||
SOLVERLIBS="${BCSSOLVERLIBS} ${VKISOLVERLIBS} ${CASISOLVERLIBS} ${MF2SOLVERLIBS} \
|
||||
$MKLLIB -L$MARC_MKL -liomp5 \
|
||||
$MARC_LIB/blas_src.a ${ACSI_LIB}/ACSI_MarcLib.a "
|
||||
$MARC_LIB/blas_src.a ${ACSI_LIB}/ACSI_MarcLib.a $KDTREE2_LIB/kdtree2.a "
|
||||
|
||||
SOLVERLIBS_DLL=${SOLVERLIBS}
|
||||
|
||||
if test "$AEM_DLL" -eq 1
|
||||
then
|
||||
SOLVERLIBS_DLL="$MKLLIB -L$MARC_MKL -liomp5 $MARC_LIB/blas_src.a"
|
||||
fi
|
||||
MRCLIBS="$MARC_LIB/clib.a ${CASISOLVERLIBS}"
|
||||
MRCLIBSPAR="$MARC_LIB/clib.a"
|
||||
STUBS="$MARC_LIB/stubs.a "
|
||||
|
@ -703,7 +765,15 @@ fi
|
|||
|
||||
OPENMP="-qopenmp"
|
||||
|
||||
SYSLIBS=" $OPENMP -lpthread "
|
||||
if test "$AEM_DLL" -eq 1
|
||||
then
|
||||
LOAD_DLL=$LOAD
|
||||
OPENMP=
|
||||
LIBMNF=
|
||||
OPENSSL=NONE
|
||||
fi
|
||||
|
||||
SYSLIBS=" $OPENMP -lpthread -cxxlib"
|
||||
|
||||
# Uncomment the following lines to turn on the trace and comment out the next 4 lines
|
||||
# if test $MPITYPE = intelmpi
|
||||
|
@ -713,7 +783,7 @@ SYSLIBS=" $OPENMP -lpthread "
|
|||
# fi
|
||||
if test $MPITYPE = intelmpi
|
||||
then
|
||||
SYSLIBS="-L${MPI_ROOT}/lib64 -lmpi_mt -lmpifort -lrt $OPENMP -threads -lpthread "
|
||||
SYSLIBS="-L${MPI_ROOT}/lib -lmpi_mt -lmpifort -lrt $OPENMP -threads -lpthread -cxxlib"
|
||||
fi
|
||||
|
||||
|
||||
|
@ -740,13 +810,11 @@ LOW_OPT_CODES="are163.f contro.f ndext.f omarc.f omarca.f omarcb.f omarcc.f \
|
|||
if test "$MARC_INTEGER_SIZE" = "i8" ; then
|
||||
LOW_OPT_CODES="$LOW_OPT_CODES bbcseg.f"
|
||||
fi
|
||||
LOW_OPT_CODES_CASI=""
|
||||
|
||||
HIGH_OPT_CODES="dpsmsa1.f dpsmsa2.f dpsmsa3.f dpsmsa4.f dpsmsa5.f dpsmsa6.f \
|
||||
dpsmsa7.f dpsmsa8.f dpsmsa9.f dpsmsa10.f dpsmsa11.f dpsmsa12.f \
|
||||
dpsmsa13.f dpsmsa14.f dpsmsa15.f dpsmsa16.f dpsmsah.f tpsmsah.f cn_qsort4_11.f "
|
||||
|
||||
|
||||
HIGH_OPT_CODES_CASI="arithkernels.c blockedroutines.c blockedroutines_fd.c elemmatgenkernels.c longvecroutines.c sfmultutils.c solvewithbd.c"
|
||||
|
||||
MAXNUM=1000000
|
|
@ -1,17 +1,17 @@
|
|||
#
|
||||
# General definitions for the Marc 2017 version
|
||||
# General definitions for the Marc 2018.1 version
|
||||
#
|
||||
# EM64T
|
||||
#
|
||||
# Linux RedHat 6.7 / RedHat 7.1 / SuSE 11 SP3
|
||||
# Linux RedHat 7.1 / SuSE 11 SP4
|
||||
#
|
||||
# 64 bit MPI version
|
||||
#
|
||||
# Intel(R) Fortran Intel(R) 64 Compiler XE for applications
|
||||
# running on Intel(R) 64, Version 16.0.2.181 Build 20160204
|
||||
# running on Intel(R) 64, Version 17.0.2.174 Build 20170213
|
||||
#
|
||||
# Intel(R) C Intel(R) 64 Compiler XE for applications
|
||||
# running on Intel(R) 64, Version 16.0.2.181 Build 20160204
|
||||
# running on Intel(R) 64, Version 17.0.2.174 Build 20170213
|
||||
#
|
||||
# To check the O/S level, type:
|
||||
# uname -a
|
||||
|
@ -20,7 +20,7 @@
|
|||
# 1) HP MPI 2.3
|
||||
# To check the mpi version, type:
|
||||
# mpirun -version
|
||||
# 2) Intel MPI 5.1.3
|
||||
# 2) Intel MPI 2017.1
|
||||
# To check the mpi version, type:
|
||||
# mpiexec.hydra -version
|
||||
#
|
||||
|
@ -64,7 +64,7 @@ else
|
|||
fi
|
||||
|
||||
FCOMP=ifort
|
||||
INTELPATH="/opt/intel/compilers_and_libraries_2016/linux"
|
||||
INTELPATH="/opt/intel/compilers_and_libraries_2017/linux"
|
||||
|
||||
# find the root directory of the compiler installation:
|
||||
# - if ifort is found in $PATH, then the root directory is derived
|
||||
|
@ -99,14 +99,25 @@ else
|
|||
FCOMPROOT=
|
||||
fi
|
||||
|
||||
# AEM
|
||||
if test "$MARCDLLOUTDIR" = ""; then
|
||||
DLLOUTDIR="$MARC_LIB"
|
||||
else
|
||||
DLLOUTDIR="$MARCDLLOUTDIR"
|
||||
fi
|
||||
|
||||
# settings for MKL
|
||||
MARC_MKL="$FCOMPROOT/mkl/lib/intel64"
|
||||
if test "$IMKLDIR" = ""; then
|
||||
MARC_MKL="$FCOMPROOT/mkl/lib/intel64"
|
||||
else
|
||||
MARC_MKL=$IMKLDIR/lib/intel64
|
||||
fi
|
||||
|
||||
#
|
||||
# settings for Metis
|
||||
#
|
||||
METIS="-I$METIS_SOURCE/include"
|
||||
METISLIBS="$MARC_LIB/metis.a "
|
||||
METISLIBS="$METISLIB_DIR/libmarcddm.a $METISLIB_DIR/libmarcmetis.a "
|
||||
|
||||
#
|
||||
# settings for MPI
|
||||
|
@ -156,14 +167,24 @@ then
|
|||
fi
|
||||
OPENSSL_INCLUDE=-I"$MARC_OPENSSL/include/"
|
||||
|
||||
# activate contact component build if flagged
|
||||
AEM_DLL=0
|
||||
if test "$AEM_BUILD" = "ON" ; then
|
||||
AEM_DLL=1
|
||||
LINK_MARC_DLL="-shared -fPIC"
|
||||
EXT_DLL="so"
|
||||
MPITYPE=none
|
||||
MPI_OTHER=
|
||||
BCSGPUSOLVER=NONE
|
||||
MUMPSSOLVER=NONE
|
||||
CASISOLVER=NONE
|
||||
fi
|
||||
|
||||
SOLVERFLAGS=
|
||||
if test "$BCSGPUSOLVER" = BCSGPU
|
||||
then
|
||||
SOLVERFLAGS="$SOLVERFLAGS -DBCSGPU -DCUDA"
|
||||
BCS_DIR=bcsgpusolver
|
||||
export PATH=$MARC_CUDA/bin:$MARC_CUDA/nvvm:$PATH
|
||||
export LD_LIBRARY_PATH=$MARC_CUDA/lib64:$LD_LIBRARY_PATH
|
||||
else
|
||||
BCS_DIR=bcssolver
|
||||
fi
|
||||
|
@ -206,18 +227,18 @@ then
|
|||
INTELMPI_VERSION=HYDRA
|
||||
FCOMPMPI=mpiifort
|
||||
MPI_ROOT=$MARC_INTELMPI
|
||||
DDM="-I${MPI_ROOT}/include64 -DDDM"
|
||||
PATH=$MPI_ROOT/bin64:$PATH
|
||||
DDM="-I${MPI_ROOT}/include -DDDM"
|
||||
PATH=$MPI_ROOT/bin:$PATH
|
||||
export PATH
|
||||
LD_LIBRARY_PATH=$MPI_ROOT/lib64:$LD_LIBRARY_PATH
|
||||
LD_LIBRARY_PATH=$MPI_ROOT/lib:$LD_LIBRARY_PATH
|
||||
export LD_LIBRARY_PATH
|
||||
if test $INTELMPI_VERSION = HYDRA
|
||||
then
|
||||
RUN_JOB1="${MPI_ROOT}/bin64/mpiexec.hydra -genvall -n "
|
||||
RUN_JOB2="${MPI_ROOT}/bin64/mpiexec.hydra -genvall"
|
||||
RUN_JOB1="${MPI_ROOT}/bin/mpiexec.hydra -genvall -n "
|
||||
RUN_JOB2="${MPI_ROOT}/bin/mpiexec.hydra -genvall"
|
||||
else
|
||||
RUN_JOB1="${MPI_ROOT}/bin64/mpiexec -n "
|
||||
RUN_JOB2="${MPI_ROOT}/bin64/mpiexec -configfile "
|
||||
RUN_JOB1="${MPI_ROOT}/bin/mpiexec -n "
|
||||
RUN_JOB2="${MPI_ROOT}/bin/mpiexec -configfile "
|
||||
fi
|
||||
RUN_JOB0=
|
||||
MPI_CLEAN=
|
||||
|
@ -291,6 +312,15 @@ then
|
|||
BCSGPUSOLVER=NONE
|
||||
MARC_DLL=NONE
|
||||
fi
|
||||
if test "$AEM_DLL" -eq 1
|
||||
then
|
||||
VKISOLVER=NONE
|
||||
CASISOLVER=NONE
|
||||
MF2SOLVER=NONE
|
||||
INTELSOLVER=NONE
|
||||
MUMPSSOLVER=NONE
|
||||
BCSGPUSOLVER=NONE
|
||||
fi
|
||||
|
||||
#
|
||||
# define Fortran and C compile syntax
|
||||
|
@ -364,12 +394,10 @@ if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|||
I8FFLAGS=
|
||||
I8DEFINES=
|
||||
I8CDEFINES=
|
||||
I8CASIDEFS=
|
||||
else
|
||||
I8FFLAGS="-i8"
|
||||
I8DEFINES="-DI64"
|
||||
I8CDEFINES="-U_DOUBLE -D_SINGLE"
|
||||
I8CASIDEFS="-DCASI_64BIT_INT=1"
|
||||
fi
|
||||
|
||||
MTHREAD=OPENMP
|
||||
|
@ -381,6 +409,18 @@ if test "$_OEM_NASTRAN" -ne 0
|
|||
then
|
||||
MTHREAD=NONE
|
||||
fi
|
||||
if test "$AEM_DLL" -eq 1
|
||||
then
|
||||
MTHREAD=NONE
|
||||
CASISOLVER=NONE
|
||||
VKISOLVER=NONE
|
||||
MF2SOLVER=NONE
|
||||
INTELSOLVER=NONE
|
||||
BCSGPUSOLVER=NONE
|
||||
OPENSSL_LIB=
|
||||
MARC_DLL=NONE
|
||||
METISLIBS=
|
||||
fi
|
||||
|
||||
OMP_COMPAT=NO
|
||||
OMP_COMPAT=YES
|
||||
|
@ -414,40 +454,45 @@ fi
|
|||
FDEFINES="$FDEFINES -D_MSCMARC $DEBUG_OPT $MARC_SIMUFACT"
|
||||
CDEFINES="$CDEFINES -D_MSCMARC $C_DEBUG_OPT $I8CDEFINES"
|
||||
|
||||
if test "$AEM_DLL" -eq 1
|
||||
then
|
||||
FDEFINES="$FDEFINES -D_AEMNL -DAAA"
|
||||
CDEFINES="$CDEFINES -D_AEMNL -DAAA"
|
||||
fi
|
||||
|
||||
CINCL="-I$MARC_SOURCE/mdsrc -I$MARC_SOURCE/csource $METIS"
|
||||
if test "$_OEM_NASTRAN" -ne 0
|
||||
then
|
||||
CINCL="$CINCL -I../../include"
|
||||
fi
|
||||
|
||||
CC="icc -c -O1 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
CCLOW="icc -c -O0 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
CCHIGH="icc -c -O3 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
CC_OPT=
|
||||
if test "$MTHREAD" = "OPENMP"
|
||||
then
|
||||
CC_OPT=" $CC_OPT -qopenmp"
|
||||
fi
|
||||
|
||||
CC="icc -c $CC_OPT -O1 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
CCLOW="icc -c $CC_OPT -O0 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
CCHIGH="icc -c $CC_OPT -O3 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
|
||||
if test "$MARCDEBUG" = "ON"
|
||||
then
|
||||
CC="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
CCLOW="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
CCHIGH="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
CC="icc -c $CC_OPT -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
CCLOW="icc $CC_OPT -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
CCHIGH="icc $CC_OPT -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
||||
fi
|
||||
|
||||
LOAD_CC="icc -O1 -DLinux -DLINUX -DLinux_intel"
|
||||
LOAD_CC="icc $CC_OPT -O1 -DLinux -DLINUX -DLinux_intel"
|
||||
CCT="$CC"
|
||||
CCTLOW="$CCLOW"
|
||||
CCTHIGH="$CCHIGH"
|
||||
|
||||
CC_CASI="$CC -std=c99 $I8CASIDEFS"
|
||||
CCLOW_CASI="$CCLOW -std=c99 $I8CASIDEFS"
|
||||
CCHIGH_CASI="$CCHIGH -std=c99 $I8CASIDEFS"
|
||||
|
||||
CCT_CASI="$CCT -std=c99 $I8CASIDEFS"
|
||||
CCTLOW_CASI="$CCLOW -std=c99 $I8CASIDEFS"
|
||||
CCTHIGH_CASI="$CCHIGH -std=c99 $I8CASIDEFS"
|
||||
|
||||
#PROFILE="-Mprof=func"
|
||||
#PROFILE="-Mprof=lines"
|
||||
#PROFILE="-Mprof=func,mpi"
|
||||
PROFILE=
|
||||
#PROFILE="-init=snan,arrays -CB -traceback -fpe0 -fp-stack-check -check all -check uninit -ftrapuv"
|
||||
if test "$MARCCODECOV" = "ON"
|
||||
then
|
||||
PROFILE="-prof-gen=srcpos"
|
||||
|
@ -471,26 +516,26 @@ else
|
|||
fi
|
||||
|
||||
FORTLOW="$FCOMP $FORT_OPT $PROFILE -O0 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
FORTRAN="$FCOMP $FORT_OPT $PROFILE -O1 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
FORTHIGH="$FCOMP $FORT_OPT $PROFILE -fno-alias -O3 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
FORTNA="$FCOMP $FORT_OPT -fno-alias -O3 $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
||||
# for compiling free form f90 files. high opt, integer(4)
|
||||
FORTF90="$FCOMP -c -O3"
|
||||
|
||||
if test "$MARCDEBUG" = "ON"
|
||||
then
|
||||
FORTLOW="$FCOMP $FORT_OPT $PROFILE $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
FORTRAN="$FCOMP $FORT_OPT $PROFILE $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
FORTHIGH="$FCOMP $FORT_OPT $PROFILE -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
||||
FORTNA="$FCOMP $FORT_OPT -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
||||
$MUMPS_INCLUDE $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
||||
fi
|
||||
|
||||
FORTLOWT="$FORTLOW"
|
||||
|
@ -500,27 +545,6 @@ FORTHIGHT="$FORTHIGH"
|
|||
FORTRANMNF="$FCOMP -c $FDEFINES "
|
||||
CCMNF="icc -c -O1 -DLinux -DLINUX -DLinux_intel -Dport2egcs -I$MARC_SOURCE/marctoadams/mnf/include -D_LARGEFILE64_SOURCE"
|
||||
|
||||
FORTRANMUMPS="$FCOMP -fpp $FORT_OPT $PROFILE -fno-alias -O1 -fp-model precise $FDEFINES -D_IMPLICITNONE $I8FFLAGS $I8DEFINES $DDM -I$MARC_SOURCE/mumpssolver/include -Dintel_ -DALLOW_NON_INIT -Dmetis -DMPI_I8 -nofor_main"
|
||||
CCMUMPS="icc -c -DAdd_ -Dmetis -I$MARC_SOURCE/mumpssolver/include"
|
||||
if test "$MARC_INTEGER_SIZE" = "i8" ; then
|
||||
CCMUMPS="$CCMUMPS -DINTSIZE64"
|
||||
fi
|
||||
|
||||
BCSCC="icc -c -O3 -DLOWERCASE_ -I${MARC_SOURCE}/${BCS_DIR}/bcslib_csrc $CDEFINES $CINCL"
|
||||
NVCC="nvcc -c -O3 -arch sm_20 -DLOWERCASE_ -I${MARC_SOURCE}/${BCS_DIR}/bcslib_cuda/include -I${MARC_CUDA}/include -I$MARC_SOURCE/mdsrc $I8DEFINES -Xcompiler -fvisibility=hidden -Xcompiler -fPIC $I8DEFINES "
|
||||
NVCCLIB="ar rvl"
|
||||
NVCCLD=icc
|
||||
BCSFORTLOW="$FORTLOW -I${MARC_SOURCE}/${BCS_DIR}/common"
|
||||
BCSFORTRAN="$FORTRAN -I${MARC_SOURCE}/${BCS_DIR}/common"
|
||||
BCSFORTHIGH="$FORTHIGH -I${MARC_SOURCE}/${BCS_DIR}/common"
|
||||
BCSFORT90HIGH="$BCSFORTHIGH"
|
||||
if test "$MARCDEBUG" = "ON"
|
||||
then
|
||||
BCSFORTRAN=$BCSFORTLOW
|
||||
BCSFORTHIGH=$BCSFORTLOW
|
||||
BCSFORT90HIGH=$BCSFORTLOW
|
||||
fi
|
||||
|
||||
if test $MPITYPE != none
|
||||
then
|
||||
if test $MPITYPE = hpmpi
|
||||
|
@ -531,9 +555,9 @@ then
|
|||
# Uncomment the following lines to turn on the tracer and commnet out the next 5 lines
|
||||
# if test $MPITYPE = intelmpi
|
||||
# then
|
||||
# INCLUDEMPI="-I$MPI_ROOT/include64 -I$VT_ROOT/include"
|
||||
# LOAD="$MPI_ROOT/bin64/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
||||
# LOADT="$MPI_ROOT/bin64/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
||||
# INCLUDEMPI="-I$MPI_ROOT/include -I$VT_ROOT/include"
|
||||
# LOAD="$MPI_ROOT/bin/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
||||
# LOADT="$MPI_ROOT/bin/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
||||
# fi
|
||||
if test $MPITYPE = intelmpi
|
||||
then
|
||||
|
@ -553,9 +577,6 @@ then
|
|||
FORTRANMNF="$FORTRANMNF -fpp -fPIC"
|
||||
CC="$CC -fPIC"
|
||||
CCMNF="$CCMNF -fPIC"
|
||||
CC_CASI="$CC_CASI -fPIC"
|
||||
CCLOW_CASI="$CCLOW_CASI -fPIC"
|
||||
CCHIGH_CASI="$CCHIGH_CASI -fPIC"
|
||||
LINK_EXE_MARC="-L$MARC_LIB -lmarc -L$MARC_LIB_SHARED -lguide -lpthread"
|
||||
LINK_MARC_DLL="-shared -fPIC"
|
||||
LOAD_DLL=$LOAD
|
||||
|
@ -563,6 +584,21 @@ then
|
|||
EXT_DLL="so"
|
||||
fi
|
||||
|
||||
if test "$AEM_DLL" -eq 1
|
||||
then
|
||||
FORTLOW="$FORTLOW -fpp -fPIC"
|
||||
FORTRAN="$FORTRAN -fpp -fPIC"
|
||||
FORTHIGH="$FORTHIGH -fpp -fPIC"
|
||||
FORTRANMNF="$FORTRANMNF -fpp -fPIC"
|
||||
CC="$CC -fPIC"
|
||||
CCMNF="$CCMNF -fPIC"
|
||||
LINK_EXE_MARC="-L$MARC_LIB -lmarc -L$MARC_LIB_SHARED -lguide"
|
||||
LINK_MARC_DLL="-shared -fPIC"
|
||||
LOAD_DLL=$LOAD
|
||||
LOADT_DLL=$LOADT
|
||||
EXT_DLL="so"
|
||||
fi
|
||||
|
||||
|
||||
XLIBS="-L/usr/X11/lib -lX11 "
|
||||
|
||||
|
@ -588,7 +624,7 @@ fi
|
|||
|
||||
if test "$CASISOLVER" = CASI
|
||||
then
|
||||
CASISOLVERLIBS="$MARC_CASI/casilib.a"
|
||||
CASISOLVERLIBS="$CASILIB_DIR/libmarccasi.a $CASILIB_DIR/libcasi.a"
|
||||
else
|
||||
CASISOLVERLIBS=
|
||||
fi
|
||||
|
@ -611,7 +647,7 @@ fi
|
|||
|
||||
if test "$MUMPSSOLVER" = MUMPS
|
||||
then
|
||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a"
|
||||
MUMPSSOLVERLIBS="$MUMPSLIB_DIR/libmumps.a"
|
||||
if test $MPITYPE = none
|
||||
then
|
||||
MUMPSSOLVERLIBS2=
|
||||
|
@ -628,9 +664,9 @@ then
|
|||
if test $MPITYPE = hpmpi
|
||||
then
|
||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_lp64.a"
|
||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_intelmpi_lp64.a"
|
||||
else
|
||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_ilp64.a"
|
||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_intelmpi_ilp64.a"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
|
@ -640,19 +676,22 @@ fi
|
|||
|
||||
if test "$BCSGPUSOLVER" = BCSGPU
|
||||
then
|
||||
BCSSOLVERLIBS="${MARC_LIB}/bcsgpulib.a "
|
||||
MARCCUDALIBS1="-L${MARC_LIB}/cuda_dummy -lmarccuda "
|
||||
MARCCUDALIBS2="-L${MARC_LIB}/cuda -lmarccuda "
|
||||
BCSSOLVERLIBS="${BCSLIB_DIR}/bcsgpulib.a "
|
||||
MARCCUDALIBS1="-L${BCSLIB_DIR}/cuda_dummy -lmarccuda "
|
||||
MARCCUDALIBS2="-L${BCSLIB_DIR}/cuda -lmarccuda "
|
||||
MARCCUDALIBS=$MARCCUDALIBS1
|
||||
CUDALIBS="-L$MARC_CUDA/lib64 -lcudart -lcublas -L/usr/lib64 -lcuda "
|
||||
else
|
||||
BCSSOLVERLIBS="${MARC_LIB}/bcslib.a "
|
||||
fi
|
||||
if test "$AEM_DLL" -eq 1
|
||||
then
|
||||
BCSSOLVERLIBS=
|
||||
fi
|
||||
|
||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
||||
MKLLIB="$MARC_MKL/libmkl_scalapack_lp64.a $MARC_MKL/libmkl_blacs_lp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_lp64.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_core.a $MUMPSSOLVERLIBS2 -Wl,--end-group"
|
||||
MKLLIB="$MARC_MKL/libmkl_scalapack_lp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_lp64.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_core.a $MUMPSSOLVERLIBS2 -Wl,--end-group"
|
||||
else
|
||||
MKLLIB="$MARC_MKL/libmkl_scalapack_ilp64.a $MARC_MKL/libmkl_blacs_ilp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_ilp64.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_core.a $MUMPSSOLVERLIBS2 -Wl,--end-group"
|
||||
MKLLIB="$MARC_MKL/libmkl_scalapack_ilp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_ilp64.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_core.a $MUMPSSOLVERLIBS2 -Wl,--end-group"
|
||||
fi
|
||||
|
||||
SECLIBS="-L$MARC_LIB -llapi"
|
||||
|
@ -662,7 +701,10 @@ SOLVERLIBS="${BCSSOLVERLIBS} ${VKISOLVERLIBS} ${CASISOLVERLIBS} ${MF2SOLVERLIBS}
|
|||
$MARC_LIB/blas_src.a ${ACSI_LIB}/ACSI_MarcLib.a $KDTREE2_LIB/kdtree2.a "
|
||||
|
||||
SOLVERLIBS_DLL=${SOLVERLIBS}
|
||||
|
||||
if test "$AEM_DLL" -eq 1
|
||||
then
|
||||
SOLVERLIBS_DLL="$MKLLIB -L$MARC_MKL -liomp5 $MARC_LIB/blas_src.a"
|
||||
fi
|
||||
MRCLIBS="$MARC_LIB/clib.a ${CASISOLVERLIBS}"
|
||||
MRCLIBSPAR="$MARC_LIB/clib.a"
|
||||
STUBS="$MARC_LIB/stubs.a "
|
||||
|
@ -677,6 +719,14 @@ fi
|
|||
|
||||
OPENMP="-qopenmp"
|
||||
|
||||
if test "$AEM_DLL" -eq 1
|
||||
then
|
||||
LOAD_DLL=$LOAD
|
||||
OPENMP=
|
||||
LIBMNF=
|
||||
OPENSSL=NONE
|
||||
fi
|
||||
|
||||
SYSLIBS=" $OPENMP -lpthread -shared-intel -cxxlib"
|
||||
|
||||
# Uncomment the following lines to turn on the trace and comment out the next 4 lines
|
||||
|
@ -687,7 +737,7 @@ SYSLIBS=" $OPENMP -lpthread -shared-intel -cxxlib"
|
|||
# fi
|
||||
if test $MPITYPE = intelmpi
|
||||
then
|
||||
SYSLIBS="-L${MPI_ROOT}/lib64 -lmpi_mt -lmpifort -lrt $OPENMP -threads -lpthread -shared-intel -cxxlib"
|
||||
SYSLIBS="-L${MPI_ROOT}/lib -lmpi_mt -lmpifort -lrt $OPENMP -threads -lpthread -shared-intel -cxxlib"
|
||||
fi
|
||||
|
||||
|
||||
|
@ -714,13 +764,11 @@ LOW_OPT_CODES="are163.f contro.f ndext.f omarc.f omarca.f omarcb.f omarcc.f \
|
|||
if test "$MARC_INTEGER_SIZE" = "i8" ; then
|
||||
LOW_OPT_CODES="$LOW_OPT_CODES bbcseg.f"
|
||||
fi
|
||||
LOW_OPT_CODES_CASI=""
|
||||
|
||||
HIGH_OPT_CODES="dpsmsa1.f dpsmsa2.f dpsmsa3.f dpsmsa4.f dpsmsa5.f dpsmsa6.f \
|
||||
dpsmsa7.f dpsmsa8.f dpsmsa9.f dpsmsa10.f dpsmsa11.f dpsmsa12.f \
|
||||
dpsmsa13.f dpsmsa14.f dpsmsa15.f dpsmsa16.f dpsmsah.f tpsmsah.f cn_qsort4_11.f "
|
||||
|
||||
|
||||
HIGH_OPT_CODES_CASI="arithkernels.c blockedroutines.c blockedroutines_fd.c elemmatgenkernels.c longvecroutines.c sfmultutils.c solvewithbd.c"
|
||||
|
||||
MAXNUM=1000000
|
|
@ -374,6 +374,12 @@ fi
|
|||
# the one for IBM is defined futher down
|
||||
|
||||
LD_LIBRARY_PATH=$MARC_LIB_SHARED:$LD_LIBRARY_PATH
|
||||
if test -f "/etc/redhat-release"; then
|
||||
ver=`cat /etc/redhat-release | sed 's/.* release \([0-9]\).\([0-9]\+\) .*/\1\2/'`
|
||||
case "$ver" in
|
||||
6*) LD_LIBRARY_PATH="${MARC_LIB_SHARED}rh67:$LD_LIBRARY_PATH" ;;
|
||||
esac
|
||||
fi
|
||||
LD_LIBRARY_PATH=$MARC_LIB:$LD_LIBRARY_PATH
|
||||
LD_LIBRARY_PATH=$MESHERDIR:$LD_LIBRARY_PATH
|
||||
LD_LIBRARY_PATH=$SFMATDIR:$LD_LIBRARY_PATH
|
||||
|
@ -533,7 +539,7 @@ if test -n "$value"; then
|
|||
. $MARC_INCLUDE
|
||||
MDSRCLIB=$MARC_LIB/mdsrc.a_$value
|
||||
if test "$MUMPSSOLVER" = MUMPS; then
|
||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a_$value"
|
||||
MUMPSSOLVERLIBS="$MUMPSLIB_DIR/libmumps.a_$value"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -807,14 +813,14 @@ do
|
|||
. $MARC_INCLUDE
|
||||
MDSRCLIB=$MARC_LIB/mdsrc.a_$value
|
||||
if test "$MUMPSSOLVER" = MUMPS; then
|
||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a_$value"
|
||||
MUMPSSOLVERLIBS="$MUMPSLIB_DIR/libmumps.a_$value"
|
||||
fi
|
||||
else
|
||||
exefile=marc
|
||||
. $MARC_INCLUDE
|
||||
MDSRCLIB=$MARC_LIB/mdsrc.a
|
||||
if test "$MUMPSSOLVER" = MUMPS; then
|
||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a"
|
||||
MUMPSSOLVERLIBS="$MUMPSLIB_DIR/libmumps.a"
|
||||
fi
|
||||
fi
|
||||
;;
|
|
@ -374,6 +374,12 @@ fi
|
|||
# the one for IBM is defined futher down
|
||||
|
||||
LD_LIBRARY_PATH=$MARC_LIB_SHARED:$LD_LIBRARY_PATH
|
||||
if test -f "/etc/redhat-release"; then
|
||||
ver=`cat /etc/redhat-release | sed 's/.* release \([0-9]\).\([0-9]\+\) .*/\1\2/'`
|
||||
case "$ver" in
|
||||
6*) LD_LIBRARY_PATH="${MARC_LIB_SHARED}rh67:$LD_LIBRARY_PATH" ;;
|
||||
esac
|
||||
fi
|
||||
LD_LIBRARY_PATH=$MARC_LIB:$LD_LIBRARY_PATH
|
||||
LD_LIBRARY_PATH=$MESHERDIR:$LD_LIBRARY_PATH
|
||||
LD_LIBRARY_PATH=$SFMATDIR:$LD_LIBRARY_PATH
|
||||
|
@ -533,7 +539,7 @@ if test -n "$value"; then
|
|||
. $MARC_INCLUDE
|
||||
MDSRCLIB=$MARC_LIB/mdsrc.a_$value
|
||||
if test "$MUMPSSOLVER" = MUMPS; then
|
||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a_$value"
|
||||
MUMPSSOLVERLIBS="$MUMPSLIB_DIR/libmumps.a_$value"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -807,14 +813,14 @@ do
|
|||
. $MARC_INCLUDE
|
||||
MDSRCLIB=$MARC_LIB/mdsrc.a_$value
|
||||
if test "$MUMPSSOLVER" = MUMPS; then
|
||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a_$value"
|
||||
MUMPSSOLVERLIBS="$MUMPSLIB_DIR/libmumps.a_$value"
|
||||
fi
|
||||
else
|
||||
exefile=marc
|
||||
. $MARC_INCLUDE
|
||||
MDSRCLIB=$MARC_LIB/mdsrc.a
|
||||
if test "$MUMPSSOLVER" = MUMPS; then
|
||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a"
|
||||
MUMPSSOLVERLIBS="$MUMPSLIB_DIR/libmumps.a"
|
||||
fi
|
||||
fi
|
||||
;;
|
|
@ -374,6 +374,12 @@ fi
|
|||
# the one for IBM is defined futher down
|
||||
|
||||
LD_LIBRARY_PATH=$MARC_LIB_SHARED:$LD_LIBRARY_PATH
|
||||
if test -f "/etc/redhat-release"; then
|
||||
ver=`cat /etc/redhat-release | sed 's/.* release \([0-9]\).\([0-9]\+\) .*/\1\2/'`
|
||||
case "$ver" in
|
||||
6*) LD_LIBRARY_PATH="${MARC_LIB_SHARED}rh67:$LD_LIBRARY_PATH" ;;
|
||||
esac
|
||||
fi
|
||||
LD_LIBRARY_PATH=$MARC_LIB:$LD_LIBRARY_PATH
|
||||
LD_LIBRARY_PATH=$MESHERDIR:$LD_LIBRARY_PATH
|
||||
LD_LIBRARY_PATH=$SFMATDIR:$LD_LIBRARY_PATH
|
||||
|
@ -533,7 +539,7 @@ if test -n "$value"; then
|
|||
. $MARC_INCLUDE
|
||||
MDSRCLIB=$MARC_LIB/mdsrc.a_$value
|
||||
if test "$MUMPSSOLVER" = MUMPS; then
|
||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a_$value"
|
||||
MUMPSSOLVERLIBS="$MUMPSLIB_DIR/libmumps.a_$value"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -807,14 +813,14 @@ do
|
|||
. $MARC_INCLUDE
|
||||
MDSRCLIB=$MARC_LIB/mdsrc.a_$value
|
||||
if test "$MUMPSSOLVER" = MUMPS; then
|
||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a_$value"
|
||||
MUMPSSOLVERLIBS="$MUMPSLIB_DIR/libmumps.a_$value"
|
||||
fi
|
||||
else
|
||||
exefile=marc
|
||||
. $MARC_INCLUDE
|
||||
MDSRCLIB=$MARC_LIB/mdsrc.a
|
||||
if test "$MUMPSSOLVER" = MUMPS; then
|
||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a"
|
||||
MUMPSSOLVERLIBS="$MUMPSLIB_DIR/libmumps.a"
|
||||
fi
|
||||
fi
|
||||
;;
|
|
@ -358,6 +358,12 @@ fi
|
|||
# the one for IBM is defined futher down
|
||||
|
||||
LD_LIBRARY_PATH=$MARC_LIB_SHARED:$LD_LIBRARY_PATH
|
||||
if test -f "/etc/redhat-release"; then
|
||||
ver=`cat /etc/redhat-release | sed 's/.* release \([0-9]\).\([0-9]\+\) .*/\1\2/'`
|
||||
case "$ver" in
|
||||
6*) LD_LIBRARY_PATH="${MARC_LIB_SHARED}rh67:$LD_LIBRARY_PATH" ;;
|
||||
esac
|
||||
fi
|
||||
LD_LIBRARY_PATH=$MARC_LIB:$LD_LIBRARY_PATH
|
||||
LD_LIBRARY_PATH=$MESHERDIR:$LD_LIBRARY_PATH
|
||||
LD_LIBRARY_PATH=$SFMATDIR:$LD_LIBRARY_PATH
|
||||
|
@ -517,7 +523,7 @@ if test -n "$value"; then
|
|||
. $MARC_INCLUDE
|
||||
MDSRCLIB=$MARC_LIB/mdsrc.a_$value
|
||||
if test "$MUMPSSOLVER" = MUMPS; then
|
||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a_$value"
|
||||
MUMPSSOLVERLIBS="$MUMPSLIB_DIR/libmumps.a_$value"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -822,14 +828,14 @@ do
|
|||
. $MARC_INCLUDE
|
||||
MDSRCLIB=$MARC_LIB/mdsrc.a_$value
|
||||
if test "$MUMPSSOLVER" = MUMPS; then
|
||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a_$value"
|
||||
MUMPSSOLVERLIBS="$MUMPSLIB_DIR/libmumps.a_$value"
|
||||
fi
|
||||
else
|
||||
exefile=marc
|
||||
. $MARC_INCLUDE
|
||||
MDSRCLIB=$MARC_LIB/mdsrc.a
|
||||
if test "$MUMPSSOLVER" = MUMPS; then
|
||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a"
|
||||
MUMPSSOLVERLIBS="$MUMPSLIB_DIR/libmumps.a"
|
||||
fi
|
||||
fi
|
||||
;;
|
|
@ -4,7 +4,7 @@
|
|||
# Normal exit status is 0.
|
||||
#
|
||||
|
||||
DIR=/msc/marc2016
|
||||
DIR=/nethome/f.roters/temp/msc/marc2018.1
|
||||
if test $MARCDIR1
|
||||
then
|
||||
DIR=$MARCDIR1
|
|
@ -2,11 +2,9 @@
|
|||
popmenu job_title_pm file jobs.ms
|
||||
popdown job_title_ok file jobs.ms
|
||||
|
||||
group job_solver_gr file job_common.ms
|
||||
group user_domains_gr file domain_decomposition.ms
|
||||
group user_domains_generate_gr file domain_decomposition.ms
|
||||
group user_domains_tail_gr file domain_decomposition.ms
|
||||
group job_solver_opts_gr file job_common.ms
|
||||
group matrix_solver_gr file job_common.ms
|
||||
popmenu ddm_options file job_common.ms
|
||||
|
||||
|
@ -384,7 +382,7 @@ popmenu job_run_popmenu {
|
|||
border_color black
|
||||
}
|
||||
|
||||
float {
|
||||
display {
|
||||
position +32 =
|
||||
size 18 4
|
||||
display "job_time"
|
||||
|
@ -714,12 +712,15 @@ popmenu job_submit_adv_pm {
|
|||
roller {
|
||||
position +9 =
|
||||
size 14 4
|
||||
nvalues 23
|
||||
nvisible 23
|
||||
nvalues 26
|
||||
nvisible 26
|
||||
texts "DEFAULT"
|
||||
#if 0
|
||||
"2017"
|
||||
"2018.1"
|
||||
#endif
|
||||
"2018"
|
||||
"2017.1"
|
||||
"2017"
|
||||
"2016"
|
||||
"2015"
|
||||
"2014.2"
|
||||
|
@ -748,8 +749,11 @@ popmenu job_submit_adv_pm {
|
|||
help job_param_version
|
||||
rollers "job_input_version_default"
|
||||
#if 0
|
||||
"job_input_version_2017"
|
||||
"job_input_version_2018.1"
|
||||
#endif
|
||||
"job_input_version_2018"
|
||||
"job_input_version_2017.1"
|
||||
"job_input_version_2017"
|
||||
"job_input_version_2016"
|
||||
"job_input_version_2015"
|
||||
"job_input_version_2014.2"
|
||||
|
@ -777,8 +781,11 @@ popmenu job_submit_adv_pm {
|
|||
"job_input_version_k4"
|
||||
commands "*job_option version:default"
|
||||
#if 0
|
||||
"*job_option version:2017"
|
||||
"*job_option version:2018.1"
|
||||
#endif
|
||||
"*job_option version:2018"
|
||||
"*job_option version:2017.1"
|
||||
"*job_option version:2017"
|
||||
"*job_option version:2016"
|
||||
"*job_option version:2015"
|
||||
"*job_option version:2014.2"
|
||||
|
@ -806,8 +813,11 @@ popmenu job_submit_adv_pm {
|
|||
"*job_option version:k4"
|
||||
visibles "job_allows_input_version_default"
|
||||
#if 0
|
||||
"job_allows_input_version_2017"
|
||||
"job_allows_input_version_2018.1"
|
||||
#endif
|
||||
"job_allows_input_version_2018"
|
||||
"job_allows_input_version_2017.1"
|
||||
"job_allows_input_version_2017"
|
||||
"job_allows_input_version_2016"
|
||||
"job_allows_input_version_2015"
|
||||
"job_allows_input_version_2014.2"
|
||||
|
@ -1147,8 +1157,6 @@ popmenu damask {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
window {
|
||||
parent mentat
|
||||
origin 38 8
|
||||
|
@ -1329,7 +1337,8 @@ group job_ddm_gr {
|
|||
help job_run_ddm_use
|
||||
true_command "*job_option parallel:on"
|
||||
false_command "*job_option parallel:off"
|
||||
active "not(job_solver_it_ext)"
|
||||
active "and(not(job_solver_it_ext),\
|
||||
not(job_solver_mixed_direct_iterative))"
|
||||
}
|
||||
|
||||
frame {
|
||||
|
@ -1351,6 +1360,7 @@ group job_ddm_use_gr {
|
|||
position 0 0
|
||||
size 12 4
|
||||
text "DECOMPOSITION IN"
|
||||
help job_run_ddm_generator
|
||||
}
|
||||
oneonly{
|
||||
position +12 =
|
||||
|
@ -1358,6 +1368,7 @@ group job_ddm_use_gr {
|
|||
text "MARC"
|
||||
oneonly "*job_option ddm_generator:fea_solver"
|
||||
command "*job_option ddm_generator:fea_solver"
|
||||
help job_run_ddm_generator
|
||||
}
|
||||
oneonly{
|
||||
position +12 =
|
||||
|
@ -1365,6 +1376,7 @@ group job_ddm_use_gr {
|
|||
text "MENTAT"
|
||||
oneonly "*job_option ddm_generator:preprocessor"
|
||||
command "*job_option ddm_generator:preprocessor"
|
||||
help job_run_ddm_generator
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,11 +2,9 @@
|
|||
popmenu job_title_pm file jobs.ms
|
||||
popdown job_title_ok file jobs.ms
|
||||
|
||||
group job_solver_gr file job_common.ms
|
||||
group user_domains_gr file domain_decomposition.ms
|
||||
group user_domains_generate_gr file domain_decomposition.ms
|
||||
group user_domains_tail_gr file domain_decomposition.ms
|
||||
group job_solver_opts_gr file job_common.ms
|
||||
group matrix_solver_gr file job_common.ms
|
||||
popmenu ddm_options file job_common.ms
|
||||
|
||||
|
@ -377,7 +375,7 @@ popmenu job_run_popmenu {
|
|||
border_color black
|
||||
}
|
||||
|
||||
float {
|
||||
display {
|
||||
position +32 =
|
||||
size 18 4
|
||||
display "job_time"
|
||||
|
@ -707,12 +705,15 @@ popmenu job_submit_adv_pm {
|
|||
roller {
|
||||
position +9 =
|
||||
size 14 4
|
||||
nvalues 23
|
||||
nvisible 23
|
||||
nvalues 26
|
||||
nvisible 26
|
||||
texts "DEFAULT"
|
||||
#if 0
|
||||
"2017"
|
||||
"2018.1"
|
||||
#endif
|
||||
"2018"
|
||||
"2017.1"
|
||||
"2017"
|
||||
"2016"
|
||||
"2015"
|
||||
"2014.2"
|
||||
|
@ -741,8 +742,11 @@ popmenu job_submit_adv_pm {
|
|||
help job_param_version
|
||||
rollers "job_input_version_default"
|
||||
#if 0
|
||||
"job_input_version_2017"
|
||||
"job_input_version_2018.1"
|
||||
#endif
|
||||
"job_input_version_2018"
|
||||
"job_input_version_2017.1"
|
||||
"job_input_version_2017"
|
||||
"job_input_version_2016"
|
||||
"job_input_version_2015"
|
||||
"job_input_version_2014.2"
|
||||
|
@ -770,8 +774,11 @@ popmenu job_submit_adv_pm {
|
|||
"job_input_version_k4"
|
||||
commands "*job_option version:default"
|
||||
#if 0
|
||||
"*job_option version:2017"
|
||||
"*job_option version:2018.1"
|
||||
#endif
|
||||
"*job_option version:2018"
|
||||
"*job_option version:2017.1"
|
||||
"*job_option version:2017"
|
||||
"*job_option version:2016"
|
||||
"*job_option version:2015"
|
||||
"*job_option version:2014.2"
|
||||
|
@ -799,8 +806,11 @@ popmenu job_submit_adv_pm {
|
|||
"*job_option version:k4"
|
||||
visibles "job_allows_input_version_default"
|
||||
#if 0
|
||||
"job_allows_input_version_2017"
|
||||
"job_allows_input_version_2018.1"
|
||||
#endif
|
||||
"job_allows_input_version_2018"
|
||||
"job_allows_input_version_2017.1"
|
||||
"job_allows_input_version_2017"
|
||||
"job_allows_input_version_2016"
|
||||
"job_allows_input_version_2015"
|
||||
"job_allows_input_version_2014.2"
|
||||
|
@ -1192,7 +1202,8 @@ group job_ddm_gr {
|
|||
help job_run_ddm_use
|
||||
true_command "*job_option parallel:on"
|
||||
false_command "*job_option parallel:off"
|
||||
active "not(job_solver_it_ext)"
|
||||
active "and(not(job_solver_it_ext),\
|
||||
not(job_solver_mixed_direct_iterative))"
|
||||
}
|
||||
|
||||
frame {
|
||||
|
@ -1214,6 +1225,7 @@ group job_ddm_use_gr {
|
|||
position 0 0
|
||||
size 12 4
|
||||
text "DECOMPOSITION IN"
|
||||
help job_run_ddm_generator
|
||||
}
|
||||
oneonly{
|
||||
position +12 =
|
||||
|
@ -1221,6 +1233,7 @@ group job_ddm_use_gr {
|
|||
text "MARC"
|
||||
oneonly "*job_option ddm_generator:fea_solver"
|
||||
command "*job_option ddm_generator:fea_solver"
|
||||
help job_run_ddm_generator
|
||||
}
|
||||
oneonly{
|
||||
position +12 =
|
||||
|
@ -1228,6 +1241,7 @@ group job_ddm_use_gr {
|
|||
text "MENTAT"
|
||||
oneonly "*job_option ddm_generator:preprocessor"
|
||||
command "*job_option ddm_generator:preprocessor"
|
||||
help job_run_ddm_generator
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,8 +1,8 @@
|
|||
#! /usr/bin/env bash
|
||||
if [ $1x != 3to2x ]; then
|
||||
echo 'python2.7 to python'
|
||||
find . -name '*.py' -type f | xargs sed -i 's/usr\/bin\/env python2.7/usr\/bin\/env python/g'
|
||||
echo 'python2.7 to python3'
|
||||
find . -name '*.py' -type f | xargs sed -i 's/usr\/bin\/env python2.7/usr\/bin\/env python3/g'
|
||||
else
|
||||
echo 'python to python2.7'
|
||||
find . -name '*.py' -type f | xargs sed -i 's/usr\/bin\/env python/usr\/bin\/env python2.7/g'
|
||||
echo 'python3 to python2.7'
|
||||
find . -name '*.py' -type f | xargs sed -i 's/usr\/bin\/env python3/usr\/bin\/env python2.7/g'
|
||||
fi
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
# Makes postprocessing routines acessible from everywhere.
|
||||
|
|
|
@ -27,15 +27,22 @@ class Rodrigues:
|
|||
|
||||
# ******************************************************************************************
|
||||
class Quaternion:
|
||||
"""
|
||||
u"""
|
||||
Orientation represented as unit quaternion.
|
||||
|
||||
All methods and naming conventions based on http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions.
|
||||
All methods and naming conventions based on Rowenhorst_etal2015
|
||||
Convention 1: coordinate frames are right-handed
|
||||
Convention 2: a rotation angle ω is taken to be positive for a counterclockwise rotation
|
||||
when viewing from the end point of the rotation axis unit vector towards the origin
|
||||
Convention 3: rotations will be interpreted in the passive sense
|
||||
Convention 4: Euler angle triplets are implemented using the Bunge convention,
|
||||
with the angular ranges as [0, 2π],[0, π],[0, 2π]
|
||||
Convention 5: the rotation angle ω is limited to the interval [0, π]
|
||||
|
||||
w is the real part, (x, y, z) are the imaginary parts.
|
||||
Representation of rotation is in ACTIVE form!
|
||||
(Derived directly or through angleAxis, Euler angles, or active matrix)
|
||||
Vector "a" (defined in coordinate system "A") is actively rotated to new coordinates "b".
|
||||
|
||||
Vector "a" (defined in coordinate system "A") is passively rotated
|
||||
resulting in new coordinates "b" when expressed in system "B".
|
||||
b = Q * a
|
||||
b = np.dot(Q.asMatrix(),a)
|
||||
"""
|
||||
|
@ -309,10 +316,12 @@ class Quaternion:
|
|||
return np.outer([i for i in self],[i for i in self])
|
||||
|
||||
def asMatrix(self):
|
||||
return np.array(
|
||||
[[1.0-2.0*(self.y*self.y+self.z*self.z), 2.0*(self.x*self.y-self.z*self.w), 2.0*(self.x*self.z+self.y*self.w)],
|
||||
[ 2.0*(self.x*self.y+self.z*self.w), 1.0-2.0*(self.x*self.x+self.z*self.z), 2.0*(self.y*self.z-self.x*self.w)],
|
||||
[ 2.0*(self.x*self.z-self.y*self.w), 2.0*(self.x*self.w+self.y*self.z), 1.0-2.0*(self.x*self.x+self.y*self.y)]])
|
||||
qbarhalf = 0.5*(self.w**2 - self.x**2 - self.y**2 - self.z**2)
|
||||
return 2.0*np.array(
|
||||
[[ qbarhalf + self.x**2 , self.x*self.y - self.w*self.z, self.x*self.z + self.w*self.y],
|
||||
[ self.x*self.y + self.w*self.z, qbarhalf + self.y**2 , self.y*self.z - self.w*self.x],
|
||||
[ self.x*self.z - self.w*self.y, self.y*self.z + self.w*self.x, qbarhalf + self.z**2 ],
|
||||
])
|
||||
|
||||
def asAngleAxis(self,
|
||||
degrees = False):
|
||||
|
@ -335,52 +344,23 @@ class Quaternion:
|
|||
return np.inf*np.ones(3) if self.w == 0.0 else np.array([self.x, self.y, self.z])/self.w
|
||||
|
||||
def asEulers(self,
|
||||
type = "bunge",
|
||||
degrees = False,
|
||||
standardRange = False):
|
||||
"""
|
||||
Orientation as Bunge-Euler angles.
|
||||
degrees = False):
|
||||
"""Orientation as Bunge-Euler angles."""
|
||||
q03 = self.w**2+self.z**2
|
||||
q12 = self.x**2+self.y**2
|
||||
chi = np.sqrt(q03*q12)
|
||||
|
||||
Conversion of ACTIVE rotation to Euler angles taken from:
|
||||
Melcher, A.; Unser, A.; Reichhardt, M.; Nestler, B.; Poetschke, M.; Selzer, M.
|
||||
Conversion of EBSD data by a quaternion based algorithm to be used for grain structure simulations
|
||||
Technische Mechanik 30 (2010) pp 401--413.
|
||||
"""
|
||||
angles = [0.0,0.0,0.0]
|
||||
if abs(chi) < 1e-10 and abs(q12) < 1e-10:
|
||||
eulers = np.array([math.atan2(-2*self.w*self.z,self.w**2-self.z**2),0,0])
|
||||
elif abs(chi) < 1e-10 and abs(q03) < 1e-10:
|
||||
eulers = np.array([math.atan2( 2*self.x*self.y,self.x**2-self.y**2),np.pi,0])
|
||||
else:
|
||||
eulers = np.array([math.atan2((self.x*self.z-self.w*self.y)/chi,(-self.w*self.x-self.y*self.z)/chi),
|
||||
math.atan2(2*chi,q03-q12),
|
||||
math.atan2((self.w*self.y+self.x*self.z)/chi,( self.y*self.z-self.w*self.x)/chi),
|
||||
])
|
||||
|
||||
if type.lower() == 'bunge' or type.lower() == 'zxz':
|
||||
if abs(self.x) < 1e-4 and abs(self.y) < 1e-4:
|
||||
x = self.w**2 - self.z**2
|
||||
y = 2.*self.w*self.z
|
||||
angles[0] = math.atan2(y,x)
|
||||
elif abs(self.w) < 1e-4 and abs(self.z) < 1e-4:
|
||||
x = self.x**2 - self.y**2
|
||||
y = 2.*self.x*self.y
|
||||
angles[0] = math.atan2(y,x)
|
||||
angles[1] = math.pi
|
||||
else:
|
||||
chi = math.sqrt((self.w**2 + self.z**2)*(self.x**2 + self.y**2))
|
||||
|
||||
x = (self.w * self.x - self.y * self.z)/2./chi
|
||||
y = (self.w * self.y + self.x * self.z)/2./chi
|
||||
angles[0] = math.atan2(y,x)
|
||||
|
||||
x = self.w**2 + self.z**2 - (self.x**2 + self.y**2)
|
||||
y = 2.*chi
|
||||
angles[1] = math.atan2(y,x)
|
||||
|
||||
x = (self.w * self.x + self.y * self.z)/2./chi
|
||||
y = (self.z * self.x - self.y * self.w)/2./chi
|
||||
angles[2] = math.atan2(y,x)
|
||||
|
||||
if standardRange:
|
||||
angles[0] %= 2*math.pi
|
||||
if angles[1] < 0.0:
|
||||
angles[1] += math.pi
|
||||
angles[2] *= -1.0
|
||||
angles[2] %= 2*math.pi
|
||||
|
||||
return np.degrees(angles) if degrees else angles
|
||||
return np.degrees(eulers) if degrees else eulers
|
||||
|
||||
|
||||
# # Static constructors
|
||||
|
@ -408,7 +388,7 @@ class Quaternion:
|
|||
halfangle = math.atan(np.linalg.norm(rodrigues))
|
||||
c = math.cos(halfangle)
|
||||
w = c
|
||||
x,y,z = c*rodrigues
|
||||
x,y,z = rodrigues/c
|
||||
return cls([w,x,y,z])
|
||||
|
||||
|
||||
|
@ -431,24 +411,19 @@ class Quaternion:
|
|||
@classmethod
|
||||
def fromEulers(cls,
|
||||
eulers,
|
||||
type = 'Bunge',
|
||||
degrees = False):
|
||||
if not isinstance(eulers, np.ndarray): eulers = np.array(eulers,dtype='d')
|
||||
eulers = np.radians(eulers) if degrees else eulers
|
||||
|
||||
c = np.cos(0.5 * eulers)
|
||||
s = np.sin(0.5 * eulers)
|
||||
sigma = 0.5*(eulers[0]+eulers[2])
|
||||
delta = 0.5*(eulers[0]-eulers[2])
|
||||
c = np.cos(0.5*eulers[1])
|
||||
s = np.sin(0.5*eulers[1])
|
||||
|
||||
if type.lower() == 'bunge' or type.lower() == 'zxz':
|
||||
w = c[0] * c[1] * c[2] - s[0] * c[1] * s[2]
|
||||
x = c[0] * s[1] * c[2] + s[0] * s[1] * s[2]
|
||||
y = - c[0] * s[1] * s[2] + s[0] * s[1] * c[2]
|
||||
z = c[0] * c[1] * s[2] + s[0] * c[1] * c[2]
|
||||
else:
|
||||
w = c[0] * c[1] * c[2] - s[0] * s[1] * s[2]
|
||||
x = s[0] * s[1] * c[2] + c[0] * c[1] * s[2]
|
||||
y = s[0] * c[1] * c[2] + c[0] * s[1] * s[2]
|
||||
z = c[0] * s[1] * c[2] - s[0] * c[1] * s[2]
|
||||
w = c * np.cos(sigma)
|
||||
x = -s * np.cos(delta)
|
||||
y = -s * np.sin(delta)
|
||||
z = -c * np.sin(sigma)
|
||||
return cls([w,x,y,z])
|
||||
|
||||
|
||||
|
@ -460,49 +435,16 @@ class Quaternion:
|
|||
if m.shape != (3,3) and np.prod(m.shape) == 9:
|
||||
m = m.reshape(3,3)
|
||||
|
||||
tr = np.trace(m)
|
||||
if tr > 1e-8:
|
||||
s = math.sqrt(tr + 1.0)*2.0
|
||||
w = 0.5*math.sqrt(1.+m[0,0]+m[1,1]+m[2,2])
|
||||
x = 0.5*math.sqrt(1.+m[0,0]-m[1,1]-m[2,2])
|
||||
y = 0.5*math.sqrt(1.-m[0,0]+m[1,1]-m[2,2])
|
||||
z = 0.5*math.sqrt(1.-m[0,0]-m[1,1]+m[2,2])
|
||||
|
||||
return cls(
|
||||
[ s*0.25,
|
||||
(m[2,1] - m[1,2])/s,
|
||||
(m[0,2] - m[2,0])/s,
|
||||
(m[1,0] - m[0,1])/s,
|
||||
])
|
||||
x *= -1 if m[2,1] < m[1,2] else 1
|
||||
y *= -1 if m[0,2] < m[2,0] else 1
|
||||
z *= -1 if m[1,0] < m[0,1] else 1
|
||||
|
||||
elif m[0,0] > m[1,1] and m[0,0] > m[2,2]:
|
||||
t = m[0,0] - m[1,1] - m[2,2] + 1.0
|
||||
s = 2.0*math.sqrt(t)
|
||||
|
||||
return cls(
|
||||
[ (m[2,1] - m[1,2])/s,
|
||||
s*0.25,
|
||||
(m[0,1] + m[1,0])/s,
|
||||
(m[2,0] + m[0,2])/s,
|
||||
])
|
||||
|
||||
elif m[1,1] > m[2,2]:
|
||||
t = -m[0,0] + m[1,1] - m[2,2] + 1.0
|
||||
s = 2.0*math.sqrt(t)
|
||||
|
||||
return cls(
|
||||
[ (m[0,2] - m[2,0])/s,
|
||||
(m[0,1] + m[1,0])/s,
|
||||
s*0.25,
|
||||
(m[1,2] + m[2,1])/s,
|
||||
])
|
||||
|
||||
else:
|
||||
t = -m[0,0] - m[1,1] + m[2,2] + 1.0
|
||||
s = 2.0*math.sqrt(t)
|
||||
|
||||
return cls(
|
||||
[ (m[1,0] - m[0,1])/s,
|
||||
(m[2,0] + m[0,2])/s,
|
||||
(m[1,2] + m[2,1])/s,
|
||||
s*0.25,
|
||||
])
|
||||
return cls( np.array([w,x,y,z])/math.sqrt(w**2 + x**2 + y**2 + z**2))
|
||||
|
||||
|
||||
@classmethod
|
||||
|
@ -663,7 +605,7 @@ class Symmetry:
|
|||
quaternion,
|
||||
who = []):
|
||||
"""List of symmetrically equivalent quaternions based on own symmetry."""
|
||||
return [quaternion*q for q in self.symmetryQuats(who)]
|
||||
return [q*quaternion for q in self.symmetryQuats(who)]
|
||||
|
||||
|
||||
def inFZ(self,R):
|
||||
|
@ -829,7 +771,7 @@ class Orientation:
|
|||
else:
|
||||
self.quaternion = Quaternion.fromRandom(randomSeed=random)
|
||||
elif isinstance(Eulers, np.ndarray) and Eulers.shape == (3,): # based on given Euler angles
|
||||
self.quaternion = Quaternion.fromEulers(Eulers,type='bunge',degrees=degrees)
|
||||
self.quaternion = Quaternion.fromEulers(Eulers,degrees=degrees)
|
||||
elif isinstance(matrix, np.ndarray) : # based on given rotation matrix
|
||||
self.quaternion = Quaternion.fromMatrix(matrix)
|
||||
elif isinstance(angleAxis, np.ndarray) and angleAxis.shape == (4,): # based on given angle and rotation axis
|
||||
|
@ -855,16 +797,15 @@ class Orientation:
|
|||
return 'Symmetry: %s\n' % (self.symmetry) + \
|
||||
'Quaternion: %s\n' % (self.quaternion) + \
|
||||
'Matrix:\n%s\n' % ( '\n'.join(['\t'.join(map(str,self.asMatrix()[i,:])) for i in range(3)]) ) + \
|
||||
'Bunge Eulers / deg: %s' % ('\t'.join(map(str,self.asEulers('bunge',degrees=True))) )
|
||||
'Bunge Eulers / deg: %s' % ('\t'.join(map(str,self.asEulers(degrees=True))) )
|
||||
|
||||
def asQuaternion(self):
|
||||
return self.quaternion.asList()
|
||||
|
||||
def asEulers(self,
|
||||
type = 'bunge',
|
||||
degrees = False,
|
||||
standardRange = False):
|
||||
return self.quaternion.asEulers(type, degrees, standardRange)
|
||||
):
|
||||
return self.quaternion.asEulers(degrees)
|
||||
eulers = property(asEulers)
|
||||
|
||||
def asRodrigues(self):
|
||||
|
@ -912,13 +853,13 @@ class Orientation:
|
|||
"""
|
||||
if self.symmetry != other.symmetry: raise TypeError('disorientation between different symmetry classes not supported yet.')
|
||||
|
||||
misQ = self.quaternion.conjugated()*other.quaternion
|
||||
misQ = other.quaternion*self.quaternion.conjugated()
|
||||
mySymQs = self.symmetry.symmetryQuats() if SST else self.symmetry.symmetryQuats()[:1] # take all or only first sym operation
|
||||
otherSymQs = other.symmetry.symmetryQuats()
|
||||
|
||||
for i,sA in enumerate(mySymQs):
|
||||
for j,sB in enumerate(otherSymQs):
|
||||
theQ = sA.conjugated()*misQ*sB
|
||||
theQ = sB*misQ*sA.conjugated()
|
||||
for k in range(2):
|
||||
theQ.conjugate()
|
||||
breaker = self.symmetry.inFZ(theQ) \
|
||||
|
@ -929,7 +870,7 @@ class Orientation:
|
|||
|
||||
# disorientation, own sym, other sym, self-->other: True, self<--other: False
|
||||
return (Orientation(quaternion = theQ,symmetry = self.symmetry.lattice),
|
||||
i,j,k == 1)
|
||||
i,j, k == 1)
|
||||
|
||||
|
||||
def inversePole(self,
|
||||
|
@ -939,10 +880,10 @@ class Orientation:
|
|||
"""Axis rotated according to orientation (using crystal symmetry to ensure location falls into SST)"""
|
||||
if SST: # pole requested to be within SST
|
||||
for i,q in enumerate(self.symmetry.equivalentQuaternions(self.quaternion)): # test all symmetric equivalent quaternions
|
||||
pole = q.conjugated()*axis # align crystal direction to axis
|
||||
pole = q*axis # align crystal direction to axis
|
||||
if self.symmetry.inSST(pole,proper): break # found SST version
|
||||
else:
|
||||
pole = self.quaternion.conjugated()*axis # align crystal direction to axis
|
||||
pole = self.quaternion*axis # align crystal direction to axis
|
||||
|
||||
return (pole,i if SST else 0)
|
||||
|
||||
|
@ -951,7 +892,7 @@ class Orientation:
|
|||
color = np.zeros(3,'d')
|
||||
|
||||
for q in self.symmetry.equivalentQuaternions(self.quaternion):
|
||||
pole = q.conjugated()*axis # align crystal direction to axis
|
||||
pole = q*axis # align crystal direction to axis
|
||||
inSST,color = self.symmetry.inSST(pole,color=True)
|
||||
if inSST: break
|
||||
|
||||
|
|
|
@ -8,43 +8,25 @@ class Marc(Solver):
|
|||
|
||||
def __init__(self):
|
||||
self.solver = 'Marc'
|
||||
self.releases = { \
|
||||
'2017': ['linux64',''],
|
||||
'2016': ['linux64',''],
|
||||
}
|
||||
|
||||
|
||||
#--------------------------
|
||||
def version(self):
|
||||
import os,damask.environment
|
||||
import damask.environment
|
||||
|
||||
MSCpath = damask.environment.Environment().options['MSC_ROOT']
|
||||
|
||||
for release,subdirs in sorted(list(self.releases.items()),reverse=True):
|
||||
for subdir in subdirs:
|
||||
path = '%s/mentat%s/shlib/%s'%(MSCpath,release,subdir)
|
||||
if os.path.exists(path): return release
|
||||
else: continue
|
||||
|
||||
return ''
|
||||
return damask.environment.Environment().options['MARC_VERSION']
|
||||
|
||||
|
||||
#--------------------------
|
||||
def libraryPath(self,releases = []):
|
||||
def libraryPath(self,release = ''):
|
||||
import os,damask.environment
|
||||
|
||||
MSCpath = damask.environment.Environment().options['MSC_ROOT']
|
||||
MSCpath = damask.environment.Environment().options['MSC_ROOT']
|
||||
if len(release) == 0: release = self.version()
|
||||
|
||||
if len(releases) == 0: releases = list(self.releases.keys())
|
||||
if type(releases) is not list: releases = [releases]
|
||||
for release in sorted(releases,reverse=True):
|
||||
if release not in self.releases: continue
|
||||
for subdir in self.releases[release]:
|
||||
libPath = '%s/mentat%s/shlib/%s'%(MSCpath,release,subdir)
|
||||
if os.path.exists(libPath): return libPath
|
||||
else: continue
|
||||
path = '{}/mentat{}/shlib/linux64'.format(MSCpath,release)
|
||||
|
||||
return ''
|
||||
return path if os.path.exists(path) else ''
|
||||
|
||||
|
||||
#--------------------------
|
||||
|
@ -52,11 +34,11 @@ class Marc(Solver):
|
|||
import os,damask.environment
|
||||
|
||||
MSCpath = damask.environment.Environment().options['MSC_ROOT']
|
||||
|
||||
if len(release) == 0: release = self.version()
|
||||
|
||||
path = '%s/marc%s/tools'%(MSCpath,release)
|
||||
if os.path.exists(path): return path
|
||||
else: return ''
|
||||
|
||||
return path if os.path.exists(path) else ''
|
||||
|
||||
|
||||
#--------------------------
|
||||
|
@ -67,31 +49,25 @@ class Marc(Solver):
|
|||
logfile = None,
|
||||
compile = False,
|
||||
optimization ='',
|
||||
openMP = False
|
||||
):
|
||||
|
||||
import os,damask.environment
|
||||
import subprocess,shlex
|
||||
|
||||
if len(release) == 0: release = self.version()
|
||||
|
||||
if release not in self.releases:
|
||||
raise Exception("Unknown MSC.Marc Version %s"%release)
|
||||
|
||||
|
||||
damaskEnv = damask.environment.Environment()
|
||||
|
||||
user = os.path.join(damaskEnv.relPath('src/'),'DAMASK_marc') # might be updated if special version (symlink) is found
|
||||
user = 'not found'
|
||||
|
||||
if compile:
|
||||
if os.path.isfile(os.path.join(damaskEnv.relPath('src/'),'DAMASK_marc%s.f90'%release)):
|
||||
user = os.path.join(damaskEnv.relPath('src/'),'DAMASK_marc%s'%release)
|
||||
if os.path.isfile(os.path.join(damaskEnv.relPath('src/'),'DAMASK_marc{}.f90'.format(release))):
|
||||
user = os.path.join(damaskEnv.relPath('src/'),'DAMASK_marc{}'.format(release))
|
||||
else:
|
||||
if os.path.isfile(os.path.join(damaskEnv.relPath('src/'),'DAMASK_marc%s.marc'%release)):
|
||||
user = os.path.join(damaskEnv.relPath('src/'),'DAMASK_marc%s'%release)
|
||||
if os.path.isfile(os.path.join(damaskEnv.relPath('src/'),'DAMASK_marc{}.marc'.format(release))):
|
||||
user = os.path.join(damaskEnv.relPath('src/'),'DAMASK_marc{}'.format(release))
|
||||
|
||||
# Define options [see Marc Installation and Operation Guide, pp 23]
|
||||
script = 'run_damask%s'%({False:'',True:'_'}[optimization!='' or openMP])
|
||||
script = script+'%s%s'%({False:'',True:optimization}[optimization!=''],{False:'',True:'mp'}[openMP])
|
||||
script = 'run_damask_{}mp'.format(optimization)
|
||||
|
||||
cmd = os.path.join(self.toolsPath(release),script) + \
|
||||
' -jid ' + model + '_' + job + \
|
||||
|
@ -100,24 +76,24 @@ class Marc(Solver):
|
|||
if compile: cmd += ' -u ' + user+'.f90' + ' -save y'
|
||||
else: cmd += ' -prog ' + user
|
||||
|
||||
print('job submission with%s compilation: %s'%({False:'out',True:''}[compile],user))
|
||||
print('job submission with{} compilation: {}'.format({False:'out',True:''}[compile],user))
|
||||
if logfile:
|
||||
log = open(logfile, 'w')
|
||||
print(cmd)
|
||||
self.p = subprocess.Popen(shlex.split(cmd),stdout = log,stderr = subprocess.STDOUT)
|
||||
process = subprocess.Popen(shlex.split(cmd),stdout = log,stderr = subprocess.STDOUT)
|
||||
log.close()
|
||||
self.p.wait()
|
||||
process.wait()
|
||||
|
||||
#--------------------------
|
||||
def exit_number_from_outFile(self,outFile=None):
|
||||
import string
|
||||
exitnumber = -1
|
||||
fid_out = open(outFile,'r')
|
||||
for ln in fid_out:
|
||||
if (string.find(ln,'tress iteration') is not -1):
|
||||
print(ln)
|
||||
elif (string.find(ln,'Exit number') is not -1):
|
||||
substr = ln[string.find(ln,'Exit number'):len(ln)]
|
||||
for line in fid_out:
|
||||
if (string.find(line,'tress iteration') is not -1):
|
||||
print(line)
|
||||
elif (string.find(line,'Exit number') is not -1):
|
||||
substr = line[string.find(line,'Exit number'):len(line)]
|
||||
exitnumber = int(substr[12:16])
|
||||
|
||||
fid_out.close()
|
||||
|
|
|
@ -384,10 +384,10 @@ class Test():
|
|||
while table0.data_read(): # read next data line of ASCII table
|
||||
if line0 not in skipLines:
|
||||
for i in range(dataLength):
|
||||
myData = np.array(map(float,table0.data[column[0][i]:\
|
||||
column[0][i]+length[i]]),'d')
|
||||
normData = np.array(map(float,table0.data[normColumn[i]:\
|
||||
normColumn[i]+normLength[i]]),'d')
|
||||
myData = np.array(list(map(float,table0.data[column[0][i]:\
|
||||
column[0][i]+length[i]])),'d')
|
||||
normData = np.array(list(map(float,table0.data[normColumn[i]:\
|
||||
normColumn[i]+normLength[i]])),'d')
|
||||
data[i] = np.append(data[i],np.reshape(myData,shape[i]))
|
||||
if normType == 'pInf':
|
||||
norm[i] = np.append(norm[i],np.max(np.abs(normData)))
|
||||
|
@ -410,8 +410,8 @@ class Test():
|
|||
while table1.data_read(): # read next data line of ASCII table
|
||||
if line1 not in skipLines:
|
||||
for i in range(dataLength):
|
||||
myData = np.array(map(float,table1.data[column[1][i]:\
|
||||
column[1][i]+length[i]]),'d')
|
||||
myData = np.array(list(map(float,table1.data[column[1][i]:\
|
||||
column[1][i]+length[i]])),'d')
|
||||
maxError[i] = max(maxError[i],np.linalg.norm(np.reshape(myData-data[i][line1-len(skipLines),:],shape[i]))/
|
||||
norm[i][line1-len(skipLines)])
|
||||
line1 +=1
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,re,sys,collections
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math
|
||||
|
@ -49,7 +49,7 @@ def curlFFT(geomdim,field):
|
|||
|
||||
curl_fourier = np.einsum(einsums[n],e,k_s,field_fourier)*TWOPIIMG
|
||||
|
||||
return np.fft.irfftn(curl_fourier,axes=(0,1,2),s=shapeFFT).reshape([N,n])
|
||||
return np.fft.irfftn(curl_fourier,s=shapeFFT,axes=(0,1,2)).reshape([N,n])
|
||||
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math
|
||||
|
@ -45,7 +45,7 @@ def divFFT(geomdim,field):
|
|||
|
||||
div_fourier = np.einsum(einsums[n],k_s,field_fourier)*TWOPIIMG
|
||||
|
||||
return np.fft.irfftn(div_fourier,axes=(0,1,2),s=shapeFFT).reshape([N,n/3])
|
||||
return np.fft.irfftn(div_fourier,s=shapeFFT,axes=(0,1,2)).reshape([N,n//3])
|
||||
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,itertools
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math
|
||||
|
@ -45,7 +45,7 @@ def gradFFT(geomdim,field):
|
|||
k_s = np.concatenate((ki[:,:,:,None],kj[:,:,:,None],kk[:,:,:,None]),axis = 3).astype('c16')
|
||||
grad_fourier = np.einsum(einsums[n],field_fourier,k_s)*TWOPIIMG
|
||||
|
||||
return np.fft.irfftn(grad_fourier,axes=(0,1,2),s=shapeFFT).reshape([N,3*n])
|
||||
return np.fft.irfftn(grad_fourier,s=shapeFFT,axes=(0,1,2)).reshape([N,3*n])
|
||||
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math
|
||||
|
@ -169,7 +169,7 @@ for name in filenames:
|
|||
for output in options.output:
|
||||
if output == 'quaternion': table.data_append(o.asQuaternion())
|
||||
elif output == 'rodrigues': table.data_append(o.asRodrigues())
|
||||
elif output == 'eulers': table.data_append(o.asEulers('Bunge', degrees=options.degrees))
|
||||
elif output == 'eulers': table.data_append(o.asEulers(degrees=options.degrees))
|
||||
outputAlive = table.data_write() # output processed line
|
||||
|
||||
# ------------------------------------------ output finalization -----------------------------------
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math
|
||||
|
@ -190,27 +190,27 @@ if np.sum(input) != 1: parser.error('needs exactly one input format.')
|
|||
(options.quaternion,4,'quaternion'),
|
||||
][np.where(input)[0][0]] # select input label that was requested
|
||||
|
||||
c_direction = np.zeros((len(slipSystems[options.lattice]),3),'f')
|
||||
c_normal = np.zeros_like(c_direction)
|
||||
slip_direction = np.zeros((len(slipSystems[options.lattice]),3),'f')
|
||||
slip_normal = np.zeros_like(slip_direction)
|
||||
|
||||
|
||||
if options.lattice in latticeChoices[:2]:
|
||||
c_direction = slipSystems[options.lattice][:,:3]
|
||||
c_normal = slipSystems[options.lattice][:,3:]
|
||||
slip_direction = slipSystems[options.lattice][:,:3]
|
||||
slip_normal = slipSystems[options.lattice][:,3:]
|
||||
elif options.lattice == latticeChoices[2]:
|
||||
# convert 4 Miller index notation of hex to orthogonal 3 Miller index notation
|
||||
for i in range(len(c_direction)):
|
||||
c_direction[i] = np.array([slipSystems['hex'][i,0]*1.5,
|
||||
for i in range(len(slip_direction)):
|
||||
slip_direction[i] = np.array([slipSystems['hex'][i,0]*1.5,
|
||||
(slipSystems['hex'][i,0] + 2.*slipSystems['hex'][i,1])*0.5*np.sqrt(3),
|
||||
slipSystems['hex'][i,3]*options.CoverA,
|
||||
])
|
||||
c_normal[i] = np.array([slipSystems['hex'][i,4],
|
||||
slip_normal[i] = np.array([slipSystems['hex'][i,4],
|
||||
(slipSystems['hex'][i,4] + 2.*slipSystems['hex'][i,5])/np.sqrt(3),
|
||||
slipSystems['hex'][i,7]/options.CoverA,
|
||||
])
|
||||
|
||||
c_direction /= np.tile(np.linalg.norm(c_direction,axis=1),(3,1)).T
|
||||
c_normal /= np.tile(np.linalg.norm(c_normal ,axis=1),(3,1)).T
|
||||
slip_direction /= np.tile(np.linalg.norm(slip_direction,axis=1),(3,1)).T
|
||||
slip_normal /= np.tile(np.linalg.norm(slip_normal ,axis=1),(3,1)).T
|
||||
|
||||
# --- loop over input files ------------------------------------------------------------------------
|
||||
|
||||
|
@ -244,7 +244,7 @@ for name in filenames:
|
|||
.format( id = i+1,
|
||||
normal = theNormal,
|
||||
direction = theDirection,
|
||||
) for i,(theNormal,theDirection) in enumerate(zip(c_normal,c_direction))])
|
||||
) for i,(theNormal,theDirection) in enumerate(zip(slip_normal,slip_direction))])
|
||||
table.head_write()
|
||||
|
||||
# ------------------------------------------ process data ------------------------------------------
|
||||
|
@ -262,9 +262,9 @@ for name in filenames:
|
|||
elif inputtype == 'quaternion':
|
||||
o = damask.Orientation(quaternion = np.array(list(map(float,table.data[column:column+4]))),)
|
||||
|
||||
rotForce = o.quaternion.conjugated() * force
|
||||
rotNormal = o.quaternion.conjugated() * normal
|
||||
table.data_append(np.abs(np.sum(c_direction*rotForce,axis=1) * np.sum(c_normal*rotNormal,axis=1)))
|
||||
|
||||
table.data_append( np.abs( np.sum(slip_direction * (o.quaternion * force) ,axis=1) \
|
||||
* np.sum(slip_normal * (o.quaternion * normal),axis=1)))
|
||||
outputAlive = table.data_write() # output processed line
|
||||
|
||||
# ------------------------------------------ output finalization -----------------------------------
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys
|
||||
|
@ -94,11 +94,9 @@ for name in filenames:
|
|||
|
||||
if (any(options.grid) == 0 or any(options.size) == 0.0):
|
||||
grid,size = damask.util.coordGridAndSize(table.data[:,table.label_indexrange(options.pos)])
|
||||
|
||||
else:
|
||||
grid = np.array(options.grid,'i')
|
||||
size = np.array(options.size,'d')
|
||||
origin = np.zeros(3,'d')
|
||||
|
||||
packing = np.where(grid == 1,1,packing) # reset packing to 1 where grid==1
|
||||
shift = np.where(grid == 1,0,shift) # reset shift to 0 where grid==1
|
||||
|
@ -113,7 +111,7 @@ for name in filenames:
|
|||
-shift[2],axis = 2),
|
||||
size = list(packing) + [1],
|
||||
mode = 'wrap',
|
||||
origin = list(-(packing/2)) + [0])\
|
||||
origin = list(-(packing//2)) + [0])\
|
||||
[::packing[0],::packing[1],::packing[2],:].reshape((packedGrid.prod(),table.data.shape[1]),order = 'F')
|
||||
|
||||
|
||||
|
@ -121,15 +119,15 @@ for name in filenames:
|
|||
|
||||
#--- generate grid --------------------------------------------------------------------------------
|
||||
|
||||
x = (0.5 + shift[0] + np.arange(packedGrid[0],dtype=float))/packedGrid[0]*size[0] + origin[0]
|
||||
y = (0.5 + shift[1] + np.arange(packedGrid[1],dtype=float))/packedGrid[1]*size[1] + origin[1]
|
||||
z = (0.5 + shift[2] + np.arange(packedGrid[2],dtype=float))/packedGrid[2]*size[2] + origin[2]
|
||||
x = (0.5 + shift[0] + np.arange(packedGrid[0],dtype=float))/packedGrid[0]*size[0]
|
||||
y = (0.5 + shift[1] + np.arange(packedGrid[1],dtype=float))/packedGrid[1]*size[1]
|
||||
z = (0.5 + shift[2] + np.arange(packedGrid[2],dtype=float))/packedGrid[2]*size[2]
|
||||
|
||||
xx = np.tile( x, packedGrid[1]* packedGrid[2])
|
||||
yy = np.tile(np.repeat(y,packedGrid[0] ),packedGrid[2])
|
||||
zz = np.repeat(z,packedGrid[0]*packedGrid[1])
|
||||
|
||||
table.data[:,table.label_indexragen(options.pos)] = np.squeeze(np.dstack((xx,yy,zz)))
|
||||
table.data[:,table.label_indexrange(options.pos)] = np.squeeze(np.dstack((xx,yy,zz)))
|
||||
|
||||
# ------------------------------------------ output result -----------------------------------------
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,re,sys,fnmatch
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import sys,os
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math,re,time,struct
|
||||
|
@ -135,7 +135,7 @@ class MPIEspectral_result: # mimic py_post result object
|
|||
if self.N_element_scalars is None:
|
||||
self.N_element_scalars = self._keyedPackedArray('materialpoint_sizeResults',count=1,type='i')[0]
|
||||
|
||||
self.N_positions = (self.filesize-self.dataOffset)/(self.N_elements*self.N_element_scalars*8)
|
||||
self.N_positions = (self.filesize-self.dataOffset)//(self.N_elements*self.N_element_scalars*8)
|
||||
self.N_increments = 1 # add zero'th entry
|
||||
for i in range(self.N_loadcases):
|
||||
self.N_increments += self._increments[i]//self._frequencies[i]
|
||||
|
@ -244,9 +244,9 @@ class MPIEspectral_result: # mimic py_post result object
|
|||
a = self.grid[0]+1
|
||||
b = self.grid[1]+1
|
||||
c = self.grid[2]+1
|
||||
return vector([self.size[0] * (n%a) / self.grid[0],
|
||||
self.size[1] * ((n/a)%b) / self.grid[1],
|
||||
self.size[2] * ((n/a/b)%c) / self.grid[2],
|
||||
return vector([self.size[0] * (n%a) / self.grid[0],
|
||||
self.size[1] * ((n//a)%b) / self.grid[1],
|
||||
self.size[2] * ((n//a//b)%c) / self.grid[2],
|
||||
])
|
||||
|
||||
def element_sequence(self,e):
|
||||
|
@ -258,7 +258,7 @@ class MPIEspectral_result: # mimic py_post result object
|
|||
def element(self,e):
|
||||
a = self.grid[0]+1
|
||||
b = self.grid[1]+1
|
||||
basenode = 1 + e+e/self.grid[0] + e/self.grid[0]/self.grid[1]*a
|
||||
basenode = 1 + e+e//self.grid[0] + e//self.grid[0]//self.grid[1]*a
|
||||
basenode2 = basenode+a*b
|
||||
return (element([basenode ,basenode +1,basenode +a+1,basenode +a,
|
||||
basenode2 ,basenode2+1,basenode2+a+1,basenode2+a,
|
||||
|
@ -434,17 +434,17 @@ def mapIncremental(label, mapping, N, base, new):
|
|||
'unique': lambda n,b,a: a if n==0 or b==a else 'nan'
|
||||
}
|
||||
if mapping in theMap:
|
||||
mapped = map(theMap[mapping],[N]*len(base),base,new) # map one of the standard functions to data
|
||||
mapped = list(map(theMap[mapping],[N for i in range(len(base))],base,new)) # map one of the standard functions to data
|
||||
if label.lower() == 'orientation': # orientation is special case:...
|
||||
orientationNorm = math.sqrt(sum([q*q for q in mapped])) # ...calc norm of average quaternion
|
||||
mapped = map(lambda x: x/orientationNorm, mapped) # ...renormalize quaternion
|
||||
mapped = list(map(lambda x: x/orientationNorm, mapped)) # ...renormalize quaternion
|
||||
else:
|
||||
try:
|
||||
mapped = eval('map(%s,[N]*len(base),base,new)'%mapping) # map user defined function to colums in chunks
|
||||
mapped = list(eval('map(%s,[N for i in range(len(base))],base,new)'%mapping)) # map user defined function to colums in chunks
|
||||
except:
|
||||
mapped = ['nan']*len(base)
|
||||
mapped = ['nan' for i in range(len(base))]
|
||||
|
||||
return mapped
|
||||
return list(mapped)
|
||||
|
||||
|
||||
|
||||
|
@ -674,6 +674,9 @@ parser.add_option('-p','--type', dest='filetype',
|
|||
parser.add_option('-q','--quiet', dest='verbose',
|
||||
action = 'store_false',
|
||||
help = 'suppress verbose output')
|
||||
parser.add_option('--verbose', dest='verbose',
|
||||
action = 'store_true',
|
||||
help = 'enable verbose output')
|
||||
|
||||
group_material = OptionGroup(parser,'Material identifier')
|
||||
|
||||
|
@ -715,7 +718,7 @@ parser.add_option_group(group_general)
|
|||
parser.add_option_group(group_special)
|
||||
|
||||
parser.set_defaults(info = False,
|
||||
verbose = True,
|
||||
verbose = False,
|
||||
legacy = False,
|
||||
nodal = False,
|
||||
prefix = '',
|
||||
|
@ -1164,14 +1167,12 @@ for incCount,position in enumerate(locations): # walk through locations
|
|||
file.write('\t'.join(standard + header) + '\n')
|
||||
headerWritten = True
|
||||
|
||||
file.write('\t'.join(map(str,[p.increment] + \
|
||||
file.write('\t'.join(list(map(str,[p.increment] + \
|
||||
{True:[p.time],False:[]}[options.time] + \
|
||||
group[0] + \
|
||||
mappedResult)
|
||||
) + '\n')
|
||||
)) + '\n')
|
||||
|
||||
if fileOpen:
|
||||
file.close()
|
||||
|
||||
|
||||
# --------------------------- DONE --------------------------------
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,re
|
||||
|
@ -66,7 +66,7 @@ for name in filenames:
|
|||
for i,index in enumerate(indices):
|
||||
if index == -1: remarks.append('label "{}" not present...'.format(options.label[i]))
|
||||
else:
|
||||
m = pattern[dimensions[i]>1].match(table.tags[index]) # isolate label name
|
||||
m = pattern[int(dimensions[i]>1)].match(table.tags[index]) # isolate label name
|
||||
for j in range(dimensions[i]):
|
||||
table.tags[index+j] = table.tags[index+j].replace(m.group(2),options.substitute[i]) # replace name with substitute
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math
|
||||
|
@ -63,7 +63,7 @@ parser.set_defaults(center = (.0,.0,.0),
|
|||
if options.dimension is None:
|
||||
parser.error('no dimension specified.')
|
||||
if options.angleaxis is not None:
|
||||
options.angleaxis = map(float,options.angleaxis)
|
||||
options.angleaxis = list(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 is not None:
|
||||
|
@ -137,17 +137,17 @@ for name in filenames:
|
|||
indexing='ij')
|
||||
# Padding handling
|
||||
X = np.roll(np.roll(np.roll(X,
|
||||
-grid[0]/2, axis=0),
|
||||
-grid[1]/2, axis=1),
|
||||
-grid[2]/2, axis=2)
|
||||
-grid[0]//2, axis=0),
|
||||
-grid[1]//2, axis=1),
|
||||
-grid[2]//2, axis=2)
|
||||
Y = np.roll(np.roll(np.roll(Y,
|
||||
-grid[0]/2, axis=0),
|
||||
-grid[1]/2, axis=1),
|
||||
-grid[2]/2, axis=2)
|
||||
-grid[0]//2, axis=0),
|
||||
-grid[1]//2, axis=1),
|
||||
-grid[2]//2, axis=2)
|
||||
Z = np.roll(np.roll(np.roll(Z,
|
||||
-grid[0]/2, axis=0),
|
||||
-grid[1]/2, axis=1),
|
||||
-grid[2]/2, axis=2)
|
||||
-grid[0]//2, axis=0),
|
||||
-grid[1]//2, axis=1),
|
||||
-grid[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, grid[0], dtype=np.float32),
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math,time
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math
|
||||
|
@ -245,9 +245,9 @@ for name in filenames:
|
|||
hasEulers = table.label_dimension(options.eulers) == 3
|
||||
hasWeights = table.label_dimension(options.weight) == 1 and options.laguerre
|
||||
|
||||
if np.any(info['grid'] < 1): errors.append('invalid grid a b c.')
|
||||
if np.any(info['size'] <= 0.0) \
|
||||
and np.all(info['grid'] < 1): errors.append('invalid size x y z.')
|
||||
if np.any(np.array(info['grid']) < 1): errors.append('invalid grid a b c.')
|
||||
if np.any(np.array(info['size']) <= 0.0) \
|
||||
and np.all(np.array(info['grid']) < 1): errors.append('invalid size x y z.')
|
||||
else:
|
||||
for i in range(3):
|
||||
if info['size'][i] <= 0.0: # any invalid size?
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/usr/bin/env python2.7
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 no BOM -*-
|
||||
|
||||
import os,sys,math
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue