Discrete solutions to differential equations are computed with polynomials, see joinedpolynomials.org for examples. Differential equations of dynamic systems are usually of second order. A polynomial of second order has a minimum of six degrees of freedom in two dimensions.
f(x, y) = a0 + a1·x + a2·y + a3·x2 + a4·x·y + a5·y2 + ...
Five edges to adjacent polynomials are required in order to compute a polynomial with one differential equation.
Suppose a rectangular tile with one node at its center and one or two nodes on each side and a total of at least five nodes on all sides together. This gives five basic stencils. (A literature review on this approach has given no results.)
![]() |
![]() |
![]() |
![]() |
![]() |
The infinite plane is filled with tiles of different scales using the well-known balanced quadtree. Additional edges inside and across tiles are introduced as necessary.
Only few simple shapes intersect with loops of edges immediately such as triangle, quadrilaterals or hexagon. Intersections with complex geometry require more work with respect to design criteria that are unknown here, e.g. whether to place a node on each vertex.
Intersections of a quadtree and arbitrary geometry results discontinuous edges at boundaries that require linking. Many problems, however, required structured meshes near boundaries.
Therefore, one possible implementation for arbitrary geometry is to cut regions at boundaries and use mapped meshes for those regions. The remaining geometry is then conquered with a quadtree such that linking of discontinuous edges occurs away from boundaries.
The below plate with hole is divided into regions near vertices and segments as if it is a non-regular geometry. The resolution of these mapped regions is critical.
![]() |
![]() |
![]() |
A quadtree is applied for the remaining region. A standard angle of 60deg is set such that tiles are not quadratic and therefore horizontal and vertical resolution are different. In this case the quadtree covers the entire geometry since the mapped regions are thin and the quadtree is given a good padding. However, the quadtree is only computed for the remaining region. The resolution of mapped regions determines the resolution of the quadtree.
All nodes and edges of the quadtree are compiled for the intersection of the quadtree with the envelope of all mapped meshes. The resolution increases slightly at the transition of mapped and quadtree meshes.
A linker collects all discontinuous edges between to mapped nodes and generates well-defined nodes and edges in succession. Therefore the linker tests for all possible cuts of triangles and merges adjacent nodes accordingly. The number of combinations is large and increased due to linking itself and therefore coding is extensive, though, straightforward. Finally the mesh is relaxed with an average of the location of nodes which works well since nodes are spread evenly.
![]() |
![]() |
![]() |
The mesh for the plate with hole is given.
This mesh generation is simple and fast. All tasks are explicit and therefore parallelizable.
Watch the application of Laplace equation on youtube.
June 2018