hyper.deal
Loading...
Searching...
No Matches
hyperdeal::internal::MatrixFreeFunctions::ReadWriteOperation< Number > Class Template Reference

#include <read_write_operation.h>

Public Member Functions

 ReadWriteOperation (const hyperdeal::internal::MatrixFreeFunctions::DoFInfo &dof_info, const hyperdeal::internal::MatrixFreeFunctions::FaceInfo &face_info, const hyperdeal::internal::MatrixFreeFunctions::ShapeInfo< Number > &shape_info)
 
template<int dim, int degree, typename VectorOperation , typename VectorizedArrayType >
void process_cell (const VectorOperation &operation, const std::vector< dealii::ArrayView< const Number > > &data_others, VectorizedArrayType *dst, const unsigned int cell_batch_number) const
 
template<int dim_x, int dim_v, int degree, typename VectorOperation , typename VectorizedArrayType >
void process_face (const VectorOperation &operation, const std::vector< dealii::ArrayView< const Number > > &data_others, VectorizedArrayType *dst, const unsigned int *face_no, const unsigned int *face_orientation, const unsigned int face_orientation_offset, const unsigned int cell_batch_number, const unsigned int cell_side, const unsigned int face_batch_number, const unsigned int face_side) const
 

Detailed Description

template<typename Number>
class hyperdeal::internal::MatrixFreeFunctions::ReadWriteOperation< Number >

Helper class for transferring data from global to cell-local vectors and vice versa.

Constructor & Destructor Documentation

◆ ReadWriteOperation()

Constructor.

Member Function Documentation

◆ process_cell()

template<typename Number >
template<int dim, int degree, typename VectorOperation , typename VectorizedArrayType >
void hyperdeal::internal::MatrixFreeFunctions::ReadWriteOperation< Number >::process_cell ( const VectorOperation & operation,
const std::vector< dealii::ArrayView< const Number > > & data_others,
VectorizedArrayType * dst,
const unsigned int cell_batch_number ) const

Transfer data for a (macro-)cell. If dofs are read, write, or distributed is determined by operation.

◆ process_face()

template<typename Number >
template<int dim_x, int dim_v, int degree, typename VectorOperation , typename VectorizedArrayType >
void hyperdeal::internal::MatrixFreeFunctions::ReadWriteOperation< Number >::process_face ( const VectorOperation & operation,
const std::vector< dealii::ArrayView< const Number > > & data_others,
VectorizedArrayType * dst,
const unsigned int * face_no,
const unsigned int * face_orientation,
const unsigned int face_orientation_offset,
const unsigned int cell_batch_number,
const unsigned int cell_side,
const unsigned int face_batch_number,
const unsigned int face_side ) const

Transfer data for a (macro-)face. If dofs are read, write, or distributed is determined by operation.

The complexity compared to process_cell (additional arguments) rises due to the fact:

  • faces are relevant in different context: ECL/FCL interior/exterior
  • that faces might be embedded within cells (e.g., interior faces) or might be stored on their own (ghost faces). In the first case, the dofs from face_no have to be extracted.
  • faces might be not orientated in relation to the neighbor, which requires a re-orientation here.
  • In comparison to FCL and ECL interior faces, each faces of a ECL exterior macro face might have a different orientation and face number.
Note
For a detailed discussion, see the documentation of deal.II.

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