Skip to main content

Finite possibilities of the finite element method

October 16, 2009 by popiol

Recently, I have been on a conference of young scientists in Warsaw. These were great three days of meeting people, eating, drinking, sightseeing, and, occasionally, watching some presentations. I didn't prepare anything myself, but it was still a good opportunity to see what other PhD students work on, and how they handle all the difficulties caused by the imperfect system of higher education in Poland (mainly related to money). One of the precious observations I have made during the conference is that engineers are not as fond of the finite element method as I had imagined. This is a great news for me because I want to put a lot of effort to improve the FEM by making it easier to use, and, this way, available for more people. Let me share with you some of my thoughts.

The finite element method has made an amazing career as a general and effective approach to solve partial differential equations. It has a well-developed theory, can handle fancy domain shapes, and is supported by plenty of numerical tools. The number of various applications of the method is uncountable, from a helmet design to an explosion simulation. Many scientists make their careers following the simple pattern: create a model, solve it with FEM, change the model a bit, solve it with FEM, change it a bit again, solve it with FEM, and so on. But, FEM has also disadvantages. It's far from being automatic. Using FEM requires understanding how it works, and that's not an easy thing to learn. Using FEM requires adjusting it to specific problems. It's important whether you use triangles or pentagons as the elements. If you simulate a breaking desk, you have to know a priori where the break will occur and generate a mesh which suits the breaking edge. Generally, you have to try really hard to make the method work. There are plenty of those little things that just wait to ruin your results. This is why being a finite element method expert guarantees a good position in industry. There are people who are good in nothing else than FEM, and they make good money on that. It's a huge business. Why should anyone care to improve the method, and make it easy to use? As long as it earns money, no one will bother to seek revolutionary inventions. It's all about the money. I don't mind, but I'm out. I've got other plans. The question is if the method can actually be automated. Obviously, it can, and it's not even that hard!

Mesh generation is a way to make a continues problem domain discrete. Why to do it? Because, unfortunately, computers cannot solve continues problems. Problems given to a computer have to be not only discrete, but even finite. After all, the computer memory is finite. Stating a continues function as a finite formula is not good enough. Formulas look nice, but their worth is little. What we are usually interested in is the value of a function for a given argument. While knowing the formula, we still have to calculate the value somehow. If the formula is f(x,y) = x + y, we're cool, but if it contains integrals, it starts to be messy. Actually, even a simple square root is more problematic than probably many of you think. There is no easy way to calculate a square root. The only way is to guess the value, check if it's good enough, correct it, check again, correct it, and so on, until the square of our approximation is close enough to the argument. Now, pay attention to how I called the value of a square root calculated by a computer. I called it an approximation. Even if there is just such an innocent looking square root in your formula, some approximation has to be already made. Fortunately, this approximation is made automatically, fast, and as precisely as it's possible. Unfortunately, it doesn't work like that for integrals, or differentials.

So, formulas are not good enough. What else, then? I have already written what a mesh generation is. Now, it's time to write what a mesh itself is. A mesh is a finite approximation of a function. This is it. So simple, so pretty. Finite means that it contains a finite amount of data. Solution to every problem can be expressed as a function. Thus a mesh can be used to approximate a solution to any kind of problem. Now, let's think what kind of trouble we can run into when working with meshes. The problem with approximation is always the same: it may vary too much from the exact solution. OK, but what can we do with that? Well, generally, an approximation can get better when we let it store more data. However, with a given amount of data, a lot of approximations can be constructed, varying in exactness. Thus, we can expect from an approximation to be as close to the exact solution as it is possible for a given limit of a data amount. There's a catch: how high should we set the limit? This is a very important question because the more data we agree to store the more time any data processing will take. And, processing the data is the purpose of having it. So, we have two contradictory goals: we want the approximation to be as exact as possible, but, in the same time, we want it to be as small as possible. Choosing between precision and efficiency is crucial in computer science. It would be an amazing achievement if we could generalize this problem and find an automatic approach to solve it. Such a solution would have to take into account our preferences, but setting only one parameter, with values from 0 to 1, should be enough. The value 0 would mean that the precision is unimportant, so the result can be random, but it has to be given immediately. The value 1 would mean give me the best result you can, no matter how long it takes. Sometimes, we may want to set also the minimal precision, and the maximal calculation time. Those three parameters are, in my opinion, completely sufficient to control the balance between precision and efficiency.

We know already what to aim at, but we still don't know how to get it. Our approach will depend strongly on the mesh structure. So, the first thing to do is to choose how to represent a finite approximation of a function by mathematical and computer structures. After a brief research on approximation techniques, we end up with the strong impression that the biggest possibilities we can expect of an approximation are offered by the splines. Putting trust in this impression, we will follow up with defining a mesh as a multidimensional spline. There are some variations of splines, especially in multiple dimensions. In one dimension, a spline is defined as a set of points, values at those points, and, optionally, values of some number of derivatives (first, second, and so on). The points of a spline will be called the mesh points. Having just the values of a function at every mesh point lets us make a linear approximation between those points. Having the values of a function and the values of the first derivative of the function lets us make a second order approximation. The more derivatives the more accurate approximation we get. The accurateness depends also on the number and the location of the mesh points. The amount of data can be controlled by the number of the mesh points, while the location of the mesh points can be used to control the accurateness of the approximation. This way we can obtain a well-defined optimization problem, and try to solve it.

Taking splines to multiple dimensions is not obvious. The most popular way is to imagine a one-dimensional spline as it was consisted of segments which join the neighbouring mesh points. With such an interpretation of a one-dimensional spline, we can take it to a d-dimensional space by replacing the segments with d-dimensional polygons, eg. quadrilaterals in 2D. The polygons have to cover the whole domain. The vertices of the polygons are the mesh points. Such a multidimensional spline has the advantage of indicating the neighbourhood relation. The neighbours are simply the mesh points connected by an edge. Now, you probably think Hey, I know that from somewhere. Yep, this kind of a multidimensional spline is exactly what the finite element method uses. However, this approach has a disadvantage. A mesh consisted of polygons is not much flexible. The polygons are supposed to be as regular as they can. Moving one mesh point can ruin all the regularity. In order to keep the regularity after moving one point, we would have to move a lot of other points. That's problematic. What does FEM do about it? It's simple: it doesn't move the mesh at all. The mesh in FEM is fixed, it's not supposed to move. Why should it move? We have generated a mesh, and it's fine, let's not touch it, right? Well, it's not exactly fine. You see, FEM doesn't even try to optimize the location of the mesh points. In my humble opinion, this is a huge mistake. A simple example to make it clearer: computer graphics doesn't use FEM to simulate fluids because it's completely inefficient and ineffective. Instead, particle systems are widely in use. A particle system is a technique where a lot of particles of a given fluid are followed. Basing on how they move, the motion of the whole fluid is estimated. This way, a surface of a wavy sea can be effectively tracked. In FEM, when a surface moves between two mesh points, it diffuses due to the interpolation error. Actually, there are algorithms which incorporate a particle system into FEM. In those algorithms, a particle system is used to track a surface, and correct the results calculated by FEM. I'm sorry, but that's ridiculous. The mesh should track any surface by itself, and it should be done automatically, without even requiring from the user to identify the surface. A surface can be identified by a computer easily. It's just the place where the value of a function changes mostly. However, tracking the surface would require moving the mesh. As I mentioned before, a mesh consisted of polygons is a rather static structure. Something else is needed.

We will stay with the splines, but we will make them multidimensional in a different way. Let's forget about the neighbourhood relation for a while. A one-dimensional spline is a set of points. A multi-dimensional spline can be defined in exactly the same way. Now, we just have to bring back the neighbourhood relation somehow. To do that, we must realize what is the relation needed for. For any point outside the mesh, the value of a function has to be interpolated using some surrounding mesh points. In FEM, every point is interpolated using the edges of the polygon it lays in. In our approach, we will choose the mesh points which satisfy the following criterion: the neighbours have to form the smallest polygon which contains the given point. The smallest means with the lowest sum of the lengths of the edges. The interpolation method is very important here. Note that there can be more than one polygon satisfying the given criterion. No matter which one we choose, the result should be the same. Such a definition of a mesh has a disadvantage. Every time we move a point, we have to find the neighbourhood relation again. It doesn't seem to be more flexible than the mesh used in FEM. Finding a new triangulation of a set of points in 2D takes O(n log n) time, and we still have to find the proper polygon for a given point in space. The pessimistic complexity of finding the neighbourhood relation in our approach is the same. However, it is possible to do it with the average complexity equal to O(n) thanks to something called locality sensitive hashing. Also, we can consider our approach to be more handy. There is no good reason to make a triangulation of a space. The neighbourhood relation doesn't require that. I prefer to do only the things which can be sensibly justified.

Once we have a definition of a mesh, we can try to formulate our optimization problem. In general, it will be something like: find the set of mesh points for which the cost function is minimal. Yeah, I know, that's very general. What we can tell for sure about the cost function is that it has to contain the number of points and some estimate of the approximation error. The approximation error depends on the thickness of a mesh and the irregularity of the approximated function. The irregularity of a function is described by the second derivative, which can be easily estimated with the values stored in the mesh. Thus we have everything that we need to define the cost function. Unfortunately... I haven't done it yet. But I will. Soon. Be patient and check my blog. Next entries will be more scientifically exciting, I promise. You can also check the web site of the project. It's called The Magic Mesh :) I would appreciate any comments, especially harsh critique. Cheers.

Comments

Finite Element Method (FEM) and basis functions

October 17, 2009 by Halliday, 5 weeks 5 days ago
Comment: 45544

popiol:

As I understand it, the Finite Element Method (FEM) not only specifies a mesh, but also a basis set of functions on the mesh (like what you refer to as points and derivatives, but these points and derivatives take their meaning and relationship from the basis set). It sounds like the basis set you are using for your "interpolation" is the polynomials (a very common, dare I say "popular" basis set).

However, one can show that FEM over a polynomial basis set is equivalent to a Finite Difference Method (FDM) (FDMs, implicitly, use a polynomial basis set).

I've always felt that the two greatest strengths of the FEM were 1) the ability to choose other basis sets (of course, therein lies the greatest complication and non-automatic nature of the "beast"), and 2) the flexibility to choose non-rectangular grids. (However, I have seen FDMs that use non-rectangular grids, and even dynamically adjust the grid as the computation progresses. I have heard that there are auto-gridding schemes for FEM, as well.)

For one (1) dimension, the most flexible, and yet simple basis set I know of is the Rational B-Spline basis. (A way to look at it is as a "perspective" like projection of a B-Spline from a higher dimensional space into the space of interest. It allows for finite exact representations of all conic sections, for instance, while polynomials, or "normal" B-Splines, can require an infinite number of points to approach an exact match for anything other than the parabola.)

The problem has been that, at least until recently, generalizing B-Spines to more than one (1) dimension was an unsolved problem. Fortunately, it appears, now, to have been solved, though optimizing the method still remains a challenge. (Your referring to some automatic method for obtaining the mesh relationship from the points themselves appears to be on the track toward this method I'm referring to—but why reinvent the wheel when it is already there?)

I have the references to this multi-dimensional B-Spline generalization at my work, so I'll have to wait until Monday, or so, to get them to you.

It has been my hope, apparently similar to yours, that this can be used to provide a general FEM system, much like the rather general FDM systems that exist. (And I want one! :-) )

David

Another strength of FEM over FDM, if taken advantage of

November 14, 2009 by Halliday, 1 week 4 days ago
Comment: 46210

popiol:

When I wrote :

I've always felt that the two greatest strengths of the FEM were 1) the ability to choose other basis sets (of course, therein lies the greatest complication and non-automatic nature of the "beast"), and 2) the flexibility to choose non-rectangular grids.

I forgot a third: 3) Since the FEM is an optimization/minimization scheme (at the "big picture" level) it has the advantage of being able to handle Lagrangians directly, rather than only working from the system derived therefrom. One of the advantages this affords, besides the fact that one is actually working from the same "cost" function as the full differential system, is that, in almost all cases, the differential order is reduced (second order partial differential systems usually have Lagrangians that are only first order in the derivatives).

I just thought people might be interested in this extra advantage.

David

yeah, well...

October 18, 2009 by popiol, 5 weeks 3 days ago
Comment: 45566

David:

As I understand it, the Finite Element Method (FEM) not only specifies a mesh, but also a basis set of functions on the mesh (like what you refer to as points and derivatives, but these points and derivatives take their meaning and relationship from the basis set).

Yes, of course. I explain the FEM the other way around. It may be confusing. It's because I still don't exactly understand why those basis functions are so important. I mean, why would I need anything else than polynomials? I think that most of the error of an approximation is caused by wrong localisation of the knots (the mesh points) rather than by inadequateness of polynomial approximation, but I may be wrong. Anyway, I have to read more about those rational B-splines. Maybe I will get interested in them :)

(...) why reinvent the wheel when it is already there?

It's definitely not my intention. I will appreciate some references to the method you write about. I will check if it suits my needs.

I have seen FDMs that use non-rectangular grids, and even dynamically adjust the grid as the computation progresses.

Really? I want them :) If we assume that FEM with polynomial basis functions is just FDM, then I will probably be satisfied with a general, automatic FDM as long as it works well. You see, when I was writing a simulation of a flame based on the Navier-Stokes equations, the biggest problem I faced was related to the numerical stability. I believe that this problem would be automatically solved by my Magic Mesh. That's why it's called magic :) An important thing that I have skipped is that in my approach I want to generate a mesh for the whole problem domain including the time dimension. For example, if we make a simulation in a 2-dimensional geometrical space, the whole problem domain is 3-dimensional because there is also the time. So, the mesh points location will be optimized also according to the time.

The most important feature of my approach is the ability to control the precision and the efficiency of a general finite approximation method (e.g. FDM or FEM), by optimizing the number of the mesh points and the location of the mesh points. I don't think there exists anything like that. At least, I haven't heard about it. If you have read/heard about such systems, I will greatly appreciate any references.

Including the fourth dimension

November 7, 2009 by Halliday, 2 weeks 4 days ago
Comment: 46021

popiol:

You said:

An important thing that I have skipped is that in my approach I want to generate a mesh for the whole problem domain including the time dimension.

Wow. I'm glad to see that I'm not the only one thinking fourth dimensionally in this area. (When I mention such ideas to my fellow workers, here, I mostly get blank stares.)

David

Still looking for reference for dynamic FDM I mentioned

November 7, 2009 by Halliday, 2 weeks 4 days ago
Comment: 46020

popiol:

I have yet to relocate the particular FDM that had the dynamically adjusted non-rectangular grid. It was a meteorological model, and, if I remember correctly, was being adopted by the Army, and/or other branches of the U.S. military, for that purpose. (The dynamic grids especially helped in efficiently and more accurately handling weather fronts and even hurricanes.)

I cannot remember the website of meteorological models I visited long ago that's where I first learned about it. Unfortunately, I apparently didn't save any papers about it on my hard-drive at work (that's how I relocated the info about Mike Neamtu).

Unfortunately, I probably have a hardcopy in my filing cabinet somewhere, and I just haven't had the spare time at work to look through it.

I will post more info here, when I find something.

Sorry.

David

The answer is OMEGA

November 10, 2009 by Halliday, 2 weeks 1 day ago
Comment: 46087

popiol:

While I certainly cannot claim to know "a general, automatic FDM", the dynamically adjusted non-rectangular FDM example I was thinking of is the Operational Multiscale Environment model with Grid Adaptivity (OMEGA). As the name indicates, it is not a general FDM, but it does illustrate the capabilities I have put forth.

If you visit their web site, OMEGA WEB, at <http://vortex.atgteam.com/>, you will probably find all the information you want, about this model.

When I first "caught wind" of this model, I thought for sure that it was a FEM, since I had come to believe that such were the only dynamically adjustable non-rectangular methods available. However, this model certainly taught me otherwise. ;-) (They call it a finite volume method, but I have learned elsewhere that "finite volume" is a special [or more general?] case of finite difference approach. [However, I wouldn't be surprised to find that finite volume methods combine some characteristics from finite element methods into finite difference methods. At the very least, they are finite difference methods that are freed from rectilinear grids, but I'm not sure if they have any further FEM characteristics.])

David

Polynomials are not enough

October 19, 2009 by Fred Bortz, 5 weeks 2 days ago
Comment: 45595

I mean, why would I need anything else than polynomials?

Try approximating an exponential or a periodic function (especially one with infinities like tangent), and you will see where polynomials fail.

Sometimes you need a different set of basis functions.

Fred Bortz
Author of Physics: Decade by Decade (Twentieth Century Science set, Facts On File, 2007

One more thing

November 13, 2009 by popiol, 1 week 6 days ago
Comment: 46161

One more, very strong argument that polynomials are the only sensible functions to use in computer approximation:

The only operations that can be calculated on a computer exactly are the operations generated by addition: addition itself, multiplication, integer exponentiation, and so on. Only the first three of them are widely used. The set of functions generated by them is the set of polynomials. So, how can anyone expect that using something else than polynomials can give better results? No way! The only not obvious thing is how to formulate a problem to make it well-conditioned. FEM attempts to do that by changing the set of basis functions. Our discussion helped me to understand it. But, this is the wrong way. The problem should be adjusted to the computer architecture, not the other way around. Choosing basis functions other than polynomials means that we make an approximation of an approximation. Hopeless. If the problem is ill-conditioned, let's reformulate it, but the basis functions should stay the same: polynomial.

Re: One more thing (argument for polynomial basis)

November 14, 2009 by Halliday, 1 week 4 days ago
Comment: 46206

popiol:

You delude yourself if you think this argument holds water in anything but a subset of models (the system of partial differential equations, not the model solver). This argument is OK in those cases where the system of partial differential equations is polynomial. (Which, admittedly, is a fairly large subset, considering the predilection for linear and nearly linear models.)

However, non-polynomial models are also quite common (any time you have a non-integer power or even just negative powers). The great thing about rational polynomial basis functions is that you get so much for only a division (which costs so little, these days).

My favorite target for a general FEM is General Relativity (GR): Definitely non-polynomial, and has quite normal solutions with singularities (infinity in finite distance). However, GR is quite conducive to rational polynomials.

David

computer architecture

November 18, 2009 by popiol, 1 week 16 hours ago
Comment: 46323

The great thing about rational polynomial basis functions is that you get so much for only a division (which costs so little, these days).

It's not about the computer speed. It's about the computer architecture. Computers cannot calculate a division exactly (unless it's an integer division). There is always some error. Actually, division is terribly conditioned, so, saying only a division is not proper. Similarly, choosing e.g. Gaussian radial basis functions will not let you represent exponential functions exactly. Exponentials cannot be represented exactly on a computer, whatever basis functions you choose. If you would like to really change the basis, you would have to change the computer architecture. Changing the basis functions can make the result better, but you can get the same effect by adding more knots or increasing the approximation order or changing the domain.

My point is that everything comes down to polynomial operations on a computer eventually. It's that simple. Do not think only about the mathematical theory. In practice, there are some particular limitations caused by the computer architecture.

Re: computer architecture

November 18, 2009 by Halliday, 1 week 16 hours ago
Comment: 46324

popiol:

If you really want to be picking nits, as this is certainly beginning to look like, our present computer architectures cannot even represent polynomials without approximation. Even the difference between floating-point quantities looses a significant amount of precision! (Even division doesn't loose precision nearly as quickly. [Besides, don't you know that even integer division, unless you mean the Modulo function, is far from "exact"?] Perhaps you need to refresh your understanding of floating-point computer architecture. [Floating-point division can be as accurate as the floating-point representation will allow, meaning that the error is less that one half of one unit in the last place [ulp]. See the IEEE floating-point specifications.])

Besides, as I pointed out below, Range modification (changing the range, is what the rational polynomials do, not changing the domain) already nullifies your argument that polynomials are the way to go.

Besides, as I have already pointed out, there are important cases where rational polynomials are "exact" (as "exact" as the floating-point representation will allow) where one would have to use significantly more piecewise polynomials to get the same level of approximation, provided floating-point roundoff error doesn't get in your way to the point of making it an impossible task.

So, I advise you to get off this "only polynomials" kick.

David

range/domain transformation

November 24, 2009 by popiol, 2 days 5 hours ago
Comment: 46463

The problem of numerical stability is that sometimes small errors propagate into large errors. Subtraction increases only the relative error, while doesn't change the absolute error. When the input is exact, the output is exact. It's not the case with exponentiation or division. Of course, the result of those operations is as exact as possible, but even a small error on the input can cause a large error on the output.

That was just to clarify a little the thing about computer architecture. Forget it, I see that this conversation won't get us anywhere. The range modification bothers me more. Now, I understand why you claim that it's not a domain transformation. I forgot that a B-spline transforms a function into a curve first. This is where the domain becomes a part of the range. However, it is still a problem reformulation, and thus it can be done independently of the approximation method (as long as it's a general method). It doesn't matter so much, but it's a way I prefer to look at it. It will matter when I start to implement it, and this is why I want to keep things tidy.

Re: Re: range/domain transformation

November 26, 2009 by Anonymous, 3 hours 38 min ago
Comment: 46518

OK, I got confused with the B-splines now. Every definition of a B-spline that I can find in the web says that a B-spline is a curve. A curve doesn't map just from some domain, it's always one-dimensional, and it has a multidimensional range. But, apparently, you are talking about more general B-splines, which map from whatever domain into whatever range. In this case, obviously, the range has nothing to do with the domain.

As for the computer architecture, are you trying to convince me that addition is more error-prone than division? Are you kidding me? I'm sorry, but it's useless. Besides, this discussion has completely missed the point. The point is that instead of changing the set of basis functions one can restate the problem, and that can be done independently of the approximation method. The point is also that instead of restating the problem or changing the basis functions you can obtain the same result (with the same error bound) by adding more knots or increasing the approximation degree. Of course, the cost of these approaches, measured in the time and memory usage, will be different. Different, but not necessarily higher. For instance, adding more knots surely spends more memory, but evaluation of an approximated value for a given input can be actually faster because the approximation for each piece of a piecewise function will be simpler.

By the way, aren't those comments getting to narrow? Maybe it's a good idea to write next comments in the main thread.

Re: range/domain transformation

November 24, 2009 by Halliday, 1 day 19 hours ago
Comment: 46472

popiol:

First off, the likelihood that your "inputs" will be "exact", in any "real world" case (measurements, and/or results from prior computations), is essentially zero. (A set of cases of order zero, to be exact.) So, for all practical purposes, one must consider all inputs to be inexact.

As for relative vs. absolute errors. The nature of present computer floating-point representations makes it such that the smallest possible errors (half a unit in the last place, 1/2 ulp) scales with the magnitude of the value (this is exactly true, when only considering the exponent part when determining "magnitude", this means there is a step function like behavior of the absolute minimal error). So the relative error is the most meaningful error measure, since even the absolute error scales almost exactly the same as the relative error.

Additionally, the nature of both the relative and absolute errors of division are precisely the same as for multiplication. (At least so long as division is done according to the IEEE specifications.) So, once again, your arguments for "only polynomials" based upon an ill-conceived appeal to present computer architecture, fails muster.

(Besides, are you aware of the issues with regard to numerical stability of polynomial computations? How about even the far simpler case of just summing a set of numbers? These issues further belie the argument for "only polynomials".)

Now, I'm not sure what to make of your comment about "the domain becomes a part of the range"... Any spline basis, including B-splines, maps from some domain into some, possibly other, range (just as with any function). However, since the "rational" part of Non-Uniform Rational B-splines (NURBs) is only about taking a ratio of B-splines, the modification, if you will, occurs wholly within the range, and has nothing whatsoever to do with the domain. The same is true if you simply want to look at is as replacing y(x) with u(x)/v(x).

On the other hand, you are certainly free to consider leaving this ratio like "reformulation" (y(x) → u(x)/v(x)) to a separate issue from "the approximation method (as long as it's a general method)", at least so long as facilities are provided for the appropriate restrictions on the ratio functions* (such as constraints on the sum of squares of the coefficients of the denominator functions). Given this proviso, I have no issue with separating this from the rest of the method. Just don't try to represent this choice as anything more than it is: a choice/preference.

David

* Actually, since any given problem, presented to your "solver", may have any number of additional constraints on the functions, and/or their coefficients, such facilities really should be provided as a part of a general "solver".

We have to choose something

October 20, 2009 by popiol, 5 weeks 2 days ago
Comment: 45610

I agree that polynomials are not perfect for approximating exponential functions, but my goal is to find a general method. So, unless you know how to generalize the process of choosing the set of basis functions, I suggest to choose one particular set of basis functions and stick to that. My proposal was polynomials. David suggested that rational B-splines might be better. I will consider that. Thanks for all your suggestions, and I'm waiting for more :)

Re: We have to choose something

November 7, 2009 by Halliday, 2 weeks 4 days ago
Comment: 46019

popiol:

Yes, we "have to" choose something. That's why, if one is going to try and choose some basis set of functions that will, hopefully, be applicable over as wide a field as reasonably possible, one should choose a basis set that is as flexible as possible, at a reasonable "cost" (computational and otherwise).

Now, I understand your predilection for polynomials: They are simple, and they are one of the first approximation methods we learn. Piecewise polynomial approximations, with well defined continuity properties are very helpful in a wide variety of applications.

Non-Uniform B-Spines are arguably the best such piecewise polynomial approximations. They are simple to calculate in numerically stable and accurate ways (not all polynomial calculations can claim such), they cover all possible piecewise polynomials up to a given degree (just choose a B-Spline of the given degree), they have maximal continuity, and, due to the non-uniform character, can easily be used to handle cases where one desires points of lower continuity.

OK. So, as the above should suggest, the best piecewise polynomial approach is based upon Non-Uniform B-Splines. They can do a reasonably good job of approximating exponentials (due to their piecewise nature), they can even handle approximating periodic functions (just define their base and control points in a periodic way). However, as Fred rightly pointed out, they don't do very well at all in handling functions with poles (infinities).

This is where Rational polynomial approximations come in. Fortunately, taking Non-Uniform B-Splines and obtaining Rational polynomials is as simple as using a single additional dimension in the control space, and projecting back into the desired space via a perspective like projection (the simplest way is to simply divide by the piecewise polynomial in the extra dimension: In all cases it's as simple as dividing the polynomials you might otherwise use in a Non-Uniform B-Spline approximation, by another one over the same base space). This gives the Non-Uniform Rational B-Spline (NURB) approximation. (You have probably heard of NURBs.)

NURBs can do all that piecewise polynomials can do, plus handling functions with poles (infinities). Besides, as a side benefit, they provide exact fits to important geometric objects like circles, ellipses, and hyperbolas with only a small number of second order segments.

Now, If they can do all this, then why haven't they been more widely used in numeric approximation of partial differential equations? The problem is that up until quite recently, they only existed as one dimensional entities: They could be used for curves and ordinary partial differential equations, but could only be used for multidimensional problems by taking tensor products of these one dimensional entities. This leads to a severe rectangular grid like restriction.

Fortunately, Marian (Mike) Neamtu has apparently solved this problem of generalizing Non-Uniform B-Splines (and, hence, also NURBs) to multiple dimensions. See Mike Neamtu's Website at <http://www.math.vanderbilt.edu/~neamtu/>. Especially see his latest paper on the subject (in his "Papers" section, linked in the left-hand column): M. Neamtu, Delaunay configurations and multivariate splines: A generalization of a result of B. N. Delaunay, Trans. Amer. Math. Soc. 359 (2007), 2993-3004 (at <http://www.math.vanderbilt.edu/~neamtu/papers/newsplines.pdf>).

The only thing this is now awaiting is an efficient implementation. ;-)

David

Domain transformation apart from approximation

November 12, 2009 by popiol, 1 week 6 days ago
Comment: 46146

I was about to prepare some numerical experiments to show that polynomial splines are not that bad when it comes to approximating exponentials or sinusoids, but now I see that we agree on this, so I will save my time. Of course, they don't handle infinities, but I have made the reasonable assumption that the approximated function is continues and smooth. No physical property can change its value in zero time. As for being infinite, I don't think that any physical property can do that either. Even if I'm wrong, how do you expect to represent an infinite value on a computer? We can use only a finite number of values!

I've read a little about the rational B-splines, and, as far as I understand it, the trick here is to take the domain of a function into higher dimension. This is very cool, I like it. In fact, this is a special case of something called domain transformation, one of the most powerful mathematical tools used in computer science. Notice that, for instance, the idea of artificial neural networks is to take the problem into higher dimension and than approximate it with a linear function. The activation functions can be compared to the basis functions: they are adjusted to the nature of the problem.

Anyway, the reason I write about it is that, in my opinion, domain transformation should be kept apart from approximation. These are two different, essential problems in computer science. First, you change the domain, and, then, you apply the approximation. This is why I claim that piecewise polynomials are everything that I need to make the best possible approximation... although sometimes it may require restating the problem, what doesn't have to be obvious.

I haven't read the paper of Mike Neamtu yet, but I will try to do it soon, just as the papers about the OMEGA method. Great thanks for those references!

Re: Domain transformation apart from approximation

November 14, 2009 by Halliday, 1 week 4 days ago
Comment: 46207

popiol:

Actually, in this case it is Range modification, not Domain modification.

However, you are correct that a general system of partial differential equations (or even the Lagrangian of such) using a rational basis can be transformed into one using a polynomial basis: You replace the dependent variables (functions) with ratios of new variables (functions). (Of course, this kills your argument, above, for polynomial basis functions.)

The exception are systems that are formulated as a differential on one side equalling a function of the independent and dependent variables only. Unfortunately, this is the form a large set of solvers expect of the differential equations.

What is required is a general function of independent and dependent variables, and derivatives of the dependent variables. (Or general Lagrangian density functions and/or "cost" functions.)

David

Not a one-size-fits-all solution

October 20, 2009 by Fred Bortz, 5 weeks 2 days ago
Comment: 45619

I'm far from expert with Finite Element Analysis, but I have interacted with some people who are. It seems to me you are looking for a one-size-fits-all solution where there is none.

Different engineering issues require different choices of basis functions for (1) robust modeling and (2) efficient computing. I'm sure electrical engineering, mechanical engineering, and civil engineering problems require very different applications of finite element techniques. Even in civil engineering, I imagine that bridge design requires a different set of basis functions from those used in skyscrapers or other buildings, since the materials involved are very different.

So it is true that "we have to choose something," but different realms of engineering require different choices. That's where companies like Swanson Analysis (creators of ANSYS) make their big money. They not only provide the software but also engineering expertise to make the most of that software with appropriate choices of basis functions for the application.

Fred Bortz
Science Books for Young Readers
and
Science Book Reviews



About us

Science Blog was started in August 2002. It lives, breathes and eats press releases from research organizations around the globe. Most of what you read here are press releases from the outfits named in the stories themselves. Got a news story you think belongs here? Let's talk. The other half of the equation is blog posts from readers like you. So if you have an interest in science, please register and join others like you in an ongoing, vibrant dialog about what makes the world tick. Meantime, please take a minute to read our Privacy Policy and Site Disclaimer.


Premium Drupal Themes by Adaptivethemes