Inspiration
Finite element analysis is an extremely useful tool in engineering and physics, but is very computationally expensive, which translates to increased costs for designers and researchers. How would that change if anyone looking to test their idea had access to not only their computer, but all the idle computing devices around them?
What it does
This submission performs an FEM analysis of a thin metal sheet experiencing a force in the z direction and returns the displacements after one time step.
How I built it
I found a Matlab file that implemented a simple FEM analysis for a homework assignment (https://scicomp.stackexchange.com/questions/25644/3d-solid-8-node-fem-matlab-code) and translated the code into Javascript by hand. I then broke the process down into parallelizable sections to use Distributed Compute Labs' tools.
Challenges I ran into
This is the first hackathon project where I was responsible for the entire program, and I have little experience with web development, so writing Javascript, using JSON and having to understand a third party API on my own took a lot longer than I thought. Trying to understand the FEA code, translating matrix-friendly Matlab to clunky math.js Javascript and familiarizing myself with Javascript in general also slowed me down.
Accomplishments that I'm proud of
This project wouldn't be technically difficult for most people, but nevertheless I'm proud of having tackled a project on my own and taking an honest look at the limits of my knowledge.
What I learned
Attending a hackathon as a group has its disadvantages, and as does going alone. Teams seem to take up to the first evening to decide on an idea. Team members may settle for a poor compromise that none of the members will be willing to carry through the stressful parts of a hackathon, leaving everyone burnt out or bitter. Working on your own forces you to deal with problems would you have offloaded to someone else otherwise, but that comes with its own troubles, and it's harder to learn from the other hackers.
Also, it never hurts to ask for help.
What's next for Distributed FEA
I would like to add a visualization of the FEA results, implement a more flexible FEA program that can handle arbitrary node configurations, and finish the parallelization code.
Built With
- distributed-compute-protocol
- javascript
Log in or sign up for Devpost to join the conversation.