|
|
template<typename... VolumeArgs> |
| static void | apply (const gsl::not_null< typename tag_to_update::type * > vars_to_update, const typename mortar_data_tag::type &mortar_data, const Mesh< volume_dim > &volume_mesh, const Element< volume_dim > &element, const typename Tags::MortarMesh< volume_dim >::type &mortar_meshes, const typename Tags::MortarInfo< volume_dim >::type &mortar_infos, const ::dg::Formulation dg_formulation, const DirectionMap< volume_dim, std::optional< Variables< tmpl::list< evolution::dg::Tags::MagnitudeOfNormal, evolution::dg::Tags::NormalCovector< volume_dim > > > > > &face_normal_covector_and_magnitude, const TimeStepperType &time_stepper, const evolution::BoundaryCorrection &boundary_correction, const TimeDelta &time_step, const Scalar< DataVector > >s_det_inv_jacobian, const VolumeArgs &... volume_args) |
|
template<typename... VolumeArgs> |
| static void | apply (const gsl::not_null< typename tag_to_update::type * > vars_to_update, const typename mortar_data_tag::type &mortar_data, const Mesh< volume_dim > &volume_mesh, const Element< volume_dim > &element, const typename Tags::MortarMesh< volume_dim >::type &mortar_meshes, const typename Tags::MortarInfo< volume_dim >::type &mortar_infos, const ::dg::Formulation dg_formulation, const DirectionMap< volume_dim, std::optional< Variables< tmpl::list< evolution::dg::Tags::MagnitudeOfNormal, evolution::dg::Tags::NormalCovector< volume_dim > > > > > &face_normal_covector_and_magnitude, const TimeStepperType &time_stepper, const evolution::BoundaryCorrection &boundary_correction, const TimeDelta &time_step, const VolumeArgs &... volume_args) |
|
template<typename... VolumeArgs> |
| static void | apply (const gsl::not_null< typename variables_tag::type * > vars_to_update, const typename mortar_data_tag::type &mortar_data, const Mesh< volume_dim > &volume_mesh, const Element< volume_dim > &element, const typename Tags::MortarMesh< volume_dim >::type &mortar_meshes, const typename Tags::MortarInfo< volume_dim >::type &mortar_infos, const ::dg::Formulation dg_formulation, const DirectionMap< volume_dim, std::optional< Variables< tmpl::list< evolution::dg::Tags::MagnitudeOfNormal, evolution::dg::Tags::NormalCovector< volume_dim > > > > > &face_normal_covector_and_magnitude, const LtsTimeStepper &time_stepper, const evolution::BoundaryCorrection &boundary_correction, const double dense_output_time, const VolumeArgs &... volume_args) |
|
template<typename DbTagsList, typename... InboxTags, typename ArrayIndex, typename ParallelComponent> |
| static bool | is_ready (const gsl::not_null< db::DataBox< DbTagsList > * > box, const gsl::not_null< tuples::TaggedTuple< InboxTags... > * > inboxes, Parallel::GlobalCache< Metavariables > &, const ArrayIndex &, const ParallelComponent *const) |
template<bool LocalTimeStepping, typename Metavariables, size_t VolumeDim, bool DenseOutput>
struct evolution::dg::ApplyBoundaryCorrections< LocalTimeStepping, Metavariables, VolumeDim, DenseOutput >
Apply corrections from boundary communication.
If LocalTimeStepping is false, updates the derivative of the variables, which should be done before taking a time step. If LocalTimeStepping is true, updates the variables themselves, which should be done after the volume update.
Setting DenseOutput to true receives data required for output at Tags::Time instead of performing a full step. This is only used for local time-stepping.