My code is available via this link.
During the whole periods, the following milestones are achieved:
- A DUNE-style B-Spline geometry interface including
GlobalCoordinate center () const
int corners () constGlobalCoordinate corner (int i) constDune::GeometryType type () const
bool affine () constGlobalCoordinate global (const LocalCoordinate &local) const
const JacobianTransposed & jacobianTransposed (const LocalCoordinate &local) const
const JacobianInverseTransposed & jacobianInverseTransposed (const LocalCoordinate &local) constctype integrationElement (const LocalCoordinate &local) const
Among these functions, the global and jacobianTransposed are the two key functions.
- A DUNE-style NURBS geometry interface(same as the previous one)
- A basic DUNE grid manager for B-Spline patch including the follwoing components(classes):
grid
leafgridview
entity
leafiterator
indexset - A basic DUNE grid manager for NURBS patch(same as the previous one)
The following task is not completed yet,
- Make the VTKwriter applicable for the B-Spline and NURBS grid view
This task involves creating a vertex entity and iterator. I'm still debugging on it.
During the three months, my mentors and the whole community as well were very helpful. They answered my basic question with great patience and always tried to help me with all their effort. I would like to thank for their patience and help first.
Previously I was mainly dealing with algorithms implementation with the help of existing libraries. This is the first time to think from the developer perspective, which requires much more programming skills. It's a good opportunity for me to practice my hands-on skills(meta-programming, interfaces), foster good programming habits(programming style, comments, consistency). As a result, for the first two milestone regarding spline algorithms, although more codes were involves, I faces less challenges. But I encountered much more difficulty for the gird structure construction. On the one hand, this is due to my skill inefficiency; on the other hand, I feel it's the requirement are not quite clear. So in the future, it would be more beneficial for new developer to have a tutorial on how to make a basic DUNE gird. This is my suggestion.
In the end, thanks for google for organizing this awesome event!