|
|
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, bool DenseOutput>
struct evolution::dg::ApplyBoundaryCorrections< LocalTimeStepping, Metavariables, DenseOutput >
Apply corrections from boundary communication.
This is usually used indirectly through ApplyBoundaryCorrectionsToTimeDerivative, ApplyLtsBoundaryCorrections, or ApplyLtsDenseBoundaryCorrections.
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.