-
Notifications
You must be signed in to change notification settings - Fork 552
Description
Someone has recently been trying to display FEA results using SolveSpace by linking a mesh and modifying our rendering code. This invites the idea of doing more FEA related stuff in SolveSpace so I thought we could discuss that idea here.
As I see it, the renderer needs to be modified to interpolate an additional (heat, stress, etc...) parameter across triangles and use that value to index a color map as you can see in any search for FEA results.
The other thing it needs to do is add a displacement to each vertex to show deformation. This displacement is often exaggerated (or even animated) to help visualize what is happening.
My thought on rendering is that we could add those features and leave them enabled full-time. The color map could be an RGBA map that we just make transparent in normal use. The displacement vectors would be zeroed and their multiplier would also be zero. The SolveSpace renderer seems fast enough that this would make no visible difference. If displacements were done in a shader we probably couldn't even measure a difference, but that may bump our OpenGL version.
Beyond rendering is the question, how far should we go? Should FEA meshes be generated in SolveSpace? We could borrow code for 2d and 3d meshing from Gmsh which is also under GPL. Should we then add the ability to apply load conditions (or heat or whatever) in SolveSpace and just use an external FEA solver?
My main concern in heading this direction is maintaining the quality CAD experience SolveSpace is becoming known for, as well as keeping the code small and manageable with few resources. This would be a very large undertaking, but we might be able to go in smallish steps that each have some (limited) utility.
@ceanwang @jwesthues Thoughts?