hexed 0.3.0
 
Loading...
Searching...
No Matches
hexed::Complete_element_container< element_t > Class Template Reference

#include <Element_container.hpp>

Inheritance diagram for hexed::Complete_element_container< element_t >:
hexed::Element_container

Public Types

typedef Vector_view< element_t &, ptr_t, &convert > view_t
 

Public Member Functions

 Complete_element_container (Storage_params storage_params, double root_spacing)
 construct with the same data as Mesh::Mesh
 
int emplace (int ref_level, std::vector< int > position, Mat<> origin, int aniso_ref_level=0) override
 
element_t & at (int ref_level, int serial_n) override
 access an element by refinement level and serial number
 
view_t elements ()
 Provides a Vector_view which can be used to efficiently iterate through the elements, in order of creation (oldest first)
 
Sequence< Element & > & element_view ()
 same as elements() except views elements as type Element&
 
int purge (std::function< bool(Element &)> predicate=[](Element &elem){return elem.record !=0;}) override
 
std::vector< std::array< int, 2 > > elem_handles () override
 return the currently valid set of ref_level, serial_n combinations
 
void write_sns ()
 writes each element's serial number to it's record
 

Detailed Description

template<typename element_t>
class hexed::Complete_element_container< element_t >

An implementation of Element_container which holds elements of a definite type (namely, Element or Deformed_element). Supports more advanced access methods.

Member Typedef Documentation

◆ view_t

template<typename element_t >
typedef Vector_view<element_t&, ptr_t, &convert> hexed::Complete_element_container< element_t >::view_t

convenience typedef

Member Function Documentation

◆ at()

template<typename element_t >
element_t & hexed::Complete_element_container< element_t >::at ( int ref_level,
int serial_n )
inlineoverridevirtual

access an element by refinement level and serial number

Implements hexed::Element_container.

◆ elem_handles()

template<typename element_t >
std::vector< std::array< int, 2 > > hexed::Complete_element_container< element_t >::elem_handles ( )
inlineoverridevirtual

return the currently valid set of ref_level, serial_n combinations

deletes all elements where predicate evaluates to true and returns the number of elements deleted

Implements hexed::Element_container.

◆ element_view()

template<typename element_t >
Sequence< Element & > & hexed::Complete_element_container< element_t >::element_view ( )
inlinevirtual

same as elements() except views elements as type Element&

Implements hexed::Element_container.

◆ emplace()

template<typename element_t >
int hexed::Complete_element_container< element_t >::emplace ( int ref_level,
std::vector< int > position,
Mat<> origin,
int aniso_ref_level = 0 )
inlineoverridevirtual

Construct an element, add it to the container, and return a permanent, arbitrary serial number which is unique among elements of the same refinement level.

Implements hexed::Element_container.

◆ purge()

template<typename element_t >
int hexed::Complete_element_container< element_t >::purge ( std::function< bool(Element &)> predicate = [](Element& elem){return elem.record != 0;})
inlineoverridevirtual

◆ write_sns()

template<typename element_t >
void hexed::Complete_element_container< element_t >::write_sns ( )
inline

writes each element's serial number to it's record

Todo
elements really just need to know their serial number

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