Skip to content

Commit

Permalink
Merge branch 'release/0.22.0'
Browse files Browse the repository at this point in the history
* release/0.22.0: (161 commits)
  Update Changelog
  Version 0.22.0
  Add a jacobian method to atlas::Projection object
  travis: Use nproc for faster compilation
  travis: Update CMake to 3.18.4
  travis: Update OSX version
  Fix tools/install-pgi.sh download link
  Grid convenience constructors taking Projection
  Formatting
  Simplify version C++ file
  Gmsh control output of LAND/WATER elements
  Move Topology to util namespace, created BitflagsView
  atlas-grids outputs footprint of grid
  Gmsh output of idx_t coordinate fields
  Support mesh::PartitionPolygon::outputPythonScript to output polygon in "xy" or "lonlat" coordinates (default="xy")
  Tool atlas-meshgen now uses by default the Grid's recommended MeshGenerator and Partitioner
  Added constructor `Mesh::Mesh( const Grid& )`
  Added new function `MeshGenerator::generate(Mesh,Partitioner)`
  Added function `string MeshGenerator::type()`
  Polygon can return lonlat points in addition to xy points
  ...
  • Loading branch information
wdeconinck committed Oct 14, 2020
2 parents b7728bb + 5465839 commit a700302
Show file tree
Hide file tree
Showing 225 changed files with 6,458 additions and 2,272 deletions.
48 changes: 28 additions & 20 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,6 @@
sudo: false

language: cpp


# Workaround for https://github.com/travis-ci/travis-ci/issues/4681
matrix:
- TRAVIS_EMPTY_JOB_WORKAROUND=true


cache:
directories:
- ${HOME}/deps/cmake
Expand All @@ -17,11 +10,7 @@ cache:
- ${HOME}/deps/fckit


matrix:
exclude:

- env: TRAVIS_EMPTY_JOB_WORKAROUND

jobs:
include:

- os: linux
Expand Down Expand Up @@ -68,14 +57,14 @@ matrix:
- MPI=openmpi
- ATLAS_CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=DEBUG"
- ATLAS_CTEST_OPTIONS="-E atlas_test_stencil_parallel_mpi16"
osx_image: xcode10.1
osx_image: xcode12

- os: osx
env:
- CACHE_NAME=osx-clang-mpich
- CXX_COMPILER='clang++' C_COMPILER='clang' Fortran_COMPILER='gfortran'
- MPI=mpich
osx_image: xcode9
osx_image: xcode12

- os: linux
compiler: gcc
Expand All @@ -84,8 +73,8 @@ matrix:
- CXX_COMPILER='pgc++' C_COMPILER='pgcc' Fortran_COMPILER='pgfortran'
- MPI='openmpi'
- PGI_VERSION="CommunityEdition"
- ECKIT_CMAKE_OPTIONS="-DENABLE_ECKIT-395=OFF -DRT_LIB=/usr/lib/x86_64-linux-gnu/librt.so -DCURSES_LIBRARY=/usr/lib/x86_64-linux-gnu/libcurses.so"
- ATLAS_CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=DEBUG"
- ECKIT_CMAKE_OPTIONS="-DENABLE_ECKIT-395=OFF -DRT_LIB=/usr/lib/x86_64-linux-gnu/librt.so -DCURSES_LIBRARY=/usr/lib/x86_64-linux-gnu/libcurses.so -DMPI_ARGS=--oversubscribe"
- ATLAS_CMAKE_OPTIONS="-DCMAKE_BUILD_TYPE=DEBUG -DMPI_ARGS=--oversubscribe"

before_install:

Expand Down Expand Up @@ -129,7 +118,7 @@ install:
- |
### Install PGI community edition
if [[ "${PGI_VERSION:-notset}" == "CommunityEdition" ]]; then
install-pgi.sh --mpi --prefix ${DEPS_DIR}/pgi
install-pgi.sh --prefix ${DEPS_DIR}/pgi
source ${DEPS_DIR}/pgi/env.sh
fi
Expand All @@ -149,11 +138,30 @@ install:
- |
### Install CMake
if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
CMAKE_VERSION=3.18.4
if [[ -z "$(ls -A ${DEPS_DIR}/cmake)" ]]; then
CMAKE_URL="https://cmake.org/files/v3.15.2/cmake-3.15.2-Linux-x86_64.tar.gz"
mkdir -p ${DEPS_DIR}/cmake && travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C ${DEPS_DIR}/cmake
if [[ "${TRAVIS_ARCH}" == "amd64" ]]; then
CMAKE_URL="https://cmake.org/files/v${CMAKE_VERSION%.*}/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz"
mkdir -p ${DEPS_DIR}/cmake && travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C ${DEPS_DIR}/cmake
fi
if [[ "${TRAVIS_ARCH}" = "ppc64le" ]]; then
# Build from source
CMAKE_URL="https://cmake.org/files/v${CMAKE_VERSION%.*}/cmake-${CMAKE_VERSION}.tar.gz"
mkdir -p ${DEPS_DIR}/cmake-source && travis_retry wget --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C ${DEPS_DIR}/cmake-source
(
cd ${DEPS_DIR}/cmake-source
mkdir -p build && cd build
../bootstrap --prefix=${DEPS_DIR}/cmake && make -j4 install
)
fi
else
echo "CMake already found in cache"
fi
export PATH=${DEPS_DIR}/cmake/bin:${PATH}
else
brew upgrade cmake || brew install cmake
brew install openssl
export OPENSSL_ROOT_DIR=/usr/local/opt/openssl
fi
cmake --version
Expand Down Expand Up @@ -221,7 +229,7 @@ script:
#################################################################
- mkdir -p ${ATLAS_BUILD_DIR} && cd ${ATLAS_BUILD_DIR}
- cmake -DCMAKE_MODULE_PATH=${ECBUILD_MODULE_PATH} ${ATLAS_CMAKE_OPTIONS} ${ATLAS_SOURCE_DIR}
- make -j4
- make -j$(nproc)
- bin/atlas --info

#################################################################
Expand Down
31 changes: 31 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Authors
=======

- Willem Deconinck
- Pedro Maciel
- Tiago Quintino

Thanks for contributions from
=============================

- Carlos Osuna
- Avi Bahra
- Andreas Mueller
- Baudouin Raoult
- Florian Rathgeber
- Daan Degrauwe
- Gianmarco Mengaldo
- Philippe Marguinaud
- James Hawkes
- Mats Hamrud
- Christian Kuehnlein
- Rahul Mahajan
- Olivier Iffrig
- Iain Russell
- Benjamin Menetrier
- Domokos Sármány
- Yannick Trémolet
- Mark J. Olah
- Michael Lange
- Marek Wlasak
- Peter Bispham
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,28 @@ This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html

## [Unreleased]

## [0.22.0] - 2020-10-14
### Fixed
- Feature INIT_SNAN was not working
- Support KNearestNeighbour interpolation for functionspace with
smaller halo than the mesh contains
- Support array size up to size_t limit

### Changed
- Migration to use ecbuild 3.4
- ATLAS_BITS_LOCAL can be configured to 32 or 64

### Added
- Fields can be created with given alignment, which adds padding in innermost dimension
- Added conservative interpolation with "grid-box average" and "grid-box maximum"
- Missing value definition for fields
- Add support for missing values in matrix-based interpolation methods
- Floating point trapping and signal handling mechanism
- Fortran: GridDistribution constructors
- Fortran: Domain access
- Fortran: Get lonlat_bounding_box via domain
- Possibility to access Jacobian of projections (with only some projections implemented)

## [0.21.0] - 2020-06-23
### Fixed
- Fixed Rotation order of applying the rotation angle
Expand Down Expand Up @@ -223,6 +245,7 @@ This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html
## 0.13.0 - 2018-02-16

[Unreleased]: https://github.com/ecmwf/atlas/compare/master...develop
[0.22.0]: https://github.com/ecmwf/atlas/compare/0.21.0...0.22.0
[0.21.0]: https://github.com/ecmwf/atlas/compare/0.20.2...0.21.0
[0.20.2]: https://github.com/ecmwf/atlas/compare/0.20.1...0.20.2
[0.20.1]: https://github.com/ecmwf/atlas/compare/0.20.0...0.20.1
Expand Down
16 changes: 6 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,17 @@
############################################################################################
# Atlas

cmake_minimum_required( VERSION 3.6 FATAL_ERROR )
if( POLICY CMP0074 )
cmake_policy( SET CMP0074 NEW )
# This policy allows to search for packages with <package>_ROOT variables
# (only supported with CMake 3.12 and above)
# This policy can be removed once cmake_minimum_required( VERSION 3.12 ) is used
endif()
cmake_minimum_required( VERSION 3.12 FATAL_ERROR )

find_package( ecbuild 3.1.0 REQUIRED )
find_package( ecbuild 3.4 REQUIRED HINTS ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../ecbuild )

################################################################################
# Initialise project Atlas

project( atlas LANGUAGES CXX )

set( ATLAS_BITS_GLOBAL 64 ) # bits used to define a global index (atlas::gidx_t)
set( ATLAS_BITS_LOCAL 32 ) # bits used to define a local index (atlas::idx_t)
set( ATLAS_BITS_GLOBAL 64 CACHE STRING "bits used to define a global index (atlas::gidx_t)" )
set( ATLAS_BITS_LOCAL 32 CACHE STRING "bits used to define a local index (atlas::idx_t)" )

################################################################################
# Required packages
Expand All @@ -50,7 +44,9 @@ include( features/PROJ )
include( features/SANDBOX )
include( features/CLANG_TIDY )
include( features/INCLUDE_WHAT_YOU_USE )
include( features/INIT_SNAN )
include( features/DOCS )
include( features/ATLAS_RUN )

################################################################################
# sources
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.21.0
0.22.0
53 changes: 0 additions & 53 deletions atlas.sublime-project

This file was deleted.

2 changes: 1 addition & 1 deletion bamboo/CLANG-env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@ module unload libemos
module unload metview
module unload netcdf4

module load cmake/3.10.2
module load cmake/3.16.5

module switch gnu clang
2 changes: 1 addition & 1 deletion bamboo/GCC-env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ module unload libemos
module unload metview
module unload netcdf4

module load cmake/3.10.2
module load cmake/3.16.5
module load proj/6.1.1
2 changes: 1 addition & 1 deletion bamboo/INTEL-env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,6 @@ module unload libemos
module unload metview
module unload netcdf4

module load cmake/3.10.2
module load cmake/3.16.5

module switch gnu intel/17.0.3
File renamed without changes.
2 changes: 1 addition & 1 deletion cmake/features/ACC.cmake
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
### OpenACC

set( ATLAS_ACC_CAPABLE FALSE )
if( ATLAS_GRIDTOOLS_STORAGE_BACKEND_CUDA )
if( HAVE_CUDA )
if( CMAKE_Fortran_COMPILER_ID MATCHES "PGI" )
set( ATLAS_ACC_CAPABLE TRUE )
endif()
Expand Down
1 change: 1 addition & 0 deletions cmake/features/EIGEN.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
### Eigen

set( Eigen3_NO_MODULE ON )
ecbuild_find_package( NAME Eigen3 VERSION 3.3 QUIET )
ecbuild_add_option( FEATURE EIGEN
DESCRIPTION "Use Eigen linear algebra library"
Expand Down
22 changes: 12 additions & 10 deletions cmake/features/GRIDTOOLS_STORAGE.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,16 @@ ecbuild_add_option(
DESCRIPTION "Arrays internally use GridTools storage layer"
CONDITION GridTools_FOUND )

if( atlas_HAVE_GRIDTOOLS_STORAGE )
ecbuild_add_option( FEATURE CUDA
DESCRIPTION "Enable CUDA support via GridTools CUDA backend"
CONDITION GRIDTOOLS_HAS_BACKEND_CUDA )

set( ATLAS_GRIDTOOLS_STORAGE_BACKEND_HOST 0 )
set( ATLAS_GRIDTOOLS_STORAGE_BACKEND_CUDA 0 )

set( ATLAS_GRIDTOOLS_STORAGE_BACKEND_HOST 1 )
set( ATLAS_GRIDTOOLS_STORAGE_BACKEND_CUDA 0 )
if( atlas_HAVE_GRIDTOOLS_STORAGE )

if( GRIDTOOLS_HAS_BACKEND_CUDA )
if( atlas_HAVE_CUDA )

ecbuild_info( "GridTools found with CUDA support" )

Expand All @@ -48,14 +52,12 @@ if( atlas_HAVE_GRIDTOOLS_STORAGE )
find_package( CUDA )
endif()

set( ATLAS_GRIDTOOLS_STORAGE_BACKEND_HOST 0 )
set( ATLAS_GRIDTOOLS_STORAGE_BACKEND_CUDA 1 )
endif()

else()
else()

set( ATLAS_GRIDTOOLS_STORAGE_BACKEND_HOST 0 )
set( ATLAS_GRIDTOOLS_STORAGE_BACKEND_CUDA 0 )
set( ATLAS_GRIDTOOLS_STORAGE_BACKEND_HOST 1 )

endif()
endif()

endif()
20 changes: 20 additions & 0 deletions cmake/features/INIT_SNAN.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,23 @@ if( ${CMAKE_BUILD_TYPE} MATCHES "Debug" )
endif()
endif()


cmake_push_check_state(RESET)
include(CheckSymbolExists)
set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
if(UNIX)
set(CMAKE_REQUIRED_LIBRARIES m)
endif()
check_symbol_exists(feenableexcept "fenv.h" atlas_HAVE_FEENABLEEXCEPT)
check_symbol_exists(fedisableexcept "fenv.h" atlas_HAVE_FEDISABLEEXCEPT)
if( atlas_HAVE_FEENABLEEXCEPT )
set( atlas_HAVE_FEENABLEEXCEPT 1 )
else()
set( atlas_HAVE_FEENABLEEXCEPT 0 )
endif()
if( atlas_HAVE_FEDISABLEEXCEPT )
set( atlas_HAVE_FEDISABLEEXCEPT 1 )
else()
set( atlas_HAVE_FEDISABLEEXCEPT 0 )
endif()
cmake_pop_check_state()
File renamed without changes.
Loading

0 comments on commit a700302

Please sign in to comment.