SpECTRE  v2025.08.19
Ccz4::fd Namespace Reference

The namespace for evolving the second-order Ccz4 system. Spatial derivatives are computed using 4-th order finite differencing. Currently this system only works in 3D. More...

Namespaces

namespace  OptionTags
 Option tags for evolving SoCcz4 with finite difference.
 
namespace  Tags
 Tags for evolving SoCcz4 with finite difference.
 

Classes

struct  ApplyFilter
 Apply the Kreiss-Oliger filter to the evolved variables. More...
 
struct  BoundaryConditionGhostData
 Computes finite difference ghost data for external boundary conditions. More...
 
class  DummyReconstructor
 Dummy reconstructor just to return the ghost zone size. More...
 
class  Reconstructor
 The base class from which all reconstruction schemes must inherit. More...
 
struct  SoTimeDerivative
 Compute the RHS of the second-order CCZ4 formulation of Einstein's equations [67] with finite differencing. More...
 
struct  System
 

Functions

void spacetime_derivatives (gsl::not_null< Variables< db::wrap_tags_in<::Tags::deriv, typename System::gradients_tags, tmpl::size_t< 3 >, Frame::Inertial > > * > result, const Variables< typename System::variables_tag::tags_list > &volume_evolved_variables, const DirectionalIdMap< 3, evolution::dg::subcell::GhostData > &all_ghost_data, const size_t &deriv_order, const Mesh< 3 > &volume_mesh, const InverseJacobian< DataVector, 3, Frame::ElementLogical, Frame::Inertial > &cell_centered_logical_to_inertial_inv_jacobian)
 Compute first partial derivatives of all the evolved variables in the second order Ccz4 system. More...
 
void second_spacetime_derivatives (gsl::not_null< Variables< db::wrap_tags_in<::Tags::second_deriv, System::gradients_tags, tmpl::size_t< 3 >, Frame::Inertial > > * > result, const Variables< typename System::variables_tag::tags_list > &volume_evolved_variables, const DirectionalIdMap< 3, evolution::dg::subcell::GhostData > &all_ghost_data, const size_t &deriv_order, const Mesh< 3 > &volume_mesh, const InverseJacobian< DataVector, 3, Frame::ElementLogical, Frame::Inertial > &cell_centered_logical_to_inertial_inv_jacobian)
 Compute second partial derivatives of all the evolved variables in the second order Ccz4 system. More...
 
void ccz4_kreiss_oliger_filter (gsl::not_null< Variables< System::variables_tag_list > * > result, const Variables< System::variables_tag_list > &volume_evolved_variables, const DirectionalIdMap< 3, evolution::dg::subcell::GhostData > &all_ghost_data, bool evolve_lapse_and_shift, const Mesh< 3 > &volume_mesh, size_t order, double epsilon)
 Apply a Kreiss-Oliger filter to System::variables_tag_list.
 

Variables

const size_t Dim = 3
 

Detailed Description

The namespace for evolving the second-order Ccz4 system. Spatial derivatives are computed using 4-th order finite differencing. Currently this system only works in 3D.

Function Documentation

◆ second_spacetime_derivatives()

void Ccz4::fd::second_spacetime_derivatives ( gsl::not_null< Variables< db::wrap_tags_in<::Tags::second_deriv, System::gradients_tags, tmpl::size_t< 3 >, Frame::Inertial > > * >  result,
const Variables< typename System::variables_tag::tags_list > &  volume_evolved_variables,
const DirectionalIdMap< 3, evolution::dg::subcell::GhostData > &  all_ghost_data,
const size_t &  deriv_order,
const Mesh< 3 > &  volume_mesh,
const InverseJacobian< DataVector, 3, Frame::ElementLogical, Frame::Inertial > &  cell_centered_logical_to_inertial_inv_jacobian 
)

Compute second partial derivatives of all the evolved variables in the second order Ccz4 system.

Details

The derivatives are computed using FD of order deriv_order.

Note
Only 3D 4-th order second derivatives are implemented in this stencil

◆ spacetime_derivatives()

void Ccz4::fd::spacetime_derivatives ( gsl::not_null< Variables< db::wrap_tags_in<::Tags::deriv, typename System::gradients_tags, tmpl::size_t< 3 >, Frame::Inertial > > * >  result,
const Variables< typename System::variables_tag::tags_list > &  volume_evolved_variables,
const DirectionalIdMap< 3, evolution::dg::subcell::GhostData > &  all_ghost_data,
const size_t &  deriv_order,
const Mesh< 3 > &  volume_mesh,
const InverseJacobian< DataVector, 3, Frame::ElementLogical, Frame::Inertial > &  cell_centered_logical_to_inertial_inv_jacobian 
)

Compute first partial derivatives of all the evolved variables in the second order Ccz4 system.

The derivatives are computed using FD of order deriv_order using stencil the same as fd::partial_derivatives().