Loading...
Searching...
No Matches
radial_profiles.hpp File Reference
#include <numeric>
#include "kokkos/kokkos_wrapper.hpp"
#include "linalg/vector_q1.hpp"
#include "util/interpolation.hpp"
#include "util/table.hpp"

Go to the source code of this file.

Classes

struct  terra::shell::RadialProfiles< ScalarType >
 Simple struct, holding device-views for radial profiles. More...
 

Namespaces

namespace  terra
 
namespace  terra::shell
 

Functions

template<typename ScalarType >
RadialProfiles< ScalarType > terra::shell::radial_profiles (const linalg::VectorQ1Scalar< ScalarType > &data, const grid::Grid2DDataScalar< int > &subdomain_shell_idx, const int num_global_shells)
 Compute radial profiles (min, max, sum, count, average) for a Q1 scalar field (on device!).
 
template<typename ScalarType >
util::Table terra::shell::radial_profiles_to_table (const RadialProfiles< ScalarType > &radial_profiles, const std::vector< double > &radii)
 Convert radial profile data to a util::Table for analysis or output.
 
template<std::floating_point GridDataType, std::floating_point ProfileInRadiiType, std::floating_point ProfileInValueType, std::floating_point ProfileOutDataType = double>
grid::Grid2DDataScalar< ProfileOutDataType > terra::shell::interpolate_radial_profile_into_subdomains (const std::string &profile_out_label, const grid::Grid2DDataScalar< GridDataType > &coords_radii, const std::vector< ProfileInRadiiType > &profile_radii, const std::vector< ProfileInValueType > &profile_values)
 Linearly interpolates radial data from a std::vector (host) into a 2D grid (device) with dimensions (local_subdomain_id, subdomain_size_r) for straightforward use in kernels.
 
template<std::floating_point GridDataType, std::floating_point ProfileOutDataType = double>
grid::Grid2DDataScalar< ProfileOutDataType > terra::shell::interpolate_radial_profile_into_subdomains_from_csv (const std::string &filename, const std::string &key_radii, const std::string &key_values, const grid::Grid2DDataScalar< GridDataType > &coords_radii)
 Interpolating a radial profile from a CSV file into a grid.
 
template<std::floating_point GridDataType, std::floating_point ProfileOutDataType = double>
grid::Grid2DDataScalar< ProfileOutDataType > terra::shell::interpolate_constant_radial_profile (const grid::Grid2DDataScalar< GridDataType > &coords_radii, const ProfileOutDataType &value)
 Interpolating a constant radial profile into a grid.