Skip to content

v1.0.0

Compare
Choose a tag to compare
@giordano giordano released this 05 May 10:18
717e3fc

ParticleDA v1.0.0

Closed issues:

  • Implement particle filter (#2)
  • Parameters shouldn't be hard-coded in the module (#4)
  • Add noise to the model (#6)
  • Add distributed parallelism (#7)
  • Create test/Project.toml (#14)
  • Initial condition in llw2d is obscure (#15)
  • Add noise to the observations (#17)
  • Add some documentation (#18)
  • Add plotting function(s) (#19)
  • Rename the package (#23)
  • Change output format (#26)
  • Benchmark suite (#34)
  • Slow performance in Process Noise (#35)
  • Timeseries outputs, ESS (#36)
  • Don't get observations when PF is not called (#40)
  • Redefine time stepping (#44)
  • Redefine grid parameters (#45)
  • Add variance to output (#46)
  • Possible memory allocations improvements (#53)
  • Represent states with structs (#58)
  • Add integration test that tests particles (#62)
  • Names bikeshedding (#64)
  • New Initial State of Particles (#67)
  • Error when changing nx, ny (#74)
  • Simplify station setup (#75)
  • Observations should be independent (#76)
  • Plot to show estimated Standard Deviation instead of Variance (#81)
  • Extra Plot to check effect of Background Noise (#82)
  • Parellelisation (#83)
  • Add station coordinates to output (#84)
  • Provide station coordinates in an input file (#86)
  • Consistency at colouring at plots of "true height" and "assimilated height" (#92)
  • jupyter notebook for plotting (#96)
  • Parallelise resampling (#97)
  • Provide plot for initial condition of (the two) true Velocity Fields (not only of initial Height Field) (#101)
  • add_random_field is not thread-safe after #94 (#105)
  • Discontinuities in variance and mean (#108)
  • Parallel performance (#115)
  • Thread Scaling (#117)
  • Separate particle filter from the model (#124)
  • Parametrize initial condition in llw2d properly (#134)
  • Optimal particle filter (#136)
  • Different Background Noise Parameters for Each of Three State Variables (#175)
  • Plotting tool in Julia (#182)
  • Add SPEEDY climate model (#199)
  • Precompiling ParticleDA Error (#202)
  • Role of weight_std parameter not clear (#205)
  • Generalise update_particle_proposal! (#208)
  • OptimalFilter BoundsError when running with mpiexecjl (#209)
  • Covariance function assumed in optimal proposal not guaranteed to match that used for process noise (#213)
  • Fix TODO about covariance in comment (#214)
  • Generalising the optimal proposal implementation (#215)
  • Allow returning particles as well summary statistics and at multiple time steps (#220)
  • Simplify interface for doing reproducible runs when using MPI (#221)
  • Optimal proposal filter not using correct weights (#223)
  • Observations currently generated within filtering loop (#224)
  • Adding test cases for analytically tractable models (#225)
  • Inconsistent conventions around spatial grid coordinates in LLW2d model (#229)
  • Optimal proposal particle weights are being computed incorrectly (#230)
  • Summary statistics computed on every time step when not outputted (#231)

Merged pull requests:

  • Particle filter (#1) (@tkoskela)
  • Add keyword argument to tdac to enable/disable verbosity (#3) (@giordano)
  • Refactor parameters (#5) (@tkoskela)
  • Add instructions on how to install the package in the README (#8) (@giordano)
  • Fix copyright of the package in the LICENSE file (#9) (@giordano)
  • Add GitHub Actions script for CI (#10) (@giordano)
  • MPI Parallelisation (#11) (@tkoskela)
  • Bug fix, initheight was called on the wrong state array (#12) (@tkoskela)
  • First integration test (#13) (@tkoskela)
  • Remove now unused submodule (#16) (@giordano)
  • Update README.md (#20) (@tkoskela)
  • Jupyter notebook for plotting output files (#21) (@tkoskela)
  • Fix link in README.md (#22) (@tkoskela)
  • Add gaussian random noise (#25) (@tkoskela)
  • [skip ci] Do not fail fast in GitHub Actions (#27) (@giordano)
  • Run tests with 1 and 2 threads (#28) (@giordano)
  • Update GaussianRandomFields and fix lower/upper bounds for deps (#29) (@giordano)
  • [skip ci] Add CompatHelper (#30) (@giordano)
  • Clean up function argument lists (#31) (@tkoskela)
  • Move output into HDF5 file (#32) (@tkoskela)
  • CompatHelper: bump compat for "Distributions" to "0.23" (#33) (@github-actions[bot])
  • Do not run MPI.Finalize() (#37) (@giordano)
  • Add new get_params - function where user can pass dict of parameters (#38) (@tkoskela)
  • Generate Gaussian random field with primes=true (#39) (@giordano)
  • Do process noise and observations only when DA is done (#41) (@tkoskela)
  • Read default parameters using multiple dispatch (#42) (@tkoskela)
  • Define a custom type for the random field (#43) (@giordano)
  • Update structure of the time stepping loop (#47) (@tkoskela)
  • Set total domain size and derive cell size from it (#48) (@tkoskela)
  • Add variance to output, collect arrays in structs (#49) (@tkoskela)
  • Introduce timers with the @timeit_debug macro (#50) (@tkoskela)
  • Fix timer on first run, add print on screen (#51) (@tkoskela)
  • Use params.verbose to check verbosity setting (#52) (@giordano)
  • Remove dependency on Distributed (#54) (@tkoskela)
  • Use multi-dimensional arrays to represent states (#55) (@giordano)
  • CompatHelper: add new compat entry for "TimerOutputs" at version "0.5" (#56) (@github-actions[bot])
  • Preallocate the buffer for tsunami update (#57) (@giordano)
  • Disable FFTW threads in tests (#59) (@giordano)
  • Use preallocated buffer in add_random_field (#60) (@tkoskela)
  • Use a buffer array to generate the random numbers in gaussian field (#63) (@giordano)
  • Move initialisation of the field buffer to init_tdac (#65) (@giordano)
  • Fix distribution of random numbers for the Gaussian random field (#66) (@giordano)
  • Update particle initial state (#68) (@tkoskela)
  • Add colorbars to contourf plots (#69) (@tkoskela)
  • Mean and Var need to be calculated for IO after initial state (#70) (@tkoskela)
  • Add particle weights to output + plotting (#71) (@tkoskela)
  • Add missing argument from list (#72) (@tkoskela)
  • Make output of MPI test visible (#73) (@giordano)
  • Fix issue of non-default parameters not getting passed to init_gaussian_random_field_generator (#77) (@tkoskela)
  • Add test for different grid and time step size (#78) (@tkoskela)
  • Update to weight and observation noise calculation (#79) (@tkoskela)
  • Modify to plot standard deviation instead of variance (#85) (@tkoskela)
  • Update README.md (#87) (@tkoskela)
  • Fix x-axis in ESS plot to start from 1 (#88) (@tkoskela)
  • Upgrades to stations (#89) (@tkoskela)
  • Update README.md (#90) (@tkoskela)
  • Add threads to process noise (#91) (@tkoskela)
  • Enforce same color scale in true and avg height plots. Fix unit of var (#93) (@tkoskela)
  • Define a thread-safe RNG (#94) (@giordano)
  • Separate copying of state vectors from resampling. (#95) (@tkoskela)
  • Use in-place version of var (#98) (@giordano)
  • Get rid of unnecessary flattening and reshaping (#99) (@tkoskela)
  • Use allocation-free var everywhere (#100) (@giordano)
  • Revert state split (#102) (@tkoskela)
  • Add options for particle initial state (#103) (@tkoskela)
  • Add tests for particle state (#104) (@tkoskela)
  • Write velocity fields to output and plot them (#106) (@tkoskela)
  • Move IO functions to separate file (#107) (@tkoskela)
  • CompatHelper: bump compat for "MPI" to "0.15" (#109) (@github-actions[bot])
  • Move hard-coded parameters from llw2d.jl to parameters.jl and Fix boundary calculation (#110) (@tkoskela)
  • Parallel resampling (#111) (@tkoskela)
  • Pack all model matrices in a single struct (#112) (@giordano)
  • Implementation of custom MPI reduction for mean and variance (#113) (@tkoskela)
  • Add scripts to run scaling tests on CSD3 and notebook to plot results (#114) (@tkoskela)
  • Rename functions for readability (#119) (@tkoskela)
  • Simplify initheight (#120) (@tkoskela)
  • Update README.md (#121) (@tkoskela)
  • Do not force FFTW threads to 1 (#122) (@giordano)
  • Rename TDAC.jl -> ParticleDA.jl (#123) (@giordano)
  • Add disclaimer to README (#125) (@tkoskela)
  • Run CI on more versions of Julia (#126) (@giordano)
  • Add benchmarks (#127) (@tkoskela)
  • Separate model from particle filter (#128) (@giordano)
  • CompatHelper: bump compat for "Distributions" to "0.24" (#129) (@github-actions[bot])
  • Fix settings for deployment of documentation (#130) (@giordano)
  • CompatHelper: bump compat for "MPI" to "0.16" (#131) (@github-actions[bot])
  • CompatHelper: bump compat for "HDF5" to "0.14" (#132) (@github-actions[bot])
  • Implement optimal particle filter from Alex (#133) (@tkoskela)
  • Add SSH key to CompatHelper (#135) (@giordano)
  • Update README.md (#137) (@tkoskela)
  • Refactor llw2d.initheight (#138) (@tkoskela)
  • Remove observation noise from model observations (#139) (@tkoskela)
  • Add new filter type argument for dispatch (#140) (@giordano)
  • CompatHelper: bump compat for "HDF5" to "0.15" (#141) (@github-actions[bot])
  • Move filter initialisations into a function and group arrays into a struct. (#142) (@tkoskela)
  • Update documentation to mention new argument to run_particle_filter (#143) (@giordano)
  • Change initial value of bathymetry, pointed out by Devaraj (#144) (@giordano)
  • Update model interface for optimal filter (#145) (@tkoskela)
  • Add two new functions to implement in the model (#146) (@giordano)
  • Slightly simplify test project file (#147) (@giordano)
  • Fix bug in update_reference_data.jl (#148) (@tkoskela)
  • Restore compat bounds for test dependencies (#149) (@github-actions[bot])
  • Add GitHub Action workflow to run benchmarks on CI for pull requests (#153) (@giordano)
  • Add more benchmarks (#154) (@giordano)
  • Pass filter type to run_particle_filter and use it to dispatch (#155) (@tkoskela)
  • Increase required Julia version to v1.5 (#156) (@giordano)
  • Split get_grid_size into three functions (#157) (@tkoskela)
  • More generic initialisation of boostrap filter (#158) (@giordano)
  • Precompute FFTW plan (#159) (@giordano)
  • Add integration test with optimal filter (#160) (@tkoskela)
  • Remove duplicate definition of nprt_per_rank (#161) (@giordano)
  • Reduce allocations in sample_height_proposal! (#162) (@giordano)
  • Dump particle states to file upon request (#163) (@tkoskela)
  • Include docstring of Model.ModelParameters in documentation (#164) (@giordano)
  • Fix `s in docstring (#166) (@tkoskela)
  • Add metadata to StateVectors with FieldMetadata.jl. (#167) (@tkoskela)
  • CompatHelper: bump compat for "MPI" to "0.17" (#168) (@github-actions[bot])
  • CompatHelper: bump compat for "MPI" to "0.17" for package test (#169) (@github-actions[bot])
  • CompatHelper: bump compat for "MPI" to "0.17" for package benchmark (#170) (@github-actions[bot])
  • CompatHelper: add new compat entry for "Distributions" at version "0.24" for package benchmark (#171) (@github-actions[bot])
  • CompatHelper: bump compat for "BenchmarkTools" to "0.7" for package benchmark (#172) (@github-actions[bot])
  • CompatHelper: add new compat entry for "HDF5" at version "0.15" for package benchmark (#173) (@github-actions[bot])
  • CompatHelper: bump compat for "MPI" to "0.17" for package docs (#174) (@github-actions[bot])
  • Support different noise parameters for each state variable (#176) (@tkoskela)
  • Remove ParticleDA from test project (#177) (@giordano)
  • CompatHelper: bump compat for "Distributions" to "0.25" (#178) (@github-actions[bot])
  • CompatHelper: bump compat for "Distributions" to "0.25" for package test (#179) (@github-actions[bot])
  • CompatHelper: bump compat for "Distributions" to "0.25" for package benchmark (#180) (@github-actions[bot])
  • CompatHelper: bump compat for "Distributions" to "0.25" for package docs (#181) (@github-actions[bot])
  • Add Julia plotting notebook (#183) (@giordano)
  • Fix docstring of get_model_noise_params (#184) (@giordano)
  • CompatHelper: bump compat for "BenchmarkTools" to "1.0" for package benchmark (#185) (@github-actions[bot])
  • Remove redundant call to get_particles (#186) (@giordano)
  • Update uninformative parameter description and add two missing ones (#187) (@tkoskela)
  • Add Pluto notebook to explore the output data (#189) (@giordano)
  • Pad time stamps in output file with up to 3 zeros (#190) (@tkoskela)
  • Pad times also when writing the weights (#191) (@giordano)
  • CompatHelper: bump compat for "Documenter" to "0.27" for package docs (#196) (@github-actions[bot])
  • Update to MPI.jl v0.19 (#197) (@giordano)
  • Reorganise how timer strings to be saved in HDF5 are created (#200) (@giordano)
  • Generalise some dimensions in bootstrap filter (#201) (@giordano)
  • Add input files to repository (#206) (@tkoskela)
  • Use correct number of particles in Optimal Filter and add MPI test (#210) (@tkoskela)
  • Propagate number of threads when running MPI tests (#211) (@giordano)
  • Move threads flags to flags variable in MPI tests (#212) (@giordano)
  • Use GaussianRandomFields to calculate optimal proposal covariance (#216) (@matt-graham)
  • Update to HDF5.jl v0.16 (#217) (@giordano)
  • Generalising the optimal proposal implementation (#218) (@DanGiles)
  • Require Julia v1.7 and use new task-local RNG (#219) (@giordano)
  • Collect code coverage and add badges to README file (#222) (@giordano)
  • Refactor: using flat vector states and decoupling states from model (#232) (@matt-graham)
  • Run MPI tests with Base.julia_cmd instead of Base.julia_exename (#234) (@giordano)
  • Upgrade to MPI.jl 0.20 (#235) (@giordano)
  • Remove useless dependency on DifferentialEquations (#236) (@giordano)
  • Add linear Gaussian model type + validation notebook (#237) (@matt-graham)
  • Bump version number to v1.0.0 (#238) (@giordano)