I stumbled on this:

<list of many functions with names like ...Mesh...,Tetrahedon..., Triangle..., ProcessBCs, ...>

I'm tempted to conclude that Mathematica has built-in finite element modelling capability, but the documentation seemingly does not cover it. What does FEM mean in this context? What is an example of an equation that NDSolve would use these functions to solve?

  • 6
    $\begingroup$ As this is undocumented and only present in version 8, my interpretation has been that this is probably a new-in-9 feature yet to be completed. As you probably know, the finite element method is useful in particular for solving elliptic PDEs. It's not that unusual to find partly implemented features (e.g. Wavelets`* in 7) representing a step toward new functionality for a future release. $\endgroup$ Commented Mar 21, 2012 at 5:06
  • 1
    $\begingroup$ How do people "stumble upon" undocumented features? Every couple of days someone mentions something undocumented, how do you come up with these symbols? $\endgroup$
    – David
    Commented Mar 21, 2012 at 5:11
  • $\begingroup$ @David In my case I happened to notice the InputForm of an InterpolatingFunction in relation to this issue. $\endgroup$
    – JxB
    Commented Mar 21, 2012 at 5:25
  • 5
    $\begingroup$ @David Try ?"NDSolve**" for a long list of interesting expressions. $\endgroup$
    – JxB
    Commented Mar 21, 2012 at 5:32
  • $\begingroup$ And try, say ?NIntegrate``*. Which suggests that when a well-known built-in function such as NIntegrate has lots of named possible values for Method, among perhaps other options, these are implemented by individual functions within the `NIntegrate``` context. Which is not surprising -- partial and undocumented features aside -- given that one of the design principles of Mathematica is that a user should not be forced to specify a particular method but should let the system choose the method. $\endgroup$
    – murray
    Commented Mar 21, 2012 at 19:31

3 Answers 3


Version 8 does not have a built-in finite element method. If you want to use the finite element method, you may want to look at the following packages:

  1. ACEFem
  2. IMTEK Mathematica Supplement (IMS) and here and here

To the question: NDSolve`FEM` is an internal context to NDSolve that currently does not do anything much. It's only use is as a container in the unstructured interpolation.

Hope this helps.

  • $\begingroup$ Still, this isn't an answer to the question: "What is NDSolve`FEM`*?" I understand that you probably won't answer that because of what you do, but this doesn't answer it either :) $\endgroup$
    – rm -rf
    Commented Mar 21, 2012 at 16:27
  • $\begingroup$ @R.M, well the it's an internal context, and it's not used besides in unstructured interpolation. $\endgroup$
    – user21
    Commented Mar 21, 2012 at 16:32
  • $\begingroup$ @R.M That's true, but still it's good to have those links here in a permanent (i.e. non-comment) way $\endgroup$
    – Szabolcs
    Commented Mar 21, 2012 at 16:38
  • $\begingroup$ @R.M, not a problem ;-) $\endgroup$
    – user21
    Commented Mar 21, 2012 at 16:40

In answer to David's question in the comments to the answer, I examine the contents of


with every release. You can find all sorts of goodies this way. In addition to the FEM stuff, you'll also find some Mesh functionality. Stephen Wolfram dropped a hint that PDEs were under development here in this talk: http://blog.wolfram.com/2009/11/12/the-rd-pipeline-for-mathematica/

Based on these observations, I'd guess that PDEs have been under development for some time but didn't quite make it in to V8. The answer to the original question is that this context is probably preparation for that but that you'll probably have to wait for V9 to really use it.

  • $\begingroup$ +1. Thank you for pointing out the Names["*`*"] form. As I understand, it is the same as Names[] but is very different from Names["*"] which lists names only in $ContextPath. $\endgroup$ Commented Mar 21, 2012 at 20:52

Mathematica 10 now supports the Finite Element Method for certain classes of PDEs.


The FEM related functions are in NDSolve`FEM` and can be made directly accessible using


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.