SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
Cce::CharacteristicEvolution< Metavariables > Struct Template Reference

The component for handling the CCE evolution and waveform output. More...

#include <CharacteristicEvolution.hpp>

Public Types

using chare_type = Parallel::Algorithms::Singleton
using metavariables = Metavariables
using cce_system = Cce::System<evolve_ccm>
using initialize_action_list
using simple_tags_from_options
template<typename BondiTag>
using hypersurface_computation
using compute_scri_quantities_and_observe
using self_start_extract_action_list
using extract_action_list
using phase_dependent_action_list

Static Public Member Functions

static void initialize (Parallel::CProxy_GlobalCache< Metavariables > &)
static void execute_next_phase (const Parallel::Phase next_phase, const Parallel::CProxy_GlobalCache< Metavariables > &global_cache)

Static Public Attributes

static constexpr bool checkpoint_data = true
static constexpr bool evolve_ccm = Metavariables::evolve_ccm

Detailed Description

template<class Metavariables>
struct Cce::CharacteristicEvolution< Metavariables >

The component for handling the CCE evolution and waveform output.

Details

The DataBox associated with the CharacteristicEvolution will contain many spin-weighted volume tags associated with the ongoing CCE computation, as well as storage for the boundary values and quantities related to managing the evolution.

Metavariables requirements:

  • Phases:
    • Initialization
    • Evolve
  • Type aliases:
    • evolved_coordinates_variables_tag: A Tags::Variables with real-valued tensors associated with coordinates that must be evolved.
    • evolved_swsh_tags: The spin-weighted quantities to be evolved (typically BondiJ).
    • evolved_swsh_dt_tags: The spin-weighed quantities associated that are to act as the time derivative to evolve evolved_swsh_tags (typically BondiH).
    • cce_boundary_communication_tags: A typelist of tags that will be communicated between the worldtube boundary component and the extraction component (typically Cce::Tags::characteristic_worldtube_boundary_tags<Tags::BoundaryValue>)
    • cce_gauge_boundary_tags: A typelist of tags that will be derived via GaugeAdjustedBoundaryValue and corresponding gauge utilities
    • cce_integrand_tags: A typelist of tags needed as inputs to the linear solve. Obtainable from the metafunction Cce::integrand_terms_to_compute_for_bondi_variable.
    • cce_integration_independent_tags: A typelist of tags that are to be computed and stored for each hypersurface iteration, but have no dependencies on the intermediate hypersurface steps (typically Cce::pre_computation_steps).
    • cce_temporary_equations_tags: A typelist of temporary buffers maintained for intermediate steps in the integrand equations. Obtainable from the metafunction Cce::integrand_terms_to_compute_for_bondi_variable.
    • cce_pre_swsh_derivatives_tags: A typelist of inputs to spin-weighted derivative calculations to compute and cache for intermediate steps of the CCE calculation. (typically Cce::all_pre_swsh_derivative_tags)
    • cce_swsh_derivative_tags: A typelist of spin-weighted derivatives to compute and cache for intermediate steps of the CCE calculation. (typically Cce::all_swsh_derivative_tags)
    • cce_transform_buffer_tags: A typelist of spin-weighted spherical harmonic transform modes used to compute the spin-weighted derivatives in the modal representation. (typically Cce::all_transform_buffer_tags).
    • cce_angular_coordinate_tags: A typelist of real-valued angular coordinates that are not evolved.
    • cce_scri_tags: the tags of quantities to compute at scri+
    • cce_hypersurface_initialization: a mutator (for use with Actions::MutateApply) that is used to compute the initial hypersurface data from the boundary data.

Member Typedef Documentation

◆ compute_scri_quantities_and_observe

template<class Metavariables>
using Cce::CharacteristicEvolution< Metavariables >::compute_scri_quantities_and_observe
Initial value:
tmpl::list<
tmpl::transform<typename metavariables::cce_scri_tags,
tmpl::bind<CalculateScriPlusValue, tmpl::_1>>>,
tmpl::transform<
typename metavariables::scri_values_to_observe,
tmpl::bind<
tmpl::pin<typename Metavariables::cce_boundary_component>>>,
typename Metavariables::cce_boundary_component>>
Apply the function Mutator::apply to the DataBox.
Definition MutateApply.hpp:49
Calculates the Bondi quantities that are required for any of the CalculateScriPlusValue mutators.
Definition CalculateScriInputs.hpp:40
Places the data from the current hypersurface necessary to compute Tag in the ScriPlusInterpolationMa...
Definition InsertInterpolationScriData.hpp:135
Checks the interpolation managers and if they are ready, performs the interpolation and sends the dat...
Definition ScriObserveInterpolated.hpp:114
Definition ScriPlusValues.hpp:24
The nodegroup parallel component that is responsible for writing data to disk.
Definition ObserverComponent.hpp:52

◆ hypersurface_computation

template<class Metavariables>
template<typename BondiTag>
using Cce::CharacteristicEvolution< Metavariables >::hypersurface_computation
Initial value:
tmpl::list<
tmpl::transform<integrand_terms_to_compute_for_bondi_variable<BondiTag>,
tmpl::bind<ComputeBondiIntegrand, tmpl::_1>>>,
tmpl::conditional_t<
tmpl::list<
tmpl::conditional_t<
typename Metavariables::cce_boundary_component>,
tmpl::list<>,
tmpl::conditional_t<evolve_ccm,
tmpl::list<>>>,
tmpl::list<>>>
constexpr bool is_a_v
Definition IsA.hpp:62
T is_same_v
Prepare the input quantities in the DataBox for the evaluation of the hypersurface integral used to c...
Definition CharacteristicEvolutionBondiCalculations.hpp:36
Component that supplies CCE worldtube boundary data sourced from an analytic solution.
Definition WorldtubeBoundary.hpp:167
Computes the gauge-transformed Tags::EvolutionGaugeBoundaryValue<Tag> for any of the boundary tags ne...
Definition GaugeTransformBoundaryData.hpp:41
Update the inertial gauge cartesian coordinate derivative .
Definition GaugeTransformBoundaryData.hpp:638
A set of procedures for computing the set of inputs to the CCE integrand computations that can be com...
Definition PrecomputeCceDependencies.hpp:63
Computational structs for evaluating the hypersurface integrals during CCE evolution....
Definition LinearSolve.hpp:108
The value , where is Bondi radius of the worldtube.
Definition Tags.hpp:329
A prefix tag representing the gauge-transformed boundary data for a quantity on the extraction surfac...
Definition Tags.hpp:269

◆ initialize_action_list

template<class Metavariables>
using Cce::CharacteristicEvolution< Metavariables >::initialize_action_list
Initial value:
tmpl::list<
typename Metavariables::evolved_coordinates_variables_tag,
typename Metavariables::evolved_swsh_tags,
Metavariables::local_time_stepping>,
typename Metavariables::scri_values_to_observe,
typename Metavariables::cce_boundary_component>,
Initializes the CharacteristicEvolution component with contents needed to perform the interpolation a...
Definition InitializeCharacteristicEvolutionScri.hpp:47
Initializes the contents of the CharacteristicEvolution component for performing the time evolution o...
Definition InitializeCharacteristicEvolutionTime.hpp:71
Initializes the main data storage for the CharacteristicEvolution component, which is the singleton t...
Definition InitializeCharacteristicEvolutionVariables.hpp:71
Terminate the algorithm to proceed to the next phase.
Definition TerminatePhase.hpp:28

◆ phase_dependent_action_list

template<class Metavariables>
using Cce::CharacteristicEvolution< Metavariables >::phase_dependent_action_list
Initial value:
tmpl::list<
initialize_action_list>,
self_start_extract_action_list, cce_system,
@ Initialization
initial phase of an executable
Definition Phase.hpp:67
@ InitializeTimeStepperHistory
phase in which the time stepper executes a self-start procedure
Definition Phase.hpp:72
tmpl::flatten< tmpl::list< SelfStart::Actions::Initialize< System, CacheTagPrefix >, ::Actions::Label< detail::PhaseStart >, SelfStart::Actions::CheckForCompletion< detail::PhaseEnd, System >, ::Actions::MutateApply< AdvanceTime< CacheTagPrefix > >, SelfStart::Actions::CheckForOrderIncrease, StepActions, ::Actions::Goto< detail::PhaseStart >, ::Actions::Label< detail::PhaseEnd >, SelfStart::Actions::Cleanup, ::Actions::MutateApply< AdvanceTime< CacheTagPrefix > >, Parallel::Actions::TerminatePhase > > self_start_procedure
The list of actions required to self-start an integrator.
Definition SelfStartActions.hpp:458
Tag for duplicating functionality of another tag, but allows creation from options in the Cce::Evolut...
Definition OptionTags.hpp:266
List of all the actions to be executed in the specified phase.
Definition PhaseDependentActionList.hpp:17

◆ simple_tags_from_options

template<class Metavariables>
using Cce::CharacteristicEvolution< Metavariables >::simple_tags_from_options
Initial value:
tmpl::remove_duplicates< tmpl::flatten< tmpl::transform< InitializationActionsList, detail::get_simple_tags_from_options_from_action< tmpl::_1 > > > > get_simple_tags_from_options
Given a list of initialization actions, returns a list of the unique simple_tags_from_options for all...
Definition ParallelComponentHelpers.hpp:295

The documentation for this struct was generated from the following file:
  • src/Evolution/Systems/Cce/Components/CharacteristicEvolution.hpp