Skip to content

Class emulator::impl::AtmFieldDataProvider

ClassList > emulator > impl > AtmFieldDataProvider

Adapter implementing FieldDataProvider forAtmFieldManager .More...

  • #include <atm_field_data_provider.hpp>

Inherits the following classes: emulator::FieldDataProvider

Public Functions

Type Name
AtmFieldDataProvider (AtmFieldManager & fields, int ncols_local)
Construct adapter with reference to field manager.
void detect_stacked_fields ()
Scan fields and detect stackable slice patterns.
virtual const std::vector< double > * get_field (const std::string & name) override const
Get pointer to field data by name.
virtual std::vector< std::string > get_field_names () override const
Get list of all available field names.
virtual int get_field_nlevs (const std::string & name) override const
Get number of vertical levels for a field.
virtual int get_ncols () override const
Get number of local columns.
const std::vector< double > & get_stacked_field (const std::string & basename) const
Get the stacked data for a 3D field.
bool is_stacked_field (const std::string & name) const
Check if a field is a stacked field.
~AtmFieldDataProvider () override

Public Functions inherited from emulator::FieldDataProvider

See emulator::FieldDataProvider

Type Name
virtual const std::vector< double > * get_field (const std::string & name) const = 0
Get pointer to field data by name.
virtual std::vector< std::string > get_field_names () const = 0
Get list of all available field names.
virtual int get_field_nlevs (const std::string & name) const
Check if a field has vertical levels (is 3D).
virtual int get_ncols () const = 0
Get number of local columns.
virtual ~FieldDataProvider () = default

Detailed Description

Public Functions Documentation

function AtmFieldDataProvider

Construct adapter with reference to field manager.

emulator::impl::AtmFieldDataProvider::AtmFieldDataProvider (
    AtmFieldManager & fields,
    int ncols_local
) 

Parameters:


function detect_stacked_fields

Scan fields and detect stackable slice patterns.

void emulator::impl::AtmFieldDataProvider::detect_stacked_fields () 

Finds fields matching "basename_N" pattern and registers them as stackable groups.


function get_field

Get pointer to field data by name.

virtual const std::vector< double > * emulator::impl::AtmFieldDataProvider::get_field (
    const std::string & name
) override const

First checks for exact match, then checks for stacked fields.

Parameters:

  • name Field name

Returns:

Pointer to data vector, or nullptr if not found

Implements emulator::FieldDataProvider::get_field


function get_field_names

Get list of all available field names.

virtual std::vector< std::string > emulator::impl::AtmFieldDataProvider::get_field_names () override const

Includes both direct fields and auto-detected stacked fields.

Implements emulator::FieldDataProvider::get_field_names


function get_field_nlevs

Get number of vertical levels for a field.

virtual int emulator::impl::AtmFieldDataProvider::get_field_nlevs (
    const std::string & name
) override const

Parameters:

  • name Field name

Returns:

Number of levels (1 for 2D fields, >1 for stacked fields)

Implements emulator::FieldDataProvider::get_field_nlevs


function get_ncols

Get number of local columns.

inline virtual int emulator::impl::AtmFieldDataProvider::get_ncols () override const

Implements emulator::FieldDataProvider::get_ncols


function get_stacked_field

Get the stacked data for a 3D field.

const std::vector< double > & emulator::impl::AtmFieldDataProvider::get_stacked_field (
    const std::string & basename
) const

Combines sliced fields [field_0, field_1, ...] into a single contiguous buffer with shape [nlevs, ncols].

Parameters:

  • basename Base field name (without _N suffix)

Returns:

Stacked data buffer


function is_stacked_field

Check if a field is a stacked field.

bool emulator::impl::AtmFieldDataProvider::is_stacked_field (
    const std::string & name
) const


function ~AtmFieldDataProvider

emulator::impl::AtmFieldDataProvider::~AtmFieldDataProvider () override


The documentation for this class was generated from the following file components/emulator_comps/eatm/src/impl/atm_field_data_provider.hpp