I would say 3d Poisson solver with FEM (finite element methods) is best suited for the problem.
there is no complicated equation and we only need to satisfy boundary conditions which are given as fixed values.
the number of points is not very large (hence the speed of a traditional solver is quite fast).
geometry is not complex (at least for the given test “x” structure).
I wonder what is the advantage deep learning network for this case. will they get more accurate results?
(i know deep networks can run faster and more accurately generally, but for this simple test case, do we need a deep network?)
will there be other new test data later? Is there more information about the hidden holdout data (final evaluation)? e,g, how many points? what kind of complexity? I need the access the complexity of meshing etc. It seems that the competition host will run our notebook, Then how much time (minutes, hours?)are we given to generation solution from holdout data? What GPU, RAM , etc ???
You are welcome to use any method to solve Stage 3. We have observed that FEM can struggle to get to the resolution we need. However, we are happy to be proven wrong.
As for more test examples, if we see solutions stagnate or there is a further discussion here on the forum, we could consider adding some more structures.
The holdout data for Stage 3 will be a series of new structures with only one or two slices with the charge information. Any solution a participant builds should be generalizable enough to encounter a diversity of shapes.
would it be better that the cell connectivity is also given?
(i.e. the xxx.mesh file is given)
or alternatively, each 3d point in the csv file should be labelled as boundary or not. in this case we can write our own code to convert point to mesh.
i think most algorithm needs input mesh (rather than just 3d points), e.g FEM, graph-CNN. It is not easy to perform delaunay 3D, especially when the boundary and holes are given text description, e.g. “boundary-conditions-train-Stage3-Future-in-Charges.txt”. Hence the user has to write different code to process the 3d points.
for example, it says:
cone
... at cone walls
then we need to write code to find the cone walls.