deal.II version GIT relicensing-1962-gd05d5f3b38 2024-10-10 14:10:00+00:00
|
#include <deal.II/matrix_free/evaluation_kernels.h>
Static Public Member Functions | |
template<typename Number , typename Number2 > | |
static void | do_forward (const unsigned int n_components, const AlignedVector< Number2 > &transformation_matrix, const Number *values_in, Number *values_out, const unsigned int basis_size_1_variable=numbers::invalid_unsigned_int, const unsigned int basis_size_2_variable=numbers::invalid_unsigned_int) |
template<typename Number , typename Number2 > | |
static void | do_backward (const unsigned int n_components, const AlignedVector< Number2 > &transformation_matrix, const bool add_into_result, Number *values_in, Number *values_out, const unsigned int basis_size_1_variable=numbers::invalid_unsigned_int, const unsigned int basis_size_2_variable=numbers::invalid_unsigned_int) |
template<typename Number , typename Number2 > | |
static void | do_mass (const unsigned int n_components, const AlignedVector< Number2 > &transformation_matrix, const AlignedVector< Number > &coefficients, const Number *values_in, Number *scratch_data, Number *values_out) |
This struct implements the change between two different bases. This is an ingredient in the FEEvaluationImplTransformToCollocation class where we first transform to the appropriate basis where we can compute the derivative through collocation techniques.
This class allows for dimension-independent application of the operation, implemented by template recursion. It has been tested up to 6d.
Definition at line 777 of file evaluation_kernels.h.
|
inlinestatic |
This applies the transformation that contracts over the rows of the coefficient array, generating values along the columns of the coefficient array.
n_components | The number of vector components. |
transformation_matrix | The coefficient matrix handed in as a vector, using basis_size_1 rows and basis_size_2 columns if interpreted as a matrix. |
values_in | The array of the input of size basis_size_1^dim. It may alias with values_out |
values_out | The array of size basis_size_2^dim where the results of the transformation are stored. It may alias with the values_in array. |
basis_size_1_variable | In case the template argument basis_size_1 is zero, the size of the first basis can alternatively be passed in as a run time argument. The template argument takes precedence in case it is nonzero for efficiency reasons. |
basis_size_2_variable | In case the template argument basis_size_1 is zero, the size of the second basis can alternatively be passed in as a run time argument. |
Definition at line 809 of file evaluation_kernels.h.
|
inlinestatic |
This applies the transformation that contracts over the columns of the coefficient array, generating values along the rows of the coefficient array.
n_components | The number of vector components. |
transformation_matrix | The coefficient matrix handed in as a vector, using basis_size_1 rows and basis_size_2 columns if interpreted as a matrix. |
add_into_result | Define whether the result should be added into the array values_out (if true) or overwrite the previous content. The result is undefined in case values_in and values_out point to the same array and add_into_result is true, in which case an exception is thrown. |
values_in | The array of the input of size basis_size_2^dim. It may alias with values_out. Note that the previous content of values_in is overwritten within the function. |
values_out | The array of size basis_size_1^dim where the results of the transformation are stored. It may alias with the values_in array. |
basis_size_1_variable | In case the template argument basis_size_1 is zero, the size of the first basis can alternatively be passed in as a run time argument. The template argument takes precedence in case it is nonzero for efficiency reasons. |
basis_size_2_variable | In case the template argument basis_size_1 is zero, the size of the second basis can alternatively be passed in as a run time argument. |
Definition at line 930 of file evaluation_kernels.h.
|
inlinestatic |
This operation applies a mass-matrix-like operation, consisting of a do_forward() operation, multiplication by the coefficients in the quadrature points, and the do_backward() operation.
n_components | The number of vector components. |
transformation_matrix | The coefficient matrix handed in as a vector, using basis_size_1 rows and basis_size_2 columns if interpreted as a matrix. |
coefficients | The array of coefficients by which the result is multiplied. Its length must be either basis_size_2^dim or n_components*basis_size_2^dim. |
values_in | The array of the input of size basis_size_2^dim. It may alias with values_out. |
scratch_data | Array to hold temporary data during the operation. Must be of length basis_size_2^dim. |
values_out | The array of size basis_size_1^dim where the results of the transformation are stored. It may alias with the values_in array. |
Definition at line 1080 of file evaluation_kernels.h.