|
| template<int dim, typename number > |
| dealii::FullMatrix< number > | create_dof_interpolation_matrix (const dealii::DoFHandler< dim > &dof_handler_1, const dealii::DoFHandler< dim > &dof_handler_2, const bool do_sort_lexicographically) |
| |
| template<int dim, typename number > |
| void | interpolate_dof_values (FECellIntegrator< dim, 1, number > &source, FECellIntegrator< dim, 1, number > &target, const dealii::FullMatrix< number > &interpolation_matrix) |
| |
| template dealii::FullMatrix< double > | create_dof_interpolation_matrix (const dealii::DoFHandler< 1 > &, const dealii::DoFHandler< 1 > &, const bool) |
| |
| template dealii::FullMatrix< double > | create_dof_interpolation_matrix (const dealii::DoFHandler< 2 > &, const dealii::DoFHandler< 2 > &, const bool) |
| |
| template dealii::FullMatrix< double > | create_dof_interpolation_matrix (const dealii::DoFHandler< 3 > &, const dealii::DoFHandler< 3 > &, const bool) |
| |
| template void | interpolate_dof_values (FECellIntegrator< 1, 1, double > &, FECellIntegrator< 1, 1, double > &, const dealii::FullMatrix< double > &) |
| |
| template void | interpolate_dof_values (FECellIntegrator< 2, 1, double > &, FECellIntegrator< 2, 1, double > &, const dealii::FullMatrix< double > &) |
| |
| template void | interpolate_dof_values (FECellIntegrator< 3, 1, double > &, FECellIntegrator< 3, 1, double > &, const dealii::FullMatrix< double > &) |
| |
template<int dim, typename number >
| dealii::FullMatrix< number > MeltPoolDG::DoFTools::create_dof_interpolation_matrix |
( |
const dealii::DoFHandler< dim > & |
dof_handler_1, |
|
|
const dealii::DoFHandler< dim > & |
dof_handler_2, |
|
|
const bool |
do_sort_lexicographically |
|
) |
| |
This function creates a n x m interpolation matrix P, to interpolate DoF values per cell from one space (n) given by
- Parameters
-
| dof_handler_1 | to another space (m) given py |
| dof_handler_2. | |
The interpolation of cell-wise DoF values x, using the matrix P can be done as follows _ x = P x i ij j
with i=0...n-1 and j=0...m-1.
- Note
- The row/column indices are sorted in lexicographic order.
-
Enable do_sort_lexicographically if the interpolation matrix should be used in matrix-free loops.
Copied from adaflo:
https://github.com/kronbichler/adaflo/blob/f873472c43798304bbdb7f0cbeb556061c489020/source/level_set_base.cc#L68-L137
@note semantics slightly modified
template<int dim, typename number >
| void MeltPoolDG::DoFTools::interpolate_dof_values |
( |
FECellIntegrator< dim, 1, number > & |
source, |
|
|
FECellIntegrator< dim, 1, number > & |
target, |
|
|
const dealii::FullMatrix< number > & |
interpolation_matrix |
|
) |
| |
Interpolate DoF values from one finite element space to another.
The function evaluates the values stored in source at the support points of its finite element space and interpolates them to the support points of the finite element space represented by target. The interpolation is performed by applying interpolation_matrix to the DoF values of source.
After the interpolation, the resulting values are submitted as DoF values to target using FECellIntegrator::submit_dof_value(). The function does not call FECellIntegrator::evaluate() on target afterwards; this must be done by the caller if values or gradients at quadrature points are required.
- Parameters
-
| source | FECellIntegrator containing the DoF values in the source finite element space. The function calls FECellIntegrator::evaluate() with EvaluationFlags::values on this object before accessing its DoF values. |
| target | FECellIntegrator into which the interpolated DoF values are submitted. This object must already be reinitialized for the same cell as source. |
| interpolation_matrix | Matrix mapping DoF values from the source finite element space to the target finite element space. Its number of rows must match target.dofs_per_cell and its number of columns must match source.dofs_per_cell. The interpolation_matrix can be computed using create_dof_interpolation_matrix(). |