Tags::DivVariablesCompute< Tag, InverseJacobianTag > Struct Template Reference

Compute the divergence of a Variables. More...

`#include <Divergence.hpp>`

## Public Types | |

using | base = db::add_tag_prefix< div, Tag > |

using | return_type = typename base::type |

using | argument_tags = tmpl::list< Tag, domain::Tags::Mesh< dim >, InverseJacobianTag > |

## Static Public Attributes | |

static constexpr void(* | function )(const gsl::not_null< return_type * >, const typename Tag::type &, const Mesh< dim > &, const typename InverseJacobianTag::type &) = divergence |

struct Tags::DivVariablesCompute< Tag, InverseJacobianTag >

Compute the divergence of a Variables.

Computes the divergence of the every Tensor in the Variables represented by `Tag`

. The first index of each Tensor must be an upper spatial index, i.e., the first index must have type `TensorIndexType<Dim, UpLo::Up, Frame::TargetFrame, IndexType::Spatial>`

. The divergence is computed in the frame `TargetFrame`

, and `InverseJacobianTag`

must be associated with a map from `Frame::Logical`

to `Frame::TargetFrame`

.

Note that each tensor may have additional tensor indices - in this case the divergence is computed for each additional index. For instance, a tensor \(F^i_{ab}\) has divergence \(Div_{ab} = \partial_i F^i_{ab}\). This is to accommodate evolution equations where the evolved variables \(u_\alpha\) are higher-rank tensors and thus their fluxes can be written as \(F^i_\alpha\). A simple example would be the fluid velocity in hydro systems, where we would write the flux as \(F^{ij}\).

This tag inherits from `db::add_tag_prefix<Tags::div, Tag>`

.

The documentation for this struct was generated from the following file:

- src/NumericalAlgorithms/LinearOperators/Divergence.hpp

© Copyright 2017 - 2021 SXS Collaboration, Distributed under the MIT License