59 votes
Accepted

A geometric multigrid solver for Mathematica?

Background Details about multigrid solvers can be found in this pretty neat script by Volker John. That's basically the source from which I drew the information to implement the V-cycle solver below. ...
Henrik Schumacher's user avatar
43 votes
Accepted

How to perform Loop subdivision on a triangle mesh with Mathematica?

We need quite a bit of preparation. In the first place we need methods to compute cell adjacency matrices from here. I copied the code for completeness. ...
Henrik Schumacher's user avatar
42 votes
Accepted

Smoothing 3D contours as post processing

As announced before, here my take on the mean curvature flow for surfaces. The code is rather lengthy and I tried to recycle as much as possible from this post about finding minimal surfaces (solving ...
Henrik Schumacher's user avatar
27 votes
Accepted

Catmull-Clark and Doo-Sabin Subdivision Implementations

Catmull-Clark Subdivision Indeed, I have some code for Catmull-Clark subdivision and I planned to post it here for quite some time. This seems to be a good opportunity. The code is optimized for ...
Henrik Schumacher's user avatar
24 votes

Making holes from maze generated Graphics3D

Lets start by making a symbolic representation of maze, with BooleanRegion using graphic primitives. That will be our basis for discretization by any method. Number ...
Pinti's user avatar
  • 6,503
24 votes
Accepted

Making holes from maze generated Graphics3D

Here's an approach that unions the primitives as rasters, meshes, and smooths. Data from OP: ...
Greg Hurst's user avatar
  • 35.9k
23 votes
Accepted

How to access FEM shape functions?

There are no surface element shape functions. There are, however, the normal shape functions. Load the package: Needs["NDSolve`FEM`"] This gives you the ...
user21's user avatar
  • 39.8k
23 votes
Accepted

Making a graph or network interactively over an image

There are many ways to do this, modifying, improving my method or doing a completely different thing. My goal here is to show a very basic idea that should give you a start. ...
Vitaliy Kaurov's user avatar
21 votes
Accepted

How to generate a mesh with quadrilateral elements?

Based on the tutorial here QuadElement meshes behave exactly the same as TriangleElement meshes, with the exception that, for linear quad elements, four incidents per element are needed, and, for ...
Young's user avatar
  • 7,495
20 votes
Accepted

How to get a specified number of points that are nearly equally spaced in a closed rectangle

There is a neat (and widely known) trick to produce n approximately evenly distributed points in a disk, or on any surface of revolution. Points are placed on a ...
Szabolcs's user avatar
  • 235k
20 votes

A geometric multigrid solver for Mathematica?

3D Example The problem with direct solvers is that starting in 3 dimensions, their performance for dealing with matrices stemming from PDEs drops rapidly. This is why I wanted to show at least one 3-...
Henrik Schumacher's user avatar
20 votes
Accepted

Smoother jelly / water effect on an image

perhaps: ...
kglr's user avatar
  • 395k
19 votes

Voronoi tessellations on meshed surfaces

Using the Geodesics in Heat Algorithm implemented here, we can calculate the distances of all vertices on the surface to a given vertex. By repeating this algorithm on a selected subset of vertices on ...
Dunlop's user avatar
  • 4,023
19 votes

Catmull-Clark and Doo-Sabin Subdivision Implementations

Doo-Sabin Subdivision To my own surprise, Doo-Sabin subdivision is in many ways much easier to implement than Catmull-Clark subdivision. The only real problem I met was to compute the faces created at ...
Henrik Schumacher's user avatar
18 votes

How to generate a mesh with quadrilateral elements?

Here is a different approach. The idea is to first generate a second order triangle mesh. Next a center coordinate is added in every triangle. Then we split every triangle into three first order quads ...
user21's user avatar
  • 39.8k
18 votes
Accepted

How to obtain the cell-adjacency graph of a mesh?

I think, I found a general and even faster way, but I haven't tested it for $1$- or $3$-dimensional MeshRegions. The following function computes the cell-vertex-...
Henrik Schumacher's user avatar
17 votes
Accepted

How to mesh a region using adaptive cubic elements

I discarded my previous approach to generate cubes, then fuse them together, since it seems to do a lot of wasted work. Instead, I propose here my version of a cartesian mesher. The approach is ...
MarcoB's user avatar
  • 67.2k
17 votes
Accepted

Creating a Hexagonal Lattice with VoronoiMesh

Here is what I was suggesting in comments: ...
MarcoB's user avatar
  • 67.2k
16 votes

DelaunayMesh in a specified closed region - creating a concave hull from a set of points

I was writing this code because when I googled "Concave Hull Mathematica" I didn't find this post. I went through the trouble of taking this code and improving the performance, and bringing it up to ...
Jason B.'s user avatar
  • 68.4k
16 votes

How to generate a mesh with quadrilateral elements?

That's not possible in general in V11.0. The only primitive from which a quad mesh can be generated is ToElementMesh[Rectangle[]] or ...
user21's user avatar
  • 39.8k
16 votes

How to generate a mesh with quadrilateral elements?

this is a bit of a hack but it works for this example: generate separate rectangle meshes -- note the connected edge nodes must be exactly coincident. ...
george2079's user avatar
  • 38.9k
16 votes

How to generate a mesh with quadrilateral elements?

Edit: This method is now implemented as StructuredMesh function (2D and 3D) in FEMAddOns package. With minor enhancements it is also implemented in MeshTools ...
Pinti's user avatar
  • 6,503
16 votes
Accepted

How to mesh part of sphere

The curve is smooth, and the great circles tangent to the curve never pass through the interior point {0, 0, 1} over φ: Hence ...
Coolwater's user avatar
  • 20.3k
15 votes
Accepted

How to calculate a Delaunay mesh nerve?

The approach I would take is the following: Clear definitions, load a sample image, find corners in the image using the method you indicated in the OP: ...
MarcoB's user avatar
  • 67.2k
15 votes
Accepted

Color code Voronoi cell areas depending on number of vertices

MeshPrimitives returns a list of Polygon objects; and it's not too tricky to just to count the number of points in each ...
Michael Seifert's user avatar
15 votes

Finite element mesh not resolving features

These should work: Method 1 ...
user21's user avatar
  • 39.8k
15 votes
Accepted

Crop a Voronoi diagram and get a proper MeshRegion

First Try (doesn't work due to a bug) That's very frustrating. I thought that it might be a good idea to discretize the disk first and compute the intersections afterwards. That improves the timing by ...
Henrik Schumacher's user avatar
15 votes
Accepted

A Smooth and Round Voronoi Mesh

1 + 4 We can discretize the rounded Polygon objects and then add the negative of the mesh through Prolog. ...
Greg Hurst's user avatar
  • 35.9k
15 votes

3D Inclusion with structured mesh and coarse and arbitrary matrix

There is an example of something similar in the PDEModel collection in the Acoustic Cloak Model. Here is a 3D version. Some setup: ...
user21's user avatar
  • 39.8k
14 votes

Making a Voronoi diagram bounded by the convex hull

Here is an approach that should get you there: ...
RunnyKine's user avatar
  • 33.1k

Only top scored, non community-wiki answers of a minimum length are eligible