Currently, depending on the user choise on defining/not defining a vertical dimension in their SpaceDomain, 2D or 3D arrays are sent to the components, which is problematic from a component contributor perspective because they don't know a priori what is the shape of the domain they need to work on, and they may not even want to work with the vertical dimension at all. There needs to be a way for the contributor to specify the space domains they support, and until then, this 2D/3D mismatch needs to be prevented by limiting to 2D domains.
Moreover, inherently horizontal properties of SpaceDomain (i.e. land_sea_mask, flow_direction, and cell_area) are not limited to 2D-only shapes. This also needs to be changed.
This PR includes:
the removal of the vertical dimension parameters (i.e. altitude) in the instantiation methods of Grid and its derived classes so that users cannot define 3D domains but only 2D domains
the enforcement of horizontal axes only in its properties land_sea_mask, flow_direction, and cell_area
the enforcement of horizontal axes only for the transfers through the Exchanger
the revision of the dummy components used in the tests to work with strict 2D domains
Note, while the user cannot define 3D grids anymore, the functionality to do so, which was perfectly functional, is kept in the source code, only vertical dimension related "entry points" are deactivated (i.e. commented out) to prevent the use of this functionality. This way, once 3D domains are properly supported, this can be brought back easily.
resolve #28
Currently, depending on the user choise on defining/not defining a vertical dimension in their
SpaceDomain
, 2D or 3D arrays are sent to the components, which is problematic from a component contributor perspective because they don't know a priori what is the shape of the domain they need to work on, and they may not even want to work with the vertical dimension at all. There needs to be a way for the contributor to specify the space domains they support, and until then, this 2D/3D mismatch needs to be prevented by limiting to 2D domains.Moreover, inherently horizontal properties of
SpaceDomain
(i.e.land_sea_mask
,flow_direction
, andcell_area
) are not limited to 2D-only shapes. This also needs to be changed.This PR includes:
Grid
and its derived classes so that users cannot define 3D domains but only 2D domainsland_sea_mask
,flow_direction
, andcell_area
Exchanger
Note, while the user cannot define 3D grids anymore, the functionality to do so, which was perfectly functional, is kept in the source code, only vertical dimension related "entry points" are deactivated (i.e. commented out) to prevent the use of this functionality. This way, once 3D domains are properly supported, this can be brought back easily.