From 3e67b02ebebdcaa38a8a47c1b7ff2501764e910c Mon Sep 17 00:00:00 2001 From: "clara.bayley" Date: Sat, 17 Aug 2024 14:49:32 +0200 Subject: [PATCH] refactor: demand that yac is given max and min longitude and latitude in config params --- examples/bubble3d/bubble3d_inputfiles.py | 12 ++++++++--- .../bubble3d/src/config/bubble3d_config.yaml | 6 ++++-- libs/coupldyn_yac/yac_cartesian_dynamics.cpp | 20 ++++--------------- libs/initialise/optional_config_params.cpp | 17 +++++----------- 4 files changed, 22 insertions(+), 33 deletions(-) diff --git a/examples/bubble3d/bubble3d_inputfiles.py b/examples/bubble3d/bubble3d_inputfiles.py index 8850f791..479f77d7 100644 --- a/examples/bubble3d/bubble3d_inputfiles.py +++ b/examples/bubble3d/bubble3d_inputfiles.py @@ -69,11 +69,17 @@ def main( isfigures = [True, True] savefigpath = path2build + "/bin/" # directory for saving figures - ### --- settings for 2-D gridbox boundaries --- ### + ### --- settings for 3-D gridbox boundaries --- ### num_vertical_levels = 24 # TODO(CB): move to config file (?) zgrid = get_zgrid(icon_grid_file, num_vertical_levels) # [m] - xgrid = [0, 5000, 100] # evenly spaced xhalf coords [m] - ygrid = np.array([0, 1000, 2000]) # array of yhalf coords [m] + xgrid = [ + 0, + 5000, + 100, + ] # evenly spaced xhalf coords [m] # distance must match longitude in config file + ygrid = np.array( + [0, 1500, 3000] + ) # array of yhalf coords [m] # distance must match latitudes in config file ### --- settings for initial superdroplets --- ### # settings for initial superdroplet coordinates diff --git a/examples/bubble3d/src/config/bubble3d_config.yaml b/examples/bubble3d/src/config/bubble3d_config.yaml index 4e616c1d..e243e213 100644 --- a/examples/bubble3d/src/config/bubble3d_config.yaml +++ b/examples/bubble3d/src/config/bubble3d_config.yaml @@ -54,5 +54,7 @@ outputdata: coupled_dynamics: type: yac - lower_latitude: -0.157079632 - upper_latitude: 0.157079632 + lower_longitude: -0.02255 + upper_longitude: 0.02255 + lower_latitude: -0.01347 + upper_latitude: 0.01347 diff --git a/libs/coupldyn_yac/yac_cartesian_dynamics.cpp b/libs/coupldyn_yac/yac_cartesian_dynamics.cpp index 8b71a895..bffd2dd3 100644 --- a/libs/coupldyn_yac/yac_cartesian_dynamics.cpp +++ b/libs/coupldyn_yac/yac_cartesian_dynamics.cpp @@ -53,22 +53,10 @@ std::array kijfromindex(const std::array &ndims, const siz void create_vertex_coordinates(const Config &config, const std::array ndims, std::vector &vertex_longitudes, std::vector &vertex_latitudes) { - double lower_longitude = 0; - double upper_longitude = ndims[EASTWARD] * (2 * std::numbers::pi / (ndims[EASTWARD] + 1)); - double lower_latitude = (-0.5 * std::numbers::pi * ndims[NORTHWARD]) / (ndims[NORTHWARD] + 2); - double upper_latitude = (0.5 * std::numbers::pi * ndims[NORTHWARD]) / (ndims[NORTHWARD] + 2); - - if (!std::isnan(config.get_yac_dynamics().lower_longitude)) - lower_longitude = config.get_yac_dynamics().lower_longitude; - - if (!std::isnan(config.get_yac_dynamics().upper_longitude)) - upper_longitude = config.get_yac_dynamics().upper_longitude; - - if (!std::isnan(config.get_yac_dynamics().lower_latitude)) - lower_latitude = config.get_yac_dynamics().lower_latitude; - - if (!std::isnan(config.get_yac_dynamics().upper_latitude)) - upper_latitude = config.get_yac_dynamics().upper_latitude; + lower_longitude = config.get_yac_dynamics().lower_longitude; + upper_longitude = config.get_yac_dynamics().upper_longitude; + lower_latitude = config.get_yac_dynamics().lower_latitude; + upper_latitude = config.get_yac_dynamics().upper_latitude; // Defines the vertex longitude and latitude values in radians for grid creation // The values are later permuted by YAC to generate all vertex coordinates diff --git a/libs/initialise/optional_config_params.cpp b/libs/initialise/optional_config_params.cpp index 9aa98d00..ae531de1 100644 --- a/libs/initialise/optional_config_params.cpp +++ b/libs/initialise/optional_config_params.cpp @@ -9,7 +9,7 @@ * Author: Clara Bayley (CB) * Additional Contributors: * ----- - * Last Modified: Friday 21st June 2024 + * Last Modified: Saturday 17th August 2024 * Modified By: CB * ----- * License: BSD 3-Clause "New" or "Revised" License @@ -208,17 +208,10 @@ void OptionalConfigParams::YacDynamicsParams::set_params(const YAML::Node &confi assert((node["type"].as() == "yac")); - if (node["lower_longitude"]) - lower_longitude = node["lower_longitude"].as(); - - if (node["upper_longitude"]) - upper_longitude = node["upper_longitude"].as(); - - if (node["lower_latitude"]) - lower_latitude = node["lower_latitude"].as(); - - if (node["upper_latitude"]) - upper_latitude = node["upper_latitude"].as(); + lower_longitude = node["lower_longitude"].as(); + upper_longitude = node["upper_longitude"].as(); + lower_latitude = node["lower_latitude"].as(); + upper_latitude = node["upper_latitude"].as(); } void OptionalConfigParams::YacDynamicsParams::print_params() const {