-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added alpha-beta projection to cubed sphere. #87
Added alpha-beta projection to cubed sphere. #87
Conversation
Codecov Report
@@ Coverage Diff @@
## feature/cubed-sphere-base2 #87 +/- ##
==============================================================
+ Coverage 77.59% 78.00% +0.40%
==============================================================
Files 756 758 +2
Lines 51297 52733 +1436
==============================================================
+ Hits 39804 41133 +1329
- Misses 11493 11600 +107
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you rename Matrix.h as Matrix2DAndJacobians.h?
Also why is the xy 2alphabeta projections and inverse using different if test conditions? Is it due to non-uniqueness close to the corners?
The |
* develop: (21 commits) Add new yml file for variable resolution projection To run the update_uid.py under linux I should add the option shell=True in Popen Make VortexRollup function publicly available, and remove it from various places (#87) More testing and implementations for VariableResolutionProjection (#89) Fixup PointXYZ operator /= to be bitreproducible with PointXYZ::div Add *= and /= operators to PointXYZ with scalar ATLAS-345 Use new eckit::linalg::LinearAlgebraSparse and eckit::linalg::LinearAlgebraDense API (see ECKIT-585) Prevent optimisation with NVHPC compiler in VariableResolutionProjection Adapt atlas_test_field_missingvalue as there is no standard on comparisons with NaN Workaround for Cray 8.7 compiler bug resulting in FE_DIVBYZERO in atlas_test_jacobian in Release build ATLAS-327 Workaround for Cray 8.7 compiler bug with CXX flags "-O2 -hfp1 -g -DNDEBUG" Fixup previous commit Allow use of build_cells_remote_index() when halo was already built Apply clang-format Addressed reviewer comments. Permitted variable sized halos on functionspaces. Added ghost field to CubedSphereCellColumns functionspace. ATLAS-344 Fix atlas_test_healpixmeshgen CI with nvhpc-21.9 ATLAS-344 Fix MatchingMeshPartitionerLonLatPolygon to work with non-matching domains ATLAS-344 PolygonXY with Point2 member variables ATLAS-344 Printing of util::PolygonCoordinates ...
This PR predominantly adds an
(x, y)
to(alpha, beta)
projection for tilet
. Here,(alpha, beta)
is defined strictly as the angular coordinates described by Ronchi et al., (1996).In practice, the transform is a simple shift and rotate for
xy
coordinates internal to tilet
. A non-linear stretch is applied for external points (i.e. haloxy
coordinates).The following example considers tile
t=0
of the LFRic cubed sphere dual mesh, withhalo = 3
. The first image shows thexy
projection. The second image gives the(alpha, beta)
projection.This required changes to several classes, summarised as follows:
tileCenter
andtileJacobian
which return thexy
centre andd_xy/d_alphabeta
Jacobian for each tile.util
namespace.Tiles
methods. This minor refactoring therefore serves as a test for the changes.CubedSphereProjectionBase
rank <= 3
constraint. Not related to projection, but it was an easy fix.This transform is currently only implemented for the equiangular cubedsphere projection. It is also likely that I've introduced some unnecessary redundancy to the
CubedSphereProjectionBase
andTiles
classes. However, given that we intend to refactor the cubed sphere grid at some point, we'll eventually need to refactor these classes too.@wdeconinck
Given that this branch and
feature/cubed_sphere_halo_modification
both relate to halos, it probably makes sense to merge the two for the upstream PR.closes #81