|
SpECTRE
2021.08.02
|
A general domain for two compact objects. More...
#include <BinaryCompactObject.hpp>
Classes | |
| struct | AdditionToOuterLayerRadialRefinementLevel |
| struct | EnvelopingCube |
| struct | Excision |
| Options for an excision region in the domain. More... | |
| struct | ExpansionFunctionOfTimeNames |
| The names of the functions of times to be added to the DataBox for the expansion map. More... | |
| struct | ExpansionMap |
| struct | ExpansionMapOuterBoundary |
The outer boundary or pivot point of the domain::CoordinateMaps::TimeDependent::CubicScale map. More... | |
| struct | InitialAngularVelocity |
| The angular velocity of the rotation. More... | |
| struct | InitialExpansion |
| The initial values of the expansion factors. More... | |
| struct | InitialExpansionVelocity |
| The velocity of the expansion factors. More... | |
| struct | InitialExpirationDeltaT |
| The initial time interval for updates of the functions of time. More... | |
| struct | InitialGridPoints |
| struct | InitialRefinement |
| struct | InitialRotationAngle |
| The initial value of the rotation angle. More... | |
| struct | InitialSizeMapAccelerations |
| Initial accelerations for functions of time for size maps for objects A,B. More... | |
| struct | InitialSizeMapValues |
| Initial values for functions of time for size maps for objects A,B. More... | |
| struct | InitialSizeMapVelocities |
| Initial velocities for functions of time for size maps for objects A,B. More... | |
| struct | InitialTime |
| The initial time of the functions of time. More... | |
| struct | Object |
| Options for one of the two objects in the binary domain. More... | |
| struct | ObjectA |
| struct | ObjectB |
| struct | OuterBoundaryCondition |
| struct | OuterSphere |
| struct | RadiusEnvelopingCube |
| struct | RadiusOuterSphere |
| struct | RotationAboutZAxisFunctionOfTimeName |
| The name of the function of time to be added to the added to the DataBox for the rotation-about-the-z-axis map. More... | |
| struct | RotationAboutZAxisMap |
| struct | SizeMap |
| struct | SizeMapFunctionOfTimeNames |
| The names of the functions of times to be added to the added to the DataBox for the size map. More... | |
| struct | TimeDependentMaps |
| struct | UseLogarithmicMapOuterSphericalShell |
| struct | UseProjectiveMap |
Public Member Functions | |
| BinaryCompactObject (Object object_A, Object object_B, double radius_enveloping_cube, double radius_enveloping_sphere, size_t initial_refinement, size_t initial_grid_points_per_dim, bool use_projective_map=true, bool use_logarithmic_map_outer_spherical_shell=false, size_t addition_to_outer_layer_radial_refinement_level=0, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > outer_boundary_condition=nullptr, const Options::Context &context={}) | |
| BinaryCompactObject (double initial_time, std::optional< double > initial_expiration_delta_t, double expansion_map_outer_boundary, std::array< double, 2 > initial_expansion, std::array< double, 2 > initial_expansion_velocity, std::array< std::string, 2 > expansion_function_of_time_names, double initial_rotation_angle, double initial_angular_velocity, std::string rotation_about_z_axis_function_of_time_name, std::array< double, 2 > initial_size_map_values, std::array< double, 2 > initial_size_map_velocities, std::array< double, 2 > initial_size_map_accelerations, std::array< std::string, 2 > size_map_function_of_time_names, Object object_A, Object object_B, double radius_enveloping_cube, double radius_enveloping_sphere, size_t initial_refinement, size_t initial_grid_points_per_dim, bool use_projective_map=true, bool use_logarithmic_map_outer_spherical_shell=false, size_t addition_to_outer_layer_radial_refinement_level=0, std::unique_ptr< domain::BoundaryConditions::BoundaryCondition > outer_boundary_condition=nullptr, const Options::Context &context={}) | |
| BinaryCompactObject (const BinaryCompactObject &)=delete | |
| BinaryCompactObject (BinaryCompactObject &&) noexcept=default | |
| BinaryCompactObject & | operator= (const BinaryCompactObject &)=delete |
| BinaryCompactObject & | operator= (BinaryCompactObject &&) noexcept=default |
| Domain< 3 > | create_domain () const noexcept override |
| std::vector< std::array< size_t, 3 > > | initial_extents () const noexcept override |
| Obtain the initial grid extents of the Elements in each block. More... | |
| std::vector< std::array< size_t, 3 > > | initial_refinement_levels () const noexcept override |
| Obtain the initial refinement levels of the blocks. More... | |
| auto | functions_of_time () const noexcept -> 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 > &&) noexcept=default | |
| DomainCreator< VolumeDim > & | operator= (const DomainCreator< VolumeDim > &)=delete |
| DomainCreator< VolumeDim > & | operator= (DomainCreator< VolumeDim > &&) noexcept=default |
Static Public Attributes | |
| static constexpr Options::String | help |
A general domain for two compact objects.
Creates a 3D Domain that represents a binary compact object solution. The Domain consists of 4, 5, or 6 nested layers of blocks; these layers are, working from the interior toward the exterior:
In the code and options below, ObjectA and ObjectB refer to the two compact objects, and by extension, also refer to the layers that immediately surround each compact object. Note that ObjectA is located to the left of the origin (along the negative x-axis) and ObjectB is located to the right of the origin. enveloping cube refers to the outer surface of Layer 3. outer sphere is the radius of the spherical outer boundary, which is the outer boundary of Layer 5. The enveloping cube and outer sphere are both centered at the origin. cutting plane refers to the plane along which the domain divides into two hemispheres. In the final coordinates, the cutting plane always intersects the x-axis at the origin.
ObjectA and ObjectB should be chosen such that the center of mass is located at x=0.domain that conforms to domain::protocols::Metavariables. If domain::enable_time_dependent_maps is either set to false or not specified in the metavariables, then this domain will be time-independent. If domain::enable_time_dependent_maps is set to true, then this domain also includes a time-dependent map, along with additional options (and a corresponding constructor) for initializing the time-dependent map. These options include InitialTime and InitialExpirationDeltaT, which specify the initial time and the initial updating time interval, respectively, for the FunctionsOfTime controlling the map. The time-dependent map itself consists of a composition of a CubicScale expansion map and a Rotation map about the z axis everywhere except possibly in layer 1; in that case, if ObjectA or ObjectB is excised, then the time-dependent map in the corresponding blocks in layer 1 is a composition of a SphericalCompression size map, a CubicScale expansion map, and a Rotation map about the z axis.
|
overridevirtualnoexcept |
Implements DomainCreator< 3 >.
|
overridevirtualnoexcept |
Retrieve the functions of time used for moving meshes.
Reimplemented from DomainCreator< 3 >.
|
overridevirtualnoexcept |
Obtain the initial grid extents of the Elements in each block.
Implements DomainCreator< 3 >.
|
overridevirtualnoexcept |
Obtain the initial refinement levels of the blocks.
Implements DomainCreator< 3 >.