Tatooine
Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim > Struct Template Reference

#include <unstructured_simplicial_grid.h>

Inheritance diagram for tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >:
[legend]
Collaboration diagram for tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >:
[legend]

Classes

struct  simplex_handle
 

Public Types

using this_type = unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >
 
using real_type = Real
 
using parent_type = detail::unstructured_simplicial_grid::parent< this_type, Real, NumDimensions, SimplexDim >
 
template<typename T >
using vertex_property_sampler_type = detail::unstructured_simplicial_grid::vertex_property_sampler< Real, NumDimensions, SimplexDim, T >
 
template<typename T >
using typed_vertex_property_type = typename parent_type::template typed_vertex_property_type< T >
 
using hierarchy_type = typename parent_type::hierarchy_type
 
using simplex_container = detail::unstructured_simplicial_grid::simplex_container< Real, NumDimensions, SimplexDim >
 
template<typename T >
using simplex_property_type = typed_vector_property< simplex_handle, T >
 
using simplex_property_container_type = std::map< std::string, std::unique_ptr< vector_property< simplex_handle > > >
 
using const_simplex_at_return_type = detail::unstructured_simplicial_grid::simplex_at_return_type< vertex_handle const &, SimplexDim+1 >
 
using simplex_at_return_type = detail::unstructured_simplicial_grid::simplex_at_return_type< vertex_handle &, SimplexDim+1 >
 
- Public Types inherited from tatooine::detail::unstructured_simplicial_grid::parent< Mesh, Real, NumDimensions, SimplexDim >
using parent_type = pointset< Real, NumDimensions >
 
using hierarchy_type = hierarchy< Mesh, Real, NumDimensions, SimplexDim >
 
using const_simplex_at_return_type = detail::unstructured_simplicial_grid::simplex_at_return_type< vertex_handle const &, SimplexDim+1 >
 
using simplex_at_return_type = detail::unstructured_simplicial_grid::simplex_at_return_type< vertex_handle &, SimplexDim+1 >
 
- 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 Member Functions

auto simplex_index_data () const -> auto const &
 
auto invalid_simplices () const -> auto const &
 
auto simplex_properties () const -> auto const &
 
constexpr unstructured_simplicial_grid ()=default
 
 unstructured_simplicial_grid (unstructured_simplicial_grid const &other)
 
 unstructured_simplicial_grid (unstructured_simplicial_grid &&other) noexcept=default
 
auto operator= (unstructured_simplicial_grid const &other) -> unstructured_simplicial_grid &
 
auto operator= (unstructured_simplicial_grid &&other) noexcept -> unstructured_simplicial_grid &=default
 
 unstructured_simplicial_grid (std::filesystem::path const &path)
 
 unstructured_simplicial_grid (std::initializer_list< pos_type > &&vertices)
 
 unstructured_simplicial_grid (std::vector< vec< Real, NumDimensions > > const &positions)
 
 unstructured_simplicial_grid (std::vector< vec< Real, NumDimensions > > &&positions)
 
template<floating_point_range DimX, floating_point_range DimY>
requires (NumDimensions == 2) && (SimplexDim == 2)
 unstructured_simplicial_grid (rectilinear_grid< DimX, DimY > const &g)
 
template<floating_point_range DimX, floating_point_range DimY, floating_point_range DimZ>
requires (NumDimensions == 3) && (SimplexDim == 3)
 unstructured_simplicial_grid (rectilinear_grid< DimX, DimY, DimZ > const &g)
 
auto operator[] (simplex_handle t) const -> auto
 
auto operator[] (simplex_handle t) -> auto
 
auto at (simplex_handle t) const -> auto
 
auto at (simplex_handle t) -> auto
 
auto simplex_at (simplex_handle t) const -> auto
 
auto simplex_at (simplex_handle t) -> auto
 
template<std::size_t... Seq>
auto simplex_at (std::size_t const i) const
 
template<std::size_t... Seq>
auto simplex_at (std::size_t const i)
 
auto insert_vertex (arithmetic auto const ... comps)
 
auto insert_vertex (pos_type const &v)
 
auto insert_vertex (pos_type &&v)
 
auto remove (vertex_handle const vh)
 
auto remove_duplicate_vertices (Real const eps=Real{})
 
auto remove_duplicate_vertices (execution_policy::parallel_t, Real const eps=Real{})
 
auto remove_duplicate_vertices (execution_policy::sequential_t, Real const eps=Real{})
 
auto remove (simplex_handle const ch)
 
template<typename... Handles>
requires (is_same<Handles, vertex_handle> && ...)
auto insert_simplex (Handles const ... handles)
 
auto barycentric_coordinate (simplex_handle const &s, pos_type const &q) const
 
auto tidy_up ()
 
auto clear ()
 
auto simplices () const
 
auto clean_simplex_index_list () const
 
auto contains (simplex_handle const ch, vertex_handle const vh) const
 
auto build_delaunay_mesh ()
 
auto build_sub_delaunay_mesh (std::vector< vertex_handle > const &vertices)
 
auto build_delaunay_mesh (std::vector< std::pair< vertex_handle, vertex_handle > > const &constraints) -> void requires(NumDimensions==2)||(NumDimensions==3)
 
template<typename T >
auto simplex_property (std::string const &name) -> auto &
 
template<typename T >
auto simplex_property (std::string const &name) const -> const auto &
 
auto scalar_simplex_property (std::string const &name) const -> auto const &
 
auto scalar_simplex_property (std::string const &name) -> auto &
 
auto vec2_simplex_property (std::string const &name) const -> auto const &
 
auto vec2_simplex_property (std::string const &name) -> auto &
 
auto vec3_simplex_property (std::string const &name) const -> auto const &
 
auto vec3_simplex_property (std::string const &name) -> auto &
 
auto vec4_simplex_property (std::string const &name) const -> auto const &
 
auto vec4_simplex_property (std::string const &name) -> auto &
 
auto mat2_simplex_property (std::string const &name) const -> auto const &
 
auto mat2_simplex_property (std::string const &name) -> auto &
 
auto mat3_simplex_property (std::string const &name) const -> auto const &
 
auto mat3_simplex_property (std::string const &name) -> auto &
 
auto mat4_simplex_property (std::string const &name) const -> auto const &
 
auto mat4_simplex_property (std::string const &name) -> auto &
 
template<typename T >
auto insert_simplex_property (std::string const &name, T const &value=T{}) -> auto &
 
auto write (filesystem::path const &path) const
 
auto write_vtk (std::filesystem::path const &path, std::string const &title="tatooine grid") const
 
auto write_vtp (filesystem::path const &path) const
 
auto write_vtu (filesystem::path const &path) const
 
template<unsigned_integral HeaderType = std::uint64_t, integral ConnectivityInt = std::int64_t, integral OffsetInt = std::int64_t>
requires ((NumDimensions == 2 || NumDimensions == 3) && SimplexDim == 1)
auto write_vtp_edges (filesystem::path const &path) const
 
template<unsigned_integral HeaderType = std::uint64_t, integral ConnectivityInt = std::int64_t, integral OffsetInt = std::int64_t>
requires ((NumDimensions == 2 || NumDimensions == 3) && SimplexDim == 2)
auto write_vtp_triangles (filesystem::path const &path) const
 
template<unsigned_integral HeaderType = std::uint64_t, integral ConnectivityInt = std::int64_t, integral OffsetInt = std::int64_t, unsigned_integral CellTypesInt = std::uint8_t>
requires ((NumDimensions == 2 || NumDimensions == 3) && SimplexDim == 2)
auto write_vtu_triangular (filesystem::path const &path) const
 
template<unsigned_integral HeaderType = std::uint64_t, integral ConnectivityInt = std::int64_t, integral OffsetInt = std::int64_t, unsigned_integral CellTypesInt = std::uint8_t>
requires ((NumDimensions == 2 || NumDimensions == 3) && SimplexDim == 3)
auto write_vtu_tetrahedral (filesystem::path const &path) const
 
auto write_unstructured_triangular_grid_vtk (std::filesystem::path const &path, std::string const &title) const -> bool requires(SimplexDim==2)
 
auto write_unstructured_tetrahedral_grid_vtk (std::filesystem::path const &path, std::string const &title) const -> bool requires(SimplexDim==2)
 
auto read (std::filesystem::path const &path)
 
auto read_vtk (std::filesystem::path const &path)
 
constexpr auto is_valid (simplex_handle t) const
 
auto build_hierarchy () const
 
auto clear_hierarchy () const
 
auto hierarchy () const -> auto &
 
template<typename T >
auto sampler (typed_vertex_property_type< T > const &prop) const
 
template<typename T >
auto vertex_property_sampler (std::string const &name) const
 
template<typename F >
requires invocable_with_n_integrals<F, num_dimensions()> || invocable<F, pos_type>
auto sample_to_vertex_property (F &&f, std::string const &name) -> auto &
 
template<typename F >
requires invocable_with_n_integrals<F, num_dimensions()> || invocable<F, pos_type>
auto sample_to_vertex_property (F &&f, std::string const &name, execution_policy_tag auto tag) -> auto &
 
- 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
 

Static Public Member Functions

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

Private Member Functions

template<typename... TypesToCheck>
auto copy_prop (auto const &other_grid, std::string const &name, auto const &other_prop)
 
template<std::size_t... Seq>
auto simplex_at (std::size_t const i, std::index_sequence< Seq... >) const -> const_simplex_at_return_type
 
template<std::size_t... Seq>
auto simplex_at (std::size_t const i, std::index_sequence< Seq... >) -> simplex_at_return_type
 
template<std::size_t... Seq>
auto barycentric_coordinate (simplex_handle const &s, pos_type const &, std::index_sequence< Seq... >) const
 
auto reindex_simplices_vertex_handles ()
 tidies up invalid vertices More...
 
template<std::size_t... Is>
auto contains (simplex_handle const ch, vertex_handle const vh, std::index_sequence< Is... >) const
 
template<std::size_t... Seq>
auto build_delaunay_mesh (std::index_sequence< Seq... >) -> void requires(NumDimensions==2)||(NumDimensions==3)
 
template<std::size_t... Seq>
auto build_sub_delaunay_mesh (std::vector< vertex_handle > const &vertices, std::index_sequence< Seq... >) -> void requires(NumDimensions==2)||(NumDimensions==3)
 
template<std::size_t... Seq>
requires (NumDimensions == 2)
auto build_delaunay_mesh (std::vector< std::pair< vertex_handle, vertex_handle > > const &constraints, std::index_sequence< Seq... >) -> void
 
template<invocable< vertex_handle > F>
auto sample_to_vertex_property_vertex_handle (F &&f, std::string const &name, execution_policy_tag auto) -> auto &
 
template<invocable< pos_type > F>
auto sample_to_vertex_property_pos (F &&f, std::string const &name, execution_policy_tag auto) -> auto &
 
constexpr auto bounding_box () const
 

Private Attributes

std::vector< vertex_handlem_simplex_index_data
 
std::set< simplex_handlem_invalid_simplices
 
simplex_property_container_type m_simplex_properties
 
std::unique_ptr< hierarchy_typem_hierarchy
 

Friends

struct detail::unstructured_simplicial_grid::parent< this_type, Real, NumDimensions, SimplexDim >
 
struct detail::unstructured_simplicial_grid::simplex_container< Real, NumDimensions, SimplexDim >
 

Additional Inherited Members

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

Member Typedef Documentation

◆ const_simplex_at_return_type

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
using tatooine::detail::unstructured_simplicial_grid::parent< Mesh, Real, NumDimensions, SimplexDim >::const_simplex_at_return_type = detail::unstructured_simplicial_grid::simplex_at_return_type< vertex_handle const&, SimplexDim + 1>

◆ hierarchy_type

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
using tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::hierarchy_type = typename parent_type::hierarchy_type

◆ parent_type

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
using tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::parent_type = detail::unstructured_simplicial_grid::parent<this_type, Real, NumDimensions, SimplexDim>

◆ real_type

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
using tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::real_type = Real

◆ simplex_at_return_type

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
using tatooine::detail::unstructured_simplicial_grid::parent< Mesh, Real, NumDimensions, SimplexDim >::simplex_at_return_type = detail::unstructured_simplicial_grid::simplex_at_return_type< vertex_handle&, SimplexDim + 1>

◆ simplex_container

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
using tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::simplex_container = detail::unstructured_simplicial_grid::simplex_container< Real, NumDimensions, SimplexDim>

◆ simplex_property_container_type

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
using tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::simplex_property_container_type = std::map<std::string, std::unique_ptr<vector_property<simplex_handle> >>

◆ simplex_property_type

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<typename T >
using tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::simplex_property_type = typed_vector_property<simplex_handle, T>

◆ this_type

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
using tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::this_type = unstructured_simplicial_grid<Real, NumDimensions, SimplexDim>

◆ typed_vertex_property_type

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<typename T >
using tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::typed_vertex_property_type = typename parent_type::template typed_vertex_property_type<T>

◆ vertex_property_sampler_type

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<typename T >
using tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::vertex_property_sampler_type = detail::unstructured_simplicial_grid::vertex_property_sampler< Real, NumDimensions, SimplexDim, T>

Constructor & Destructor Documentation

◆ unstructured_simplicial_grid() [1/9]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
constexpr tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::unstructured_simplicial_grid ( )
constexprdefault

◆ unstructured_simplicial_grid() [2/9]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::unstructured_simplicial_grid ( unstructured_simplicial_grid< Real, NumDimensions, SimplexDim > const &  other)
inline

◆ unstructured_simplicial_grid() [3/9]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::unstructured_simplicial_grid ( unstructured_simplicial_grid< Real, NumDimensions, SimplexDim > &&  other)
defaultnoexcept

◆ unstructured_simplicial_grid() [4/9]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::unstructured_simplicial_grid ( std::filesystem::path const &  path)
inlineexplicit

◆ unstructured_simplicial_grid() [5/9]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::unstructured_simplicial_grid ( std::initializer_list< pos_type > &&  vertices)
inline

◆ unstructured_simplicial_grid() [6/9]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::unstructured_simplicial_grid ( std::vector< vec< Real, NumDimensions > > const &  positions)
inlineexplicit

◆ unstructured_simplicial_grid() [7/9]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::unstructured_simplicial_grid ( std::vector< vec< Real, NumDimensions > > &&  positions)
inlineexplicit

◆ unstructured_simplicial_grid() [8/9]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<floating_point_range DimX, floating_point_range DimY>
requires (NumDimensions == 2) && (SimplexDim == 2)
tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::unstructured_simplicial_grid ( rectilinear_grid< DimX, DimY > const &  g)
inlineexplicit

◆ unstructured_simplicial_grid() [9/9]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<floating_point_range DimX, floating_point_range DimY, floating_point_range DimZ>
requires (NumDimensions == 3) && (SimplexDim == 3)
tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::unstructured_simplicial_grid ( rectilinear_grid< DimX, DimY, DimZ > const &  g)
inlineexplicit

Member Function Documentation

◆ at() [1/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::at ( simplex_handle  t) -> auto
inline

◆ at() [2/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::at ( simplex_handle  t) const -> auto
inline

◆ barycentric_coordinate() [1/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<std::size_t... Seq>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::barycentric_coordinate ( simplex_handle const &  s,
pos_type const &  ,
std::index_sequence< Seq... >   
) const
inlineprivate

◆ barycentric_coordinate() [2/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::barycentric_coordinate ( simplex_handle const &  s,
pos_type const &  q 
) const
inline

◆ bounding_box()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
constexpr auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::bounding_box ( ) const
inlineconstexprprivate

◆ build_delaunay_mesh() [1/4]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::build_delaunay_mesh ( )
inline

◆ build_delaunay_mesh() [2/4]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<std::size_t... Seq>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::build_delaunay_mesh ( std::index_sequence< Seq... >  ) -> void requires(NumDimensions == 2) || (NumDimensions == 3)
inlineprivate

◆ build_delaunay_mesh() [3/4]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::build_delaunay_mesh ( std::vector< std::pair< vertex_handle, vertex_handle > > const &  constraints) -> void requires(NumDimensions == 2) || (NumDimensions == 3)
inline

◆ build_delaunay_mesh() [4/4]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<std::size_t... Seq>
requires (NumDimensions == 2)
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::build_delaunay_mesh ( std::vector< std::pair< vertex_handle, vertex_handle > > const &  constraints,
std::index_sequence< Seq... >   
) -> void
inlineprivate

◆ build_hierarchy()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::build_hierarchy ( ) const
inline

◆ build_sub_delaunay_mesh() [1/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::build_sub_delaunay_mesh ( std::vector< vertex_handle > const &  vertices)
inline

◆ build_sub_delaunay_mesh() [2/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<std::size_t... Seq>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::build_sub_delaunay_mesh ( std::vector< vertex_handle > const &  vertices,
std::index_sequence< Seq... >   
) -> void requires(NumDimensions == 2) || (NumDimensions == 3)
inlineprivate

◆ clean_simplex_index_list()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::clean_simplex_index_list ( ) const
inline

◆ clear()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::clear ( )
inline

◆ clear_hierarchy()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::clear_hierarchy ( ) const
inline

◆ contains() [1/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::contains ( simplex_handle const  ch,
vertex_handle const  vh 
) const
inline

◆ contains() [2/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<std::size_t... Is>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::contains ( simplex_handle const  ch,
vertex_handle const  vh,
std::index_sequence< Is... >   
) const
inlineprivate

◆ copy_prop()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<typename... TypesToCheck>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::copy_prop ( auto const &  other_grid,
std::string const &  name,
auto const &  other_prop 
)
inlineprivate

◆ hierarchy()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::hierarchy ( ) const -> auto&
inline

◆ insert_simplex()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<typename... Handles>
requires (is_same<Handles, vertex_handle> && ...)
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::insert_simplex ( Handles const ...  handles)
inline

◆ insert_simplex_property()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<typename T >
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::insert_simplex_property ( std::string const &  name,
T const &  value = T{} 
) -> auto&
inline

◆ insert_vertex() [1/3]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::insert_vertex ( arithmetic auto const ...  comps)
inline

◆ insert_vertex() [2/3]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::insert_vertex ( pos_type &&  v)
inline

◆ insert_vertex() [3/3]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::insert_vertex ( pos_type const &  v)
inline

◆ invalid_simplices()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::invalid_simplices ( ) const -> auto const&
inline

◆ is_valid()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
constexpr auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::is_valid ( simplex_handle  t) const
inlineconstexpr

◆ mat2_simplex_property() [1/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::mat2_simplex_property ( std::string const &  name) -> auto&
inline

◆ mat2_simplex_property() [2/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::mat2_simplex_property ( std::string const &  name) const -> auto const&
inline

◆ mat3_simplex_property() [1/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::mat3_simplex_property ( std::string const &  name) -> auto&
inline

◆ mat3_simplex_property() [2/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::mat3_simplex_property ( std::string const &  name) const -> auto const&
inline

◆ mat4_simplex_property() [1/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::mat4_simplex_property ( std::string const &  name) -> auto&
inline

◆ mat4_simplex_property() [2/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::mat4_simplex_property ( std::string const &  name) const -> auto const&
inline

◆ num_vertices_per_simplex()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
static constexpr auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::num_vertices_per_simplex ( )
inlinestaticconstexpr

◆ operator=() [1/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::operator= ( unstructured_simplicial_grid< Real, NumDimensions, SimplexDim > &&  other) -> unstructured_simplicial_grid &=default
defaultnoexcept

◆ operator=() [2/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::operator= ( unstructured_simplicial_grid< Real, NumDimensions, SimplexDim > const &  other) -> unstructured_simplicial_grid&
inline

◆ operator[]() [1/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::operator[] ( simplex_handle  t) -> auto
inline

◆ operator[]() [2/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::operator[] ( simplex_handle  t) const -> auto
inline

◆ read()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::read ( std::filesystem::path const &  path)
inline

◆ read_vtk()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::read_vtk ( std::filesystem::path const &  path)
inline

◆ reindex_simplices_vertex_handles()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::reindex_simplices_vertex_handles ( )
inlineprivate

tidies up invalid vertices

◆ remove() [1/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::remove ( simplex_handle const  ch)
inline

◆ remove() [2/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::remove ( vertex_handle const  vh)
inline

◆ remove_duplicate_vertices() [1/3]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::remove_duplicate_vertices ( execution_policy::parallel_t  ,
Real const  eps = Real{} 
)
inline

◆ remove_duplicate_vertices() [2/3]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::remove_duplicate_vertices ( execution_policy::sequential_t  ,
Real const  eps = Real{} 
)
inline

◆ remove_duplicate_vertices() [3/3]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::remove_duplicate_vertices ( Real const  eps = Real{})
inline

◆ sample_to_vertex_property() [1/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<typename F >
requires invocable_with_n_integrals<F, num_dimensions()> || invocable<F, pos_type>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::sample_to_vertex_property ( F &&  f,
std::string const &  name 
) -> auto&
inline

◆ sample_to_vertex_property() [2/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<typename F >
requires invocable_with_n_integrals<F, num_dimensions()> || invocable<F, pos_type>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::sample_to_vertex_property ( F &&  f,
std::string const &  name,
execution_policy_tag auto  tag 
) -> auto&
inline

◆ sample_to_vertex_property_pos()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<invocable< pos_type > F>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::sample_to_vertex_property_pos ( F &&  f,
std::string const &  name,
execution_policy_tag  auto 
) -> auto&
inlineprivate

◆ sample_to_vertex_property_vertex_handle()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<invocable< vertex_handle > F>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::sample_to_vertex_property_vertex_handle ( F &&  f,
std::string const &  name,
execution_policy_tag  auto 
) -> auto&
inlineprivate

◆ sampler()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<typename T >
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::sampler ( typed_vertex_property_type< T > const &  prop) const
inline

◆ scalar_simplex_property() [1/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::scalar_simplex_property ( std::string const &  name) -> auto&
inline

◆ scalar_simplex_property() [2/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::scalar_simplex_property ( std::string const &  name) const -> auto const&
inline

◆ simplex_at() [1/6]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::simplex_at ( simplex_handle  t) -> auto
inline

◆ simplex_at() [2/6]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::simplex_at ( simplex_handle  t) const -> auto
inline

◆ simplex_at() [3/6]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<std::size_t... Seq>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::simplex_at ( std::size_t const  i)
inline

◆ simplex_at() [4/6]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<std::size_t... Seq>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::simplex_at ( std::size_t const  i) const
inline

◆ simplex_at() [5/6]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<std::size_t... Seq>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::simplex_at ( std::size_t const  i,
std::index_sequence< Seq... >   
) -> simplex_at_return_type
inlineprivate

◆ simplex_at() [6/6]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<std::size_t... Seq>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::simplex_at ( std::size_t const  i,
std::index_sequence< Seq... >   
) const -> const_simplex_at_return_type
inlineprivate

◆ simplex_dimension()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
static constexpr auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::simplex_dimension ( )
inlinestaticconstexpr

◆ simplex_index_data()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::simplex_index_data ( ) const -> auto const&
inline

◆ simplex_properties()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::simplex_properties ( ) const -> auto const&
inline

◆ simplex_property() [1/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<typename T >
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::simplex_property ( std::string const &  name) -> auto&
inline

◆ simplex_property() [2/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<typename T >
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::simplex_property ( std::string const &  name) const -> const auto&
inline

◆ simplices()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::simplices ( ) const
inline

◆ tidy_up()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::tidy_up ( )
inline

◆ vec2_simplex_property() [1/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::vec2_simplex_property ( std::string const &  name) -> auto&
inline

◆ vec2_simplex_property() [2/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::vec2_simplex_property ( std::string const &  name) const -> auto const&
inline

◆ vec3_simplex_property() [1/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::vec3_simplex_property ( std::string const &  name) -> auto&
inline

◆ vec3_simplex_property() [2/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::vec3_simplex_property ( std::string const &  name) const -> auto const&
inline

◆ vec4_simplex_property() [1/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::vec4_simplex_property ( std::string const &  name) -> auto&
inline

◆ vec4_simplex_property() [2/2]

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::vec4_simplex_property ( std::string const &  name) const -> auto const&
inline

◆ vertex_property_sampler()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<typename T >
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::vertex_property_sampler ( std::string const &  name) const
inline

◆ write()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::write ( filesystem::path const &  path) const
inline

◆ write_unstructured_tetrahedral_grid_vtk()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::write_unstructured_tetrahedral_grid_vtk ( std::filesystem::path const &  path,
std::string const &  title 
) const -> bool requires(SimplexDim == 2)
inline

◆ write_unstructured_triangular_grid_vtk()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::write_unstructured_triangular_grid_vtk ( std::filesystem::path const &  path,
std::string const &  title 
) const -> bool requires(SimplexDim == 2)
inline

◆ write_vtk()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::write_vtk ( std::filesystem::path const &  path,
std::string const &  title = "tatooine grid" 
) const
inline

◆ write_vtp()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::write_vtp ( filesystem::path const &  path) const
inline

◆ write_vtp_edges()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<unsigned_integral HeaderType = std::uint64_t, integral ConnectivityInt = std::int64_t, integral OffsetInt = std::int64_t>
requires ((NumDimensions == 2 || NumDimensions == 3) && SimplexDim == 1)
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::write_vtp_edges ( filesystem::path const &  path) const
inline

◆ write_vtp_triangles()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<unsigned_integral HeaderType = std::uint64_t, integral ConnectivityInt = std::int64_t, integral OffsetInt = std::int64_t>
requires ((NumDimensions == 2 || NumDimensions == 3) && SimplexDim == 2)
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::write_vtp_triangles ( filesystem::path const &  path) const
inline

◆ write_vtu()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::write_vtu ( filesystem::path const &  path) const
inline

◆ write_vtu_tetrahedral()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<unsigned_integral HeaderType = std::uint64_t, integral ConnectivityInt = std::int64_t, integral OffsetInt = std::int64_t, unsigned_integral CellTypesInt = std::uint8_t>
requires ((NumDimensions == 2 || NumDimensions == 3) && SimplexDim == 3)
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::write_vtu_tetrahedral ( filesystem::path const &  path) const
inline

◆ write_vtu_triangular()

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
template<unsigned_integral HeaderType = std::uint64_t, integral ConnectivityInt = std::int64_t, integral OffsetInt = std::int64_t, unsigned_integral CellTypesInt = std::uint8_t>
requires ((NumDimensions == 2 || NumDimensions == 3) && SimplexDim == 2)
auto tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::write_vtu_triangular ( filesystem::path const &  path) const
inline

Friends And Related Function Documentation

◆ detail::unstructured_simplicial_grid::parent< this_type, Real, NumDimensions, SimplexDim >

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
friend struct detail::unstructured_simplicial_grid::parent< this_type, Real, NumDimensions, SimplexDim >
friend

◆ detail::unstructured_simplicial_grid::simplex_container< Real, NumDimensions, SimplexDim >

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
friend struct detail::unstructured_simplicial_grid::simplex_container< Real, NumDimensions, SimplexDim >
friend

Member Data Documentation

◆ m_hierarchy

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
std::unique_ptr<hierarchy_type> tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::m_hierarchy
mutableprivate

◆ m_invalid_simplices

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
std::set<simplex_handle> tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::m_invalid_simplices
private

◆ m_simplex_index_data

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
std::vector<vertex_handle> tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::m_simplex_index_data
private

◆ m_simplex_properties

template<floating_point Real, std::size_t NumDimensions, std::size_t SimplexDim = NumDimensions>
simplex_property_container_type tatooine::unstructured_simplicial_grid< Real, NumDimensions, SimplexDim >::m_simplex_properties
private

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