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

Implement spherical topology #128

Open
pausz opened this issue Sep 29, 2017 · 1 comment
Open

Implement spherical topology #128

pausz opened this issue Sep 29, 2017 · 1 comment
Labels
new-feature sci Identifies features that are of scientific interest.

Comments

@pausz
Copy link
Contributor

pausz commented Sep 29, 2017

PR request: implement spherical topology.

Alternatives discussed with @stuart-knock

  1. Spherical boundary conditions (i.,e., a plane folded into an envelope) are tricky to implement and very likely to introduce boundary artifacts.

  2. Using a spherical coordinates transformation, where the wave equation is solved on a grid representing phi, theta-domain instead of x, y. Singularities at the poles (near the origin and at the edges of the rectangular ) still need to be handled. Also, this approach results in a variable discretization in terms of delta x, delta y. A circle close to the equator will be undersampled (delta x is large), while a circle close to the poles will be oversampled.

Courant condition?

@pausz pausz added new-feature sci Identifies features that are of scientific interest. labels Sep 29, 2017
@pausz pausz added this to the Backlog milestone Sep 29, 2017
@pausz pausz modified the milestones: Backlog, Mark II Jan 23, 2018
@pausz pausz modified the milestones: Mark II, Backlog Feb 5, 2018
@stuart-knock
Copy link
Member

stuart-knock commented Jul 30, 2018

Below is an out of band response to PR, regarding task and time guesstimates for the spherical coordinate case, posted here for tracking purposes.

Implementing Spherical Case in NFTsim

Note: this is not regarding the simpler case of spherical boundary conditions applied to a regular grid (ie, it is regarding point 2. in the initial post of #128).

Development Tasks

Note: A prerequisite for this work is that an explicit solution for the spherical grid case, equivalent to the regular grid case in Chris Rennie's thesis or the appendix to the NFTsim paper, has been derived.

Pre-Spherical Coordinates

Rough time estimates:

  • Best case: 4 days.
  • Realistic case: 8-12 days

High level tasks (Ordered roughly from "required" to "may need to be addressed if we run into issues"):

Spherical Coordinates:

Rough time estimates:

  • Best case: 6 days.
  • Realistic case: 10-?? days

High level tasks:

  • Stencil [2-3 days] -- currently based on square/regular grid with unique boundary connections defining topology.
    • a completely new stencil class will most likely be needed, to handle the pole (single point) boundary of spherical coordinates.
  • Propagator [1-2 days]
    • a completely new propagator derived class will need to be written, using the new Stencil and with a step method implementing the new explicit solution.
  • Solver [0.5-1 day]
    • Updated to make use of the new Propagator
  • White noise normalisation [0.5-1 day] -- currently assumes regular, evenly-spaced, grid points, will need to be checked.
  • Population [0.5-1 day] -- review, currently sheet length information is loaded-into/stored-on population objects.
  • New configuration parameters [0.5-??? days].
    • update parsing of input file to handle two cases (potential interaction with known parsing issue mentioned in "Pre-Spherical").
  • General deltax, regular grid, to spherical case [??? days]:
    • there are a range of other places in the code where assumptions are made about the grid regularity, these would need to be identified and addressed.
    • This partly falls under the 2-3 days of thorough review mentioned in the "Pre-Spherical" section.
  • Validating resulting implementation against known analytic solutions [1-3 days] -- assumes solutions already exist.

Post-Spherical Coordinates

  • An awareness of the new spatial domain will need to be built into the existing Matlab interface.
  • Update documentation.
  • Add example .conf files.
  • Add numerical test .conf files.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new-feature sci Identifies features that are of scientific interest.
Projects
None yet
Development

No branches or pull requests

2 participants