Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
dorie
dorie
Commits
bf5a5603
Commit
bf5a5603
authored
Oct 20, 2016
by
Dion Haefner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
merge with old repo
parent
ff8f324c
Changes
168
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
168 changed files
with
38497 additions
and
3581 deletions
+38497
-3581
cmake/modules/CTestTestfile.cmake
cmake/modules/CTestTestfile.cmake
+0
-6
cmake/modules/DorieMacros.cmake
cmake/modules/DorieMacros.cmake
+7
-8
cmake/modules/FindHDF5.cmake
cmake/modules/FindHDF5.cmake
+379
-0
cmake/modules/InstallPythonPackage.cmake
cmake/modules/InstallPythonPackage.cmake
+126
-0
cmake/modules/Makefile
cmake/modules/Makefile
+0
-218
cmake/modules/cmake_install.cmake
cmake/modules/cmake_install.cmake
+0
-38
doc/CMakeLists.txt
doc/CMakeLists.txt
+9
-2
doc/conf.py.in
doc/conf.py.in
+8
-4
doc/default_files/2d_infiltr.bcdat
doc/default_files/2d_infiltr.bcdat
+6
-0
doc/default_files/3d_infiltr.bcdat
doc/default_files/3d_infiltr.bcdat
+14
-0
doc/default_files/CMakeLists.txt
doc/default_files/CMakeLists.txt
+28
-0
doc/default_files/field-parameters.xml
doc/default_files/field-parameters.xml
+281
-0
doc/default_files/parameters.css
doc/default_files/parameters.css
+0
-0
doc/default_files/parameters.xml
doc/default_files/parameters.xml
+29
-185
doc/doxygen-guide.rst
doc/doxygen-guide.rst
+113
-0
doc/doxygen-modules.rst
doc/doxygen-modules.rst
+0
-0
doc/doxygen-quick-all.rst
doc/doxygen-quick-all.rst
+8
-0
doc/doxygen/Doxylocal
doc/doxygen/Doxylocal
+1
-4
doc/examples/bc_files/2d_evap.bcdat
doc/examples/bc_files/2d_evap.bcdat
+6
-0
doc/examples/bc_files/2d_infiltr_point.bcdat
doc/examples/bc_files/2d_infiltr_point.bcdat
+6
-0
doc/examples/bc_files/3d_evap.bcdat
doc/examples/bc_files/3d_evap.bcdat
+14
-0
doc/examples/bc_files/3d_infiltr_point.bcdat
doc/examples/bc_files/3d_infiltr_point.bcdat
+14
-0
doc/examples/meshes/3dcube.msh
doc/examples/meshes/3dcube.msh
+308
-0
doc/examples/meshes/fraction.msh
doc/examples/meshes/fraction.msh
+642
-0
doc/examples/meshes/mesh.geo
doc/examples/meshes/mesh.geo
+0
-0
doc/examples/meshes/mesh.msh
doc/examples/meshes/mesh.msh
+338
-0
doc/figures/quickstart-bcfile-segm1.png
doc/figures/quickstart-bcfile-segm1.png
+0
-0
doc/index.rst
doc/index.rst
+94
-0
doc/logs-install.rst
doc/logs-install.rst
+10
-0
doc/other-cmake.rst
doc/other-cmake.rst
+0
-0
doc/parameters/CMakeLists.txt
doc/parameters/CMakeLists.txt
+0
-18
doc/python-dorie-parscraper.rst
doc/python-dorie-parscraper.rst
+146
-0
doc/python-dorie-testtools.rst
doc/python-dorie-testtools.rst
+8
-1
doc/python-dorie-utilities.rst
doc/python-dorie-utilities.rst
+106
-0
doc/quickstart-bcfile.rst
doc/quickstart-bcfile.rst
+68
-24
doc/quickstart-cookbook.rst
doc/quickstart-cookbook.rst
+105
-0
doc/quickstart-installation.rst
doc/quickstart-installation.rst
+208
-0
doc/quickstart-parameters.rst
doc/quickstart-parameters.rst
+53
-0
doc/sphinx/CMakeLists.txt
doc/sphinx/CMakeLists.txt
+0
-3
doc/sphinx/doxygen-course.rst
doc/sphinx/doxygen-course.rst
+0
-3
doc/sphinx/doxygen-quick-errors.rst
doc/sphinx/doxygen-quick-errors.rst
+0
-3
doc/sphinx/quickstart-cookbook.rst
doc/sphinx/quickstart-cookbook.rst
+0
-21
doc/sphinx/quickstart-parameters.rst
doc/sphinx/quickstart-parameters.rst
+0
-7
dune/CMakeLists.txt
dune/CMakeLists.txt
+1
-0
dune/dorie-rfg/CMakeLists.txt
dune/dorie-rfg/CMakeLists.txt
+2
-0
dune/dorie-rfg/FieldData.hh
dune/dorie-rfg/FieldData.hh
+17
-26
dune/dorie-rfg/H5Tools.hh
dune/dorie-rfg/H5Tools.hh
+288
-0
dune/dorie-rfg/Vector.hh
dune/dorie-rfg/Vector.hh
+0
-0
dune/dorie-rfg/datatypes.hh
dune/dorie-rfg/datatypes.hh
+0
-0
dune/dorie-rfg/dorie-rfg.cc
dune/dorie-rfg/dorie-rfg.cc
+101
-0
dune/dorie-rfg/random_field_generator.hh
dune/dorie-rfg/random_field_generator.hh
+3
-18
dune/dorie-rfg/tools.hh
dune/dorie-rfg/tools.hh
+11
-10
dune/dorie/CMakeLists.txt
dune/dorie/CMakeLists.txt
+2
-2
dune/dorie/dorie.cc
dune/dorie/dorie.cc
+264
-0
dune/dorie/dorie.hh
dune/dorie/dorie.hh
+65
-4
dune/dorie/dune_implicitonestep.hh
dune/dorie/dune_implicitonestep.hh
+0
-0
dune/dorie/operator_DG.hh
dune/dorie/operator_DG.hh
+743
-0
dune/dorie/operator_error_indicator.hh
dune/dorie/operator_error_indicator.hh
+17
-17
dune/dorie/param_base.hh
dune/dorie/param_base.hh
+259
-0
dune/dorie/param_factory.hh
dune/dorie/param_factory.hh
+51
-0
dune/dorie/param_van_genuchten.hh
dune/dorie/param_van_genuchten.hh
+92
-0
dune/dorie/richards_boundary.hh
dune/dorie/richards_boundary.hh
+4
-97
dune/dorie/richards_initial.hh
dune/dorie/richards_initial.hh
+18
-17
dune/dorie/richards_source.hh
dune/dorie/richards_source.hh
+98
-0
dune/dorie/solver.hh
dune/dorie/solver.hh
+30
-22
dune/dorie/solver_prep.hh
dune/dorie/solver_prep.hh
+21
-18
dune/dorie/util_adaptivity.hh
dune/dorie/util_adaptivity.hh
+167
-0
dune/dorie/util_boundary_condition.hh
dune/dorie/util_boundary_condition.hh
+70
-66
dune/dorie/util_controller.hh
dune/dorie/util_controller.hh
+6
-6
dune/dorie/util_grid_creator.hh
dune/dorie/util_grid_creator.hh
+92
-0
dune/dorie/util_h5tools.hh
dune/dorie/util_h5tools.hh
+287
-0
dune/dorie/util_interpolator.hh
dune/dorie/util_interpolator.hh
+524
-0
dune/dorie/util_typedefs.hh
dune/dorie/util_typedefs.hh
+14
-8
dune/dorie/util_vtk_adapters.hh
dune/dorie/util_vtk_adapters.hh
+358
-0
python/CMakeLists.txt
python/CMakeLists.txt
+3
-1
python/doc/requirements/production.txt
python/doc/requirements/production.txt
+0
-0
python/parfield/MANIFEST.in
python/parfield/MANIFEST.in
+1
-0
python/parfield/dorie/__init__.py
python/parfield/dorie/__init__.py
+1
-0
python/parfield/dorie/parfield/__init__.py
python/parfield/dorie/parfield/__init__.py
+0
-0
python/parfield/dorie/parfield/configparser.py
python/parfield/dorie/parfield/configparser.py
+16
-0
python/parfield/dorie/parfield/converter/__init__.py
python/parfield/dorie/parfield/converter/__init__.py
+5
-0
python/parfield/dorie/parfield/converter/base.py
python/parfield/dorie/parfield/converter/base.py
+124
-0
python/parfield/dorie/parfield/converter/csv.py
python/parfield/dorie/parfield/converter/csv.py
+50
-0
python/parfield/dorie/parfield/converter/fft_h5.py
python/parfield/dorie/parfield/converter/fft_h5.py
+48
-0
python/parfield/dorie/parfield/converter/h5.py
python/parfield/dorie/parfield/converter/h5.py
+59
-0
python/parfield/dorie/parfield/converter/image.py
python/parfield/dorie/parfield/converter/image.py
+55
-0
python/parfield/dorie/parfield/parameterization/__init__.py
python/parfield/dorie/parfield/parameterization/__init__.py
+4
-0
python/parfield/dorie/parfield/parameterization/parameterization.py
...field/dorie/parfield/parameterization/parameterization.py
+32
-0
python/parfield/dorie/parfield/parameterization/vangenuchten.py
.../parfield/dorie/parfield/parameterization/vangenuchten.py
+12
-0
python/parfield/dorie/parfield/pfgerror.py
python/parfield/dorie/parfield/pfgerror.py
+2
-0
python/parfield/requirements/production.txt
python/parfield/requirements/production.txt
+2
-0
python/parfield/setup.py
python/parfield/setup.py
+19
-0
python/parfield/wrapper/CMakeLists.txt
python/parfield/wrapper/CMakeLists.txt
+2
-0
python/parfield/wrapper/pf_from_file.py.in
python/parfield/wrapper/pf_from_file.py.in
+64
-0
python/parscraper/dorie/parscraper/match_parameters.py
python/parscraper/dorie/parscraper/match_parameters.py
+6
-6
python/parscraper/dorie/parscraper/parameter.py
python/parscraper/dorie/parscraper/parameter.py
+2
-0
python/parscraper/dorie/parscraper/readers/source.py
python/parscraper/dorie/parscraper/readers/source.py
+9
-1
python/parscraper/dorie/parscraper/readers/xml.py
python/parscraper/dorie/parscraper/readers/xml.py
+6
-5
python/parscraper/dorie/parscraper/wrapper/scrape_folder.py
python/parscraper/dorie/parscraper/wrapper/scrape_folder.py
+32
-6
python/parscraper/dorie/parscraper/writers/html.py
python/parscraper/dorie/parscraper/writers/html.py
+11
-10
python/parscraper/dorie/parscraper/writers/ini.py
python/parscraper/dorie/parscraper/writers/ini.py
+1
-3
python/parscraper/dorie/parscraper/writers/rst.py
python/parscraper/dorie/parscraper/writers/rst.py
+29
-21
python/parscraper/requirements/production.txt
python/parscraper/requirements/production.txt
+0
-0
python/parscraper/wrapper/scrape_folder.py
python/parscraper/wrapper/scrape_folder.py
+11
-8
python/testtools/dorie/testtools/dorie/__init__.py
python/testtools/dorie/testtools/dorie/__init__.py
+1
-1
python/testtools/dorie/testtools/dorie/convergence.py
python/testtools/dorie/testtools/dorie/convergence.py
+70
-0
python/testtools/dorie/testtools/dorie/muphi.py
python/testtools/dorie/testtools/dorie/muphi.py
+57
-0
python/testtools/dorie/testtools/dorie/ode.py
python/testtools/dorie/testtools/dorie/ode.py
+76
-0
python/testtools/dorie/testtools/dorie/reference.py
python/testtools/dorie/testtools/dorie/reference.py
+29
-0
python/testtools/dorie/testtools/dorie_pfg/__init__.py
python/testtools/dorie/testtools/dorie_pfg/__init__.py
+8
-0
python/testtools/dorie/testtools/dorie_pfg/correlation.py
python/testtools/dorie/testtools/dorie_pfg/correlation.py
+54
-0
python/testtools/dorie/testtools/evaluation/convergence.py
python/testtools/dorie/testtools/evaluation/convergence.py
+0
-6
python/testtools/dorie/testtools/evaluation/correlation.py
python/testtools/dorie/testtools/evaluation/correlation.py
+0
-62
python/testtools/dorie/testtools/evaluation/ode.py
python/testtools/dorie/testtools/evaluation/ode.py
+0
-36
python/testtools/dorie/testtools/utilities/decorators.py
python/testtools/dorie/testtools/utilities/decorators.py
+9
-7
python/testtools/dorie/testtools/utilities/muphi_reader.py
python/testtools/dorie/testtools/utilities/muphi_reader.py
+44
-0
python/testtools/dorie/testtools/utilities/richards_equation.py
.../testtools/dorie/testtools/utilities/richards_equation.py
+22
-23
python/testtools/dorie/testtools/utilities/statistics.py
python/testtools/dorie/testtools/utilities/statistics.py
+16
-5
python/testtools/dorie/testtools/wrapper/test_dorie.py
python/testtools/dorie/testtools/wrapper/test_dorie.py
+1
-1
python/testtools/dorie/testtools/wrapper/test_dorie_pfg.py
python/testtools/dorie/testtools/wrapper/test_dorie_pfg.py
+55
-0
python/testtools/requirements/production.txt
python/testtools/requirements/production.txt
+1
-1
python/testtools/setup.py
python/testtools/setup.py
+3
-3
python/testtools/wrapper/test_dorie_pfg.py
python/testtools/wrapper/test_dorie_pfg.py
+14
-0
python/utilities/dorie/utilities/__init__.py
python/utilities/dorie/utilities/__init__.py
+1
-1
python/utilities/dorie/utilities/check_path.py
python/utilities/dorie/utilities/check_path.py
+1
-1
python/utilities/dorie/utilities/fuzzy_compare.py
python/utilities/dorie/utilities/fuzzy_compare.py
+0
-16
python/utilities/dorie/utilities/fuzzy_compare_grid.py
python/utilities/dorie/utilities/fuzzy_compare_grid.py
+65
-0
python/utilities/dorie/utilities/grid.py
python/utilities/dorie/utilities/grid.py
+112
-43
python/utilities/dorie/utilities/text_to_bool.py
python/utilities/dorie/utilities/text_to_bool.py
+8
-0
python/utilities/dorie/utilities/vtk_plotter.py
python/utilities/dorie/utilities/vtk_plotter.py
+0
-73
python/utilities/dorie/utilities/vtk_reader.py
python/utilities/dorie/utilities/vtk_reader.py
+0
-135
python/utilities/dorie/utilities/vtktools/__init__.py
python/utilities/dorie/utilities/vtktools/__init__.py
+8
-0
python/utilities/dorie/utilities/vtktools/pvd_reader.py
python/utilities/dorie/utilities/vtktools/pvd_reader.py
+85
-0
python/utilities/dorie/utilities/vtktools/vtk_grabber.py
python/utilities/dorie/utilities/vtktools/vtk_grabber.py
+0
-0
python/utilities/dorie/utilities/vtktools/vtkfile.py
python/utilities/dorie/utilities/vtktools/vtkfile.py
+244
-0
python/utilities/requirements/production.txt
python/utilities/requirements/production.txt
+1
-1
python/utilities/wrapper/plot_vtk.py
python/utilities/wrapper/plot_vtk.py
+27
-8
src/CMakeLists.txt
src/CMakeLists.txt
+0
-2
src/dorie.cc
src/dorie.cc
+0
-223
src/dorie.hh
src/dorie.hh
+0
-66
src/operator_DG.hh
src/operator_DG.hh
+0
-679
src/richards_parameterization.hh
src/richards_parameterization.hh
+0
-429
src/util_adaptivity.hh
src/util_adaptivity.hh
+0
-166
src/util_grid_creator.hh
src/util_grid_creator.hh
+0
-306
src/util_vtk_adapters.hh
src/util_vtk_adapters.hh
+0
-335
testing/CMakeLists.txt
testing/CMakeLists.txt
+13
-0
testing/bcs/bcFile2d.dat
testing/bcs/bcFile2d.dat
+2
-2
testing/bcs/muphi2d.dat
testing/bcs/muphi2d.dat
+3
-7
testing/convergence.mini
testing/convergence.mini
+0
-20
testing/convergence.mini.in
testing/convergence.mini.in
+15
-6
testing/correlation.mini.in
testing/correlation.mini.in
+23
-0
testing/muphi.mini.in
testing/muphi.mini.in
+56
-0
testing/ode.mini.in
testing/ode.mini.in
+30
-0
testing/parfield.mini.in
testing/parfield.mini.in
+2
-0
testing/parfields/fftfield-miller.h5
testing/parfields/fftfield-miller.h5
+0
-0
testing/parfields/fftfield.h5
testing/parfields/fftfield.h5
+0
-0
testing/reference.mini.in
testing/reference.mini.in
+32
-0
testing/reference/muphi.bin
testing/reference/muphi.bin
+0
-0
testing/reference/reference_0000.vtu
testing/reference/reference_0000.vtu
+247
-0
testing/reference/reference_0001.vtu
testing/reference/reference_0001.vtu
+247
-0
testing/reference/reference_0002.vtu
testing/reference/reference_0002.vtu
+580
-0
testing/reference/reference_0003.vtu
testing/reference/reference_0003.vtu
+580
-0
testing/reference/reference_0006.vtu
testing/reference/reference_0006.vtu
+1785
-0
testing/reference/reference_0007.vtu
testing/reference/reference_0007.vtu
+1785
-0
testing/reference/reference_0008.vtu
testing/reference/reference_0008.vtu
+5781
-0
testing/reference/reference_0009.vtu
testing/reference/reference_0009.vtu
+8228
-0
testing/reference/reference_0010.vtu
testing/reference/reference_0010.vtu
+2854
-0
testing/reference/reference_0011.vtu
testing/reference/reference_0011.vtu
+7876
-0
No files found.
cmake/modules/CTestTestfile.cmake
deleted
100644 → 0
View file @
ff8f324c
# CMake generated Testfile for
# Source directory: /home/dion/codes/dorie/dorie/cmake/modules
# Build directory: /home/dion/codes/dorie/dorie/cmake/modules
#
# This file includes the relevant testing commands required for
# testing this directory and lists subdirectories to be tested as well.
cmake/modules/DorieMacros.cmake
View file @
bf5a5603
# File for module specific CMake tests.
# find all required packages
FIND_PACKAGE
(
HDF5 REQUIRED COMPONENTS C
)
FIND_PACKAGE
(
FFTW REQUIRED
)
FIND_PACKAGE
(
SuperLU REQUIRED
)
FIND_PACKAGE
(
MPI REQUIRED
)
FIND_PACKAGE
(
UG REQUIRED
)
FIND_PACKAGE
(
METIS
)
FIND_PACKAGE
(
ParMETIS
)
FIND_PACKAGE
(
HDF5 REQUIRED
)
FIND_PACKAGE
(
FFTW REQUIRED
)
FIND_PACKAGE
(
SuperLU REQUIRED
)
FIND_PACKAGE
(
MPI REQUIRED
)
FIND_PACKAGE
(
METIS REQUIRED
)
FIND_PACKAGE
(
ParMETIS REQUIRED
)
FIND_PACKAGE
(
UG REQUIRED
)
include_directories
(
${
FFTW_INCLUDES
}
)
include_directories
(
${
HDF5_INCLUDE_DIRS
}
)
...
...
cmake/modules/FindHDF5.cmake
0 → 100644
View file @
bf5a5603
#.rst:
# FindHDF5
# --------
#
# Find HDF5, a library for reading and writing self describing array data.
#
#
#
# This module invokes the HDF5 wrapper compiler that should be installed
# alongside HDF5. Depending upon the HDF5 Configuration, the wrapper
# compiler is called either h5cc or h5pcc. If this succeeds, the module
# will then call the compiler with the -show argument to see what flags
# are used when compiling an HDF5 client application.
#
# The module will optionally accept the COMPONENTS argument. If no
# COMPONENTS are specified, then the find module will default to finding
# only the HDF5 C library. If one or more COMPONENTS are specified, the
# module will attempt to find the language bindings for the specified
# components. The only valid components are C, CXX, Fortran, HL, and
# Fortran_HL. If the COMPONENTS argument is not given, the module will
# attempt to find only the C bindings.
#
# On UNIX systems, this module will read the variable
# HDF5_USE_STATIC_LIBRARIES to determine whether or not to prefer a
# static link to a dynamic link for HDF5 and all of it's dependencies.
# To use this feature, make sure that the HDF5_USE_STATIC_LIBRARIES
# variable is set before the call to find_package.
#
# To provide the module with a hint about where to find your HDF5
# installation, you can set the environment variable HDF5_ROOT. The
# Find module will then look in this path when searching for HDF5
# executables, paths, and libraries.
#
# In addition to finding the includes and libraries required to compile
# an HDF5 client application, this module also makes an effort to find
# tools that come with the HDF5 distribution that may be useful for
# regression testing.
#
# This module will define the following variables:
#
# ::
#
# HDF5_INCLUDE_DIRS - Location of the hdf5 includes
# HDF5_INCLUDE_DIR - Location of the hdf5 includes (deprecated)
# HDF5_DEFINITIONS - Required compiler definitions for HDF5
# HDF5_C_LIBRARIES - Required libraries for the HDF5 C bindings.
# HDF5_CXX_LIBRARIES - Required libraries for the HDF5 C++ bindings
# HDF5_Fortran_LIBRARIES - Required libraries for the HDF5 Fortran bindings
# HDF5_HL_LIBRARIES - Required libraries for the HDF5 high level API
# HDF5_Fortran_HL_LIBRARIES - Required libraries for the high level Fortran
# bindings.
# HDF5_LIBRARIES - Required libraries for all requested bindings
# HDF5_FOUND - true if HDF5 was found on the system
# HDF5_VERSION - HDF5 version in format Major.Minor.Release
# HDF5_LIBRARY_DIRS - the full set of library directories
# HDF5_IS_PARALLEL - Whether or not HDF5 was found with parallel IO support
# HDF5_C_COMPILER_EXECUTABLE - the path to the HDF5 C wrapper compiler
# HDF5_CXX_COMPILER_EXECUTABLE - the path to the HDF5 C++ wrapper compiler
# HDF5_Fortran_COMPILER_EXECUTABLE - the path to the HDF5 Fortran wrapper compiler
# HDF5_DIFF_EXECUTABLE - the path to the HDF5 dataset comparison tool
#=============================================================================
# Copyright 2015 Axel Huebl, Helmholtz-Zentrum Dresden - Rossendorf
# Copyright 2009 Kitware, Inc.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
# This module is maintained by Will Dicharry <wdicharry@stellarscience.com>.
include
(
${
CMAKE_ROOT
}
/Modules/SelectLibraryConfigurations.cmake
)
include
(
${
CMAKE_ROOT
}
/Modules/FindPackageHandleStandardArgs.cmake
)
# List of the valid HDF5 components
set
(
HDF5_VALID_COMPONENTS
C
CXX
Fortran
HL
Fortran_HL
)
# Validate the list of find components.
if
(
NOT HDF5_FIND_COMPONENTS
)
set
(
HDF5_LANGUAGE_BINDINGS
"C"
)
else
()
# add the extra specified components, ensuring that they are valid.
foreach
(
component
${
HDF5_FIND_COMPONENTS
}
)
list
(
FIND HDF5_VALID_COMPONENTS
${
component
}
component_location
)
if
(
${
component_location
}
EQUAL -1
)
message
(
FATAL_ERROR
"
\"
${
component
}
\"
is not a valid HDF5 component."
)
else
()
list
(
APPEND HDF5_LANGUAGE_BINDINGS
${
component
}
)
endif
()
endforeach
()
endif
()
# try to find the HDF5 wrapper compilers
find_program
(
HDF5_C_COMPILER_EXECUTABLE
NAMES hp5cc
#h5cc
HINTS ENV HDF5_ROOT
PATH_SUFFIXES bin Bin
DOC
"HDF5 Wrapper compiler. Used only to detect HDF5 compile flags."
)
mark_as_advanced
(
HDF5_C_COMPILER_EXECUTABLE
)
find_program
(
HDF5_CXX_COMPILER_EXECUTABLE
NAMES h5c++ h5pc++
HINTS ENV HDF5_ROOT
PATH_SUFFIXES bin Bin
DOC
"HDF5 C++ Wrapper compiler. Used only to detect HDF5 compile flags."
)
mark_as_advanced
(
HDF5_CXX_COMPILER_EXECUTABLE
)
find_program
(
HDF5_Fortran_COMPILER_EXECUTABLE
NAMES h5fc h5pfc
HINTS ENV HDF5_ROOT
PATH_SUFFIXES bin Bin
DOC
"HDF5 Fortran Wrapper compiler. Used only to detect HDF5 compile flags."
)
mark_as_advanced
(
HDF5_Fortran_COMPILER_EXECUTABLE
)
find_program
(
HDF5_DIFF_EXECUTABLE
NAMES h5diff
HINTS ENV HDF5_ROOT
PATH_SUFFIXES bin Bin
DOC
"HDF5 file differencing tool."
)
mark_as_advanced
(
HDF5_DIFF_EXECUTABLE
)
# Invoke the HDF5 wrapper compiler. The compiler return value is stored to the
# return_value argument, the text output is stored to the output variable.
macro
(
_HDF5_invoke_compiler language output return_value
)
if
(
HDF5_
${
language
}
_COMPILER_EXECUTABLE
)
exec_program
(
${
HDF5_
${
language
}
_COMPILER_EXECUTABLE
}
ARGS -show
OUTPUT_VARIABLE
${
output
}
RETURN_VALUE
${
return_value
}
)
if
(
${${
return_value
}}
EQUAL 0
)
# do nothing
else
()
message
(
STATUS
"Unable to determine HDF5
${
language
}
flags from HDF5 wrapper."
)
endif
()
endif
()
endmacro
()
# Parse a compile line for definitions, includes, library paths, and libraries.
macro
(
_HDF5_parse_compile_line
compile_line_var
include_paths
definitions
library_paths
libraries
)
# Match the include paths
string
(
REGEX MATCHALL
"-I([^
\"
]+)"
include_path_flags
"
${${
compile_line_var
}}
"
)
foreach
(
IPATH
${
include_path_flags
}
)
string
(
REGEX REPLACE
"^-I"
""
IPATH
${
IPATH
}
)
string
(
REPLACE
"//"
"/"
IPATH
${
IPATH
}
)
list
(
APPEND
${
include_paths
}
${
IPATH
}
)
endforeach
()
# Match the definitions
string
(
REGEX MATCHALL
"-D[^ ]*"
definition_flags
"
${${
compile_line_var
}}
"
)
foreach
(
DEF
${
definition_flags
}
)
list
(
APPEND
${
definitions
}
${
DEF
}
)
endforeach
()
# Match the library paths
string
(
REGEX MATCHALL
"-L([^
\"
]+|
\"
[^
\"
]+
\"
)"
library_path_flags
"
${${
compile_line_var
}}
"
)
foreach
(
LPATH
${
library_path_flags
}
)
string
(
REGEX REPLACE
"^-L"
""
LPATH
${
LPATH
}
)
string
(
REPLACE
"//"
"/"
LPATH
${
LPATH
}
)
list
(
APPEND
${
library_paths
}
${
LPATH
}
)
endforeach
()
# now search for the library names specified in the compile line (match -l...)
# match only -l's preceded by a space or comma
# this is to exclude directory names like xxx-linux/
string
(
REGEX MATCHALL
"[, ]-l([^
\"
, ]+)"
library_name_flags
"
${${
compile_line_var
}}
"
)
# strip the -l from all of the library flags and add to the search list
foreach
(
LIB
${
library_name_flags
}
)
string
(
REGEX REPLACE
"^[, ]-l"
""
LIB
${
LIB
}
)
list
(
APPEND
${
libraries
}
${
LIB
}
)
endforeach
()
endmacro
()
# Try to find HDF5 using an installed hdf5-config.cmake
if
(
NOT HDF5_FOUND
)
find_package
(
HDF5 QUIET NO_MODULE
)
if
(
HDF5_FOUND
)
set
(
HDF5_INCLUDE_DIRS
${
HDF5_INCLUDE_DIR
}
)
set
(
HDF5_LIBRARIES
)
set
(
HDF5_C_TARGET hdf5
)
set
(
HDF5_CXX_TARGET hdf5_cpp
)
set
(
HDF5_HL_TARGET hdf5_hl
)
set
(
HDF5_Fortran_TARGET hdf5_fortran
)
set
(
HDF5_Fortran_HL_TARGET hdf5_hl_fortran
)
foreach
(
_component
${
HDF5_LANGUAGE_BINDINGS
}
)
list
(
FIND HDF5_VALID_COMPONENTS
${
_component
}
_component_location
)
get_target_property
(
_comp_location
${
HDF5_
${
_component
}
_TARGET
}
LOCATION
)
if
(
_comp_location
)
set
(
HDF5_
${
_component
}
_LIBRARY
${
_comp_location
}
CACHE PATH
"HDF5
${
_component
}
library"
)
mark_as_advanced
(
HDF5_
${
_component
}
_LIBRARY
)
list
(
APPEND HDF5_LIBRARIES
${
HDF5_
${
_component
}
_LIBRARY
}
)
endif
()
endforeach
()
endif
()
endif
()
if
(
NOT HDF5_FOUND
)
_HDF5_invoke_compiler
(
C HDF5_C_COMPILE_LINE HDF5_C_RETURN_VALUE
)
_HDF5_invoke_compiler
(
CXX HDF5_CXX_COMPILE_LINE HDF5_CXX_RETURN_VALUE
)
_HDF5_invoke_compiler
(
Fortran HDF5_Fortran_COMPILE_LINE HDF5_Fortran_RETURN_VALUE
)
# seed the initial lists of libraries to find with items we know we need
set
(
HDF5_C_LIBRARY_NAMES_INIT hdf5
)
set
(
HDF5_HL_LIBRARY_NAMES_INIT hdf5_hl
${
HDF5_C_LIBRARY_NAMES_INIT
}
)
set
(
HDF5_CXX_LIBRARY_NAMES_INIT hdf5_cpp
${
HDF5_C_LIBRARY_NAMES_INIT
}
)
set
(
HDF5_Fortran_LIBRARY_NAMES_INIT hdf5_fortran
${
HDF5_C_LIBRARY_NAMES_INIT
}
)
set
(
HDF5_Fortran_HL_LIBRARY_NAMES_INIT hdf5hl_fortran
${
HDF5_Fortran_LIBRARY_NAMES_INIT
}
)
foreach
(
LANGUAGE
${
HDF5_LANGUAGE_BINDINGS
}
)
if
(
HDF5_
${
LANGUAGE
}
_COMPILE_LINE
)
_HDF5_parse_compile_line
(
HDF5_
${
LANGUAGE
}
_COMPILE_LINE
HDF5_
${
LANGUAGE
}
_INCLUDE_FLAGS
HDF5_
${
LANGUAGE
}
_DEFINITIONS
HDF5_
${
LANGUAGE
}
_LIBRARY_DIRS
HDF5_
${
LANGUAGE
}
_LIBRARY_NAMES
)
# take a guess that the includes may be in the 'include' sibling
# directory of a library directory.
foreach
(
dir
${
HDF5_
${
LANGUAGE
}
_LIBRARY_DIRS
}
)
list
(
APPEND HDF5_
${
LANGUAGE
}
_INCLUDE_FLAGS
${
dir
}
/../include
)
endforeach
()
endif
()
# set the definitions for the language bindings.
list
(
APPEND HDF5_DEFINITIONS
${
HDF5_
${
LANGUAGE
}
_DEFINITIONS
}
)
# find the HDF5 include directories
if
(
${
LANGUAGE
}
MATCHES
"Fortran"
)
set
(
HDF5_INCLUDE_FILENAME hdf5.mod
)
else
()
set
(
HDF5_INCLUDE_FILENAME hdf5.h
)
endif
()
find_path
(
HDF5_
${
LANGUAGE
}
_INCLUDE_DIR
${
HDF5_INCLUDE_FILENAME
}
HINTS
${
HDF5_
${
LANGUAGE
}
_INCLUDE_FLAGS
}
ENV
HDF5_ROOT
PATHS
$ENV{HOME}/.local/include
PATH_SUFFIXES
include
Include
)
mark_as_advanced
(
HDF5_
${
LANGUAGE
}
_INCLUDE_DIR
)
list
(
APPEND HDF5_INCLUDE_DIRS
${
HDF5_
${
LANGUAGE
}
_INCLUDE_DIR
}
)
set
(
HDF5_
${
LANGUAGE
}
_LIBRARY_NAMES
${
HDF5_
${
LANGUAGE
}
_LIBRARY_NAMES_INIT
}
${
HDF5_
${
LANGUAGE
}
_LIBRARY_NAMES
}
)
# find the HDF5 libraries
foreach
(
LIB
${
HDF5_
${
LANGUAGE
}
_LIBRARY_NAMES
}
)
if
(
UNIX AND HDF5_USE_STATIC_LIBRARIES
)
# According to bug 1643 on the CMake bug tracker, this is the
# preferred method for searching for a static library.
# See http://www.cmake.org/Bug/view.php?id=1643. We search
# first for the full static library name, but fall back to a
# generic search on the name if the static search fails.
set
(
THIS_LIBRARY_SEARCH_DEBUG lib
${
LIB
}
d.a
${
LIB
}
d
)
set
(
THIS_LIBRARY_SEARCH_RELEASE lib
${
LIB
}
.a
${
LIB
}
)
else
()
set
(
THIS_LIBRARY_SEARCH_DEBUG
${
LIB
}
d
)
set
(
THIS_LIBRARY_SEARCH_RELEASE
${
LIB
}
)
endif
()
find_library
(
HDF5_
${
LIB
}
_LIBRARY_DEBUG
NAMES
${
THIS_LIBRARY_SEARCH_DEBUG
}
HINTS
${
HDF5_
${
LANGUAGE
}
_LIBRARY_DIRS
}
ENV HDF5_ROOT
PATH_SUFFIXES lib Lib
)
find_library
(
HDF5_
${
LIB
}
_LIBRARY_RELEASE
NAMES
${
THIS_LIBRARY_SEARCH_RELEASE
}
HINTS
${
HDF5_
${
LANGUAGE
}
_LIBRARY_DIRS
}
ENV HDF5_ROOT
PATH_SUFFIXES lib Lib
)
select_library_configurations
(
HDF5_
${
LIB
}
)
list
(
APPEND HDF5_
${
LANGUAGE
}
_LIBRARIES
${
HDF5_
${
LIB
}
_LIBRARY
}
)
endforeach
()
list
(
APPEND HDF5_LIBRARY_DIRS
${
HDF5_
${
LANGUAGE
}
_LIBRARY_DIRS
}
)
# Append the libraries for this language binding to the list of all
# required libraries.
list
(
APPEND HDF5_LIBRARIES
${
HDF5_
${
LANGUAGE
}
_LIBRARIES
}
)
endforeach
()
# We may have picked up some duplicates in various lists during the above
# process for the language bindings (both the C and C++ bindings depend on
# libz for example). Remove the duplicates. It appears that the default
# CMake behavior is to remove duplicates from the end of a list. However,
# for link lines, this is incorrect since unresolved symbols are searched
# for down the link line. Therefore, we reverse the list, remove the
# duplicates, and then reverse it again to get the duplicates removed from
# the beginning.
macro
(
_remove_duplicates_from_beginning _list_name
)
list
(
REVERSE
${
_list_name
}
)
list
(
REMOVE_DUPLICATES
${
_list_name
}
)
list
(
REVERSE
${
_list_name
}
)
endmacro
()
if
(
HDF5_INCLUDE_DIRS
)
_remove_duplicates_from_beginning
(
HDF5_INCLUDE_DIRS
)
endif
()
if
(
HDF5_LIBRARY_DIRS
)
_remove_duplicates_from_beginning
(
HDF5_LIBRARY_DIRS
)
endif
()
# If the HDF5 include directory was found, open H5pubconf.h to determine if
# HDF5 was compiled with parallel IO support
set
(
HDF5_IS_PARALLEL FALSE
)
set
(
HDF5_VERSION
""
)
foreach
(
_dir IN LISTS HDF5_INCLUDE_DIRS
)
foreach
(
_hdr
"
${
_dir
}
/H5pubconf.h"
"
${
_dir
}
/H5pubconf-64.h"
"
${
_dir
}
/H5pubconf-32.h"
)
if
(
EXISTS
"
${
_hdr
}
"
)
file
(
STRINGS
"
${
_hdr
}
"
HDF5_HAVE_PARALLEL_DEFINE
REGEX
"HAVE_PARALLEL 1"
)
if
(
HDF5_HAVE_PARALLEL_DEFINE
)
set
(
HDF5_IS_PARALLEL TRUE
)
endif
()
unset
(
HDF5_HAVE_PARALLEL_DEFINE
)
file
(
STRINGS
"
${
_hdr
}
"
HDF5_VERSION_DEFINE
REGEX
"^[
\t
]*#[
\t
]*define[
\t
]+H5_VERSION[
\t
]+"
)
if
(
"
${
HDF5_VERSION_DEFINE
}
"
MATCHES
"H5_VERSION[
\t
]+
\"
([0-9]+
\\
.[0-9]+
\\
.[0-9]+).*
\"
"
)
set
(
HDF5_VERSION
"
${
CMAKE_MATCH_1
}
"
)
endif
()
unset
(
HDF5_VERSION_DEFINE
)
endif
()
endforeach
()
endforeach
()
set
(
HDF5_IS_PARALLEL
${
HDF5_IS_PARALLEL
}
CACHE BOOL
"HDF5 library compiled with parallel IO support"
)
mark_as_advanced
(
HDF5_IS_PARALLEL
)
# For backwards compatibility we set HDF5_INCLUDE_DIR to the value of
# HDF5_INCLUDE_DIRS
if
(
HDF5_INCLUDE_DIRS
)
set
(
HDF5_INCLUDE_DIR
"
${
HDF5_INCLUDE_DIRS
}
"
)
endif
()
endif
()
find_package_handle_standard_args
(
HDF5
REQUIRED_VARS HDF5_LIBRARIES HDF5_INCLUDE_DIRS
VERSION_VAR HDF5_VERSION
)
cmake/modules/InstallPythonPackage.cmake
0 → 100644
View file @
bf5a5603
# This cmake module provides macros that install python packages into the virtualenv
# that is shared by all dune modules that depend on dune-python.
#
# .. cmake_function:: dune_install_python_package
#
# .. cmake_param:: PATH
# :required:
# :single:
#
# Relative path to the given python package source code.
#
# .. cmake_param:: MAJOR_VERSION
# :single:
#
# Set to "2" or "3" if your python package only works with
# python2 or python3. This will restrict the installation process to that
# python version.
#
# .. cmake_param:: NO_PIP
# :option:
#
# Instead of :code:`pip -e`, `python setup.py develop` will be used as
# the installation command.
#
# .. cmake_param:: NO_EDIT
# :option:
#
# Will drop :code:`pip`s :code:`-e` option (or switch :code:`develop` to :code:`install`).
# Only use this option if your package is incompatible with :code:`-e`.
#
# Installs the python package located at path into the virtualenv used by dune-python
# The package at the given location is expected to be a pip installable package.
# Also marks the given python package for global installation during :code:`make install`.
# By default, the python package will then be installed into the system-wide site-packages
# location. If you do not want to install it there, or you do not have permission to,
# you may optionally set :ref:`DUNE_PYTHON_INSTALL_USER` to a username. The
# packages will then be installed in the home directory of that user.
# This is done through pips :code:`--user` option. Installation in arbitrary locations is not
# supported to minimize :code:`PYTHONPATH` issues.
#
# .. cmake_variable:: DUNE_PYTHON_INSTALL_USER
#
# dune-python only supports two ways of globally installing python packages during
# :code:`make install`:
#
# * Into standard system paths (default)
# * Into the standard python path of a users home directory (through :code:`pip --user`)
#
# Set this variable to a username to use the latter.
#
include
(
CheckPythonPackage
)
function
(
dorie_install_python_package
)
# Parse Arguments
set
(
OPTION NO_PIP NO_EDIT QUIET
)
set
(
SINGLE PATH MAJOR_VERSION
)
set
(
MULTI
)
include
(
CMakeParseArguments
)
cmake_parse_arguments
(
PYINST
"
${
OPTION
}
"
"
${
SINGLE
}
"
"
${
MULTI
}
"
${
ARGN
}
)
if
(
PYINST_UNPARSED_ARGUMENTS
)
message
(
WARNING
"Unparsed arguments in dune_install_python_package: This often indicates typos!"
)
endif
()
# apply defaults
if
(
NOT PYINST_MAJOR_VERSION
)
set
(
PYINST_MAJOR_VERSION 2 3
)
endif
()
# check for available pip packages
check_python_package
(
PACKAGE pip
INTERPRETER
${
PYTHON2_EXECUTABLE
}
RESULT PIP2_FOUND
)
check_python_package
(
PACKAGE pip
INTERPRETER
${
PYTHON3_EXECUTABLE
}
RESULT PIP3_FOUND
)
# Construct the installation command strings from the given options
if
(
PYINST_NO_PIP
)
if
(
PYINST_NO_EDIT
)
set
(
INST_COMMAND install
)
else
()
set
(
INST_COMMAND develop
)
endif
()
set
(
VENV_INSTALL_COMMAND python setup.py
${
INST_COMMAND
}
)
else
()
set
(
EDIT_OPTION
)
if
(
NOT PYINST_NO_EDIT
)
set
(
EDIT_OPTION -e
)
endif
()
if
(
PYINST_QUIET
)
set
(
EDIT_OPTION
"-q
${
EDIT_OPTION
}
"
)
endif
()
set
(
VENV_INSTALL_COMMAND python -m pip install
${
EDIT_OPTION
}
.
)
endif
()
# Construct the interpreter options for global installation
if
(
PYINST_NO_PIP
)
set
(
SYSTEM_INSTALL_OPTIONS setup.py install
)
if
(
DUNE_PYTHON_INSTALL_USER
)
message
(
"Error message: Incompatible options - NO_PIP and DUNE_PYTHON_INSTALL_USER"
)
endif
()
else
()
set
(
USER_STRING
""
)
if
(
DUNE_PYTHON_INSTALL_USER
)
set
(
USER_STRING --user
${
DUNE_PYTHON_INSTALL_USER
}
)
endif
()
set
(
SYSTEM_INSTALL_OPTIONS -m pip install
${
USER_STRING
}
.
)
endif
()
# iterate over the given interpreters
foreach
(
version
${
PYINST_MAJOR_VERSION
}
)
# install the package into the virtual env
execute_process
(
COMMAND
${
CMAKE_BINARY_DIR
}
/dune-env-
${
version
}
${
VENV_INSTALL_COMMAND
}
WORKING_DIRECTORY
${
CMAKE_CURRENT_SOURCE_DIR
}
/
${
PYINST_PATH
}
)
# define a rule on how to install the package during make install
if
(
PIP
${
version
}
_FOUND
)
install
(
CODE
"execute_process(COMMAND
${
PYTHON
${
version
}
_EXECUTABLE
}
${
SYSTEM_INSTALL_OPTIONS
}
WORKING_DIRECTORY
${
CMAKE_CURRENT_SOURCE_DIR
}
/
${
PYINST_PATH
}
)
"
)
else
()
install
(
CODE
"message(FATAL_ERROR
\"
You need the python
${
version
}
package pip installed on the host system to install a module that contains python code
\"
)"
)
endif
()
endforeach
()
endfunction
()
cmake/modules/Makefile
deleted
100644 → 0
View file @
ff8f324c
# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.5
# Default target executed when no arguments are given to make.
default_target
:
all
.PHONY
:
default_target
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
.NOTPARALLEL
:
#=============================================================================
# Special targets provided by cmake.
# Disable implicit rules so canonical targets will work.