在centos7系统下,安装了abaqus6.14,然后将它与gfortran关联以方便UMAT的使用。linux下abaqus关联fortran编译器非常方便,只要修改abaqus_v6.env文件就行。但是改起来总是出现错误,还是对具体语句不太熟悉。经过试验,现在提供一个可用.env文件,在我的机器上verify后PASS了,希望能帮到有需要的人。
-------------------------------------下面是abaqus_v6.env文件的内容---------------------------
#
# System-Wide Abaqus Environment File
# -------------------------------------
standard_parallel = ALL
mp_mode = MPI
mp_file_system = (DETECT,DETECT)
mp_num_parallel_ftps = (4, 4)
mp_environment_export = ('MPI_PROPAGATE_TSTP',
'ABA_CM_BUFFERING_LIMIT',
'ABA_ITERATIVE_SOLVER_VERBOSE',
'ABA_DMPSOLVER_BWDPARALLELOFF',
'ABA_ELP_SURFACE_SPLIT',
'ABA_HOME',
'ABA_MPI_MESSAGE_TRACKING',
'ABA_MPI_VERBOSE_LEVEL',
'ABA_PATH',
'ABAQUS_CSE_RELTIMETOLERANCE',
'ABA_RESOURCE_MONITOR',
'ABA_RESOURCE_USEMALLINFO',
'ABAQUS_LANG',
'ABAQUS_CSE_CURRCONFIGMappING',
'ABAQUS_MPF_DIAGNOSTIC_LEVEL',
'ABAQUSLM_LICENSE_FILE',
'ABQ_CRTMALLOC',
'ABQ_DATACHECK',
'ABQ_RECOVER',
'ABQ_RESTART',
'ABQ_SPLITFILE',
'ABQ_XPL_PARTITIONSIZE',
'ABQLMHANGLIMIT',
'ABQLMQUEUE',
'ABQLMUSER',
'CCI_RENDEZVOUS',
'DOMAIN',
'DOMAIN_CPUS',
'FOR0006',
'FOR0064',
'FOR_IGNORE_EXCEPTIONS',
'FOR_DISABLE_DIAGNOSTIC_DISPLAY',
'LD_PRELOAD',
'MP_NUMBER_OF_THREADS',
'MPC_GANG',
'MPI_FLAGS',
'MPI_USE_MALLOPT_MMAP_MAX',
'MPI_USE_MALLOPT_MMAP_THRESHOLD',
'MPI_USE_MALLOPT_SBRK_PROTECTION',
'MPI_WORKDIR',
'MPCCI_DEBUG',
'MPCCI_CODEID',
'MPCCI_JOBID',
'MPCCI_TINFO',
'MPCCI_SERVER',
'MPIEXEC_AFFINITY_TABLE',
'NCPUS',
'OMP_DYNAMIC',
'OUTDIR',
'PAIDUP',
'RAIDEV_NDREG_LAZYMEM',
'ABA_SYMBOLIC_GENERALCOLLAPSE',
'ABA_SYMBOLIC_GENERAL_MAXCLIQUERANK',
'ABA_ADM_MINIMUMINCREASE',
'ABA_ADM_MINIMUMDECREASE',
'IPATH_NO_CPUAFFINITY',
'MALLOC_MMAP_THRESHOLD_',
'SMA_WS',
'SMA_PARENT',
'SMA_PLATFORM',
'ABA_PRE_DECOMPOSITION',
'ACML_FAST_MALLOC_CHUNK_SIZE',
'ACML_FAST_MALLOC_MAX_CHUNKS',
'ACML_FAST_MALLOC_DEBUG',
'MKL_DYNAMIC')
import driverUtils, os
#-*- mode: python -*-
#############################################################################
# #
# Compile and Link command settings for the Linux 64 Platform #
# ( AMD Opteron / Intel EM64T ) #
# #
#############################################################################
import os, re, glob, driverUtils
#MPI implementation handling
mpiCppImpl = ''
mp_rsh_command = 'ssh -n -l %U %H %C'
mp_mpi_implementation = PMPI
#mp_mpi_implementation = IMPI #<--- Uncomment this line and comment above line to switch to IMPI
if mp_mpi_implementation == PMPI:
pmpipath = driverUtils.locateFile(os.environ.get('ABA_PATH', ''), 'pmpi-9.1.2/bin', 'mpirun')
mp_mpirun_path = {PMPI: pmpipath}
mpiCppImpl = '-DABQ_MPI_PMPI'
if mp_mpi_implementation == IMPI:
impipath = driverUtils.locateFile(os.environ.get('ABA_PATH', ''), 'impi-4.1.1/bin', 'mpiexec.hydra')
mp_mpirun_path = {IMPI: impipath}
mpiCppImpl = '-DABQ_MPI_IMPI'
fortCmd = 'gfortran' # <-- Fortran compiler
cppCmd = "g++" # <-- C++ compiler
# Avoid signal trapping by the Fortran RTE
os.environ["FOR_IGNORE_EXCEPTIONS"] = "1"
# Disable messages from the Fotran RTE
os.environ["FOR_DISABLE_STACK_TRACE"] = "1"
# Do not let QLogic InfiniPath driver set processor affinity.
os.environ["IPATH_NO_CPUAFFINITY"] = "1"
# Add the flag "-free" to the compile_fortran command below to use free-format FORTRAN 90 syntax.
#compile_fortran = [fortCmd,
# '-c', '-fPIC', '-extend_source', '-O3',
# '-Warray-bounds', '-ffree-form', '-fcray-pointer', '-I%I']
compile_fortran = [fortCmd,
'-c', '-fPIC', '-extend_source', '-O3',
'-Warray-bounds', '-I%I']
# Additional command-line options for the Intel C/C++ Compilers:
# '-cxxlib', '-Kc++eh', '-Krtti', '-Kc++', '-pc64', '-restrict', '-i-dynamic',
# '-we1011', '-we120', '-we117', '-we556', '-we144', '-we268', '-we1224', '-we167', '-we880'
compile_cpp = [cppCmd,
'-c', '-fPIC', '-w', '-Wno-deprecated', '-DTYPENAME=typename',
'-D_LINUX_SOURCE', '-DABQ_LINUX', '-DABQ_LNX86_64', '-DSMA_GNUC',
'-DFOR_TRAIL', '-DHAS_BOOL', '-DASSERT_ENABLED',
'-D_BSD_TYPES', '-D_BSD_SOURCE', '-D_GNU_SOURCE',
'-D_POSIX_SOURCE', '-D_XOPEN_SOURCE_EXTENDED', '-D_XOPEN_SOURCE',
'-DHAVE_OPENGL', '-DHKS_OPEN_GL', '-DGL_GLEXT_PROTOTYPES',
'-DMULTI_THREADING_ENABLED', '-D_REENTRANT',
'-DABQ_MPI_SUPPORT', '-DBIT64', '-D_LARGEFILE64_SOURCE', '-D_FILE_OFFSET_BITS=64',
mpiCppImpl,
# '-O0', # <-- Optimization level
# '-g', # <-- Debug symbols
'-I%I']
compile_fmu = [cppCmd,
'-c', '-fPIC','-I%I']
link_fmu = [cppCmd,
'-fPIC', '-shared', '-o', '%J', '%M']
link_sl = [fortCmd,
'-fPIC', '-pthread', '-shared',
'%E', '-Wl,-soname,%U', '-o', '%U', '%F', '%A', '%L', '%B', '-Wl,-Bdynamic']
link_exe = [cppCmd,
'-fPIC',
'-Wl,-Bdynamic', '-o', '%J', '%F', '%M', '%L', '%B', '%O', '-lpthread', '-lm', '-lifcoremt']
# Remove the temporary names from the namespace
del cppCmd
del fortCmd
del mpiCppImpl
if mp_mpi_implementation == PMPI:
del pmpipath
if mp_mpi_implementation == IMPI:
del impipath
graphicsEnv = driverUtils.locateFile(os.environ['ABA_PATH'],'site','graphicsConfig','env')
if graphicsEnv:
execfile(graphicsEnv)
else:
raise 'Cannot find the graphics configuration environment file (graphicsConfig.env)'
del driverUtils, os, graphicsEnv
license_server_type=FLEXNET
abaquslm_license_file="27011@****(按照自己设置修改此处)"
verify pass
提供一些有用的链接,很有参考意义
https://www.eng-tips.com/viewthread.cfm?qid=381690
http://home.iitk.ac.in/~saiwal/engineering/abaqus2016-2017-gfortran-compiler/
https://xizou.github.io/2017/07/26/link-gfortran-to-abaqus/