9#ifndef FIMS_POPULATION_DYNAMICS_SIZE_DISTRIBUTION_PROVIDER_BASE_HPP
10#define FIMS_POPULATION_DYNAMICS_SIZE_DISTRIBUTION_PROVIDER_BASE_HPP
29template <
typename Type>
30class SizeDistributionProviderBase {
32 SizeDistributionProviderBase() {}
33 virtual ~SizeDistributionProviderBase() =
default;
59 std::size_t n_ages) = 0;
81 virtual const Type&
MeanLAA(std::size_t year_index,
82 std::size_t age_index)
const = 0;
90 virtual const Type&
SdLAA(std::size_t year_index,
91 std::size_t age_index)
const = 0;
100 virtual const Type&
ProbSize(std::size_t year_index, std::size_t age_index,
101 std::size_t size_bin_index)
const = 0;
111 std::size_t age_index)
const = 0;
virtual void SetPopulationSizeGrid(const SizeGrid *size_grid)=0
Configure the provider to use the canonical population size grid.
virtual const Type & SdLAA(std::size_t year_index, std::size_t age_index) const =0
Read prepared spread of length-at-age.
virtual void SetPopulationDimensions(std::size_t n_years, std::size_t n_ages)=0
Configure the provider dimensions for prepared size products.
virtual const Type & MeanWeightAtAge(std::size_t year_index, std::size_t age_index) const =0
Read prepared mean weight-at-age averaged over the population size bins.
virtual void PrepareSizeProducts()=0
Prepare size products for the current model state.
virtual void InvalidatePreparedSizeProducts()=0
Invalidate any prepared size state held by this provider.
virtual const Type & ProbSize(std::size_t year_index, std::size_t age_index, std::size_t size_bin_index) const =0
Read prepared age-to-size probability on the population grid.
virtual const Type & MeanLAA(std::size_t year_index, std::size_t age_index) const =0
Read prepared mean length-at-age.
virtual const SizeGrid * TryGetSizeGrid() const =0
Return the biological size grid used by this provider.
The population dynamics of FIMS.
Definition catch_at_age.hpp:45
Defines the SizeGrid container for population-level biological size support.
Population-level biological size grid.
Definition size_grid.hpp:26