diff --git a/README.md b/README.md index 7d07bdf0cd..31e62ca271 100644 --- a/README.md +++ b/README.md @@ -116,7 +116,7 @@ This project is supported by [Idaho National Laboratory](https://www.inl.gov/). ### License -Files in /crow/contrib and /framework/contrib are third party libraries that are not part of Raven and are provided here for covenience. These are under their own, seperate licensing which is described in those directories. +Files in crow/contrib, src/contrib and framework/contrib are third party libraries that are not part of Raven and are provided here for covenience. These are under their own, seperate licensing which is described in those directories. Raven itself is licensed as follows: diff --git a/build_raven b/build_raven index 355ae97884..ad11f27d46 100755 --- a/build_raven +++ b/build_raven @@ -105,9 +105,7 @@ if test `uname` = Darwin; then fi PIP_COMMAND=pip3 -(cd $CROW_DIR && ${PIP_COMMAND} --verbose install . --upgrade --target ./install) - -(cd $RAVEN_BUILD_DIR && ${PIP_COMMAND} --verbose install . --upgrade --target ./framework/contrib/AMSC) +(cd $RAVEN_BUILD_DIR && ${PIP_COMMAND} --verbose install . --upgrade --target ./install) (cd $PYTHON_FMU_DIR && ./build_pythonfmu || echo PythonFMU build failed) diff --git a/clean_raven b/clean_raven index 54656abad6..23e7e6a397 100755 --- a/clean_raven +++ b/clean_raven @@ -10,9 +10,10 @@ rm -f ${RAVEN_DIR}/framework/contrib/AMSC/_amsc*.so \ ${RAVEN_DIR}/src/contrib/amsc_wrap.cxx \ ${RAVEN_DIR}/src/contrib/amsc_wrap.cpp \ ${RAVEN_DIR}/src/contrib/amsc.py \ - ${RAVEN_DIR}/src/contrib/amsc.pyc \ - ${RAVE_DIR}/cow/install/ -rm -Rf ${RAVEN_DIR}/build + ${RAVEN_DIR}/src/contrib/amsc.pyc +rm -Rf ${RAVEN_DIR}/build \ + ${RAVEN_DIR}/crow/install/ \ + ${RAVEN_DIR}/install/ find ${RAVEN_DIR}/framework -name '*.pyc' -exec rm '{}' \; find ${RAVEN_DIR}/scripts -name '*.pyc' -exec rm '{}' \; find ${RAVEN_DIR}/rook -name '*.pyc' -exec rm '{}' \; diff --git a/crow/setup.py b/crow/setup.py deleted file mode 100644 index 57b473c566..0000000000 --- a/crow/setup.py +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright 2017 Battelle Energy Alliance, LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -from distutils.core import setup, Extension -from distutils.command.build import build -import subprocess -import sys - - -# We need a custom build order in order to ensure that files -# distribution1Dpy3.py interpolationNDpy3.py and randomENGpy3.py are available -# before we try to copy it to the target location -class CustomBuild(build): - sub_commands = [('build_ext', build.has_ext_modules), - ('build_py', build.has_pure_modules), - ('build_clib', build.has_c_libraries), - ('build_scripts', build.has_scripts)] - -try: - eigen_flags = subprocess.check_output(["./scripts/find_eigen.py"]).decode("ascii") -except: - eigen_flags = "" -include_dirs=['include/distributions','include/utilities','contrib/include'] -if eigen_flags.startswith("-I"): - include_dirs.append(eigen_flags[2:].rstrip()) -swig_opts=['-c++','-py3','-Iinclude/distributions','-Iinclude/utilities'] -extra_compile_args=['-std=c++11'] -setup(name='crow', - version='0.8', - ext_package='crow_modules', - ext_modules=[ - Extension('_distribution1D', - ['crow_modules/distribution1D.i', - 'src/distributions/distribution.cxx', - 'src/utilities/MDreader.cxx', - 'src/utilities/inverseDistanceWeigthing.cxx', - 'src/utilities/microSphere.cxx', - 'src/utilities/NDspline.cxx', - 'src/utilities/ND_Interpolation_Functions.cxx', - 'src/distributions/distributionNDBase.cxx', - 'src/distributions/distributionNDNormal.cxx', - 'src/distributions/distributionFunctions.cxx', - 'src/distributions/DistributionContainer.cxx', - 'src/distributions/distribution_1D.cxx', - 'src/distributions/randomClass.cxx', - 'src/distributions/distributionNDCartesianSpline.cxx'], - include_dirs=include_dirs, - swig_opts=swig_opts, - extra_compile_args=extra_compile_args), - Extension('_randomENG',['crow_modules/randomENG.i','src/distributions/randomClass.cxx'],include_dirs=include_dirs,swig_opts=swig_opts,extra_compile_args=extra_compile_args), - Extension('_interpolationND',['crow_modules/interpolationND.i','src/utilities/ND_Interpolation_Functions.cxx','src/utilities/NDspline.cxx','src/utilities/microSphere.cxx','src/utilities/inverseDistanceWeigthing.cxx','src/utilities/MDreader.cxx','src/distributions/randomClass.cxx'],include_dirs=include_dirs,swig_opts=swig_opts,extra_compile_args=extra_compile_args)], - py_modules=['crow_modules.distribution1D','crow_modules.randomENG','crow_modules.interpolationND'], - cmdclass={'build': CustomBuild}, - ) diff --git a/framework/CustomDrivers/DriverUtils.py b/framework/CustomDrivers/DriverUtils.py index 5c03d48b71..9a4f1c561e 100644 --- a/framework/CustomDrivers/DriverUtils.py +++ b/framework/CustomDrivers/DriverUtils.py @@ -100,7 +100,6 @@ def setupCpp(): frameworkDir = findFramework() from utils import utils utils.find_crow(frameworkDir) - utils.add_path(os.path.join(frameworkDir,'contrib','AMSC')) utils.add_path(os.path.join(frameworkDir,'contrib')) ##TODO REMOVE PP3 WHEN RAY IS AVAILABLE FOR WINDOWS utils.add_path_recursively(os.path.join(frameworkDir,'contrib','pp')) diff --git a/framework/Models/PostProcessors/TopologicalDecomposition.py b/framework/Models/PostProcessors/TopologicalDecomposition.py index b4961143fa..075630652d 100644 --- a/framework/Models/PostProcessors/TopologicalDecomposition.py +++ b/framework/Models/PostProcessors/TopologicalDecomposition.py @@ -309,7 +309,7 @@ def run(self, inputIn): ## Possibly load this here in case people have trouble building it, so it ## only errors if they try to use it? - from AMSC_Object import AMSC_Object + from AMSC.AMSC_Object import AMSC_Object if self.__amsc is None: self.__amsc = AMSC_Object(X=self.inputData, Y=self.outputData, diff --git a/framework/Samplers/LimitSurfaceSearch.py b/framework/Samplers/LimitSurfaceSearch.py index 583036144a..b55a4c5588 100644 --- a/framework/Samplers/LimitSurfaceSearch.py +++ b/framework/Samplers/LimitSurfaceSearch.py @@ -27,7 +27,7 @@ from math import ceil import Distributions -from AMSC_Object import AMSC_Object +from AMSC.AMSC_Object import AMSC_Object from utils import randomUtils from utils import InputData, InputTypes from .AdaptiveSampler import AdaptiveSampler diff --git a/framework/SupervisedLearning/MSR.py b/framework/SupervisedLearning/MSR.py index df3c94ec73..1632a608b6 100644 --- a/framework/SupervisedLearning/MSR.py +++ b/framework/SupervisedLearning/MSR.py @@ -313,7 +313,7 @@ def __trainLocal__(self,featureVals,targetVals): # # Possibly load this here in case people have trouble building it, so it # # only errors if they try to use it? - from AMSC_Object import AMSC_Object + from AMSC.AMSC_Object import AMSC_Object self.X = featureVals[:][:] self.Y = targetVals diff --git a/framework/UI/TopologyWindow.py b/framework/UI/TopologyWindow.py index a864b9fe9b..f694224223 100644 --- a/framework/UI/TopologyWindow.py +++ b/framework/UI/TopologyWindow.py @@ -31,7 +31,7 @@ from sys import path -from AMSC_Object import QAMSC_Object +from AMSC.AMSC_Object import QAMSC_Object from .BaseTopologicalView import BaseTopologicalView from .TopologyMapView import TopologyMapView from .SensitivityView import SensitivityView diff --git a/framework/utils/utils.py b/framework/utils/utils.py index d016dfdf59..d4f1836949 100644 --- a/framework/utils/utils.py +++ b/framework/utils/utils.py @@ -651,7 +651,8 @@ def find_crow(framework_dir): ravenDir = os.path.dirname(framework_dir) #Add the module directory to the search path. crowDirs = [os.path.join(ravenDir,"crow"), - os.path.join(os.path.dirname(ravenDir),"crow")] + os.path.join(os.path.dirname(ravenDir),"crow"), + ravenDir] if "CROW_DIR" in os.environ: crowDirs.insert(0,os.path.join(os.environ["CROW_DIR"])) for crowDir in crowDirs: diff --git a/scripts/TestHarness/testers/RavenFramework.py b/scripts/TestHarness/testers/RavenFramework.py index 1d9ec16712..90e88980a1 100644 --- a/scripts/TestHarness/testers/RavenFramework.py +++ b/scripts/TestHarness/testers/RavenFramework.py @@ -37,7 +37,7 @@ RAVENDIR = os.path.abspath(os.path.join(myDir, '..', '..', '..', 'framework')) #Need to add the directory for AMSC for doing module checks. -os.environ["PYTHONPATH"] = os.path.join(RAVENDIR, 'contrib') +\ +os.environ["PYTHONPATH"] = os.path.join(RAVENDIR, '..', 'install') +\ os.pathsep + os.environ.get("PYTHONPATH", "") scriptDir = os.path.abspath(os.path.join(RAVENDIR, '..', 'scripts')) diff --git a/crow/scripts/find_eigen.py b/scripts/find_eigen.py similarity index 100% rename from crow/scripts/find_eigen.py rename to scripts/find_eigen.py diff --git a/scripts/library_report b/scripts/library_report index c614910caf..c108e3668d 100755 --- a/scripts/library_report +++ b/scripts/library_report @@ -54,7 +54,7 @@ for module, found, message, version in report_list: print(module,version,"\n",message,"\n") else: print(module+' not found\n') -framework_dir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]),"framework")) +framework_dir = os.path.abspath(os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])),"framework")) utils.find_crow(framework_dir) try: distribution1D = utils.findCrowModule('distribution1D') diff --git a/setup.py b/setup.py index b34acb128a..bf12fd3b0e 100644 --- a/setup.py +++ b/setup.py @@ -25,6 +25,8 @@ BOOST_INCLUDE_DIR = os.path.join(CROW_DIR,'contrib','include') RAVEN_INCLUDE_DIR = os.path.join('include','contrib') +DIST_INCLUDE_DIR = os.path.join(CROW_DIR,'include', 'distributions') +UTIL_INCLUDE_DIR = os.path.join(CROW_DIR,'include', 'utilities') # We need a custom build order in order to ensure that amsc.py is available # before we try to copy it to the target location @@ -34,19 +36,44 @@ class CustomBuild(build): ('build_clib', build.has_c_libraries), ('build_scripts', build.has_scripts)] -include_dirs=[RAVEN_INCLUDE_DIR,BOOST_INCLUDE_DIR] -if sys.version_info.major > 2: - swig_opts=['-c++','-I'+RAVEN_INCLUDE_DIR, '-I'+BOOST_INCLUDE_DIR,'-py3'] -else: - swig_opts=['-c++','-I'+RAVEN_INCLUDE_DIR, '-I'+BOOST_INCLUDE_DIR] + +include_dirs=[RAVEN_INCLUDE_DIR,BOOST_INCLUDE_DIR, DIST_INCLUDE_DIR, UTIL_INCLUDE_DIR] +swig_opts=['-c++','-I'+RAVEN_INCLUDE_DIR, '-I'+BOOST_INCLUDE_DIR,'-I'+DIST_INCLUDE_DIR, '-I'+UTIL_INCLUDE_DIR, '-py3'] extra_compile_args=['-std=c++11'] -setup(name='amsc', - version='0.0', - description='A library for computing the Approximate Morse-Smale Complex (AMSC)', - ext_modules=[Extension('_amsc',['src/contrib/amsc.i', - 'src/contrib/UnionFind.cpp', - 'src/contrib/AMSC.cpp'], - include_dirs=include_dirs, swig_opts=swig_opts,extra_compile_args=extra_compile_args)], - package_dir={'':'src/contrib'}, - py_modules=['amsc'], +try: + eigen_flags = subprocess.check_output(["./scripts/find_eigen.py"]).decode("ascii") +except: + eigen_flags = "" +if eigen_flags.startswith("-I"): + include_dirs.append(eigen_flags[2:].rstrip()) +setup(name='raven_cxx', + version='2.1', + description='RAVEN c++ dependenciences including A library for computing the Approximate Morse-Smale Complex (AMSC) and Crow probability tools', + package_dir={'AMSC': 'src/contrib/AMSC', 'crow_modules': 'src/crow_modules'}, + ext_modules=[ + Extension('crow_modules._distribution1D', + ['src/crow_modules/distribution1D.i', + 'src/distributions/distribution.cxx', + 'src/utilities/MDreader.cxx', + 'src/utilities/inverseDistanceWeigthing.cxx', + 'src/utilities/microSphere.cxx', + 'src/utilities/NDspline.cxx', + 'src/utilities/ND_Interpolation_Functions.cxx', + 'src/distributions/distributionNDBase.cxx', + 'src/distributions/distributionNDNormal.cxx', + 'src/distributions/distributionFunctions.cxx', + 'src/distributions/DistributionContainer.cxx', + 'src/distributions/distribution_1D.cxx', + 'src/distributions/randomClass.cxx', + 'src/distributions/distributionNDCartesianSpline.cxx'], + include_dirs=include_dirs, + swig_opts=swig_opts, + extra_compile_args=extra_compile_args), + Extension('crow_modules._randomENG',['src/crow_modules/randomENG.i','src/distributions/randomClass.cxx'],include_dirs=include_dirs,swig_opts=swig_opts,extra_compile_args=extra_compile_args), + Extension('crow_modules._interpolationND',['src/crow_modules/interpolationND.i','src/utilities/ND_Interpolation_Functions.cxx','src/utilities/NDspline.cxx','src/utilities/microSphere.cxx','src/utilities/inverseDistanceWeigthing.cxx','src/utilities/MDreader.cxx','src/distributions/randomClass.cxx'],include_dirs=include_dirs,swig_opts=swig_opts,extra_compile_args=extra_compile_args), + Extension('AMSC._amsc',['src/contrib/AMSC/amsc.i', + 'src/contrib/AMSC/UnionFind.cpp', + 'src/contrib/AMSC/AMSC.cpp'], + include_dirs=include_dirs, swig_opts=swig_opts,extra_compile_args=extra_compile_args)], + py_modules=['AMSC.amsc','crow_modules.distribution1D','crow_modules.randomENG','crow_modules.interpolationND', 'AMSC.AMSC_Object'],#+setuptools.find_packages('framework'), cmdclass={'build': CustomBuild}) diff --git a/src/contrib/AMSC.cpp b/src/contrib/AMSC/AMSC.cpp similarity index 100% rename from src/contrib/AMSC.cpp rename to src/contrib/AMSC/AMSC.cpp diff --git a/framework/contrib/AMSC/AMSC_Object.py b/src/contrib/AMSC/AMSC_Object.py similarity index 100% rename from framework/contrib/AMSC/AMSC_Object.py rename to src/contrib/AMSC/AMSC_Object.py diff --git a/src/contrib/UnionFind.cpp b/src/contrib/AMSC/UnionFind.cpp similarity index 100% rename from src/contrib/UnionFind.cpp rename to src/contrib/AMSC/UnionFind.cpp diff --git a/framework/contrib/AMSC/__init__.py b/src/contrib/AMSC/__init__.py similarity index 100% rename from framework/contrib/AMSC/__init__.py rename to src/contrib/AMSC/__init__.py diff --git a/src/contrib/amsc.i b/src/contrib/AMSC/amsc.i similarity index 100% rename from src/contrib/amsc.i rename to src/contrib/AMSC/amsc.i diff --git a/src/contrib/__init__.py b/src/contrib/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/crow/crow_modules/__init__.py b/src/crow_modules/__init__.py similarity index 100% rename from crow/crow_modules/__init__.py rename to src/crow_modules/__init__.py diff --git a/crow/crow_modules/distribution1D.i b/src/crow_modules/distribution1D.i similarity index 100% rename from crow/crow_modules/distribution1D.i rename to src/crow_modules/distribution1D.i diff --git a/crow/crow_modules/interpolationND.i b/src/crow_modules/interpolationND.i similarity index 100% rename from crow/crow_modules/interpolationND.i rename to src/crow_modules/interpolationND.i diff --git a/crow/crow_modules/randomENG.i b/src/crow_modules/randomENG.i similarity index 100% rename from crow/crow_modules/randomENG.i rename to src/crow_modules/randomENG.i diff --git a/crow/src/distributions/DistributionContainer.cxx b/src/distributions/DistributionContainer.cxx similarity index 100% rename from crow/src/distributions/DistributionContainer.cxx rename to src/distributions/DistributionContainer.cxx diff --git a/crow/src/distributions/distribution.cxx b/src/distributions/distribution.cxx similarity index 100% rename from crow/src/distributions/distribution.cxx rename to src/distributions/distribution.cxx diff --git a/crow/src/distributions/distributionFunctions.cxx b/src/distributions/distributionFunctions.cxx similarity index 100% rename from crow/src/distributions/distributionFunctions.cxx rename to src/distributions/distributionFunctions.cxx diff --git a/crow/src/distributions/distributionNDBase.cxx b/src/distributions/distributionNDBase.cxx similarity index 100% rename from crow/src/distributions/distributionNDBase.cxx rename to src/distributions/distributionNDBase.cxx diff --git a/crow/src/distributions/distributionNDCartesianSpline.cxx b/src/distributions/distributionNDCartesianSpline.cxx similarity index 100% rename from crow/src/distributions/distributionNDCartesianSpline.cxx rename to src/distributions/distributionNDCartesianSpline.cxx diff --git a/crow/src/distributions/distributionNDNormal.cxx b/src/distributions/distributionNDNormal.cxx similarity index 100% rename from crow/src/distributions/distributionNDNormal.cxx rename to src/distributions/distributionNDNormal.cxx diff --git a/crow/src/distributions/distribution_1D.cxx b/src/distributions/distribution_1D.cxx similarity index 100% rename from crow/src/distributions/distribution_1D.cxx rename to src/distributions/distribution_1D.cxx diff --git a/crow/src/distributions/randomClass.cxx b/src/distributions/randomClass.cxx similarity index 100% rename from crow/src/distributions/randomClass.cxx rename to src/distributions/randomClass.cxx diff --git a/crow/src/utilities/MDreader.cxx b/src/utilities/MDreader.cxx similarity index 100% rename from crow/src/utilities/MDreader.cxx rename to src/utilities/MDreader.cxx diff --git a/crow/src/utilities/ND_Interpolation_Functions.cxx b/src/utilities/ND_Interpolation_Functions.cxx similarity index 100% rename from crow/src/utilities/ND_Interpolation_Functions.cxx rename to src/utilities/ND_Interpolation_Functions.cxx diff --git a/crow/src/utilities/NDspline.cxx b/src/utilities/NDspline.cxx similarity index 100% rename from crow/src/utilities/NDspline.cxx rename to src/utilities/NDspline.cxx diff --git a/crow/src/utilities/inverseDistanceWeigthing.cxx b/src/utilities/inverseDistanceWeigthing.cxx similarity index 100% rename from crow/src/utilities/inverseDistanceWeigthing.cxx rename to src/utilities/inverseDistanceWeigthing.cxx diff --git a/crow/src/utilities/microSphere.cxx b/src/utilities/microSphere.cxx similarity index 100% rename from crow/src/utilities/microSphere.cxx rename to src/utilities/microSphere.cxx