danfortunato / ultraSEM

The ultraspherical spectral element method
MIT License
29 stars 3 forks source link

Feature hacky corner refinement #20

Closed nickhale closed 2 years ago

nickhale commented 5 years ago

You can do, for example:

R = ultraSEMDomain.rectangle; R = refine(R, 2); R = refinePoint(R, [1 1 ; -1 -1], 2), plot(R) or T = ultraSEMDomain.triangle, T2 = refinePoint(T,[.5 sqrt(3)/2], 3), plot(T2) or even R = ultraSEMDomain.rectangle; R = refine(R, 2); R = refinePoint(R, [0 0], 2), plot(R)

The merge indices get trashed. This needs to be fixed. It's just yucky bookkeeping.

s1 s2 s3

The downside is that (currently) even the rectangular patches get converted to (trivial) quads, so we lose some efficiency there. We can maybe subclass rectangles off of quads?

ajt60gaibb commented 5 years ago

Any reason not to merge this now: As we all think a subclass of rectangles from quad is a good idea (as we might want to check for low-rank PDOs only in this setting).

Not sure how it interacts with hierarchical triangulations.

nickhale commented 5 years ago

I'd actually rather merge the branch I'm currently working on first. All the tests are passing, it just needs some tidying.