Flow123d  DF_patch_fe_mechanics-ccea6e4
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
PatchPointValues< spacedim > Class Template Referenceabstract

#include <patch_point_values.hh>

Collaboration diagram for PatchPointValues< spacedim >:
Collaboration graph
[legend]

Classes

struct  PatchFeData
 

Public Member Functions

 PatchPointValues (uint dim, PatchFeData &patch_fe_data)
 
virtual ~PatchPointValues ()
 
void initialize ()
 
void reset ()
 Reset number of columns (points and elements) More...
 
uint dim () const
 Getter for dim_. More...
 
uint n_elems () const
 Getter for n_elems_. More...
 
uint n_points () const
 Getter for n_points_. More...
 
Quadratureget_quadrature () const
 Getter for quadrature. More...
 
void resize_tables (uint n_elems, uint n_points)
 Resize data tables. Method is called before reinit of patch. More...
 
uint register_element (arma::mat coords, uint element_patch_idx)
 
uint register_side (arma::mat elm_coords, arma::mat side_coords, uint side_idx)
 
uint register_bulk_point (uint elem_table_row, uint value_patch_idx, uint elem_idx, uint i_point_on_elem)
 
uint register_side_point (uint elem_table_row, uint value_patch_idx, uint elem_idx, uint side_idx, uint i_point_on_side)
 
PatchOp< spacedim > * make_new_op (uint op_idx, std::initializer_list< uint > shape, ReinitFunction reinit_f, OpSizeType size_type=pointOp)
 
PatchOp< spacedim > * make_fixed_op (uint op_idx, std::initializer_list< uint > shape, ReinitFunction reinit_f)
 
PatchOp< spacedim > * make_fe_op (uint op_idx, std::initializer_list< uint > shape, ReinitFunction reinit_f, uint n_dofs, OpSizeType size_type=pointOp)
 
PatchOp< spacedim > * make_fixed_fe_op (uint op_idx, std::initializer_list< uint > shape, ReinitFunction reinit_f, uint n_dofs)
 
void reinit_patch ()
 
Scalar scalar_elem_value (uint op_idx, uint point_idx) const
 
Vector vector_elem_value (uint op_idx, uint point_idx) const
 
Tensor tensor_elem_value (uint op_idx, uint point_idx) const
 
Scalar scalar_value (uint op_idx, uint point_idx, uint i_dof=0) const
 
Vector vector_value (uint op_idx, uint point_idx, uint i_dof=0) const
 
Tensor tensor_value (uint op_idx, uint point_idx, uint i_dof=0) const
 
AssemblyArenaasm_arena () const
 return reference to assembly arena More...
 
PatchArenapatch_arena () const
 return reference to patch arena More...
 
void zero_values_needed ()
 Set flag needs_zero_values_ to true. More...
 
PatchPointValueszero_values ()
 
virtual void create_zero_values ()=0
 Create zero_values_ object. More...
 
void print_data_tables (ostream &stream, bool points, bool ints) const
 
void print_operations (ostream &stream, uint bulk_side) const
 

Protected Member Functions

void create_zero_operations (std::vector< PatchOp< spacedim > * > &ref_ops)
 

Protected Attributes

IntTableArena int_table_
 
std::vector< OpSizeTypeint_sizes_
 Set size and type of rows of int_table_, value is set implicitly in constructor of descendants. More...
 
std::vector< PatchOp< spacedim > * > operations_
 Vector of all defined operations. More...
 
std::vector< std::vector< unsigned int > > op_dependency_
 Holds dependency between operations. More...
 
uint dim_
 Dimension. More...
 
uint n_points_
 Number of points in patch. More...
 
uint n_elems_
 Number of elements in patch. More...
 
uint i_elem_
 Index of registered element in table, helper value used during patch creating. More...
 
Quadraturequad_
 Quadrature of given dimension and order passed in constructor. More...
 
std::vector< uintelements_map_
 Map of element patch indices to PatchOp::result_ and int_table_ tables. More...
 
std::vector< uintpoints_map_
 Map of point patch indices to PatchOp::result_ and int_table_ tables. More...
 
PatchFeDatapatch_fe_data_
 Reference to PatchFeData structure shared with PatchFeValues. More...
 
bool needs_zero_values_
 Flags hold whether zero_values_ object is needed. More...
 
PatchPointValueszero_values_
 PatchPointValues object returns zero values for all operations. More...
 

Friends

class PatchFEValues< spacedim >
 
class PatchOp< spacedim >
 
template<class ValueType >
class ElQ
 
template<class ValueType >
class FeQ
 
template<unsigned int dim>
class BulkValues
 
template<unsigned int dim>
class SideValues
 
template<unsigned int dim>
class JoinValues
 

Detailed Description

template<unsigned int spacedim = 3>
class PatchPointValues< spacedim >

v Class for storing FE data of quadrature points on one patch.

Store data of bulk or side quadrature points of one dimension.

Definition at line 143 of file patch_point_values.hh.

Constructor & Destructor Documentation

◆ PatchPointValues()

template<unsigned int spacedim = 3>
PatchPointValues< spacedim >::PatchPointValues ( uint  dim,
PatchFeData patch_fe_data 
)
inline

Constructor

Parameters
dimSet dimension

Definition at line 171 of file patch_point_values.hh.

◆ ~PatchPointValues()

template<unsigned int spacedim = 3>
virtual PatchPointValues< spacedim >::~PatchPointValues ( )
inlinevirtual

Destructor.

Reimplemented in FeSide::PatchPointValues< spacedim >, and FeBulk::PatchPointValues< spacedim >.

Definition at line 179 of file patch_point_values.hh.

Member Function Documentation

◆ asm_arena()

template<unsigned int spacedim = 3>
AssemblyArena& PatchPointValues< spacedim >::asm_arena ( ) const
inline

return reference to assembly arena

Definition at line 490 of file patch_point_values.hh.

Here is the caller graph for this function:

◆ create_zero_operations()

template<unsigned int spacedim = 3>
void PatchPointValues< spacedim >::create_zero_operations ( std::vector< PatchOp< spacedim > * > &  ref_ops)
protected

◆ create_zero_values()

template<unsigned int spacedim = 3>
virtual void PatchPointValues< spacedim >::create_zero_values ( )
pure virtual

Create zero_values_ object.

Implemented in FeSide::PatchPointValues< spacedim >, and FeBulk::PatchPointValues< spacedim >.

Here is the caller graph for this function:

◆ dim()

template<unsigned int spacedim = 3>
uint PatchPointValues< spacedim >::dim ( ) const
inline

Getter for dim_.

Definition at line 204 of file patch_point_values.hh.

Here is the caller graph for this function:

◆ get_quadrature()

template<unsigned int spacedim = 3>
Quadrature* PatchPointValues< spacedim >::get_quadrature ( ) const
inline

Getter for quadrature.

Definition at line 219 of file patch_point_values.hh.

Here is the caller graph for this function:

◆ initialize()

template<unsigned int spacedim = 3>
void PatchPointValues< spacedim >::initialize ( )
inline

Initialize object, set number of columns (quantities) in tables.

Definition at line 189 of file patch_point_values.hh.

◆ make_fe_op()

template<unsigned int spacedim = 3>
PatchOp<spacedim>* PatchPointValues< spacedim >::make_fe_op ( uint  op_idx,
std::initializer_list< uint shape,
ReinitFunction  reinit_f,
uint  n_dofs,
OpSizeType  size_type = pointOp 
)
inline

Adds accessor of FE operation and adds operation dynamically to operations_ vector

Parameters
op_idxIndex of operation in operations_ vector
shapeShape of function output
reinit_fReinitialize function
n_dofsNumber of DOFs
size_typeType of operation by size of rows

Definition at line 367 of file patch_point_values.hh.

Here is the caller graph for this function:

◆ make_fixed_fe_op()

template<unsigned int spacedim = 3>
PatchOp<spacedim>* PatchPointValues< spacedim >::make_fixed_fe_op ( uint  op_idx,
std::initializer_list< uint shape,
ReinitFunction  reinit_f,
uint  n_dofs 
)
inline

Adds accessor of new operation with fixed data size (ref data) to operations_ vector

Parameters
op_idxIndex of operation in operations_ vector
shapeShape of function output
reinit_fReinitialize function
n_dofsNumber of DOFs

Definition at line 388 of file patch_point_values.hh.

Here is the caller graph for this function:

◆ make_fixed_op()

template<unsigned int spacedim = 3>
PatchOp<spacedim>* PatchPointValues< spacedim >::make_fixed_op ( uint  op_idx,
std::initializer_list< uint shape,
ReinitFunction  reinit_f 
)
inline

Adds accessor of new operation with fixed data size (ref data) to operations_ vector

Parameters
op_idxIndex of operation in operations_ vector
shapeShape of function output
reinit_fReinitialize function

Definition at line 354 of file patch_point_values.hh.

◆ make_new_op()

template<unsigned int spacedim = 3>
PatchOp<spacedim>* PatchPointValues< spacedim >::make_new_op ( uint  op_idx,
std::initializer_list< uint shape,
ReinitFunction  reinit_f,
OpSizeType  size_type = pointOp 
)
inline

Adds accessor of new operation to operations_ vector

Parameters
op_idxIndex of operation in operations_ vector
shapeShape of function output
reinit_fReinitialize function
size_typeType of operation by size of rows

Definition at line 343 of file patch_point_values.hh.

◆ n_elems()

template<unsigned int spacedim = 3>
uint PatchPointValues< spacedim >::n_elems ( ) const
inline

Getter for n_elems_.

Definition at line 209 of file patch_point_values.hh.

Here is the caller graph for this function:

◆ n_points()

template<unsigned int spacedim = 3>
uint PatchPointValues< spacedim >::n_points ( ) const
inline

Getter for n_points_.

Definition at line 214 of file patch_point_values.hh.

Here is the caller graph for this function:

◆ patch_arena()

template<unsigned int spacedim = 3>
PatchArena& PatchPointValues< spacedim >::patch_arena ( ) const
inline

return reference to patch arena

Definition at line 495 of file patch_point_values.hh.

◆ print_data_tables()

template<unsigned int spacedim = 3>
void PatchPointValues< spacedim >::print_data_tables ( ostream &  stream,
bool  points,
bool  ints 
) const
inline

Performs output of data tables to stream.

Development method.

Parameters
pointsAllows switched off output of point table,
intsAllows switched off output of int (connectivity to elements) table,

Definition at line 520 of file patch_point_values.hh.

◆ print_operations()

template<unsigned int spacedim = 3>
void PatchPointValues< spacedim >::print_operations ( ostream &  stream,
uint  bulk_side 
) const
inline

Performs table of fixed operations to stream.

Development method.

Parameters
bulk_sideNeeds set 0 (bulk) or 1 (side) for correct output of operation names.

Definition at line 559 of file patch_point_values.hh.

◆ register_bulk_point()

template<unsigned int spacedim = 3>
uint PatchPointValues< spacedim >::register_bulk_point ( uint  elem_table_row,
uint  value_patch_idx,
uint  elem_idx,
uint  i_point_on_elem 
)
inline

Register bulk point, add to int_table_

Parameters
elem_table_rowIndex of element in temporary element table.
value_patch_idxIndex of point in ElementCacheMap.
elem_idxIndex of element in Mesh.
i_point_on_elemIndex of point on element

Definition at line 305 of file patch_point_values.hh.

◆ register_element()

template<unsigned int spacedim = 3>
uint PatchPointValues< spacedim >::register_element ( arma::mat  coords,
uint  element_patch_idx 
)
inline

Register element, add to coords operation

Parameters
coordsCoordinates of element nodes.
element_patch_idxIndex of element on patch.

Definition at line 246 of file patch_point_values.hh.

◆ register_side()

template<unsigned int spacedim = 3>
uint PatchPointValues< spacedim >::register_side ( arma::mat  elm_coords,
arma::mat  side_coords,
uint  side_idx 
)
inline

Register side, add to coords operations

Parameters
coordsCoordinates of element nodes.
side_coordsCoordinates of side nodes.
side_idxIndex of side on element.

Definition at line 271 of file patch_point_values.hh.

◆ register_side_point()

template<unsigned int spacedim = 3>
uint PatchPointValues< spacedim >::register_side_point ( uint  elem_table_row,
uint  value_patch_idx,
uint  elem_idx,
uint  side_idx,
uint  i_point_on_side 
)
inline

Register side point, add to int_table_

Parameters
elem_table_rowIndex of side in temporary element table.
value_patch_idxIndex of point in ElementCacheMap.
elem_idxIndex of element in Mesh.
side_idxIndex of side on element.
i_point_on_sideIndex of point on side

Definition at line 324 of file patch_point_values.hh.

◆ reinit_patch()

template<unsigned int spacedim = 3>
void PatchPointValues< spacedim >::reinit_patch ( )
inline

Reinitializes patch data.

Calls reinit functions defined on each operations.

Definition at line 398 of file patch_point_values.hh.

◆ reset()

template<unsigned int spacedim = 3>
void PatchPointValues< spacedim >::reset ( )
inline

Reset number of columns (points and elements)

Definition at line 197 of file patch_point_values.hh.

Here is the caller graph for this function:

◆ resize_tables()

template<unsigned int spacedim = 3>
void PatchPointValues< spacedim >::resize_tables ( uint  n_elems,
uint  n_points 
)
inline

Resize data tables. Method is called before reinit of patch.

Definition at line 224 of file patch_point_values.hh.

◆ scalar_elem_value()

template<unsigned int spacedim = 3>
Scalar PatchPointValues< spacedim >::scalar_elem_value ( uint  op_idx,
uint  point_idx 
) const
inline

Returns scalar output value of data stored by elements.

Parameters
op_idxIndex of operation in operations vector
point_idxIndex of quadrature point in ElementCacheMap

Definition at line 411 of file patch_point_values.hh.

◆ scalar_value()

template<unsigned int spacedim = 3>
Scalar PatchPointValues< spacedim >::scalar_value ( uint  op_idx,
uint  point_idx,
uint  i_dof = 0 
) const
inline

Returns scalar output value on point.

Parameters
op_idxIndex of operation in operations vector
point_idxIndex of quadrature point in ElementCacheMap
i_dofIndex of DOF

Definition at line 453 of file patch_point_values.hh.

Here is the caller graph for this function:

◆ tensor_elem_value()

template<unsigned int spacedim = 3>
Tensor PatchPointValues< spacedim >::tensor_elem_value ( uint  op_idx,
uint  point_idx 
) const
inline

Returns tensor output value of data stored by elements.

Parameters
op_idxIndex of operation in operations vector
point_idxIndex of quadrature point in ElementCacheMap

Definition at line 436 of file patch_point_values.hh.

◆ tensor_value()

template<unsigned int spacedim = 3>
Tensor PatchPointValues< spacedim >::tensor_value ( uint  op_idx,
uint  point_idx,
uint  i_dof = 0 
) const
inline

Returns tensor output value on point.

Parameters
op_idxIndex of operation in operations vector
point_idxIndex of quadrature point in ElementCacheMap
i_dofIndex of DOF

Definition at line 480 of file patch_point_values.hh.

Here is the caller graph for this function:

◆ vector_elem_value()

template<unsigned int spacedim = 3>
Vector PatchPointValues< spacedim >::vector_elem_value ( uint  op_idx,
uint  point_idx 
) const
inline

Returns vector output value of data stored by elements.

Parameters
op_idxIndex of operation in operations vector
point_idxIndex of quadrature point in ElementCacheMap

Definition at line 421 of file patch_point_values.hh.

◆ vector_value()

template<unsigned int spacedim = 3>
Vector PatchPointValues< spacedim >::vector_value ( uint  op_idx,
uint  point_idx,
uint  i_dof = 0 
) const
inline

Returns vector output value on point.

Parameters
op_idxIndex of operation in operations vector
point_idxIndex of quadrature point in ElementCacheMap
i_dofIndex of DOF

Definition at line 464 of file patch_point_values.hh.

Here is the caller graph for this function:

◆ zero_values()

template<unsigned int spacedim = 3>
PatchPointValues* PatchPointValues< spacedim >::zero_values ( )
inline

Definition at line 505 of file patch_point_values.hh.

Here is the caller graph for this function:

◆ zero_values_needed()

template<unsigned int spacedim = 3>
void PatchPointValues< spacedim >::zero_values_needed ( )
inline

Set flag needs_zero_values_ to true.

Definition at line 500 of file patch_point_values.hh.

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ BulkValues

template<unsigned int spacedim = 3>
template<unsigned int dim>
friend class BulkValues
friend

Definition at line 628 of file patch_point_values.hh.

◆ ElQ

template<unsigned int spacedim = 3>
template<class ValueType >
friend class ElQ
friend

Definition at line 624 of file patch_point_values.hh.

◆ FeQ

template<unsigned int spacedim = 3>
template<class ValueType >
friend class FeQ
friend

Definition at line 626 of file patch_point_values.hh.

◆ JoinValues

template<unsigned int spacedim = 3>
template<unsigned int dim>
friend class JoinValues
friend

Definition at line 632 of file patch_point_values.hh.

◆ PatchFEValues< spacedim >

template<unsigned int spacedim = 3>
friend class PatchFEValues< spacedim >
friend

Definition at line 619 of file patch_point_values.hh.

◆ PatchOp< spacedim >

template<unsigned int spacedim = 3>
friend class PatchOp< spacedim >
friend

Definition at line 619 of file patch_point_values.hh.

◆ SideValues

template<unsigned int spacedim = 3>
template<unsigned int dim>
friend class SideValues
friend

Definition at line 630 of file patch_point_values.hh.

Member Data Documentation

◆ dim_

template<unsigned int spacedim = 3>
uint PatchPointValues< spacedim >::dim_
protected

Dimension.

Definition at line 607 of file patch_point_values.hh.

◆ elements_map_

template<unsigned int spacedim = 3>
std::vector<uint> PatchPointValues< spacedim >::elements_map_
protected

Map of element patch indices to PatchOp::result_ and int_table_ tables.

Definition at line 613 of file patch_point_values.hh.

◆ i_elem_

template<unsigned int spacedim = 3>
uint PatchPointValues< spacedim >::i_elem_
protected

Index of registered element in table, helper value used during patch creating.

Definition at line 610 of file patch_point_values.hh.

◆ int_sizes_

template<unsigned int spacedim = 3>
std::vector<OpSizeType> PatchPointValues< spacedim >::int_sizes_
protected

Set size and type of rows of int_table_, value is set implicitly in constructor of descendants.

Definition at line 598 of file patch_point_values.hh.

◆ int_table_

template<unsigned int spacedim = 3>
IntTableArena PatchPointValues< spacedim >::int_table_
protected

Hold integer values of quadrature points of defined operations.

Table contains following rows: 0: Index of quadrature point on patch 1: Row of element/side in PatchOp::result_ table in registration step (before expansion) 2: Element idx in Mesh

  • last two rows are allocated only for side point table 3: Index of side in element - short vector, size of column = number of sides 4: Index of side in element - long vector, size of column = number of points Number of used rows is given by n_points_.

Definition at line 595 of file patch_point_values.hh.

◆ n_elems_

template<unsigned int spacedim = 3>
uint PatchPointValues< spacedim >::n_elems_
protected

Number of elements in patch.

Definition at line 609 of file patch_point_values.hh.

◆ n_points_

template<unsigned int spacedim = 3>
uint PatchPointValues< spacedim >::n_points_
protected

Number of points in patch.

Definition at line 608 of file patch_point_values.hh.

◆ needs_zero_values_

template<unsigned int spacedim = 3>
bool PatchPointValues< spacedim >::needs_zero_values_
protected

Flags hold whether zero_values_ object is needed.

Definition at line 618 of file patch_point_values.hh.

◆ op_dependency_

template<unsigned int spacedim = 3>
std::vector< std::vector<unsigned int> > PatchPointValues< spacedim >::op_dependency_
protected

Holds dependency between operations.

Definition at line 605 of file patch_point_values.hh.

◆ operations_

template<unsigned int spacedim = 3>
std::vector<PatchOp<spacedim> *> PatchPointValues< spacedim >::operations_
protected

Vector of all defined operations.

Definition at line 602 of file patch_point_values.hh.

◆ patch_fe_data_

template<unsigned int spacedim = 3>
PatchFeData& PatchPointValues< spacedim >::patch_fe_data_
protected

Reference to PatchFeData structure shared with PatchFeValues.

Definition at line 616 of file patch_point_values.hh.

◆ points_map_

template<unsigned int spacedim = 3>
std::vector<uint> PatchPointValues< spacedim >::points_map_
protected

Map of point patch indices to PatchOp::result_ and int_table_ tables.

Definition at line 614 of file patch_point_values.hh.

◆ quad_

template<unsigned int spacedim = 3>
Quadrature* PatchPointValues< spacedim >::quad_
protected

Quadrature of given dimension and order passed in constructor.

Definition at line 611 of file patch_point_values.hh.

◆ zero_values_

template<unsigned int spacedim = 3>
PatchPointValues* PatchPointValues< spacedim >::zero_values_
protected

PatchPointValues object returns zero values for all operations.

Definition at line 619 of file patch_point_values.hh.


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