Finite Element Visualizer banner

Finite Element Visualizer

3 devlogs
14h 31m 15s

Updated Project:
This is a continuation of my Finite Element Visualizer project that I worked on during SoM.
In this updated project, I hope to implement new features including but not limited to:

  • Advanced options for exporting meshes
  • GPU implementation of the Conjugate Gradient Method for accelerated compute
  • Neumann Boundary Conditions
  • More self-explanatory UI
  • Renderer improvements by using geometry shaders for normal recalculation and triangle clipping
    Original Project Link: https://summer.hackclub.com/projects/3232
Demo Repository

Loading README...

tvumcc

I did a lot of things over this 6 hour dev log:

  • Added Neumann Boundary conditions so now the boundary edges aren’t fixed to 0 (see slide 1)
  • I did some more tweaks to the UI
  • I started work on the GPU implementation of the conjugate gradient method by writing a dot product procedure in a compute shader using parallel reduction (see slide 2). What’s interesting is that summing using parallel reduction is actually better for floating point precision than just summing serially.

From here, I will continue working on the GPU implementation of conjugate gradient method. I am interested to see how much of a speed up will actually be gained when compared to the CPU implementation.

Attachment
Attachment
0
tvumcc

I spent most of my time revamping the UI. I changed things like button sizes and labels and added the option to select from preset meshes. I do still want to spend time on refining the UI to make sure users fully understand the flow of the app’s usage.
Image 1: General UI update
Image 2: Preset Meshes Selection List (UI is probably going to change)

Attachment
Attachment
0
tvumcc

I wrote some code to export the meshes that get generated to .obj and .ply files! Based on the value of the solution at each node (3D vertex), that vertex is extruded along its normal vector and given a color based on a color map (I’m using Viridis right now). The image below is an export of the Gray-Scott Reaction-Diffusion equations solved on the surface of a cube (slide 1) and a skull mesh (slide 2), both rendered in Blender.

Attachment
Attachment
0