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
