Skip to content

Commit

Permalink
feat(config): allowing partial boundaries to be defined for the CLEO …
Browse files Browse the repository at this point in the history
…YAC grid
  • Loading branch information
wiltonloch committed Jun 26, 2024
1 parent e786de4 commit d2bdcb7
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 9 deletions.
12 changes: 7 additions & 5 deletions libs/coupldyn_yac/yac_cartesian_dynamics.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,17 @@ void create_vertex_coordinates(const Config &config,
double lower_latitude = (-0.5 * std::numbers::pi * ndims[1]) / (ndims[1] + 2);
double upper_latitude = (0.5 * std::numbers::pi * ndims[1]) / (ndims[1] + 2);

if (!std::isnan(config.get_yac_dynamics().lower_longitude) &&
!std::isnan(config.get_yac_dynamics().upper_longitude) &&
!std::isnan(config.get_yac_dynamics().lower_latitude) &&
!std::isnan(config.get_yac_dynamics().upper_latitude)) {
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;
}

// Defines the vertex longitude and latitude values in radians for grid creation
// The values are later permuted by YAC to generate all vertex coordinates
Expand Down
15 changes: 11 additions & 4 deletions libs/initialise/optional_config_params.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -208,10 +208,17 @@ void OptionalConfigParams::YacDynamicsParams::set_params(const YAML::Node &confi

assert((node["type"].as<std::string>() == "yac"));

lower_longitude = node["lower_longitude"].as<double>();
upper_longitude = node["upper_longitude"].as<double>();
lower_latitude = node["lower_latitude"].as<double>();
upper_latitude = node["upper_latitude"].as<double>();
if (node["lower_longitude"])
lower_longitude = node["lower_longitude"].as<double>();

if (node["upper_longitude"])
upper_longitude = node["upper_longitude"].as<double>();

if (node["lower_latitude"])
lower_latitude = node["lower_latitude"].as<double>();

if (node["upper_latitude"])
upper_latitude = node["upper_latitude"].as<double>();
}

void OptionalConfigParams::YacDynamicsParams::print_params() const {
Expand Down

0 comments on commit d2bdcb7

Please sign in to comment.