Tatooine
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes | List of all members
tatooine::symbolic::field< real_type, N, TensorDims > Struct Template Reference

#include <symbolic_field.h>

Inheritance diagram for tatooine::symbolic::field< real_type, N, TensorDims >:
[legend]
Collaboration diagram for tatooine::symbolic::field< real_type, N, TensorDims >:
[legend]

Public Types

using this_type = field< real_type, N, TensorDims... >
 
using parent_t = tatooine::field< this_type, real_type, N, TensorDims... >
 
using symtensor_type = tensor< GiNaC::ex, TensorDims... >
 
using pos_type = vec< real_type, NumDimensions >
 
using tensor_type = Tensor
 
- Public Types inherited from tatooine::field< field< real_type, N, TensorDims... >, real_type, N, TensorDims... >
using this_type = field< field< real_type, N, TensorDims... >, real_type, NumDimensions, TensorDims... >
 
using parent_type = polymorphic::field< real_type, NumDimensions, TensorDims... >
 
using pos_type = vec< real_type, NumDimensions >
 
using real_type = real_type
 
using tensor_type = TensorDims...
 
- 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

constexpr field ()=default
 
constexpr field (const symtensor_type &ex)
 
constexpr field (symtensor_type &&ex)
 
auto expr () const -> const auto &
 
template<size_t... Is>
auto evaluate (const pos_type &_x, double _t, std::index_sequence< Is... >) const -> tensor_type
 
auto evaluate (const pos_type &_x, double _t) const -> tensor_type
 
constexpr auto in_domain (const pos_type &, double) const
 
- Public Member Functions inherited from tatooine::field< field< real_type, N, TensorDims... >, real_type, N, TensorDims... >
 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 auto x (size_t i) -> auto &
 
static auto t () -> auto &
 
- 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)
 

Protected Member Functions

void set_expr (const symtensor_type &ex)
 
void set_expr (symtensor_type &&ex)
 

Private Attributes

symtensor_type m_expr
 

Member Typedef Documentation

◆ parent_t

template<typename real_type , size_t N, size_t... TensorDims>
using tatooine::symbolic::field< real_type, N, TensorDims >::parent_t = tatooine::field<this_type, real_type, N, TensorDims...>

◆ pos_type

template<typename real_type , size_t N, size_t... TensorDims>
using tatooine::polymorphic::field< Real, NumDimensions, Tensor >::pos_type = vec<real_type, NumDimensions>

◆ symtensor_type

template<typename real_type , size_t N, size_t... TensorDims>
using tatooine::symbolic::field< real_type, N, TensorDims >::symtensor_type = tensor<GiNaC::ex, TensorDims...>

◆ tensor_type

template<typename real_type , size_t N, size_t... TensorDims>
using tatooine::polymorphic::field< Real, NumDimensions, Tensor >::tensor_type = Tensor

◆ this_type

template<typename real_type , size_t N, size_t... TensorDims>
using tatooine::symbolic::field< real_type, N, TensorDims >::this_type = field<real_type, N, TensorDims...>

Constructor & Destructor Documentation

◆ field() [1/3]

template<typename real_type , size_t N, size_t... TensorDims>
constexpr tatooine::symbolic::field< real_type, N, TensorDims >::field ( )
constexprdefault

◆ field() [2/3]

template<typename real_type , size_t N, size_t... TensorDims>
constexpr tatooine::symbolic::field< real_type, N, TensorDims >::field ( const symtensor_type ex)
inlineexplicitconstexpr

◆ field() [3/3]

template<typename real_type , size_t N, size_t... TensorDims>
constexpr tatooine::symbolic::field< real_type, N, TensorDims >::field ( symtensor_type &&  ex)
inlineexplicitconstexpr

Member Function Documentation

◆ evaluate() [1/2]

template<typename real_type , size_t N, size_t... TensorDims>
auto tatooine::symbolic::field< real_type, N, TensorDims >::evaluate ( const pos_type _x,
double  _t 
) const -> tensor_type
inline

◆ evaluate() [2/2]

template<typename real_type , size_t N, size_t... TensorDims>
template<size_t... Is>
auto tatooine::symbolic::field< real_type, N, TensorDims >::evaluate ( const pos_type _x,
double  _t,
std::index_sequence< Is... >   
) const -> tensor_type
inline

◆ expr()

template<typename real_type , size_t N, size_t... TensorDims>
auto tatooine::symbolic::field< real_type, N, TensorDims >::expr ( ) const -> const auto&
inline

◆ in_domain()

template<typename real_type , size_t N, size_t... TensorDims>
constexpr auto tatooine::symbolic::field< real_type, N, TensorDims >::in_domain ( const pos_type ,
double   
) const
inlineconstexpr

◆ set_expr() [1/2]

template<typename real_type , size_t N, size_t... TensorDims>
void tatooine::symbolic::field< real_type, N, TensorDims >::set_expr ( const symtensor_type ex)
inlineprotected

◆ set_expr() [2/2]

template<typename real_type , size_t N, size_t... TensorDims>
void tatooine::symbolic::field< real_type, N, TensorDims >::set_expr ( symtensor_type &&  ex)
inlineprotected

◆ t()

template<typename real_type , size_t N, size_t... TensorDims>
static auto tatooine::symbolic::field< real_type, N, TensorDims >::t ( ) -> auto&
inlinestatic

◆ x()

template<typename real_type , size_t N, size_t... TensorDims>
static auto tatooine::symbolic::field< real_type, N, TensorDims >::x ( size_t  i) -> auto&
inlinestatic

Member Data Documentation

◆ m_expr

template<typename real_type , size_t N, size_t... TensorDims>
symtensor_type tatooine::symbolic::field< real_type, N, TensorDims >::m_expr
private

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