|
SpECTRE
v2026.11.11
|
A domain for a binary of two filled (non-excised) objects, such as two neutron stars. More...
#include <BinaryNeutronStars.hpp>
Classes | |
| struct | B2InitialAngularGridPoints |
| Initial number of angular grid points for the ZernikeB2 cross-section of the filled cylinders. More... | |
| struct | Bulge |
| Whether to use bulging coordinate maps for the deformed-cube wedges and the hollow cylinders. More... | |
| struct | CubeInitialGridPoints |
| Initial number of grid points for each cubed-cylinder group. More... | |
| struct | CubeInitialXRefinement |
| Initial \(x\) refinement for each cubed-cylinder group. More... | |
| struct | CubeInitialYZRefinement |
| Initial \(y\) and \(z\) refinement for each cubed-cylinder group. More... | |
| struct | CylinderInitialRadialGridPoints |
| Initial number of grid points for the filled and hollow cylinders in the direction from the cubed cylinders out to CylinderOuterRadius More... | |
| struct | CylinderInitialRadialRefinement |
| Initial refinement for the filled and hollow cylinders in the direction from the cubed cylinders out to CylinderOuterRadius More... | |
| struct | CylinderOuterRadius |
| Grid-coordinate radius of the sphere, centered at the origin, formed by the outer faces of the cylinders. More... | |
| struct | HollowCylinderInitialAngularGridPoints |
| Initial number of grid points for the hollow cylinders in the angular and axial directions. More... | |
| struct | InitialSphericalHarmonicL |
| Initial spherical harmonic resolution for spherical shells. More... | |
| struct | OuterBoundaryCondition |
| Outer boundary condition. More... | |
| struct | OuterRadius |
| Grid-coordinate radius of the outer boundary of the domain. More... | |
| struct | SphericalShellsInitialRadialGridPoints |
| Initial number of radial grid points for spherical shells. More... | |
| struct | SphericalShellsInitialRadialRefinement |
| Initial radial refinement of spherical shells. More... | |
| struct | SphericalShellsRadialDistribution |
| Radial distribution for spherical shells. More... | |
| struct | SphericalShellsRadialPartitioning |
| Radial partitioning of the spherical shell region. More... | |
| struct | TimeDependentMaps |
| Time dependent maps. More... | |
| struct | WedgeInnerRadius |
| Grid-coordinate distance from the \(x\)-axis to the edges of the central cubes, which is also the inner radius of the deformed-cube wedges. More... | |
| struct | WedgeOuterRadius |
| Grid-coordinate radius of the outer faces of the deformed-cube wedges. More... | |
| struct | WedgePrismInitialRadialGridPoints |
| Initial number of radial grid points for the deformed-cube wedges. More... | |
| struct | WedgePrismInitialRadialRefinement |
| Initial radial refinement for the deformed-cube wedges. More... | |
| struct | XAxisPoints |
| Grid \(x\)-coordinates of the ends of the cubed cylinders and the centers of the objects. More... | |
Public Types | |
| using | maps_list |
| template<typename Metavariables> | |
| using | options |
Public Member Functions | |
| BinaryNeutronStars (const std::array< double, 4 > &x_axis_points, double wedge_inner_radius, double wedge_outer_radius, double cylinder_outer_radius, double outer_radius, const CubeInitialGridPoints::type &cube_grid_points, const CubeInitialXRefinement::type &cube_x_refinement, const CubeInitialYZRefinement::type &cube_yz_refinement, size_t wedge_prism_radial_grid_points, size_t wedge_prism_radial_refinement, size_t cylinder_radial_grid_points, size_t cylinder_radial_refinement, size_t b2_angular_grid_points, std::array< size_t, 2 > hollow_cylinder_angular_grid_points, const SphericalShellsInitialRadialRefinement::type &spherical_shells_radial_refinement, size_t spherical_shells_radial_grid_points, size_t spherical_harmonic_l, std::vector< double > spherical_shells_radial_partitioning, const SphericalShellsRadialDistribution::type &spherical_shells_radial_distribution, bool bulge=false, std::optional< bco::TimeDependentMapOptions< true > > time_dependent_options=std::nullopt, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > outer_boundary_condition=nullptr, const Options::Context &context={}) | |
| BinaryNeutronStars (const BinaryNeutronStars &)=delete | |
| BinaryNeutronStars (BinaryNeutronStars &&)=default | |
| BinaryNeutronStars & | operator= (const BinaryNeutronStars &)=delete |
| BinaryNeutronStars & | operator= (BinaryNeutronStars &&)=default |
| Domain< 3 > | create_domain () const override |
| std::unordered_map< std::string, tnsr::I< double, 3, Frame::Grid > > | grid_anchors () const override |
| A set of named coordinates in the grid frame, like the center of the domain or the positions of specific objects in a domain. | |
| std::vector< DirectionMap< 3, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > > > | external_boundary_conditions () const override |
| The set of external boundary condition for every block in the domain. | |
| std::vector< std::array< size_t, 3 > > | initial_extents () const override |
| Obtain the initial grid extents of the Elements in each block. | |
| std::vector< std::array< size_t, 3 > > | initial_refinement_levels () const override |
| Obtain the initial refinement levels of the blocks. | |
| auto | functions_of_time (const std::unordered_map< std::string, double > &initial_expiration_times={}) const -> std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > override |
| Retrieve the functions of time used for moving meshes. | |
| std::vector< std::string > | block_names () const override |
| The block names, which use left/right directionality as from a viewer looking down the \(y\)-axis. | |
| std::unordered_map< std::string, std::unordered_set< std::string > > | block_groups () const override |
| The block groups, which are CubedCylinders, Wedges, Cylinders, and SphericalShells. The Wedges group is the subset of CubedCylinders consisting of the deformed cube wedges surrounding the central cubes. | |
| Public Member Functions inherited from DomainCreator< 3 > | |
| DomainCreator< VolumeDim > & | operator= (const DomainCreator< VolumeDim > &)=delete |
Static Public Attributes | |
| static constexpr Options::String | help |
| Static Public Attributes inherited from DomainCreator< 3 > | |
| static constexpr size_t | volume_dim |
A domain for a binary of two filled (non-excised) objects, such as two neutron stars.
The XAxisPoints option gives four \(x\)-coordinates [ \(x_{\rm left}\), \(x_B\), \(x_A\), \(x_{\rm right}\)]. If doing subcell, ideally these value plus \(x=0\) would be equally spaced, with the object centers lying on the \(x\)-axis at \(x_A\) and \(x_B\), with \(x_B < 0 < x_A\). The cubed cylinders extend from \(x_{\rm left} < x_B\) to \(x_{\rm right} > x_A\). The domain has three layers, from the inside out:
The interfaces between the cubed cylinders and the cylinders, and between the cylinders and the innermost spherical shell, are non-conforming.
The Bulge option selects the maps for the deformed-cube wedges and the hollow cylinders. When false, the wedges are extruded 2D wedges, so their outer faces lie on a circular cylinder of radius WedgeOuterRadius. When true, the wedges use FlatOffsetWedge maps whose outer faces lie on spheres centered on each object. The sphere around the object farther from the origin has radius WedgeOuterRadius, and the radius of the other sphere is chosen so that the two spheres meet the \(x = 0\) plane in the same circle.
Time-dependent maps (expansion, rotation, and translation) are supported through TimeDependentMaps. Shape maps are not supported, because there are no excision surfaces. The time-dependent maps are a RotScaleTrans map centered at the origin. All blocks inside CylinderOuterRadius are mapped rigidly. In the spherical shells the expansion transitions to ExpansionOuterBoundary and the translation falls off to zero at OuterRadius, while the rotation is applied everywhere.
| using domain::creators::BinaryNeutronStars::options |
|
inlineoverridevirtual |
The block groups, which are CubedCylinders, Wedges, Cylinders, and SphericalShells. The Wedges group is the subset of CubedCylinders consisting of the deformed cube wedges surrounding the central cubes.
Reimplemented from DomainCreator< 3 >.
|
inlineoverridevirtual |
The block names, which use left/right directionality as from a viewer looking down the \(y\)-axis.
The block names start with the central cubes:
Then there are the cylinders:
Finally, there are the spherical shells: SphericalShell0, SphericalShell1, etc., one for each radial partition of the region between CylinderOuterRadius and OuterRadius.
Reimplemented from DomainCreator< 3 >.
|
overridevirtual |
Implements DomainCreator< 3 >.
|
overridevirtual |
The set of external boundary condition for every block in the domain.
Implements DomainCreator< 3 >.
|
overridevirtual |
Retrieve the functions of time used for moving meshes.
Reimplemented from DomainCreator< 3 >.
|
inlineoverridevirtual |
A set of named coordinates in the grid frame, like the center of the domain or the positions of specific objects in a domain.
Reimplemented from DomainCreator< 3 >.
|
overridevirtual |
Obtain the initial grid extents of the Elements in each block.
Implements DomainCreator< 3 >.
|
overridevirtual |
Obtain the initial refinement levels of the blocks.
Implements DomainCreator< 3 >.
|
staticconstexpr |