Tatooine
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
tatooine::spacetime_vectorfield< V > Struct Template Reference

#include <spacetime_vectorfield.h>

Inheritance diagram for tatooine::spacetime_vectorfield< V >:
[legend]
Collaboration diagram for tatooine::spacetime_vectorfield< V >:
[legend]

Public Types

using this_type = spacetime_vectorfield< V >
 
using parent_type = vectorfield< this_type, field_real_type< V >, field_num_dimensions< V >+1 >
 
using pos_type = vec< real_type, NumDimensions >
 
using real_type = Real
 
using tensor_type = Tensor
 
- Public Types inherited from tatooine::field< DerivedField, Real, NumDimensions, Tensor >
using this_type = field< DerivedField, Real, NumDimensions, Tensor >
 
using parent_type = polymorphic::field< Real, NumDimensions, Tensor >
 
using pos_type = vec< real_type, NumDimensions >
 
using real_type = Real
 
using tensor_type = Tensor
 
- Public Types inherited from tatooine::polymorphic::field< Real, NumDimensions, Tensor >
using real_type = Real
 
using tensor_type = Tensor
 
using this_type = field< real_type, NumDimensions, Tensor >
 
using pos_type = vec< real_type, NumDimensions >
 

Public Member Functions

 spacetime_vectorfield (spacetime_vectorfield const &other)=default
 
 spacetime_vectorfield (spacetime_vectorfield &&other) noexcept=default
 
auto operator= (spacetime_vectorfield const &other) -> spacetime_vectorfield &=default
 
auto operator= (spacetime_vectorfield &&other) noexcept -> spacetime_vectorfield &=default
 
virtual ~spacetime_vectorfield ()=default
 
constexpr spacetime_vectorfield ()
 
constexpr spacetime_vectorfield (polymorphic::vectorfield< real_type, num_dimensions() - 1 > const *v)
 
template<std::convertible_to< V > W>
requires (!is_pointer<V>)
constexpr spacetime_vectorfield (vectorfield< W, real_type, num_dimensions() - 1 > const &w)
 
constexpr auto evaluate (pos_type const &x, real_type const) const -> tensor_type
 
template<typename W >
requires is_pointer<V>
auto set_field (vectorfield< W, real_type, num_dimensions() - 1 > const &v)
 
auto set_field (polymorphic::vectorfield< real_type, num_dimensions() - 1 > const &v)
 
auto set_field (polymorphic::vectorfield< real_type, num_dimensions() - 1 > const *v)
 
- Public Member Functions inherited from tatooine::field< DerivedField, Real, NumDimensions, Tensor >
 field ()=default
 
 field (field const &)=default
 
 field (field &&) noexcept=default
 
auto operator= (field const &) -> field &=default
 
auto operator= (field &&) noexcept -> field &=default
 
virtual ~field ()=default
 
auto as_derived () -> auto &
 
auto as_derived () const -> auto const &
 
auto evaluate (pos_type const &x, real_type const t) const -> tensor_type override
 
- Public Member Functions inherited from tatooine::polymorphic::field< Real, NumDimensions, Tensor >
constexpr field ()=default
 
constexpr field (field const &)=default
 
constexpr field (field &&) noexcept=default
 
constexpr auto operator= (field const &) -> field &=default
 
constexpr auto operator= (field &&) noexcept -> field &=default
 
virtual ~field ()=default
 
virtual constexpr auto evaluate (pos_type const &, real_type const) const -> tensor_type=0
 
constexpr auto evaluate (fixed_size_vec< NumDimensions > auto const &x) const -> tensor_type
 
constexpr auto operator() (fixed_size_vec< NumDimensions > auto const &x, real_type const t) const -> tensor_type
 
constexpr auto operator() (fixed_size_vec< NumDimensions > auto const &x) const -> tensor_type
 
constexpr auto operator() (arithmetic auto const ... xs) const -> tensor_type
 

Static Public Member Functions

static constexpr auto num_dimensions () -> std::size_t
 
- Static Public Member Functions inherited from tatooine::polymorphic::field< Real, NumDimensions, Tensor >
static auto constexpr ood_tensor ()
 
static auto constexpr ood_position ()
 
static constexpr auto is_field ()
 
static constexpr auto is_scalarfield ()
 
static constexpr auto is_vectorfield ()
 
static constexpr auto is_matrixfield ()
 
static constexpr auto num_dimensions () -> std::size_t
 
static constexpr auto num_tensor_components ()
 
static constexpr auto tensor_rank ()
 
static constexpr auto tensor_dimension (std::size_t i)
 

Static Public Attributes

static constexpr auto holds_field_pointer = is_pointer<V>
 

Private Member Functions

auto v () -> auto &
 
auto v () const -> auto const &
 

Private Attributes

m_v
 

Member Typedef Documentation

◆ parent_type

template<typename V >
using tatooine::spacetime_vectorfield< V >::parent_type = vectorfield<this_type, field_real_type<V>, field_num_dimensions<V> + 1>

◆ pos_type

template<typename V >
using tatooine::polymorphic::field< Real, NumDimensions, Tensor >::pos_type = vec<real_type, NumDimensions>

◆ real_type

template<typename V >
using tatooine::polymorphic::field< Real, NumDimensions, Tensor >::real_type = Real

◆ tensor_type

template<typename V >
using tatooine::polymorphic::field< Real, NumDimensions, Tensor >::tensor_type = Tensor

◆ this_type

template<typename V >
using tatooine::spacetime_vectorfield< V >::this_type = spacetime_vectorfield<V>

Constructor & Destructor Documentation

◆ spacetime_vectorfield() [1/5]

template<typename V >
tatooine::spacetime_vectorfield< V >::spacetime_vectorfield ( spacetime_vectorfield< V > const &  other)
default

◆ spacetime_vectorfield() [2/5]

template<typename V >
tatooine::spacetime_vectorfield< V >::spacetime_vectorfield ( spacetime_vectorfield< V > &&  other)
defaultnoexcept

◆ ~spacetime_vectorfield()

template<typename V >
virtual tatooine::spacetime_vectorfield< V >::~spacetime_vectorfield ( )
virtualdefault

◆ spacetime_vectorfield() [3/5]

template<typename V >
constexpr tatooine::spacetime_vectorfield< V >::spacetime_vectorfield ( )
inlineconstexpr

◆ spacetime_vectorfield() [4/5]

template<typename V >
constexpr tatooine::spacetime_vectorfield< V >::spacetime_vectorfield ( polymorphic::vectorfield< real_type, num_dimensions() - 1 > const *  v)
inlineexplicitconstexpr

◆ spacetime_vectorfield() [5/5]

template<typename V >
template<std::convertible_to< V > W>
requires (!is_pointer<V>)
constexpr tatooine::spacetime_vectorfield< V >::spacetime_vectorfield ( vectorfield< W, real_type, num_dimensions() - 1 > const &  w)
inlineconstexpr

Member Function Documentation

◆ evaluate()

template<typename V >
constexpr auto tatooine::spacetime_vectorfield< V >::evaluate ( pos_type const &  x,
real_type const   
) const -> tensor_type
inlineconstexprvirtual

◆ num_dimensions()

template<typename V >
static constexpr auto tatooine::spacetime_vectorfield< V >::num_dimensions ( ) -> std::size_t
inlinestaticconstexpr

◆ operator=() [1/2]

template<typename V >
auto tatooine::spacetime_vectorfield< V >::operator= ( spacetime_vectorfield< V > &&  other) -> spacetime_vectorfield &=default
defaultnoexcept

◆ operator=() [2/2]

template<typename V >
auto tatooine::spacetime_vectorfield< V >::operator= ( spacetime_vectorfield< V > const &  other) -> spacetime_vectorfield &=default
default

◆ set_field() [1/3]

template<typename V >
auto tatooine::spacetime_vectorfield< V >::set_field ( polymorphic::vectorfield< real_type, num_dimensions() - 1 > const &  v)
inline

◆ set_field() [2/3]

template<typename V >
auto tatooine::spacetime_vectorfield< V >::set_field ( polymorphic::vectorfield< real_type, num_dimensions() - 1 > const *  v)
inline

◆ set_field() [3/3]

template<typename V >
template<typename W >
requires is_pointer<V>
auto tatooine::spacetime_vectorfield< V >::set_field ( vectorfield< W, real_type, num_dimensions() - 1 > const &  v)
inline

◆ v() [1/2]

template<typename V >
auto tatooine::spacetime_vectorfield< V >::v ( ) -> auto&
inlineprivate

◆ v() [2/2]

template<typename V >
auto tatooine::spacetime_vectorfield< V >::v ( ) const -> auto const&
inlineprivate

Member Data Documentation

◆ holds_field_pointer

template<typename V >
constexpr auto tatooine::spacetime_vectorfield< V >::holds_field_pointer = is_pointer<V>
staticconstexpr

◆ m_v

template<typename V >
V tatooine::spacetime_vectorfield< V >::m_v
private

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