FIMS  v0.10.0
Loading...
Searching...
No Matches
fims_popdy::AgeToLengthConversionDerived< Type > Struct Template Reference

Growth-derived age-to-length conversion implementation that reads prepared population age-to-size probabilities and maps them into fleet observation bins. More...

#include <derived.hpp>

Inheritance diagram for fims_popdy::AgeToLengthConversionDerived< Type >:
fims_popdy::AgeToLengthConversionBase< Type > fims_model_object::FIMSObject< Type > fims_model_object::FIMSMemoryTracker

Public Member Functions

 AgeToLengthConversionDerived (const std::shared_ptr< Fleet< Type > > &fleet_, const std::shared_ptr< GrowthDerivedObservationBase< Type > > &growth_observation_, const std::shared_ptr< SizeDistributionProviderBase< Type > > &size_provider_)
 Constructor.
 
virtual ~AgeToLengthConversionDerived ()
 Destructor.
 
virtual bool IsActive () const override
 Returns whether this growth-derived age-to-length conversion is structurally active.
 
virtual bool PrepareForCurrentState () override
 Ensures the linked growth products and population size-provider products are prepared for the current model state.
 
virtual bool BuildAgeToLengthConversionRow (size_t year, size_t age, fims::Vector< Type > &out_row) const override
 Builds the normalized age-to-length conversion row for a given year and age.
 
- Public Member Functions inherited from fims_model_object::FIMSObject< Type >
uint32_t GetId () const
 Getter that returns the unique id for parameters in the model.
 
bool CheckDimensions (size_t actual, size_t expected)
 Check the dimensions of an object.
 
- Public Member Functions inherited from fims_model_object::FIMSMemoryTracker
void register_self (const uint32_t id)
 Registers a FIMSObject instance with the memory tracker.
 

Public Attributes

std::weak_ptr< Fleet< Type > > fleet_
 
std::weak_ptr< SizeDistributionProviderBase< Type > > size_provider_
 
std::shared_ptr< GrowthDerivedObservationBase< Type > > growth_observation_
 
- Public Attributes inherited from fims_model_object::FIMSObject< Type >
uint32_t id
 
std::vector< Type * > parameters
 
std::vector< Type * > random_effects_parameters
 
std::vector< Type * > fixed_effects_parameters
 

Protected Member Functions

fims::Vector< Type > BuildPopulationProbSizeRow (std::size_t year_index, std::size_t age_index) const
 Read one prepared age-to-size row from the linked population size provider.
 
bool TryFinalizeMappedProbabilityRow (fims::Vector< Type > &row, std::size_t expected_size, const Type &minimum_bin_prob=static_cast< Type >(1e-12)) const
 Normalize one mapped fleet probability row.
 
fims::Vector< Type > BuildMappedFleetAgeToLengthConversionRow (std::size_t year_index, std::size_t age_index) const
 Build one fleet age-to-length conversion row by mapping a population age-to-size row onto fleet observation bins.
 
std::shared_ptr< SizeDistributionProviderBase< Type > > TryGetSizeProvider () const
 Try to get the linked population size provider.
 
const GrowthProducts< Type > * TryGetGrowthProducts () const
 Try to get prepared growth products from the linked growth object.
 

Additional Inherited Members

- Static Public Attributes inherited from fims_popdy::AgeToLengthConversionBase< Type >
static uint32_t id_g
 
- Static Public Attributes inherited from fims_model_object::FIMSMemoryTracker
static int total_active_objects = 0
 Total number of active FIMSObject instances currently in memory.
 

Detailed Description

template<typename Type>
struct fims_popdy::AgeToLengthConversionDerived< Type >

Growth-derived age-to-length conversion implementation that reads prepared population age-to-size probabilities and maps them into fleet observation bins.

Constructor & Destructor Documentation

◆ AgeToLengthConversionDerived()

template<typename Type >
fims_popdy::AgeToLengthConversionDerived< Type >::AgeToLengthConversionDerived ( const std::shared_ptr< Fleet< Type > > &  fleet_,
const std::shared_ptr< GrowthDerivedObservationBase< Type > > &  growth_observation_,
const std::shared_ptr< SizeDistributionProviderBase< Type > > &  size_provider_ 
)
inline

Constructor.

Parameters
fleet_Shared pointer to the fleet using this age-to-length conversion.
growth_observation_Shared pointer to the growth-derived observation capability.
size_provider_Shared pointer to the population size provider.

Member Function Documentation

◆ BuildAgeToLengthConversionRow()

template<typename Type >
virtual bool fims_popdy::AgeToLengthConversionDerived< Type >::BuildAgeToLengthConversionRow ( size_t  year,
size_t  age,
fims::Vector< Type > &  out_row 
) const
inlineoverridevirtual

Builds the normalized age-to-length conversion row for a given year and age.

Parameters
yearYear index.
ageAge index.
out_rowOutput age-to-length probability row.
Returns
True if the age-to-length conversion row was built successfully using prepared growth products for the current model state.

Implements fims_popdy::AgeToLengthConversionBase< Type >.

◆ BuildMappedFleetAgeToLengthConversionRow()

template<typename Type >
fims::Vector< Type > fims_popdy::AgeToLengthConversionDerived< Type >::BuildMappedFleetAgeToLengthConversionRow ( std::size_t  year_index,
std::size_t  age_index 
) const
inlineprotected

Build one fleet age-to-length conversion row by mapping a population age-to-size row onto fleet observation bins.

Parameters
year_indexYear index.
age_indexAge index.
Returns
Normalized fleet observation-bin probability row.

◆ BuildPopulationProbSizeRow()

template<typename Type >
fims::Vector< Type > fims_popdy::AgeToLengthConversionDerived< Type >::BuildPopulationProbSizeRow ( std::size_t  year_index,
std::size_t  age_index 
) const
inlineprotected

Read one prepared age-to-size row from the linked population size provider.

Parameters
year_indexYear index.
age_indexAge index.
Returns
Population-grid probability row for the requested year and age.

◆ IsActive()

template<typename Type >
virtual bool fims_popdy::AgeToLengthConversionDerived< Type >::IsActive ( ) const
inlineoverridevirtual

Returns whether this growth-derived age-to-length conversion is structurally active.

Returns
True if the linked fleet, population size provider, and growth observation are valid and the fleet has consistent observation-bin geometry.

Implements fims_popdy::AgeToLengthConversionBase< Type >.

◆ PrepareForCurrentState()

template<typename Type >
virtual bool fims_popdy::AgeToLengthConversionDerived< Type >::PrepareForCurrentState ( )
inlineoverridevirtual

Ensures the linked growth products and population size-provider products are prepared for the current model state.

This helper reuses already prepared growth products when available and only triggers preparation when products have not yet been prepared. It then prepares the linked population size provider so the age-to-length conversion can read population age-to-size rows for mapping into fleet observation bins.

Returns
True if the required growth products are available for this age-to-length conversion path and the linked population size provider can be prepared.

Implements fims_popdy::AgeToLengthConversionBase< Type >.

◆ TryFinalizeMappedProbabilityRow()

template<typename Type >
bool fims_popdy::AgeToLengthConversionDerived< Type >::TryFinalizeMappedProbabilityRow ( fims::Vector< Type > &  row,
std::size_t  expected_size,
const Type &  minimum_bin_prob = static_cast<Type>(1e-12) 
) const
inlineprotected

Normalize one mapped fleet probability row.

Parameters
rowFleet probability row on observation bins.
expected_sizeExpected number of fleet bins.
minimum_bin_probMinimum probability added to each bin before normalization.
Returns
True if the mapped fleet row has the expected size.

◆ TryGetGrowthProducts()

template<typename Type >
const GrowthProducts< Type > * fims_popdy::AgeToLengthConversionDerived< Type >::TryGetGrowthProducts ( ) const
inlineprotected

Try to get prepared growth products from the linked growth object.

Returns
Pointer to prepared growth products, or nullptr if unavailable.

◆ TryGetSizeProvider()

template<typename Type >
std::shared_ptr< SizeDistributionProviderBase< Type > > fims_popdy::AgeToLengthConversionDerived< Type >::TryGetSizeProvider ( ) const
inlineprotected

Try to get the linked population size provider.

Returns
Shared pointer to the size provider, or nullptr if unavailable.

Member Data Documentation

◆ fleet_

template<typename Type >
std::weak_ptr<Fleet<Type> > fims_popdy::AgeToLengthConversionDerived< Type >::fleet_

non-owning link to the fleet

◆ growth_observation_

template<typename Type >
std::shared_ptr<GrowthDerivedObservationBase<Type> > fims_popdy::AgeToLengthConversionDerived< Type >::growth_observation_

growth-derived observation capability

◆ size_provider_

non-owning link to the population size provider


The documentation for this struct was generated from the following file: