Tatooine
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
tatooine::structured_grid< Real, NumDimensions, IndexOrder > Struct Template Reference

#include <structured_grid.h>

Inheritance diagram for tatooine::structured_grid< Real, NumDimensions, IndexOrder >:
[legend]
Collaboration diagram for tatooine::structured_grid< Real, NumDimensions, IndexOrder >:
[legend]

Classes

struct  hierarchy_type
 
struct  linear_cell_sampler_type
 

Public Types

using this_type = structured_grid
 
using pointset_parent_type = pointset< Real, NumDimensions >
 
using multidim_size_parent_t = dynamic_multidim_size< IndexOrder >
 
template<typename T >
using typed_vertex_property_type = pointset_parent_type::template typed_vertex_property_type< T >
 
- Public Types inherited from tatooine::pointset< Real, NumDimensions >
using real_type = Real
 
using this_type = pointset< Real, NumDimensions >
 
using vec_type = vec< Real, NumDimensions >
 
using pos_type = vec_type
 
using flann_index_type = flann::Index< flann::L2< Real > >
 
using vertex_container = detail::pointset::vertex_container< Real, NumDimensions >
 
using const_vertex_container = detail::pointset::const_vertex_container< Real, NumDimensions >
 
using vertex_property_type = vector_property< vertex_handle >
 
template<typename T >
using typed_vertex_property_type = typed_vector_property< vertex_handle, T >
 
using vertex_property_container_type = std::map< std::string, std::unique_ptr< vertex_property_type > >
 
template<typename T >
using inverse_distance_weighting_sampler_type = detail::pointset::inverse_distance_weighting_sampler< Real, NumDimensions, T >
 
template<typename T >
using natural_neighbor_coordinates_sampler_type = detail::pointset::natural_neighbor_coordinates_sampler< Real, NumDimensions, T >
 
template<typename T , typename Gradient >
using natural_neighbor_coordinates_sampler_with_gradients_type = detail::pointset::natural_neighbor_coordinates_sampler_with_gradients< Real, NumDimensions, T, Gradient >
 
- Public Types inherited from tatooine::dynamic_multidim_size< IndexOrder >
using this_type = dynamic_multidim_size< IndexOrder >
 
using index_order_type = IndexOrder
 

Public Member Functions

 structured_grid ()=default
 
 structured_grid (structured_grid const &)=default
 
 structured_grid (structured_grid &&) noexcept=default
 
auto operator= (structured_grid const &) -> structured_grid &=default
 
auto operator= (structured_grid &&) noexcept -> structured_grid &=default
 
 structured_grid (filesystem::path const &path)
 
 structured_grid (integral auto const ... size)
 
auto hierarchy () const -> auto const &
 
auto update_hierarchy () const
 
auto insert_vertex (arithmetic auto const ... ts)=delete
 
auto vertex_at (integral auto const ... is) const -> auto const &
 
auto vertex_at (integral auto const ... is) -> auto &
 
auto resize (integral auto const ... sizes)
 
auto write (filesystem::path const &path) -> void
 
template<typename HeaderType = std::uint64_t>
auto write_vts (filesystem::path const &path) -> void
 
auto read (filesystem::path const &path) -> void
 
auto read_vts (filesystem::path const &path) -> void
 
auto local_cell_coordinates (pos_type const x, integral auto const ... is) const -> pos_type
 
auto local_cell_coordinates (pos_type const x, std::array< std::size_t, NumDimensions > const &cell) const -> pos_type
 
template<typename T >
auto linear_vertex_property_sampler (typed_vertex_property_type< T > const &prop) const
 
template<typename T >
auto linear_vertex_property_sampler (std::string const &name) const
 
- Public Member Functions inherited from tatooine::pointset< Real, NumDimensions >
 pointset ()=default
 
 ~pointset ()=default
 
 pointset (std::initializer_list< pos_type > &&vertices)
 
 pointset (pointset const &other)
 
 pointset (pointset &&other) noexcept
 
 pointset (std::vector< pos_type > const &vertices)
 
 pointset (std::vector< pos_type > &&vertices)
 
 pointset (filesystem::path const &path)
 
auto operator= (pointset const &other) -> pointset &
 
auto operator= (pointset &&other) noexcept -> pointset &=default
 
auto axis_aligned_bounding_box () const
 
auto vertex_properties () const -> auto const &
 
auto vertex_properties () -> auto &
 
auto has_vertex_property (std::string const &name) const
 
auto at (vertex_handle const v) -> auto &
 
auto at (vertex_handle const v) const -> auto const &
 
auto vertex_at (vertex_handle const v) -> auto &
 
auto vertex_at (vertex_handle const v) const -> auto const &
 
auto vertex_at (std::size_t const i) -> auto &
 
auto vertex_at (std::size_t const i) const -> auto const &
 
auto operator[] (vertex_handle const v) -> auto &
 
auto operator[] (vertex_handle const v) const -> auto const &
 
auto vertices () const
 
auto vertices ()
 
auto num_vertices () const
 
auto num_vertex_properties () const
 
auto vertex_position_data () const -> auto const &
 
auto invalid_vertices () const -> auto const &
 
auto tidy_up ()
 tidies up invalid vertices More...
 
auto remove (vertex_handle const v)
 
constexpr auto is_valid (vertex_handle const v) const -> bool
 
auto clear_vertices ()
 
auto clear ()
 
template<invocable< pos_type > F>
auto sample_to_vertex_property (F &&f, std::string const &name) -> auto &
 
template<invocable< pos_type > F>
auto sample_to_vertex_property (F &&f, std::string const &name, execution_policy::sequential_t) -> auto &
 
template<invocable< pos_type > F>
auto sample_to_vertex_property (F &&f, std::string const &name, execution_policy::parallel_t) -> auto &
 
auto join (this_type const &other)
 
auto find_duplicates (Real eps=1e-6)
 
template<typename T >
auto radial_basis_functions_sampler_with_linear_kernel (typed_vertex_property_type< T > const &prop) const
 Constructs a radial basis functions interpolator. More...
 
template<typename T >
auto radial_basis_functions_sampler_with_cubic_kernel (typed_vertex_property_type< T > const &prop) const
 Constructs a radial basis functions interpolator. More...
 
template<typename T >
auto radial_basis_functions_sampler_with_gaussian_kernel (typed_vertex_property_type< T > const &prop, Real const epsilon) const
 Constructs a radial basis functions interpolator. More...
 
template<typename T >
auto radial_basis_functions_sampler_with_thin_plate_spline_kernel (typed_vertex_property_type< T > const &prop) const
 Constructs a radial basis functions interpolator. More...
 
template<typename T >
auto radial_basis_functions_sampler (typed_vertex_property_type< T > const &prop, invocable< Real > auto &&f) const
 Constructs a radial basis functions interpolator. More...
 
template<typename T >
auto radial_basis_functions_sampler (typed_vertex_property_type< T > const &prop) const
 Constructs a radial basis functions interpolator with thin plate spline kernel. More...
 
template<typename ValueType , typename GradientType >
auto radial_basis_functions_sampler (typed_vertex_property_type< ValueType > const &values, typed_vertex_property_type< GradientType > const &gradients) const
 Constructs a radial basis functions interpolator that also takes the gradients of the property. More...
 
auto insert_vertex (arithmetic auto const ... ts)
 
auto insert_vertex (pos_type const &v)
 
auto insert_vertex (pos_type &&v)
 
template<typename T >
auto vertex_property (std::string const &name) -> auto &
 using specified vertices of point_set More...
 
template<typename T >
auto vertex_property (std::string const &name) const -> const auto &
 
auto scalar_vertex_property (std::string const &name) const -> auto const &
 
auto scalar_vertex_property (std::string const &name) -> auto &
 
auto vec2_vertex_property (std::string const &name) const -> auto const &
 
auto vec2_vertex_property (std::string const &name) -> auto &
 
auto vec3_vertex_property (std::string const &name) const -> auto const &
 
auto vec3_vertex_property (std::string const &name) -> auto &
 
auto vec4_vertex_property (std::string const &name) const -> auto const &
 
auto vec4_vertex_property (std::string const &name) -> auto &
 
auto mat2_vertex_property (std::string const &name) const -> auto const &
 
auto mat2_vertex_property (std::string const &name) -> auto &
 
auto mat3_vertex_property (std::string const &name) const -> auto const &
 
auto mat3_vertex_property (std::string const &name) -> auto &
 
auto mat4_vertex_property (std::string const &name) const -> auto const &
 
auto mat4_vertex_property (std::string const &name) -> auto &
 
template<typename T >
auto insert_vertex_property (std::string const &name, T const &value=T{}) -> auto &
 
auto insert_scalar_vertex_property (std::string const &name, tatooine::real_number const value=tatooine::real_number{}) -> auto &
 
auto insert_vec2_vertex_property (std::string const &name, tatooine::vec2 const value=tatooine::vec2{}) -> auto &
 
auto insert_vec3_vertex_property (std::string const &name, tatooine::vec3 const value=tatooine::vec3{}) -> auto &
 
auto insert_vec4_vertex_property (std::string const &name, tatooine::vec4 const value=tatooine::vec4{}) -> auto &
 
auto insert_mat2_vertex_property (std::string const &name, tatooine::mat2 const value=tatooine::mat2{}) -> auto &
 
auto insert_mat3_vertex_property (std::string const &name, tatooine::mat3 const value=tatooine::mat3{}) -> auto &
 
auto insert_mat4_vertex_property (std::string const &name, tatooine::mat4 const value=tatooine::mat4{}) -> auto &
 
auto read (filesystem::path const &p)
 
auto read_vtp (filesystem::path const &path) -> void requires(NumDimensions==2)||(NumDimensions==3)
 
template<typename T >
auto inverse_distance_weighting_sampler (typed_vertex_property_type< T > const &prop, Real const radius=1) const
 
template<typename T >
requires (NumDimensions == 3 || NumDimensions == 2)
auto moving_least_squares_sampler (typed_vertex_property_type< T > const &prop, Real const radius, invocable< real_type > auto &&weighting) const
 Moving Least Squares Sampler. More...
 
template<typename T >
requires (NumDimensions == 3 || NumDimensions == 2)
auto moving_least_squares_sampler (typed_vertex_property_type< T > const &prop, Real const radius) const
 Moving Least Squares Sampler. More...
 
template<typename T >
auto natural_neighbor_coordinates_sampler (typed_vertex_property_type< T > const &prop) const
 
template<typename T , typename Gradient >
auto natural_neighbor_coordinates_sampler_with_gradients (typed_vertex_property_type< T > const &prop, typed_vertex_property_type< Gradient > const &gradients) const
 
auto write (filesystem::path const &path) const
 
auto write_vtk (filesystem::path const &path, std::string const &title="Tatooine pointset") const -> void requires(NumDimensions==3||NumDimensions==2)
 
auto write_vtp (filesystem::path const &path) const
 
auto rebuild_kd_tree ()
 
auto build_kd_tree_index ()
 
auto invalidate_kd_tree () const
 
auto nearest_neighbor (pos_type const &x) const
 
auto nearest_neighbors_raw (pos_type const &x, std::size_t const num_nearest_neighbors, flann::SearchParams const params={}) const
 
auto nearest_neighbors (pos_type const &x, std::size_t const num_nearest_neighbors) const
 
auto nearest_neighbors_radius_raw (pos_type const &x, Real const radius, flann::SearchParams const params={}) const -> std::pair< std::vector< int >, std::vector< Real > >
 
auto nearest_neighbors_radius (pos_type const &x, Real const radius) const
 
- Public Member Functions inherited from tatooine::dynamic_multidim_size< IndexOrder >
 dynamic_multidim_size ()=default
 
 dynamic_multidim_size (dynamic_multidim_size const &other)=default
 
 dynamic_multidim_size (dynamic_multidim_size &&other) noexcept=default
 
auto operator= (dynamic_multidim_size const &other) -> dynamic_multidim_size &=default
 
auto operator= (dynamic_multidim_size &&other) noexcept -> dynamic_multidim_size &=default
 
 ~dynamic_multidim_size ()=default
 
template<typename OtherIndexing >
 dynamic_multidim_size (dynamic_multidim_size< OtherIndexing > const &other)
 
template<typename OtherIndexing >
 dynamic_multidim_size (dynamic_multidim_size< OtherIndexing > &&other)
 
template<typename OtherIndexing >
auto operator= (dynamic_multidim_size< OtherIndexing > const &other) -> dynamic_multidim_size &
 
template<typename OtherIndexing >
auto operator= (dynamic_multidim_size< OtherIndexing > &&other) -> dynamic_multidim_size &
 
 dynamic_multidim_size (integral auto const ... size)
 
 dynamic_multidim_size (std::vector< std::size_t > &&size)
 
 dynamic_multidim_size (integral_range auto const &size)
 
template<typename OtherIndexing >
auto operator== (dynamic_multidim_size< OtherIndexing > const &other) const
 
template<typename OtherIndexing >
auto operator!= (dynamic_multidim_size< OtherIndexing > const &other) const
 
auto num_dimensions () const
 
auto size () const -> auto const &
 
auto size (std::size_t const i) const
 
auto num_components () const
 
auto resize (integral auto const ... size) -> void
 
auto resize (integral_range auto const &size) -> void
 
auto resize (std::vector< std::size_t > &&size) -> void
 
auto resize (std::vector< std::size_t > const &size) -> void
 
auto constexpr in_range (integral auto const ... indices) const
 
auto constexpr in_range (integral_range auto const &indices) const
 
auto constexpr plain_index (integral auto const ... indices) const
 
auto constexpr plain_index (integral_range auto const &indices) const
 
auto constexpr multi_index (std::size_t const gi) const
 
auto begin_indices () const
 
auto end_indices () const
 
auto indices () const
 

Static Public Member Functions

static auto constexpr num_dimensions ()
 
- Static Public Member Functions inherited from tatooine::pointset< Real, NumDimensions >
static constexpr auto num_dimensions () -> std::size_t
 

Public Attributes

std::unique_ptr< hierarchy_typem_hierarchy
 

Additional Inherited Members

- Protected Attributes inherited from tatooine::pointset< Real, NumDimensions >
std::vector< pos_typem_vertex_position_data
 

Member Typedef Documentation

◆ multidim_size_parent_t

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
using tatooine::structured_grid< Real, NumDimensions, IndexOrder >::multidim_size_parent_t = dynamic_multidim_size<IndexOrder>

◆ pointset_parent_type

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
using tatooine::structured_grid< Real, NumDimensions, IndexOrder >::pointset_parent_type = pointset<Real, NumDimensions>

◆ this_type

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
using tatooine::structured_grid< Real, NumDimensions, IndexOrder >::this_type = structured_grid

◆ typed_vertex_property_type

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
template<typename T >
using tatooine::structured_grid< Real, NumDimensions, IndexOrder >::typed_vertex_property_type = pointset_parent_type::template typed_vertex_property_type<T>

Constructor & Destructor Documentation

◆ structured_grid() [1/5]

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
tatooine::structured_grid< Real, NumDimensions, IndexOrder >::structured_grid ( )
default

◆ structured_grid() [2/5]

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
tatooine::structured_grid< Real, NumDimensions, IndexOrder >::structured_grid ( structured_grid< Real, NumDimensions, IndexOrder > const &  )
default

◆ structured_grid() [3/5]

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
tatooine::structured_grid< Real, NumDimensions, IndexOrder >::structured_grid ( structured_grid< Real, NumDimensions, IndexOrder > &&  )
defaultnoexcept

◆ structured_grid() [4/5]

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
tatooine::structured_grid< Real, NumDimensions, IndexOrder >::structured_grid ( filesystem::path const &  path)
inline

◆ structured_grid() [5/5]

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
tatooine::structured_grid< Real, NumDimensions, IndexOrder >::structured_grid ( integral auto const ...  size)
inline

Member Function Documentation

◆ hierarchy()

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
auto tatooine::structured_grid< Real, NumDimensions, IndexOrder >::hierarchy ( ) const -> auto const&
inline

◆ insert_vertex()

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
auto tatooine::structured_grid< Real, NumDimensions, IndexOrder >::insert_vertex ( arithmetic auto const ...  ts)
delete

◆ linear_vertex_property_sampler() [1/2]

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
template<typename T >
auto tatooine::structured_grid< Real, NumDimensions, IndexOrder >::linear_vertex_property_sampler ( std::string const &  name) const
inline

◆ linear_vertex_property_sampler() [2/2]

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
template<typename T >
auto tatooine::structured_grid< Real, NumDimensions, IndexOrder >::linear_vertex_property_sampler ( typed_vertex_property_type< T > const &  prop) const
inline

◆ local_cell_coordinates() [1/2]

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
auto tatooine::structured_grid< Real, NumDimensions, IndexOrder >::local_cell_coordinates ( pos_type const  x,
integral auto const ...  is 
) const -> pos_type
inline

◆ local_cell_coordinates() [2/2]

template<typename Real , std::size_t NumDimensions, typename IndexOrder >
auto tatooine::structured_grid< Real, NumDimensions, IndexOrder >::local_cell_coordinates ( pos_type const  x,
std::array< std::size_t, NumDimensions > const &  cell 
) const -> pos_type

◆ num_dimensions()

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
static auto constexpr tatooine::structured_grid< Real, NumDimensions, IndexOrder >::num_dimensions ( )
inlinestaticconstexpr

◆ operator=() [1/2]

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
auto tatooine::structured_grid< Real, NumDimensions, IndexOrder >::operator= ( structured_grid< Real, NumDimensions, IndexOrder > &&  ) -> structured_grid &=default
defaultnoexcept

◆ operator=() [2/2]

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
auto tatooine::structured_grid< Real, NumDimensions, IndexOrder >::operator= ( structured_grid< Real, NumDimensions, IndexOrder > const &  ) -> structured_grid &=default
default

◆ read()

template<typename Real , std::size_t NumDimensions, typename IndexOrder >
auto tatooine::structured_grid< Real, NumDimensions, IndexOrder >::read ( filesystem::path const &  path) -> void

◆ read_vts()

template<typename Real , std::size_t NumDimensions, typename IndexOrder >
auto tatooine::structured_grid< Real, NumDimensions, IndexOrder >::read_vts ( filesystem::path const &  path) -> void

◆ resize()

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
auto tatooine::structured_grid< Real, NumDimensions, IndexOrder >::resize ( integral auto const ...  sizes)
inline

◆ update_hierarchy()

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
auto tatooine::structured_grid< Real, NumDimensions, IndexOrder >::update_hierarchy ( ) const
inline

◆ vertex_at() [1/2]

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
auto tatooine::structured_grid< Real, NumDimensions, IndexOrder >::vertex_at ( integral auto const ...  is) -> auto&
inline

◆ vertex_at() [2/2]

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
auto tatooine::structured_grid< Real, NumDimensions, IndexOrder >::vertex_at ( integral auto const ...  is) const -> auto const&
inline

◆ write()

template<typename Real , std::size_t NumDimensions, typename IndexOrder >
auto tatooine::structured_grid< Real, NumDimensions, IndexOrder >::write ( filesystem::path const &  path) -> void

◆ write_vts()

template<typename Real , std::size_t NumDimensions, typename IndexOrder >
template<typename HeaderType >
auto tatooine::structured_grid< Real, NumDimensions, IndexOrder >::write_vts ( filesystem::path const &  path) -> void

Member Data Documentation

◆ m_hierarchy

template<typename Real , std::size_t NumDimensions, typename IndexOrder = x_fastest>
std::unique_ptr<hierarchy_type> tatooine::structured_grid< Real, NumDimensions, IndexOrder >::m_hierarchy
mutable

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