Git Product home page Git Product logo

quasi_geostrophic_model's Introduction

quasi-geostrophic model

Quasi-Geostrophic model in Firedrake

quasi_geostrophic_model's People

Watchers

James Cloos avatar Alastair Gregory avatar

quasi_geostrophic_model's Issues

Add Tests

Add the following tests:

  • Test the MinDx feature.

  • Test the noise convergence (of the mean or a statistic)

Allow FS to be Args

  • Insert FunctionSpace to be Argument level in quasi_geostrophic and remove Mesh from this list of Arguments. Would allow Functions in tests / demos to just simply be assigned on to one another as they can come from same FunctionSpace.

Change variance in noise to scalar OU process

Allow the variance argument in the quasi_geostrophic model to be removed and replaced by an OU process, which IT'S variance is then given in place of the variance argument, allow this to be correlated (easily, as it's just scalar OU) between pairs of two-level simulations.

Random infinite dimensional i.c.

Create a random infinite dimensional initial condition for the QG model in way that was discussed in meeting:

Solve one time-step, with random forcing (additive to q to find psi), and use that as new initial condition.

Correlated noise

  • Find out how to correlate the noise input into the system: Using helmholtz solution, and then can inject / prolong this

Allow an argument to be entered to correlate the noise input to another system (a coarse / fine version) so that it can be prescribed at every time-step
Update on how to do this:

  • Be able to choose whether it is one level or two model. And then the length of tuples of solvers etc will be d. Best way to do this is provide a tuple of FunctionSpaces, or just one FunctionSpace and deduce from this.
  • Takes function spaces which belong to meshes on at least a hierarchy of two levels.
  • Change class details, such as name and args to match two-level-qg-model
  • Put all solvers / solver functions needed for both coarse and fine solve etc in tuples length d, then access like that.
  • Then construct a fine and a coarse solution side-by-side and use same noise / helmholtz solution. (Do 2 x fine u_ helmholtz solution sums, and then use this for input for projection for coarse self.forcing).
  • Make sure we check if the adapted time-step is exactly half on fine, as it should have to be due to refined mesh.
  • Thus think about what to do when the time-step is cut in half by end-time (check for fine time-step and if not cut both fine and coarse, if one fine time-step is allowed through but not second -> just add on the scaled / with smaller than usual fine time-step / u_ solution to first fine u_ solution to make up coarse)
  • Changes tests / demos and also construct two-level tests

Check time-step of solve for initial condition.

  • Check and alter the time-step used in the solve for q in the initial condition (with random psi).

Make sure that the system is not being propagated forward different time-steps at the start (I.C.) for different resolutions. Try doing a standard time-step, say 1.0. (By altering self.qg_class.const_dt - like what is done for coarse on two-level) Then all resolutions should be solved once for same time.

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.