Tatooine
Public Types | Public Member Functions | Static Public Member Functions | List of all members
tatooine::polymorphic::field< Real, NumDimensions, Tensor > Struct Template Referenceabstract

#include <field.h>

Inheritance diagram for tatooine::polymorphic::field< Real, NumDimensions, Tensor >:
[legend]

Public Types

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 (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 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)
 

Member Typedef Documentation

◆ pos_type

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

◆ real_type

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

◆ tensor_type

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

◆ this_type

template<typename Real , std::size_t NumDimensions, typename Tensor >
using tatooine::polymorphic::field< Real, NumDimensions, Tensor >::this_type = field<real_type, NumDimensions, Tensor>

Constructor & Destructor Documentation

◆ field() [1/3]

template<typename Real , std::size_t NumDimensions, typename Tensor >
constexpr tatooine::polymorphic::field< Real, NumDimensions, Tensor >::field ( )
constexprdefault

◆ field() [2/3]

template<typename Real , std::size_t NumDimensions, typename Tensor >
constexpr tatooine::polymorphic::field< Real, NumDimensions, Tensor >::field ( field< Real, NumDimensions, Tensor > const &  )
constexprdefault

◆ field() [3/3]

template<typename Real , std::size_t NumDimensions, typename Tensor >
constexpr tatooine::polymorphic::field< Real, NumDimensions, Tensor >::field ( field< Real, NumDimensions, Tensor > &&  )
constexprdefaultnoexcept

◆ ~field()

template<typename Real , std::size_t NumDimensions, typename Tensor >
virtual tatooine::polymorphic::field< Real, NumDimensions, Tensor >::~field ( )
virtualdefault

Reimplemented in tatooine::field< DerivedField, Real, NumDimensions, Tensor >, tatooine::field< real_type, 3, 3 >, tatooine::field< Real, 2, 2 >, tatooine::field< binary_operation_field< LHSInternalField, RHSInternalField, Op >, common_type< field_real_type< LHSInternalField >, field_real_type< RHSInternalField > >, field_num_dimensions< LHSInternalField >, std::invoke_result_t< Op, field_tensor_type< LHSInternalField >, field_tensor_type< RHSInternalField > > >, tatooine::field< constant_vectorfield< Real, N >, Real, N, N >, tatooine::field< curvature_field< V >, V::real_type, 2 >, tatooine::field< curvature_field< V >, V::real_type, 3 >, tatooine::field< differentiated_radial_basis_functions_sampler_with_gradients< Real, 2, ValueType, vec< ValueType, 2 > >, Real, 2, vec< ValueType, 2 > >, tatooine::field< differentiated_radial_basis_functions_sampler_with_gradients< Real, 2, vec< ValueType, 2 >, mat< ValueType, 2, 2 > >, Real, 2, mat< ValueType, 2, 2 > >, tatooine::field< inverse_distance_weighting_sampler< Real, NumDimensions, T >, Real, NumDimensions, T >, tatooine::field< moving_least_squares_sampler< Real, 2, T, Weighting >, Real, 2, T >, tatooine::field< moving_least_squares_sampler< Real, 3, T, Weighting >, Real, 3, T >, tatooine::field< natural_neighbor_coordinates_sampler< Real, NumDimensions, T >, Real, NumDimensions, T >, tatooine::field< natural_neighbor_coordinates_sampler_with_gradients< Real, NumDimensions, ValueType, Gradient >, Real, NumDimensions, ValueType >, tatooine::field< radial_basis_functions_sampler< Real, NumDimensions, T, Kernel >, Real, NumDimensions, T >, tatooine::field< radial_basis_functions_sampler_with_gradients< Real, 2, ValueType, vec< ValueType, 2 > >, Real, 2, ValueType >, tatooine::field< radial_basis_functions_sampler_with_gradients< Real, 2, vec< ValueType, 2 >, mat< ValueType, 2, 2 > >, Real, 2, vec< ValueType, 2 > >, tatooine::field< infinite_vertex_property_sampler< VertexPropSampler, RepeatedDims... >, VertexPropSampler::real_type, VertexPropSampler::num_dimensions(), VertexPropSampler::tensor_type >, tatooine::field< inverse_distance_weighting_vertex_property_sampler< Grid, Property >, Grid::real_type, Grid::num_dimensions(), Property::value_type >, tatooine::field< vertex_property_sampler< GridVertexProperty, InterpolationKernels... >, GridVertexProperty::real_type, sizeof...(InterpolationKernels), GridVertexProperty::value_type >, tatooine::field< vertex_property_sampler< Real, NumDimensions, SimplexDim, T >, Real, NumDimensions, T >, tatooine::field< analytical::numerical::autonomous_particles_test< Real >, Real, 2, 2, 2 >, tatooine::field< numerically_differentiated_field< InternalField >, field_real_type< InternalField >, field_num_dimensions< InternalField >, tensor_add_dimension_right< field_num_dimensions< InternalField >, field_tensor_type< InternalField > > >, tatooine::field< helicity_field< V >, V::real_type, 3, 3 >, tatooine::field< lambda2_field< V >, V::real_type, V::num_dimensions()>, tatooine::field< lambda_field< NumDimensions, F >, tatooine::value_type< std::invoke_result_t< F, vec< tatooine::real_number, NumDimensions >, tatooine::real_number > >, NumDimensions, std::invoke_result_t< F, vec< tatooine::real_number, NumDimensions >, tatooine::real_number > >, tatooine::field< orbit< Real >, Real, 3, 3 >, tatooine::field< rbc, double, 2, 2 >, tatooine::field< field< Real, N, TensorDims... >, Real, N, TensorDims... >, tatooine::field< steady_field< Field >, Field::real_type, Field::num_dimensions(), Field::tensor_type >, tatooine::field< structured_grid< Real, NumDimensions, IndexOrder >::linear_cell_sampler_type< T >, Real, NumDimensions, T >, tatooine::field< field< real_type, N, TensorDims... >, real_type, N, TensorDims... >, tatooine::field< time_differentiated_field< InternalField >, std::decay_t< InternalField >::real_type, std::decay_t< InternalField >::num_dimensions(), std::decay_t< InternalField >::tensor_type >, tatooine::field< unary_operation_field< Field, Op >, field_real_type< Field >, field_num_dimensions< Field >, std::invoke_result_t< Op, field_tensor_type< Field > > >, tatooine::field< vorticity_field< V >, V::real_type, 3, 3 >, tatooine::field< vertex_property_sampler< GridVertexProperty, InterpolationKernels... ... >, GridVertexProperty::real_type, sizeof...(InterpolationKernels...), GridVertexProperty::value_type >, and tatooine::field< vertex_property_sampler< GridVertexProperty, tatooine::interpolation::linear ... >, GridVertexProperty::real_type, sizeof...(tatooine::interpolation::linear), GridVertexProperty::value_type >.

Member Function Documentation

◆ evaluate() [1/2]

template<typename Real , std::size_t NumDimensions, typename Tensor >
constexpr auto tatooine::polymorphic::field< Real, NumDimensions, Tensor >::evaluate ( fixed_size_vec< NumDimensions > auto const &  x) const -> tensor_type
inlineconstexpr

◆ evaluate() [2/2]

template<typename Real , std::size_t NumDimensions, typename Tensor >
virtual constexpr auto tatooine::polymorphic::field< Real, NumDimensions, Tensor >::evaluate ( pos_type const &  ,
real_type const   
) const -> tensor_type
constexprpure virtual

Implemented in tatooine::analytical::numerical::cosinussinus< Real >, tatooine::analytical::numerical::sinuscosinus< Real >, tatooine::constant_vectorfield< Real, N >, tatooine::analytical::numerical::counterexample_sadlo< Real >, tatooine::numerical::orbit< Real >, tatooine::analytical::numerical::duffing_oscillator< Real >, tatooine::differentiated_field< analytical::numerical::center< Real > >, tatooine::analytical::numerical::doublegyre3d< Real >, tatooine::analytical::numerical::doublegyre3d< real_type >, tatooine::numerical::cylinder_flow< Real >, tatooine::analytical::numerical::tornado< Real >, tatooine::detail::pointset::moving_least_squares_sampler< Real, 2, T, Weighting >, tatooine::detail::pointset::moving_least_squares_sampler< Real, 3, T, Weighting >, tatooine::detail::pointset::radial_basis_functions_sampler< Real, NumDimensions, T, Kernel >, tatooine::detail::pointset::radial_basis_functions_sampler_with_gradients< Real, 2, ValueType, vec< ValueType, 2 > >, tatooine::detail::pointset::radial_basis_functions_sampler_with_gradients< Real, 2, vec< ValueType, 2 >, mat< ValueType, 2, 2 > >, tatooine::detail::pointset::differentiated_radial_basis_functions_sampler_with_gradients< Real, 2, ValueType, vec< ValueType, 2 > >, tatooine::detail::pointset::differentiated_radial_basis_functions_sampler_with_gradients< Real, 2, vec< ValueType, 2 >, mat< ValueType, 2, 2 > >, tatooine::analytical::numerical::forced_duffing_oscillator< Real >, tatooine::analytical::numerical::modified_doublegyre< Real >, tatooine::differentiated_field< analytical::numerical::saddle< Real, 2 > >, tatooine::analytical::numerical::center< Real >, tatooine::analytical::numerical::saddle< Real, 2 >, tatooine::analytical::numerical::saddle< Real, 3 >, tatooine::analytical::numerical::rotated_saddle< Real >, tatooine::Q_field< V >, tatooine::spacetime_splitted_vectorfield< V >, tatooine::spacetime_splitted_vectorfield< polymorphic::vectorfield< double, 3 > const * >, tatooine::unary_operation_field< Field, Op >, tatooine::analytical::numerical::rayleigh_benard_convection< Real >, tatooine::field< DerivedField, Real, NumDimensions, Tensor >, tatooine::field< constant_vectorfield< Real, N >, Real, N, N >, tatooine::field< differentiated_radial_basis_functions_sampler_with_gradients< Real, 2, ValueType, vec< ValueType, 2 > >, Real, 2, vec< ValueType, 2 > >, tatooine::field< differentiated_radial_basis_functions_sampler_with_gradients< Real, 2, vec< ValueType, 2 >, mat< ValueType, 2, 2 > >, Real, 2, mat< ValueType, 2, 2 > >, tatooine::field< inverse_distance_weighting_sampler< Real, NumDimensions, T >, Real, NumDimensions, T >, tatooine::field< moving_least_squares_sampler< Real, 2, T, Weighting >, Real, 2, T >, tatooine::field< moving_least_squares_sampler< Real, 3, T, Weighting >, Real, 3, T >, tatooine::field< natural_neighbor_coordinates_sampler< Real, NumDimensions, T >, Real, NumDimensions, T >, tatooine::field< natural_neighbor_coordinates_sampler_with_gradients< Real, NumDimensions, ValueType, Gradient >, Real, NumDimensions, ValueType >, tatooine::field< radial_basis_functions_sampler< Real, NumDimensions, T, Kernel >, Real, NumDimensions, T >, tatooine::field< radial_basis_functions_sampler_with_gradients< Real, 2, ValueType, vec< ValueType, 2 > >, Real, 2, ValueType >, tatooine::field< radial_basis_functions_sampler_with_gradients< Real, 2, vec< ValueType, 2 >, mat< ValueType, 2, 2 > >, Real, 2, vec< ValueType, 2 > >, tatooine::field< vertex_property_sampler< Real, NumDimensions, SimplexDim, T >, Real, NumDimensions, T >, tatooine::field< analytical::numerical::autonomous_particles_test< Real >, Real, 2, 2, 2 >, tatooine::field< orbit< Real >, Real, 3, 3 >, tatooine::field< field< Real, N, TensorDims... >, Real, N, TensorDims... >, tatooine::field< structured_grid< Real, NumDimensions, IndexOrder >::linear_cell_sampler_type< T >, Real, NumDimensions, T >, tatooine::analytical::numerical::abcflow< real_type >, tatooine::spacetime_vectorfield< V >, tatooine::spacetime_vectorfield< polymorphic::vectorfield< real_type, 2 > const *, real_type, 3 >, tatooine::steady_field< Field >, tatooine::detail::pointset::inverse_distance_weighting_sampler< Real, NumDimensions, T >, tatooine::detail::pointset::natural_neighbor_coordinates_sampler< Real, NumDimensions, T >, tatooine::detail::pointset::natural_neighbor_coordinates_sampler_with_gradients< Real, NumDimensions, ValueType, Gradient >, tatooine::analytical::numerical::autonomous_particles_test< Real >, and tatooine::differentiated_field< analytical::numerical::autonomous_particles_test< Real >, 2, 2 >.

◆ is_field()

template<typename Real , std::size_t NumDimensions, typename Tensor >
static constexpr auto tatooine::polymorphic::field< Real, NumDimensions, Tensor >::is_field ( )
inlinestaticconstexpr

◆ is_matrixfield()

template<typename Real , std::size_t NumDimensions, typename Tensor >
static constexpr auto tatooine::polymorphic::field< Real, NumDimensions, Tensor >::is_matrixfield ( )
inlinestaticconstexpr

◆ is_scalarfield()

template<typename Real , std::size_t NumDimensions, typename Tensor >
static constexpr auto tatooine::polymorphic::field< Real, NumDimensions, Tensor >::is_scalarfield ( )
inlinestaticconstexpr

◆ is_vectorfield()

template<typename Real , std::size_t NumDimensions, typename Tensor >
static constexpr auto tatooine::polymorphic::field< Real, NumDimensions, Tensor >::is_vectorfield ( )
inlinestaticconstexpr

◆ num_dimensions()

template<typename Real , std::size_t NumDimensions, typename Tensor >
static constexpr auto tatooine::polymorphic::field< Real, NumDimensions, Tensor >::num_dimensions ( ) -> std::size_t
inlinestaticconstexpr

◆ num_tensor_components()

template<typename Real , std::size_t NumDimensions, typename Tensor >
static constexpr auto tatooine::polymorphic::field< Real, NumDimensions, Tensor >::num_tensor_components ( )
inlinestaticconstexpr

◆ ood_position()

template<typename Real , std::size_t NumDimensions, typename Tensor >
static auto constexpr tatooine::polymorphic::field< Real, NumDimensions, Tensor >::ood_position ( )
inlinestaticconstexpr

◆ ood_tensor()

template<typename Real , std::size_t NumDimensions, typename Tensor >
static auto constexpr tatooine::polymorphic::field< Real, NumDimensions, Tensor >::ood_tensor ( )
inlinestaticconstexpr

◆ operator()() [1/3]

template<typename Real , std::size_t NumDimensions, typename Tensor >
constexpr auto tatooine::polymorphic::field< Real, NumDimensions, Tensor >::operator() ( arithmetic auto const ...  xs) const -> tensor_type
inlineconstexpr

◆ operator()() [2/3]

template<typename Real , std::size_t NumDimensions, typename Tensor >
constexpr auto tatooine::polymorphic::field< Real, NumDimensions, Tensor >::operator() ( fixed_size_vec< NumDimensions > auto const &  x) const -> tensor_type
inlineconstexpr

◆ operator()() [3/3]

template<typename Real , std::size_t NumDimensions, typename Tensor >
constexpr auto tatooine::polymorphic::field< Real, NumDimensions, Tensor >::operator() ( fixed_size_vec< NumDimensions > auto const &  x,
real_type const  t 
) const -> tensor_type
inlineconstexpr

◆ operator=() [1/2]

template<typename Real , std::size_t NumDimensions, typename Tensor >
constexpr auto tatooine::polymorphic::field< Real, NumDimensions, Tensor >::operator= ( field< Real, NumDimensions, Tensor > &&  ) -> field &=default
constexprdefaultnoexcept

◆ operator=() [2/2]

template<typename Real , std::size_t NumDimensions, typename Tensor >
constexpr auto tatooine::polymorphic::field< Real, NumDimensions, Tensor >::operator= ( field< Real, NumDimensions, Tensor > const &  ) -> field &=default
constexprdefault

◆ tensor_dimension()

template<typename Real , std::size_t NumDimensions, typename Tensor >
static constexpr auto tatooine::polymorphic::field< Real, NumDimensions, Tensor >::tensor_dimension ( std::size_t  i)
inlinestaticconstexpr

◆ tensor_rank()

template<typename Real , std::size_t NumDimensions, typename Tensor >
static constexpr auto tatooine::polymorphic::field< Real, NumDimensions, Tensor >::tensor_rank ( )
inlinestaticconstexpr

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