6

I'm using the Finite Element Method to solve an elasticity problem and i need to use a more precise element such as a nine node triangle. For my surprise when I run the code :

Needs["NDSolve`FEM`"]
mesh = 
  ToElementMesh[Disk[], 
    MaxCellMeasure -> {"Length" -> 1}, 
   "MaxBoundaryCellMeasure" -> 2, 
   "MeshOrder" -> 1]
mesh["MeshOrder"]

mesh = 
  ToElementMesh[Disk[], 
    MaxCellMeasure -> {"Length" -> 1}, 
    "MaxBoundaryCellMeasure" -> 2, 
    "MeshOrder" -> 2]
mesh["MeshOrder"]

mesh = 
  ToElementMesh[Disk[], 
    MaxCellMeasure -> {"Length" -> 1}, 
    "MaxBoundaryCellMeasure" -> 2, 
    "MeshOrder" -> 3]
mesh["MeshOrder"]

trying to change the mesh order to 3 I receive the following error:

During evaluation of In[2]:= Throw::nocatch: Uncaught Throw[$Failed, Region`Mesh`RegionException[]] returned to top level.

Out[7]= Hold[Throw[$Failed, Region`Mesh`RegionException[]]]

Does anyone knows how can I build such an element?

m_goldberg
  • 107,779
  • 16
  • 103
  • 257
Stratus
  • 2,942
  • 12
  • 24
  • 2
    mesh = ToElementMesh[Polygon[CirclePoints[5]], "MeshOrder" -> 3]; shows ToElementMesh::femmonv: 3 is not a valid mesh order. Valid mesh orders are 1 or 2. Using 1 as default order. – egwene sedai Nov 24 '17 at 18:54
  • 2
    I'm voting to close this question as off-topic because the OP is asking for functionality that is not supported in Mathematica. – m_goldberg Nov 25 '17 at 11:19
  • @m_goldberg I'm asking for a solution to my problem. In my problem I need this type of element. If anyone has an idea on how to do code an element like this. – Stratus Nov 25 '17 at 12:41
  • 1
    A solution to this problem will be of great use not only to me, but also to the whole community. – Stratus Nov 25 '17 at 12:41
  • The implication of @m_goldberg's comment is that if it's not built-in, then someone would have to write such a solver (plus visualization routines?). I think that's out of scope for the site. OTOH, I'm thinking that maybe the Q should be left open because negative answers to some questions are useful. And if higher-order functionality is ever added, then an updated answer can be added. Or maybe someone will point out a 3rd party product. – Michael E2 Nov 25 '17 at 13:04
  • @Diogo You can use [tag:acegen] package to make elements (element subroutines) with arbitrary number of nodes. But you will need to prepare the appropriate mesh yourself (probably this should not be to hard for elements with straight edges.). – Pinti Nov 29 '17 at 16:43

1 Answers1

3

That is not possible in version 11.2. Second order is the highest order right now.

m_goldberg
  • 107,779
  • 16
  • 103
  • 257
user21
  • 39,710
  • 8
  • 110
  • 167