Hi Johannes, if you have a "FEM function" represented as a vector, say solution(n_dofs), the coefficient of the ith basis function you mean is nothing else than the ith component of this vector, solution(i) ... so, if you want to represent a constant function, you just have to set solution(i) = const for all i ... or what do you mean?
Maybe this helps, Martin ________________________________ Von: Johannes Reinhardt <[email protected]> An: Markus Bürg <[email protected]> CC: "[email protected]" <[email protected]> Gesendet: Mittwoch, den 13. Juli 2011, 14:01:32 Uhr Betreff: Re: [deal.II] Free Boundary conditions On Wed, 2011-07-13 at 13:09 +0200, Markus Bürg wrote: > Hello Johannes, > > in your code you compute the integral of the shape functions. For most > finite elements (including the FE_Q) this has nothing to do with the > dof values. > > Best Regards, > Markus Thank you for your answer. Unfortunately I do not understand your statement. What kind of finite element would be an exception? Maybe I am not using the correct words, I am new to deal.ii and not very experienced working with finite elements. I will try to clarify what I mean: As I understand it at the moment, for FEM functions are represented as a sum of basis functions multiplied by coefficients. These basis functions have a compact support, which is (for the case of FE_Q) one or more cells in the triangulation, depending whether the corresponding dof sits on a vertex, a face or a cell. The basis functions are in some way ordered and numbered by a index. When I wrote "value of a dof", I wanted to refer to the coefficient of the corresponding basis function (which is the integral of the shape function when I want to represent the constant function 1), not its index. Regards, Johannes > > > > Am 13.07.11 12:29, schrieb Johannes Reinhardt: > > Hello, > > > > I want to use parts of deal.ii to work with a problem which does not > > impose any constraints on the boundary. However, I run into some > > problems with boundary dofs and do not see a way to properly solve them. > > > > I am using deali.ii 6.3.1. > > > > The attached code serves to illustrate my problem. It was my first > > attempt to calculate the discretised representation of a 2D function > > (the constant function in this case), and output it. The result however > > is not what I want. It is not constant and at the boundaries the value > > of the reconstructed function is too small. I believe this is the case, > > because there are contributions to the value of the boundary dofs are > > implicitly zero, as the cells for these contributions are not existing. > > Or posed differently, it is a problem of normalisation, as the boundary > > dof shape functions have a smaller support (only one quarter for a dof > > in a corner, one half for a dof on a edge of the domain). > > > > I guess that this is usually not a problem, when one uses Dirichlet or > > Neumann boundary conditions, where the values for these dofs are fixed. > > > > My idea of a solution would be to scale the contributions to boundary > > cells by a factor to compensate for the wrong normalisation. But I do > > not see how to determine this factor reliably and for all dimensions. I > > have to find out for all the boundary dofs (which I can obtain with > > DoFTools::extract_dofs_with_support_on_boundary) how many contributing > > cells are missing. What is an appropriate way to do that? > > > > Thank you in advance > > > > Regards > > > > Johannes Reinhardt > > > > > > > > > > > > > > > > > > _______________________________________________ > > dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii > > _______________________________________________ dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii
_______________________________________________ dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii
