Hi Denis,

I will put the description in the header of the file. PR underway. The
best documentation gets written when explaining things to others. :-)


> actually it’s not about components, it is about values at quadrature
> points for a vector of solution.
> Say I have two vectors representing scalar FE field and I want to have
> their values at quadrature points.
> That was my interpretation of the function below:
>
> void FEEvaluationBase
> <https://www.dealii.org/developer/doxygen/deal.II/classFEEvaluationBase.html><
> dim, n_components_, Number >::read_dof_values         (       const 
> std::vector<
> VectorType > &        src, 
>
>       
>       const unsigned int      first_index = |0| 
>
>       )
>
>
> since it takes a vector of VectorType.
> So the desired answer would be something like
> std::vector<VectorizedArray<double>> values = phi.get_value(q);
>
> Of course I could loop over the input vector and do
> phi.read_dof_values(src[i]) followed by phi.get_value(q) for each
> vector separately.
There are two possibilities for doing things. One is like you say, you
loop over the components in the input vector or create two FEEvaluation
objects and let them do similar things. Note though that you need to
call both 'phi.read_dof_values()' and 'phi.evaluate(true,false)' before
you can query the data on quadrature points.

The other possibility is to create a multi-component evaluator which was
along the lines of my last post. Say you have n_components vectors you
all want to read from, then you would set:
  FEEvaluation<dim,fe_degree,n_q_points_1d,n_components> phi(matrix_free);

When you call 'phi.read_dof_values(src, 0);', it reads n_components
vectors one after another. The call to phi.get_value(q) then returns
Tensor<1,n_components,VectorizedArray<double> > and you have all your
components sitting together.

Best,
Martin

-- 
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 dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to