Home
Instructions
Report Problems
Contact Us
|
Mesh Generator
- Interface - Should be able to take volume data and or surface meshes (for stuffing) and output a sofa mesh data structure
- Implement a tetrahedral multi material mesh generation routine
- Takes an image label map (or series of) and output multimaterial meshes
- Mesh decimation routine
- Smoothing routine
- Implement a routine to refine mesh
- Implement adaptive mesh generation routine (multiple resolution mesh)
- Implement a GPU+ multicore version of the mesher
- Create testing routines
Hybrid Finite Element Solver
- Interface - Should handle sofa data structures only (based on sofa vectors, scalar data)
- Implement overloaded function addForce and getPotentialEnergy
- Couple with the corotational FEM to model arteries
- GPU + multicore implementation of the hybrid solver
- Create testing routines
Collision detection and response
- Interface - Should integrate with the collision pipeline in sofa
- Implement bounding tree generation routine
- Implement Continuous Intersection class (handles contacts between collision elements)
- Implement computeIntersection and testIntersection collision queries routines
- Create a data structure that can handle topology changes
- Incorporate self collision into the data structure
- GPU+ multicore implementations
- Fluid solver simulation, investigate state of the SPH fluid solver in sofa
- Investigate Haptic device integration within sofa
- Simulation of suction and cutting
Performance Issues and Benchmarking
1. What kind of performance do we expect from FEM, collision detection as well as collision response? What is the mesh complexity? How much accuracy do we want? What is the performance goal? For example, for haptic rendering, the collision detection time budget is much lower than that for physics simulation.
2. I realize that it is already a major challenge to integrate technologies from various players (UNC, ODU, RPI and Kitware). But we may decide whether or not, you guys would need to port the stuff on a multi-core CPU or GPU, to meet the performance goals. As you know, that developing and integrating code for GPUs can increase the system complexity considerably. As far as our work is work, designing good algorithms for CPUs and GPUs is a very different task.
|