Dear all,
The function MatrixFreeOperators::LaplaceOperator::local_diagonal_cell() in
matrixfree/operators.h line 2135-2153
FEEvaluation<dim, fe_degree, n_q_points_1d, n_components, Number> phi(
data, this->selected_rows[0]);
for (unsigned int cell = cell_range.first; cell < cell_range.second;
++cell)
{
phi.reinit(cell);
VectorizedArrayType local_diagonal_vector[phi.static_dofs_per_cell];
for (unsigned int i = 0; i < phi.dofs_per_component; ++i)
{
for (unsigned int j = 0; j < phi.dofs_per_component; ++j)
phi.begin_dof_values()[j] = VectorizedArrayType();
phi.begin_dof_values()[i] = 1.;
do_operation_on_cell(phi, cell);
local_diagonal_vector[i] = phi.begin_dof_values()[i];
}
for (unsigned int i = 0; i < phi.dofs_per_component; ++i)
for (unsigned int c = 0; c < phi.n_components; ++c)
phi.begin_dof_values()[i + c * phi.dofs_per_component] =
local_diagonal_vector[i];
phi.distribute_local_to_global(dst);
In the first loop inside the cell loop index i go through from 0 to
phi.dofs_per_component (highlighted) as well as the j index,
but the function phi.begin_dof_values()return a pointer whose index go
throught from 0 the phi.dofs_per_cell, that is said
*in n_component > 1 case the index after phi.dofs_per_component never been
touched( the total is dofs_per_compoenent*n_component).*
I have found an old discussion in
https://groups.google.com/forum/#!searchin/dealii/MatrixFreeOperators$3A$3ALaplaceOperator%7Csort:date/dealii/k133wjcKM70/Jw-reYrsAwAJ
\
but things change now.
Am I misunderstand here?
best,
m.
--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see
https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google Groups
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/dealii/8dbf60ff-29a7-40e5-95d2-f8d7cd1fbc04%40googlegroups.com.