-
Notifications
You must be signed in to change notification settings - Fork 156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Polygon DEC #195
base: master
Are you sure you want to change the base?
Polygon DEC #195
Conversation
…ing else except for DEC operators
…how much sense it makes to expose d operators since they map between the refinement
…act on the virtual triangle refinement, which will (should?) never get exposed to users
@MarkGillespie or @nmwsharp, adding this support for polygon meshes required making some changes for I don't foresee that these changes will result in breaking behavior (especially since all tests have passed), but it might also be a good idea to have a geometry-central expert check the details in |
What do you think of this argument? geometry.basePolygonLaplacian, geometry.basePolygonVertexLumpedMassMatrix, and geometry.basePolygonVertexGalerkinMassMatrix. Rename Like the base polygons are unrestricted, while for example Edited: See also |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is awesome!! I left a few comments, but nothing major. Looks great.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why did we define == with a hidden internal eps
!?? If I did that it was a silly mistake... This is breaking change but a good one I think.
@@ -263,11 +263,11 @@ inline bool SurfacePoint::operator==(const SurfacePoint& other) const { | |||
break; | |||
} | |||
case SurfacePointType::Edge: { | |||
return edge == other.edge && abs(tEdge - other.tEdge) < eps; | |||
return edge == other.edge && tEdge == other.tEdge; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you delete the unused eps
variable above in this function?
DependentQuantityD<std::array<Eigen::SparseMatrix<double>*, 7>> polygonDECOperatorsQ; | ||
virtual void computePolygonDECOperators(); | ||
|
||
// helper functions |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are a lot of helper functions. I'm worried this class/file is getting too busy.
Could we maybe move these helpers to a separate file, and invoke them as-needed? And maybe once moved to their own file they no-longer need to be virtual?
@@ -278,11 +288,11 @@ void EmbeddedGeometryInterface::computeCornerAngles() { | |||
Vector3 pA = vertexPositions[he.vertex()]; | |||
he = he.next(); | |||
Vector3 pB = vertexPositions[he.vertex()]; | |||
he = he.next(); | |||
do { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function has quadratic complexity in the face degree, when it doesn't need to. It could be implemented with linear complexity by working one face at a time and maintaining a leading a trailing reference while orbiting the face.
[doesn't need to be fixed, just couldn't help but mention it :)]
Re naming for |
Adds polygon Laplacian and other operators for general polygon meshes.
Summary of contributions:
PolygonMeshHeatSolver
that implements the Vector Heat Method, Unsigned Heat Method, and Signed Heat Method on polygon meshes, analogous to thePointCloudHeatSolver
for point clouds.The only thing I'm not quite satisfied with is the naming convention for the operators from "Polygon Laplacian Made Simple":
geometry.simplePolygonLaplacian
,geometry.simplePolygonVertexLumpedMassMatrix
, andgeometry.simplePolygonVertexGalerkinMassMatrix
. My concerns areSuggestions & review are welcome!