Code Monkey home page Code Monkey logo

pybella's People

Contributors

ray-chew avatar tbnc avatar

Stargazers

 avatar

Watchers

 avatar  avatar

pybella's Issues

Global parameters file

Information on common parameters is currently duplicated across input files.

This issue moves common parameters to a common location, with attention to:

  • Physical Constants
  • Required parameters
  • List of valid choices (e.g. bcs, ...)

Add Sphinx version for make docs

From @tbnc:
@raychew What version of Sphinx should be used to compile the documentation? Running make docs (python 3.8.8) gives the following error:
Running Sphinx v6.1.3
Extension error:
Could not import extension sphinxcontrib.inkscapeconverter (exception: No module named 'sphinxcontrib.inkscapeconverter')

Review readme

Currently, the readme file is missing some references and packages versions.

Move issues from FUB GitLab to GitHub

Not as easy as I thought it would be. I tried using some scripts, but they do not work as intended.

Gonna move them manually now.

Only the open issues will be moved!

Set up a sensible CI/CD routine

I was using two deployment scripts test.yml and documentation.yml to run the pytest and build the Sphinx documentation. However, this is not ideal, as the dependencies have to be installed anew each time these scripts run.

Need to come up with maybe a cron job? Or something sensible for the deployment scripts.

Now I am just running documentation.yml.

Make Coriolis work in all coordinate pairs

For now, vertical slices with gravity are in the x-y plane, while horizontal slices with Coriolis are in the x-z plane. Simulations in the x-z plane are solved with a quasi-3D array, i.e. the full grid-size on the x-z plane and in the y-axis, 5 layers of the cellular grid and 6 layers of the nodal grid. These vertical layers comprise the 4 ghost layers.

Making Coriolis simulations work with a truly 2D array will decrease computation time significantly. Two possibilities are:

  1. Make it possible for the code to solve x-z plane problems in 2D or
  2. extend the x-y plane to support Coriolis.

Option 2. seems to be easier for now, but option 1. will simplify extension to 3D in the future.

Roadmap

This issue aims to map out the strands of our discussions and provide an overview of the significant steps ahead.

[Infrastructure]

  • Implement diagnostic module
  • Implement tests for blending and DA
  • Implement logger
  • Implement profiler and coverage check into workflow
  • Implement Christian's Baroclinic Instability test
  • Add switch for IO precision
  • Implement tests on code integrity via pytest @benacchio

[Documentation]

  • Include write-up on the science
  • Include write-up on the algorithmic implementation
  • Do we want to include write-up on the discretisation? @RayChew thinks this would be too much work.

[Refactoring]

  • Restructure code @RayChew
  • Move DA and blending handling strictly to the respective modules @RayChew
  • Clean up JSON/YAML driver scripts @RayChew
  • Clean up clumsy hydrostatic initialisation implementation
  • Make sure 3D simulations work again @RayChew

[Terrain-following coordinates (TFC)]

  • Write out basic theory for TFC implementation @RayChew
  • Decide on which implementation to go for (Prusa and Smolarkiewicz, 2003?) @RayChew
  • Typeset Rupert's notes
  • Develop new science on conservative discrete TFC formulations

Make `pip` package

This should be the last step of the move repo milestone: package and upload pyBELLA to pip.

Modularise the code

Ultimately, the data assimilation engine should be in a separate repository and imported as a submodule.

Make tags into releases

This will allow us to document that a tag/release corresponds to the code frozen for a particular publication.

Also make a new release after move to GitHub has been completed.

Clean up and comment code

Now that the essentials of the code are working, it's time to clean-up and comment the code.

  1. Remove all 'print debugs'.
  2. Keep asserts and comment out outputs for debugging purposes.
  3. Remove unnecessary variables in the data containers.
  4. Remove unnecessary initial condtions in the userdata files.
  5. Remove unnecessary comments..

Restructure docs

The docs folder was removed during the move as it was massively deprecated.
So now, we have to restructure the documentation, make it work with modern Sphinx, and include it back in this repository.

Update Readme from RST to MD

The current restructuredText Readme has a bunch of broken links and references.

Fomat Readme as Markdown, as GitHub seems to work better with this format.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.