Opm::MakeInterpolants< Interpolant > Struct Template Reference

#include <ECLPropTable.hpp>

Static Public Member Functions

template<class Factory >
static std::vector< Interpolant > fromRawData (const ECLPropTableRawData &raw, Factory &&construct)
 

Detailed Description

template<class Interpolant>
struct Opm::MakeInterpolants< Interpolant >

Build a sequence of table interpolants from raw tabulated data, assuming table conventions in the INIT file's TABDIMS/TAB vectors.

Template Parameters
InterpolantRepresentation of a table interpolant.

Member Function Documentation

◆ fromRawData()

template<class Interpolant >
template<class Factory >
static std::vector< Interpolant > Opm::MakeInterpolants< Interpolant >::fromRawData ( const ECLPropTableRawData raw,
Factory &&  construct 
)
inlinestatic

Create sequence of table interpolants.

This function is aware of the internal layout of the INIT file's tabulated function and knows how to identify table data ranges corresponding to a single table. In particular we know how to the data according to region IDs and how to apply further partitioning according to primary lookup keys (e.g., for RS nodes in PVTO tables).

Template Parameters
FactoryInterpolant construction function. Usually a class constructor wrapped in a lambda. The call
I = Factory(xBegin, xEnd, colIt);
must construct an instance I of type Interpolant. Here, xBegin and xEnd demarcate the range of a single table's independent variate and colIt are column iterators positioned at the beginning of each of the table's dependent (result) column.

Note: The construction function is expected to advance each column iterator across

distance(xBegin, xEnd)

entries.

Parameters
[in]rawRaw tabulated data. Must correspond to a single table vector, e.g. the SWFN data.
[in]constructCallback function that knows how to build a single interpolant given a sequence ranges of of independent and dependent tabulated function values. Must advance the dependent column iterators and perform appropriate unit conversion on the table data if needed (e.g., for capillary pressure data or viscosity values).

References Catch::begin, and raw.


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