Hi gk,

since the refinement strategy used in this example is based on cells, we only 
compute cell contributions to the estimator. The cells with the highest 
estimated errors are marked for refinement. But the definition of the estimator 
includes face terms, we split them between the two neighboring cells. That's 
actually what the piece of code does.

The meshworker is parallelized using threads.

Best,
Bärbel
________________________________
Von: [email protected] [[email protected]]" im Auftrag von 
"gaurav k [[email protected]]
Gesendet: Dienstag, 24. Juli 2012 23:58
An: [email protected]
Betreff: [deal.II] Step-39

Hi,

I have a question on step-39. Estimator vector has only 1 element per cell but 
shouldn't we need one entry each for the face too? From what I understand, the 
contributions of all the internal and boundary faces are calculated and added 
to the corresponding cell contribution. l2 norn is then taken for this vector. 
My confusion is shouldn't the size of 'estimates' Vector be number of cells + 
number of faces.
The code for the face estimator is:


 for (unsigned 
k=0;k<fe.n_quadrature_points<http://www.dealii.org/developer/doxygen/deal.II/classFEValuesBase.html#a807c3049bfe81743fc0f237dfc2fbdea>;++k)
      {
        double diff1 = uh1[k] - uh2[k];
        double diff2 = 
fe.normal_vector<http://www.dealii.org/developer/doxygen/deal.II/classFEValuesBase.html#a65b6761eafde9e485da59d599b90760b>(k)
 * Duh1[k] - 
fe.normal_vector<http://www.dealii.org/developer/doxygen/deal.II/classFEValuesBase.html#a65b6761eafde9e485da59d599b90760b>(k)
 * Duh2[k];
        
dinfo1.value<http://www.dealii.org/developer/doxygen/deal.II/classMeshWorker_1_1LocalResults.html#ac0364286d1e6e15977806b99083c6d63>(0)
 += (penalty * diff1*diff1 + h * diff2*diff2)
                           * 
fe.JxW<http://www.dealii.org/developer/doxygen/deal.II/classFEValuesBase.html#ad097580a2f71878695096cc73b271b9d>(k);
      }
    
dinfo1.value<http://www.dealii.org/developer/doxygen/deal.II/classMeshWorker_1_1LocalResults.html#ac0364286d1e6e15977806b99083c6d63>(0)
 = 
std::sqrt(dinfo1.value<http://www.dealii.org/developer/doxygen/deal.II/classMeshWorker_1_1LocalResults.html#ac0364286d1e6e15977806b99083c6d63>(0));
    
dinfo2.value<http://www.dealii.org/developer/doxygen/deal.II/classMeshWorker_1_1LocalResults.html#ac0364286d1e6e15977806b99083c6d63>(0)
 = 
dinfo1.value<http://www.dealii.org/developer/doxygen/deal.II/classMeshWorker_1_1LocalResults.html#ac0364286d1e6e15977806b99083c6d63>(0);


So the face contribution is added to the cell estimator. Am I missing something 
very elementary here?
Hope I was clear with my question.
Also, can the meshworker framework be parallelized?

--
Thanks,
gk

_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii

Reply via email to