Joel,
> [...]
> for (unsigned int q_index=0; q_index<n_q_points; ++q_index)
> for (unsigned int i=0; i<dofs_per_cell; ++i)
> {
> velocity[local_dof_indices[i]] = local_velocity_values[q_index];
> }
>
> Here you assign the same Tensor<1,dim> at all DoFs multiple times and you
end with velocity[*]=local_velocity_values[n_q_points]-1.
I don't think that this is what you want to do, is it? If I understand you
correctly, you try to assign the magnitude of the velocity in each degree
of freedom
to a different scalar Vector that represents a scalar FiniteElement Vector.
In this case, you need to use a Quadrature object that uses the
unit_support_points of the scalar FE [1] and your assignment would read
for (unsigned int i=0; i<dofs_per_cell; ++i)
velocity[local_dof[indices[i]] = local_velocity_values(i).norm_sqr();
where velocity is a Vector that is related to fe_scalar and
local_velocity_values has the type std::vector<Vector<double> >.
Best,
Daniel
[1]
https://github.com/dealii/dealii/wiki/Frequently-Asked-Questions#how-to-get-the-mapped-position-of-support-points-of-my-element
--
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].
For more options, visit https://groups.google.com/d/optout.