Skip to content
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

More general implementation of non-simply connected domains #37

Open
CsatiZoltan opened this issue Nov 10, 2020 · 0 comments
Open

More general implementation of non-simply connected domains #37

CsatiZoltan opened this issue Nov 10, 2020 · 0 comments
Assignees
Labels
enhancement New feature or request PythonOCC PythonOCC functionality refactor Code refactoring
Milestone

Comments

@CsatiZoltan
Copy link
Owner

When a large grain contains one or more grains, the large grain has to be modified to exclude the small grains that act as holes. This makes the large grain a non-simply connected domain.
This modification can be carried out as

  • Boolean operation (set difference)
  • boundary representation

Currently, I plan to support the Boolean solution for the splinegon representation only, as that's what I actively work with. However, a general implementation would be nice, which does not need to have information about the actual geometrical representation. I.e. it would work for the polygon representation too. That would however require several changes in the code:

  • The cad module would import the geometry module for the sake polygon-based operations.
  • The region_branches variable will no longer be a simple list, but a list of lists in order to incorporate the holes
  • The geometry.Polygon class must be modified so that holes can be represented, which needs
    • updating the methods for calculating the area, the equivalent diameter, etc.
    • the data structure will not remain a simple nx2 NumPy array, but a list of NumPy arrays, that describe the outer boundary and the internal boundaries as well
@CsatiZoltan CsatiZoltan added enhancement New feature or request refactor Code refactoring PythonOCC PythonOCC functionality labels Nov 10, 2020
@CsatiZoltan CsatiZoltan self-assigned this Nov 10, 2020
@CsatiZoltan CsatiZoltan added this to the Future milestone Nov 27, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request PythonOCC PythonOCC functionality refactor Code refactoring
Projects
None yet
Development

No branches or pull requests

1 participant