Loading...
Searching...
No Matches
terra::grid::shell::DistributedDomain Class Reference

Parallel data structure organizing the thick spherical shell metadata for distributed (MPI parallel) simulations. More...

#include <spherical_shell.hpp>

Public Types

using LocalSubdomainIdx = int
 

Public Member Functions

 DistributedDomain ()=default
 
const DomainInfodomain_info () const
 Returns a const reference.
 
const std::map< SubdomainInfo, std::tuple< LocalSubdomainIdx, SubdomainNeighborhood > > & subdomains () const
 
const SubdomainInfosubdomain_info_from_local_idx (const LocalSubdomainIdx subdomain_idx) const
 

Static Public Member Functions

static DistributedDomain create_uniform_single_subdomain_per_diamond (const int lateral_diamond_refinement_level, const int radial_diamond_refinement_level, const real_t r_min, const real_t r_max, const SubdomainToRankDistributionFunction &subdomain_to_rank=subdomain_to_rank_iterate_diamond_subdomains)
 Creates a DistributedDomain with a single subdomain per diamond and initializes all the subdomain neighborhoods.
 
static DistributedDomain create_uniform_single_subdomain_per_diamond (const int lateral_diamond_refinement_level, const std::vector< double > &radii, const SubdomainToRankDistributionFunction &subdomain_to_rank=subdomain_to_rank_iterate_diamond_subdomains)
 Creates a DistributedDomain with a single subdomain per diamond and initializes all the subdomain neighborhoods.
 
static DistributedDomain create_uniform (const int lateral_diamond_refinement_level, const int radial_diamond_refinement_level, const real_t r_min, const real_t r_max, const int lateral_subdomain_refinement_level, const int radial_subdomain_refinement_level, const SubdomainToRankDistributionFunction &subdomain_to_rank=subdomain_to_rank_iterate_diamond_subdomains)
 Creates a DistributedDomain with a single subdomain per diamond and initializes all the subdomain neighborhoods.
 
static DistributedDomain create_uniform (const int lateral_diamond_refinement_level, const std::vector< double > &radii, const int lateral_subdomain_refinement_level, const int radial_subdomain_refinement_level, const SubdomainToRankDistributionFunction &subdomain_to_rank=subdomain_to_rank_iterate_diamond_subdomains)
 Creates a DistributedDomain with a single subdomain per diamond and initializes all the subdomain neighborhoods.
 

Detailed Description

Parallel data structure organizing the thick spherical shell metadata for distributed (MPI parallel) simulations.

This is essentially a wrapper for the DomainInfo and the neighborhood information (SubdomainNeighborhood) for all process-local subdomains.

Member Typedef Documentation

◆ LocalSubdomainIdx

Constructor & Destructor Documentation

◆ DistributedDomain()

terra::grid::shell::DistributedDomain::DistributedDomain ( )
default

Member Function Documentation

◆ create_uniform() [1/2]

static DistributedDomain terra::grid::shell::DistributedDomain::create_uniform ( const int  lateral_diamond_refinement_level,
const int  radial_diamond_refinement_level,
const real_t  r_min,
const real_t  r_max,
const int  lateral_subdomain_refinement_level,
const int  radial_subdomain_refinement_level,
const SubdomainToRankDistributionFunction subdomain_to_rank = subdomain_to_rank_iterate_diamond_subdomains 
)
inlinestatic

Creates a DistributedDomain with a single subdomain per diamond and initializes all the subdomain neighborhoods.

◆ create_uniform() [2/2]

static DistributedDomain terra::grid::shell::DistributedDomain::create_uniform ( const int  lateral_diamond_refinement_level,
const std::vector< double > &  radii,
const int  lateral_subdomain_refinement_level,
const int  radial_subdomain_refinement_level,
const SubdomainToRankDistributionFunction subdomain_to_rank = subdomain_to_rank_iterate_diamond_subdomains 
)
inlinestatic

Creates a DistributedDomain with a single subdomain per diamond and initializes all the subdomain neighborhoods.

◆ create_uniform_single_subdomain_per_diamond() [1/2]

static DistributedDomain terra::grid::shell::DistributedDomain::create_uniform_single_subdomain_per_diamond ( const int  lateral_diamond_refinement_level,
const int  radial_diamond_refinement_level,
const real_t  r_min,
const real_t  r_max,
const SubdomainToRankDistributionFunction subdomain_to_rank = subdomain_to_rank_iterate_diamond_subdomains 
)
inlinestatic

Creates a DistributedDomain with a single subdomain per diamond and initializes all the subdomain neighborhoods.

◆ create_uniform_single_subdomain_per_diamond() [2/2]

static DistributedDomain terra::grid::shell::DistributedDomain::create_uniform_single_subdomain_per_diamond ( const int  lateral_diamond_refinement_level,
const std::vector< double > &  radii,
const SubdomainToRankDistributionFunction subdomain_to_rank = subdomain_to_rank_iterate_diamond_subdomains 
)
inlinestatic

Creates a DistributedDomain with a single subdomain per diamond and initializes all the subdomain neighborhoods.

◆ domain_info()

const DomainInfo & terra::grid::shell::DistributedDomain::domain_info ( ) const
inline

Returns a const reference.

◆ subdomain_info_from_local_idx()

const SubdomainInfo & terra::grid::shell::DistributedDomain::subdomain_info_from_local_idx ( const LocalSubdomainIdx  subdomain_idx) const
inline

◆ subdomains()

const std::map< SubdomainInfo, std::tuple< LocalSubdomainIdx, SubdomainNeighborhood > > & terra::grid::shell::DistributedDomain::subdomains ( ) const
inline

The documentation for this class was generated from the following file: