Hi,
I should correct my second post regarding to EE, sorry, there is no problem, i did not attend to distinguish between 1D tensor "psi", and scaler "phi" (tired eye!), so please drop my second post regarding to bug in error estimator (however i think that the first one, minnor, is still matter) Cheers RT On Fri, Nov 28, 2008 at 2:23 AM, Ruhollah Tavakoli <[EMAIL PROTECTED]> wrote: > Hi, > > > It seems that some other problems (more serious) are present in > "KellyErrorEstimator" class (of course if I understood correctly), I just > mention some of them: > > > please refer to "error_estimator.cc", I focus on a pice of function > "integrate_over_regular_face": > > first, it is obvious that each item of array: > "per_thread_data.psi[n][p][component]" is a vector (include gradient) > > in line 1274: dot product of gradient at each qp by face-normal at each qp > is computed (i.e. du/dn), result for each qp is a scaler and this scaler is > cast to vector value gradient. > > If we ignore performance leake for such excess operation. If implementation > of operator overloading in deallii vector algebra goes correct, We expect > that each component of gradient at qp include result of above mentioned dot > product (we should have duplicated storage). > > But it's not happen in practice, if you print value of > "per_thread_data.psi[n][point][component]" prior and after dot product it is > not changed at all cases. e.g. effect of above dot product was not felt. I > do not know what is reason, maybe related to vector algebra, etc. (I use MT > version, i do not know can it cause or no). > > to study this simply replace the following pice instead of line: 1271-1276 > (of course add iostream, fstream headers to support output on stream) and > recompile library, i have used step-6 (though not important:i fixed its > coeff matrix to 1, zero dirichlet bc and rhs =4, by this exact solution is > known): > > -------------------------- > > std::cout<<"\n prior to dot = "<<per_thread_data.psi[0][0][0]<<"\n "; > > for (unsigned int n=0; n<n_solution_vectors; ++n) > for (unsigned int component=0; component<n_components; ++component) > for (unsigned int point=0; point<n_q_points; ++point) > per_thread_data.phi[n][point][component] > = (per_thread_data.psi[n][point][component] * > per_thread_data.normal_vectors[point]); > > std::cout<<"\n after dot product = "<<per_thread_data.psi[0][0][0]<<"\n > "; > > > ------------------------------ > > it seems that there are other problem besides to this, but lets to first > hear from experts. > > > Cheers > > RT > > On Thu, Nov 27, 2008 at 8:16 PM, Ruhollah Tavakoli <[EMAIL PROTECTED]>wrote: > >> Hi, >> >> >> After being more than a year away from dealii, today start to use dealii >> egain, so i'm not very familiar with code and maybe my bug report be silly >> (apology in advance): >> >> my version: stable 6.1.0 >> >> It seems that there is a logical bug in "KellyErrorEstimator" class, it >> takes a vector field (each field can be multi-component itself), so it >> should takes a vector boundary conditions (each one for each field), but it >> just take one neumann bc object and so use same bc for all fields. >> >> to see more about what happen refer to "error_estimator.cc": line 1331 or >> line 1344, you can see that the same boundary condition is taken into >> account for all "n_solution_vectors" >> >> am i miss something? >> >> >> Cheers >> >> RT >> >> >> PS1: in this estimator for dirichlet faces, no action is considered, my >> question: does this mean that this estimator may not work as well for >> Dirichlet problems (in constrast to neumann ones)? >> >> PS2: notice that example folder is missed from "deal.nodoc-6.1.0.tar" and >> "deal.doc-6.1.0.tar", it's infeasible, so i suggest to fix it. Can someone >> just post zipped example folder of 6.1.0 version, i do not like to download >> a 60MB again! >> >> > >
_______________________________________________
