SpECTRE  v2026.06.30
Loading...
Searching...
No Matches
domain::creators::bco Namespace Reference

Namespace used to hold things used in both the BinaryCompactObject and CylindricalBinaryCompactObject domain creators. More...

Classes

struct  TimeDependentMapOptions
 This holds all options related to the time dependent maps of the binary compact object domains. More...

Functions

std::unordered_map< std::string, tnsr::I< double, 3, Frame::Grid > > create_grid_anchors (const std::array< double, 3 > &center_a, const std::array< double, 3 > &center_b)
 Create a set of centers of objects for the binary domains.
void validate_initial_refinement (const Options::Context &context, const BinaryCompactObject::InitialRefinement::type &initial_refinement, const std::unordered_set< std::string > &spherical_harmonic_shell_names)
 Validate InitialRefinement map entries.
void validate_initial_grid_points (const Options::Context &context, const BinaryCompactObject::InitialGridPoints::type &initial_number_of_grid_points, const std::unordered_set< std::string > &spherical_harmonic_shell_names)
 Validate InitialGridPoints map entries.
std::vector< std::array< size_t, 3 > > set_initial_refinement (const ExpandOverBlocks< std::array< size_t, 3 > > &expand_over_blocks, const BinaryCompactObject::InitialRefinement::type &initial_refinement)
 Convert size_t radial h refinement entries for spherical harmonic blocks to {r, 0, 0}
std::vector< std::array< size_t, 3 > > set_initial_grid_points (const ExpandOverBlocks< std::array< size_t, 3 > > &expand_over_blocks, const BinaryCompactObject::InitialGridPoints::type &initial_grid_points)
 Convert array<2>{r, l_max} entries for spherical harmonic blocks to {r, l_max, m_max} = {r, l_max, l_max}

Detailed Description

Namespace used to hold things used in both the BinaryCompactObject and CylindricalBinaryCompactObject domain creators.

Function Documentation

◆ create_grid_anchors()

std::unordered_map< std::string, tnsr::I< double, 3, Frame::Grid > > domain::creators::bco::create_grid_anchors ( const std::array< double, 3 > & center_a,
const std::array< double, 3 > & center_b )

Create a set of centers of objects for the binary domains.

Details

Will add the following centers to the set:

  • Center: The origin
  • CenterA: Center of object A
  • CenterB: Center of object B

Returns: Object required by the DomainCreators

◆ set_initial_grid_points()

std::vector< std::array< size_t, 3 > > domain::creators::bco::set_initial_grid_points ( const ExpandOverBlocks< std::array< size_t, 3 > > & expand_over_blocks,
const BinaryCompactObject::InitialGridPoints::type & initial_grid_points )

Convert array<2>{r, l_max} entries for spherical harmonic blocks to {r, l_max, m_max} = {r, l_max, l_max}

Details

All array<3> entries are used unchanged. We store the (l_max, m_max) of the shell directly because ell is clear and unambiguous, whereas the number of collocation points implied by ell depends on the spectral implementation. The conversion to the number of collocation points is applied in initial_extents().

Parameters
expand_over_blocksExpandOverBlocks containing the block names and block groups
initial_grid_pointsthe initial grid points from options

Returns: converted grid points

◆ set_initial_refinement()

std::vector< std::array< size_t, 3 > > domain::creators::bco::set_initial_refinement ( const ExpandOverBlocks< std::array< size_t, 3 > > & expand_over_blocks,
const BinaryCompactObject::InitialRefinement::type & initial_refinement )

Convert size_t radial h refinement entries for spherical harmonic blocks to {r, 0, 0}

Details

All array<3> entries are unchanged.

Parameters
expand_over_blocksExpandOverBlocks containing the block names and block groups
initial_refinementthe initial refinement from options

Returns: converted refinement

◆ validate_initial_grid_points()

void domain::creators::bco::validate_initial_grid_points ( const Options::Context & context,
const BinaryCompactObject::InitialGridPoints::type & initial_number_of_grid_points,
const std::unordered_set< std::string > & spherical_harmonic_shell_names )

Validate InitialGridPoints map entries.

Details

Any spherical-harmonic shell block must use array<2>{radial, L_max}. Non-spherical-harmonic blocks must use array<3>.

Parameters
contextoptions context
initial_number_of_grid_pointsthe initial grid points from options
spherical_harmonic_shell_namesthe names of spherical shell blocks that use spherical harmonics

◆ validate_initial_refinement()

void domain::creators::bco::validate_initial_refinement ( const Options::Context & context,
const BinaryCompactObject::InitialRefinement::type & initial_refinement,
const std::unordered_set< std::string > & spherical_harmonic_shell_names )

Validate InitialRefinement map entries.

Details

Any spherical-harmonic block must use size_t (radial only). array<3> is rejected on spherical-harmonic blocks even if angular components are zero. Non-spherical-harmonic entries must use array<3>.

Parameters
contextoptions context
initial_refinementthe initial refinement from options
spherical_harmonic_shell_namesthe names of spherical shell blocks that use spherical harmonics