Skip to content

Move Domain.dx to OnGrid.dx #135

Open
@astanziola

Description

The .dx attribute only make sense for fields defined on a grid, and can be uniquely found from the shape of OnGrid.params and the size of the domain.

It is much more natural to define the domain as

domain = Domain(size: tuple)

# Or, potentially
domain = Domain.from_grid(N, dx)

It would be even better to define domains that are not rectangular, for example

domain = Domain()  # Abstract domain

class RectangularDomain(Domain):
  L: tuple

class SphericalDomain(Domain):
  R: float

which then allows to define non standard discretizations. For example, Continuous can work on arbitrarily shaped domains, FourierSeries probably only makes sense on RectangularDomain while something like a SphericalFourierSeries (see for example s2fft) could be implemented on a SphericalDomain.

This is clearly a breaking change.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions