DAMASK_EICMD/processing/setup/setup_processing.py

85 lines
2.0 KiB
Python
Executable File

#!/usr/bin/env python
# renders the postprocessing routines acessible from everywhere.
# you need a ~/bin directory in your home folder
# if necessary, add the bin directory to your path by
# adding the following lines to your .bashrc file:
# PATH="$PATH:~/bin"
# export PATH
import os,sys,glob
bin_link = { \
'pre' : [
'marc_addUserOutput',
'mentat_pbcOnBoxMesh',
'mentat_spectralBox',
'patchFromReconstructedBoundaries',
'spectral_geomCheck',
'voronoi_randomSeeding',
'voronoi_tessellation',
],
'post' : [
'3Dvisualize',
'addCauchy',
'addDeterminant',
'addDivergence',
'addMises',
'addNorm',
'addStrainTensors',
'mentat_colorMap',
'postResults',
'spectral_iterationCount',
],
}
compile = { \
'pre' : [
'voronoi_randomSeeding.f90',
'voronoi_tessellation.f90',
],
'post' : [
],
}
execute = { \
'pre' : [
],
'post' : [
'make_postprocessingMath',
],
}
homedir = os.getenv('HOME')
basedir = os.path.join(os.path.dirname(sys.argv[0]),'..')
for dir in bin_link:
for file in bin_link[dir]:
src = os.path.abspath(os.path.join(basedir,dir,file))
if (file == ''):
dst = os.path.abspath(os.path.join(homedir,'bin',dir))
else:
dst = os.path.abspath(os.path.join(homedir,'bin',file))
print src,'-->',dst
if os.path.lexists(dst):
os.remove(dst)
os.symlink(src,dst)
for dir in compile:
for file in compile[dir]:
src = os.path.abspath(os.path.join(basedir,dir,file))
if os.path.isfile(src):
print file
os.system('ifort -O3 -parallel -o%s %s'%(os.path.splitext(src)[0],src))
modules = glob.glob('*.mod')
for module in modules:
print module
os.remove(module)
for dir in execute:
for file in execute[dir]:
cmd = os.path.abspath(os.path.join(basedir,dir,file))
if os.access(cmd,os.X_OK):
print cmd
os.system('%s %s'%(cmd,os.path.join(basedir,dir)))