v1.0.0
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 ofBase.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)