21 #ifndef PATCH_POINT_VALUES_HH_
22 #define PATCH_POINT_VALUES_HH_
24 #include <Eigen/Dense>
25 #include <unordered_set>
138 template<
unsigned int spacedim = 3>
148 template<
unsigned int spacedim = 3>
RevertibleValue n_mesh_items_
Number of elements or sides in patch.
void resize_tables(uint max_quad_size, PatchArena &patch_arena)
Resize data tables. Method is called before reinit of patch.
std::vector< uint > points_map_
Map of point patch indices to PatchOp::result_ and int_table_ tables.
uint register_bulk_point(uint patch_elm_idx, uint elm_cache_map_idx, uint elem_idx, uint i_point_on_elem)
uint n_mesh_items() const
Getter for n_mesh_items__.
ElemDimList< spacedim > * elem_dim_list_
Number and list of elements on patch.
void reset()
Reset number of columns (points and elements)
uint i_mesh_item_
Index of registered element or side in table, helper value used during patch creating.
uint register_side_point(uint patch_side_idx, uint elm_cache_map_idx, uint elem_idx, uint side_idx, uint i_point_on_side)
virtual ~PatchPointValues()
std::vector< Side > side_list_
List of sides on patch.
PatchPointValues(ElemDimList< spacedim > *elems_dim_list, fem_domain domain)
std::unordered_map< uint, uint > n_elems_
std::vector< OpSizeType > int_sizes_
Set size and type of rows of int_table_, value is set implicitly in constructor of descendants.
void make_permanent_mesh_items()
Set number of elements and points as permanent.
@ domain_on_quads
Index of bulk element or side for each quadrature point in patch.
@ patch_elem_on_domain
Index of patch element for each bulk element or side.
@ ref_side_on_sides
Ref index of side in element for each side in patch.
@ mesh_elem_on_quads
Element idx in Mesh for each quadrature point in patch.
@ ref_side_on_quads
Ref index of side in element for each quadrature point in patch.
fem_domain
Distinguishes operations by type and size of output rows.
OpSizeType
Distinguishes operations by type and size of output rows.
@ pointOp
operation is evaluated on quadrature points
@ elemOp
operation is evaluated on elements or sides
@ fixedSizeOp
operation has fixed size and it is filled during initialization
Definitions of particular quadrature rules on simplices.
AssemblyArena asm_arena_
Assembly arena, created and filled once during initialization.
ArenaVec< double > zero_vec_
ArenaVec of zero values of maximal length using in zero PatchPointValues construction.
~PatchFeData()
Destructor.
PatchFeData(size_t buffer_size, size_t simd_alignment)
Constructor.
PatchArena * patch_arena_
Patch arena, reseted before patch reinit.
RevertibleValue & operator++()
RevertibleValue()
Default constructor.
RevertibleValue & operator=(RevertibleValue &other)
Declaration of operators.
RevertibleValue(const RevertibleValue &other)
Copy constructor.
void reset()
Reset value to zero.
std::size_t operator()() const
RevertibleValue & operator+=(std::size_t inc_val)
void make_permanent()
Finalize temporary value.