Skip to content

Move Domain.dx to OnGrid.dx #135

Description

@astanziola

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions