Suppose we need to solve some PDE about some function u(r). Following the weak form of an equation, we obtain and solve a linear system (A*x=b). What we really solve are the coefficients U_j (this corresponds to the vector x in the linear system). Thus I am assuming that the solution vector (normally denoted as "system_solution" in the Tutorials) is really the vector U_j.

Correct.


The function u(r) = \sum_j U_j Q(r)_j, where Q(r)_j are the base functions. For a certain point in the real space, denoted as r0, the value of the function u should be u(r_0) = \sum_j U_j Q(r_0)_j.
Thus, when I loop over the elements of the solution vector, that is, a loop like
for(unsigned int i=0; i<dof_handler.n_dofs(), ++i){
     system_solution(i) = /*some code*/; //each i corresponds to a support point
}
That modifies the coefficients U_j.

If I want to limit the value of u(r) in the range [0,1], for example. Let's say, in a "discrete" version, my aim is to limit u(r) at every support point in the range [0,1]. However, if I do the above loop, and limit system_solution(i) in the range [0,1], how would that help to limit u(r), since u(r) is a sum (u(r) = \sum_j U_j Q(r)_j). It looks like there are some properties concerning the base functions and support points? Is it some general properties for base functions?

Yes, this is an excellent observation.

There is a simple observation that helps you if you use Q_1 elements (piecewise (bi-/tri-)linear), namely that the maximum and minimum of u(r) are attained at the nodes (support points) of the mesh. This is easy to see if you just think of the 1d situation where u(r) is a piecewise linear function composed of line segments -- their maxima and minima are clearly at the nodes. The same is true in 2d/3d.

But, if you are using quadratic (Q_2) elements, then this property is no longer true. In other words, limiting system_solution(i) does not guarantee that u(r) is also limited. There is no simple solution to this problem when using higher order Lagrange elements. I believe that I heard people say that this is easier to achieve if you use a Bernstein basis instead of a Lagrange basis, but I cannot say that I know these bases well enough to explain.

Best
 W.
--
------------------------------------------------------------------------
Wolfgang Bangerth          email:                 [email protected]
                           www: http://www.math.colostate.edu/~bangerth/

--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to