Hi Alvaro
I don't know what a 'meshless' method is, so I can only explain to you a
similar problem I have which definitely involves a mesh. I use the
finite element method for fluid mechanics problems with a free surface
where the mesh has to evolve with time.
Due to the way I choose to evolve the mesh, the domains of integration
of my element level matrices depend on the nodal positions of the nodes
of the element, which in turn depend on positions of the nodes on the
free surface... which depend on time, all in a horrible nonlinear way.
So I encountered the same problem as you with having to differentiate
such integrals.
The easiest way I found was to use a spatial mapping to transform the
shape of each element to a standard one which is independent of free
surface nodal positions and time etc. The mapping puts all the
information about the shape of the element into the integrand. You can
then take the derivative directly into the integrand, and are left with
many levels of chain rule to apply. You end up with a horrible looking
long integrand, but it works, and you have the added advantage that the
domain of integration is simpler. The only thing that you have to look
out for is that the mapping may degenerate if elements get too squashed,
so I have a simple test that I apply to each element, and which is
dependent on the determinant of the Jacobian of the mapping. The smaller
the determinant of the Jacobian is within the element, the worse the
mapping is, and if it hits zero within the element, then the mapping's
completely broken... and so probably is your element.
Hope that helps,
Paul
Alvaro Fernandez wrote:
> OK, here goes. For the benefit of those who have plain text mail readers, I
> will use a LaTex kind of notation for the math. I hope it's not too
> cumbersome to decode.
>
> I am debugging an algorithm I wrote for an adaptive meshless method. My
> question is related to how to take the derivative of an integral with
> variable bounds.
>
> Ordinarily, if the integral looks like $\frac{d}{dx} \int_{u_1(x)}^{u_2(x)}
> f(t) dt$ then the result is $f(u_2(x)) \grad u_2 - f(u_1(x))\grad u_1$. So
> this is the case if the bounds are functions of the integration variable.
>
> My case is more complicated; I have partial derivatives. Specifically, I
> have an integral that looks something like this:
> $I =
> \sum_{j=1}^{i-1}
> \int_{a_j(p_j)}^{b_j(p_j)}\phi_j(x,p_j)\phi_i(x,\vec{p_i})dx +
> \int_{a_i(p_i)}^{b_i(p_i)}\phi_i(x,p_i)\phi_i(x,\vec{p_i})dx $ where the
> $p_j$ are vectors of parameters for the basis functions $\Phi_j$. The
> variable $x$ is a spatial variable, 1, 2, or 3-D. So in this case, the
> bounds are functions of indexed parameter vectors $p_i$ as well as of the
> integration variable.
>
> Now, the point is I want to take the grad of $I$ with respect to the
> specific parameter vector $\vec{p}_i$ (the other vectors
> $p_j,~,j=1,2,\ldots,p_{i-1}$ are held constant).
>
> How should I proceed? The more I look at it, the more it looks like I can't
> really do this without more information.
>
> One added wrinkle - the functions $a$ and $b$ use things like maxval(),
> whose derivative is a little complicated; so taking the partial derivatives
> of the bounds is not that straightforward.
>
> My apologies if this appears disjointed, but this is as much as I can
> simplify without possibly over-simplifying.
>
> Alvaro Fernandez
--
===============================================
Dr. Paul Suckling
Researcher
Materia Nova / University of Mons
Parc Initialis - Avenue Copernic
Bat. Materia Nova - 7000
MONS - Belgium
+32(0)65 37.38.84
===============================================
|