SpECTRE
v2024.09.29
|
A general domain for two compact objects. More...
#include <BinaryCompactObject.hpp>
Classes | |
struct | CartesianCubeAtXCoord |
struct | CenterOfMassOffset |
struct | CubeScale |
struct | Envelope |
struct | EnvelopeRadius |
struct | Excision |
Options for an excision region in the domain. More... | |
struct | InitialGridPoints |
struct | InitialRefinement |
struct | Object |
Options for one of the two objects in the binary domain. More... | |
struct | ObjectA |
struct | ObjectB |
struct | OpeningAngle |
struct | OuterBoundaryCondition |
struct | OuterRadius |
struct | OuterShell |
struct | RadialDistributionEnvelope |
struct | RadialDistributionOuterShell |
struct | TimeDependentMaps |
struct | UseEquiangularMap |
Public Member Functions | |
BinaryCompactObject (typename ObjectA::type object_A, typename ObjectB::type object_B, std::array< double, 2 > center_of_mass_offset, double envelope_radius, double outer_radius, double cube_scale, const typename InitialRefinement::type &initial_refinement, const typename InitialGridPoints::type &initial_number_of_grid_points, bool use_equiangular_map=true, CoordinateMaps::Distribution radial_distribution_envelope=CoordinateMaps::Distribution::Projective, CoordinateMaps::Distribution radial_distribution_outer_shell=CoordinateMaps::Distribution::Linear, double opening_angle_in_degrees=90.0, std::optional< bco::TimeDependentMapOptions< false > > time_dependent_options=std::nullopt, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > outer_boundary_condition=nullptr, const Options::Context &context={}) | |
BinaryCompactObject (const BinaryCompactObject &)=delete | |
BinaryCompactObject (BinaryCompactObject &&)=default | |
BinaryCompactObject & | operator= (const BinaryCompactObject &)=delete |
BinaryCompactObject & | operator= (BinaryCompactObject &&)=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. More... | |
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. More... | |
std::vector< std::array< size_t, 3 > > | initial_extents () const override |
Obtain the initial grid extents of the Elements in each block. More... | |
std::vector< std::array< size_t, 3 > > | initial_refinement_levels () const override |
Obtain the initial refinement levels of the blocks. More... | |
std::vector< std::string > | block_names () const override |
A human-readable name for every block, or empty if the domain creator doesn't support block names (yet). More... | |
std::unordered_map< std::string, std::unordered_set< std::string > > | block_groups () const override |
Labels to refer to groups of blocks. The groups can overlap, and they don't have to cover all blocks in the domain. The groups can be used to refer to multiple blocks at once when specifying input-file options. More... | |
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. More... | |
Public Member Functions inherited from DomainCreator< 3 > | |
DomainCreator (const DomainCreator< VolumeDim > &)=delete | |
DomainCreator (DomainCreator< VolumeDim > &&)=default | |
DomainCreator< VolumeDim > & | operator= (const DomainCreator< VolumeDim > &)=delete |
DomainCreator< VolumeDim > & | operator= (DomainCreator< VolumeDim > &&)=default |
virtual Domain< VolumeDim > | create_domain () const=0 |
virtual std::unordered_map< std::string, tnsr::I< double, VolumeDim, Frame::Grid > > | grid_anchors () const |
A set of named coordinates in the grid frame, like the center of the domain or the positions of specific objects in a domain. More... | |
virtual std::vector< DirectionMap< VolumeDim, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > > > | external_boundary_conditions () const=0 |
The set of external boundary condition for every block in the domain. More... | |
virtual std::vector< std::string > | block_names () const |
A human-readable name for every block, or empty if the domain creator doesn't support block names (yet). More... | |
virtual std::unordered_map< std::string, std::unordered_set< std::string > > | block_groups () const |
Labels to refer to groups of blocks. The groups can overlap, and they don't have to cover all blocks in the domain. The groups can be used to refer to multiple blocks at once when specifying input-file options. More... | |
virtual std::vector< std::array< size_t, VolumeDim > > | initial_extents () const=0 |
Obtain the initial grid extents of the Elements in each block. More... | |
virtual std::vector< std::array< size_t, VolumeDim > > | initial_refinement_levels () const=0 |
Obtain the initial refinement levels of the blocks. More... | |
virtual 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 > > |
Retrieve the functions of time used for moving meshes. More... | |
Static Public Attributes | |
static constexpr Options::String | help |
Static Public Attributes inherited from DomainCreator< 3 > | |
static constexpr size_t | volume_dim |
A general domain for two compact objects.
Creates a 3D Domain that represents a binary compact object solution. The Domain consists of 4 or 5 nested layers of blocks; these layers are, working from the interior toward the exterior:
domain::creators::bco::create_grid_anchors
for which ones are offered.Expansion
, a Rotation
and a piecewise Translation
is applied to all blocks from the Grid to the Inertial frame. However, if there is a shape map in the block (defined below), then the expansion, rotation, and translation maps go from the Distorted to the Inertial frame.Shape
map. The shape map goes from the Grid to the Distorted frame.All time dependent maps are optional to specify. To include a map, specify its options. Otherwise specify None
for that map. You can also turn off time dependent maps all together by specifying None
for the TimeDependentMaps
option. See domain::creators::bco::TimeDependentMapOptions
. This class must pass a template parameter of false
to domain::creators::bco::TimeDependentMapOptions
.
The UseWorldtube
template parameter is set to false by default. When set to true, some of the functions of time will be IntegratedFunctionOfTime
used to control the orbit of the worldtube.
|
inlineoverridevirtual |
Labels to refer to groups of blocks. The groups can overlap, and they don't have to cover all blocks in the domain. The groups can be used to refer to multiple blocks at once when specifying input-file options.
Reimplemented from DomainCreator< 3 >.
|
inlineoverridevirtual |
A human-readable name for every block, or empty if the domain creator doesn't support block names (yet).
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 >.
|
inlineoverridevirtual |
Obtain the initial grid extents of the Elements in each block.
Implements DomainCreator< 3 >.
|
inlineoverridevirtual |
Obtain the initial refinement levels of the blocks.
Implements DomainCreator< 3 >.
|
staticconstexpr |