Skip to content

fix: incorrect subdivision#356

Open
dccabanas wants to merge 2 commits into
devfrom
bug/bspline-subdivision
Open

fix: incorrect subdivision#356
dccabanas wants to merge 2 commits into
devfrom
bug/bspline-subdivision

Conversation

@dccabanas

Copy link
Copy Markdown
Member

No description provided.

1. update function call with `Points` structure.
2. remove deprecated methods.
@dccabanas dccabanas requested a review from dtoshniwal April 17, 2026 08:04
@dccabanas dccabanas self-assigned this Apr 17, 2026
@dccabanas dccabanas added the bug 🐛 Something isn't working label Apr 17, 2026
@dccabanas dccabanas changed the title fix incorrect subdivision fix: incorrect subdivision Apr 17, 2026
@dccabanas

Copy link
Copy Markdown
Member Author

@dtoshniwal There is a problem here that will require some thought: there is no obvious way to subdivide a DiscreteGeometry. Since this structure relies entirely on some abstract evaluable function, creating a subdivision is not trivial.

@dtoshniwal

Copy link
Copy Markdown
Contributor

@dtoshniwal There is a problem here that will require some thought: there is no obvious way to subdivide a DiscreteGeometry. Since this structure relies entirely on some abstract evaluable function, creating a subdivision is not trivial.

Indeed, I wanted to bring this up earlier as well. I think the DiscreteGeometry structure needs additional fields (FEM space, coefficients) that are used to construct the evaluable function. This way, one could use the additional fields to construct a subdivided representation. Otherwise, as you say, there is no other way to do this. I think these additional fields are OK because the only use case (at least the one I have in mind) is FEM geometries.

@dccabanas dccabanas marked this pull request as ready for review April 21, 2026 14:41
@dccabanas

Copy link
Copy Markdown
Member Author

@dtoshniwal I marked this as ready because regardless of the discrete geometry issue the changes here are still bug fixes that should be merged.

@dtoshniwal

Copy link
Copy Markdown
Contributor

@dccabanas One question: why are we restricting two-scale operators for B-splines/canonical spaces such that the child space is obtained by k bisections? For instance, why don't we allow trisections? I don't recall if there was a reason for this.

@dccabanas

Copy link
Copy Markdown
Member Author

why are we restricting two-scale operators for B-splines/canonical spaces such that the child space is obtained by k bisections?

Can you point out where in the code this is happening? I don't recall.

@dtoshniwal

Copy link
Copy Markdown
Contributor

why are we restricting two-scale operators for B-splines/canonical spaces such that the child space is obtained by k bisections?

Can you point out where in the code this is happening? I don't recall.

Here for instance:

if num_sub_elements < 2 || !isapprox(num_ref - round(num_ref), 0.0; atol=1e-12)

@dccabanas

Copy link
Copy Markdown
Member Author

why are we restricting two-scale operators for B-splines/canonical spaces such that the child space is obtained by k bisections?

Can you point out where in the code this is happening? I don't recall.

Here for instance:

if num_sub_elements < 2 || !isapprox(num_ref - round(num_ref), 0.0; atol=1e-12)

It seems to have be introduced in this commit b67dfee. But I'm not sure why the limitation is there. Do you think it can be generalised?

@dccabanas dccabanas marked this pull request as draft May 28, 2026 08:41
@dccabanas dccabanas marked this pull request as ready for review May 28, 2026 08:41
@dccabanas dccabanas closed this May 28, 2026
@dccabanas dccabanas reopened this May 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug 🐛 Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants