From 37de561938cd7c4d048a5b1b3ad6b9cd8533766d Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 13 Jan 2021 18:43:20 +0100 Subject: [PATCH] shell variables are more robust they will also work if Fortran and python code are installed in different locations. --- env/DAMASK.sh | 4 +++- env/DAMASK.zsh | 4 +++- .../mods_MarcMentat/apply_DAMASK_modifications.py | 2 +- python/damask/_environment.py | 8 +------- python/damask/_test.py | 2 +- python/damask/solver/_marc.py | 2 +- 6 files changed, 10 insertions(+), 12 deletions(-) diff --git a/env/DAMASK.sh b/env/DAMASK.sh index 24a2c2de3..f8ccfc1e0 100644 --- a/env/DAMASK.sh +++ b/env/DAMASK.sh @@ -87,10 +87,12 @@ if [ ! -z "$PS1" ]; then fi export OMP_NUM_THREADS +export MSC_ROOT +export MSC_VERSION +export DAMASK_ROOT export PYTHONPATH=$DAMASK_ROOT/python:$PYTHONPATH for var in BASE STAT SOLVER BRANCH; do unset "${var}" done unset "ENV_ROOT" -unset "DAMASK_ROOT" diff --git a/env/DAMASK.zsh b/env/DAMASK.zsh index e12a5248a..2c74657fd 100644 --- a/env/DAMASK.zsh +++ b/env/DAMASK.zsh @@ -81,10 +81,12 @@ if [ ! -z "$PS1" ]; then fi export OMP_NUM_THREADS +export MSC_ROOT +export MSC_VERSION +export DAMASK_ROOT export PYTHONPATH=$DAMASK_ROOT/python:$PYTHONPATH for var in SOLVER BRANCH; do unset "${var}" done unset "ENV_ROOT" -unset "DAMASK_ROOT" diff --git a/installation/mods_MarcMentat/apply_DAMASK_modifications.py b/installation/mods_MarcMentat/apply_DAMASK_modifications.py index 407c33558..1b430ca75 100755 --- a/installation/mods_MarcMentat/apply_DAMASK_modifications.py +++ b/installation/mods_MarcMentat/apply_DAMASK_modifications.py @@ -11,7 +11,7 @@ msc_version = float(damask.environment.options['MSC_VERSION']) if int(msc_version) == msc_version: msc_version = int(msc_version) msc_root = Path(damask.environment.options['MSC_ROOT']) -damask_root = damask.environment.root_dir +damask_root = damask.environment.options['DAMASK_ROOT'] parser = argparse.ArgumentParser( description='Apply DAMASK modification to MSC.Marc/Mentat', diff --git a/python/damask/_environment.py b/python/damask/_environment.py index 30110e7ae..556229f63 100644 --- a/python/damask/_environment.py +++ b/python/damask/_environment.py @@ -26,13 +26,7 @@ class Environment: @property def options(self): options = {} - for item in ['MSC_ROOT', 'MSC_VERSION']: + for item in ['DAMASK_ROOT', 'MSC_ROOT', 'MSC_VERSION']: options[item] = os.environ[item] if item in os.environ else None return options - - - @property - def root_dir(self): - """Return DAMASK root path.""" - return Path(__file__).parents[2] diff --git a/python/damask/_test.py b/python/damask/_test.py index 000b76e0e..cea9b3a70 100644 --- a/python/damask/_test.py +++ b/python/damask/_test.py @@ -180,7 +180,7 @@ class Test: def fileInRoot(self,dir,file): """Path to a file in the root directory of DAMASK.""" - return str(damask.environment.root_dir/dir/file) + return str(damask.environment.options['DAMASK_ROOT']/dir/file) def fileInReference(self,file): diff --git a/python/damask/solver/_marc.py b/python/damask/solver/_marc.py index 5ddcf8898..c1dc3220d 100644 --- a/python/damask/solver/_marc.py +++ b/python/damask/solver/_marc.py @@ -54,7 +54,7 @@ class Marc: optimization = '', ): - usersub = environment.root_dir/'src/DAMASK_marc' + usersub = environment.options['DAMASK_ROOT']/'src/DAMASK_marc' usersub = usersub.parent/(usersub.name + ('.f90' if compile else '.marc')) if not usersub.is_file(): raise FileNotFoundError(f'subroutine ({"source" if compile else "binary"}) "{usersub}" not found')