Skip to content

Commit

Permalink
Add Cce Tags (shared with PR sxs-collaboration#1397)
Browse files Browse the repository at this point in the history
  • Loading branch information
moxcodes committed Sep 6, 2019
1 parent b3a7340 commit 5e0bbcf
Showing 1 changed file with 15 additions and 1 deletion.
16 changes: 15 additions & 1 deletion src/Evolution/Systems/Cce/Tags.hpp
Expand Up @@ -7,6 +7,7 @@
#include "DataStructures/SpinWeighted.hpp"
#include "DataStructures/Tensor/Tensor.hpp"
#include "DataStructures/Tensor/TypeAliases.hpp"
#include "NumericalAlgorithms/Spectral/SwshTags.hpp"

namespace Cce {

Expand Down Expand Up @@ -88,10 +89,17 @@ struct Dy : db::PrefixTag, db::SimpleTag {
using type = Scalar<SpinWeighted<ComplexDataVector, Tag::type::type::spin>>;
using tag = Tag;
static const size_t dimension_to_differentiate = 2;
static const size_t dim = 3;
static std::string name() noexcept { return "Dy(" + Tag::name() + ")"; }
};

/// The derivative with respect to Bondi \f$r\f$
template <typename Tag>
struct Dr : db::PrefixTag, db::SimpleTag {
using type = Scalar<SpinWeighted<ComplexDataVector, Tag::type::type::spin>>;
using tag = Tag;
static std::string name() noexcept { return "Dr(" + Tag::name() + ")"; }
};

// prefix tags associated with the integrands which are used as input to solvers
// for the CCE equations

Expand Down Expand Up @@ -195,20 +203,26 @@ struct DuRDividedByR : db::SimpleTag {
/// radius of the worldtube.
struct EthRDividedByR : db::SimpleTag {
using type = Scalar<SpinWeighted<ComplexDataVector, 1>>;
using derivative_kind = Spectral::Swsh::Tags::Eth;
static constexpr int spin = 1;
static std::string name() noexcept { return "EthRDividedByR"; }
};

/// The value \f$\eth \eth R / R\f$, where \f$R(u, \theta, \phi)\f$ is Bondi
/// radius of the worldtube.
struct EthEthRDividedByR : db::SimpleTag {
using type = Scalar<SpinWeighted<ComplexDataVector, 2>>;
using derivative_kind = Spectral::Swsh::Tags::EthEth;
static constexpr int spin = 2;
static std::string name() noexcept { return "EthEthRDividedByR"; }
};

/// The value \f$\eth \bar{\eth} R / R\f$, where \f$R(u, \theta, \phi)\f$ is
/// Bondi radius of the worldtube.
struct EthEthbarRDividedByR : db::SimpleTag {
using type = Scalar<SpinWeighted<ComplexDataVector, 0>>;
using derivative_kind = Spectral::Swsh::Tags::EthEthbar;
static constexpr int spin = 0;
static std::string name() noexcept { return "EthEthbarRDividedByR"; }
};

Expand Down

0 comments on commit 5e0bbcf

Please sign in to comment.