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.