interpolationTable< Type > Class Template Reference

An interpolation/look-up table of scalar vs <Type> values. The reference scalar values must be monotonically increasing. More...

Inheritance diagram for interpolationTable< Type >:
[legend]
Collaboration diagram for interpolationTable< Type >:
[legend]

Public Types

typedef Tuple2< scalar, Type > value_type
 The element data type. More...
 
typedef Type mapped_type
 The mapped data type. More...
 
- Public Types inherited from List< Tuple2< scalar, Type > >
typedef SubList< Tuple2< scalar, Type > > subList
 Declare type of subList. More...
 

Public Member Functions

 interpolationTable ()
 Default construct. More...
 
 interpolationTable (const List< Tuple2< scalar, Type >> &values, const bounds::repeatableBounding bounding, const fileName &fName)
 Construct from components. More...
 
 interpolationTable (const fileName &fName)
 Construct given the name of the file containing the table of data. More...
 
 interpolationTable (const dictionary &dict)
 
 interpolationTable (const interpolationTable &tbl)
 Copy construct. More...
 
void check () const
 Check that list is monotonically increasing. More...
 
void write (Ostream &os) const
 Write. More...
 
Type rateOfChange (scalar lookupValue) const
 
Type interpolateValue (scalar lookupValue) const
 Return an interpolated value. More...
 
tmp< Field< Type > > interpolateValues (const UList< scalar > &vals) const
 Return multiple interpolated values. More...
 
void operator= (const interpolationTable< Type > &rhs)
 Copy assignment. More...
 
const Tuple2< scalar, Type > & operator[] (label idx) const
 Return an element of constant Tuple2<scalar, Type> More...
 
Type operator() (scalar lookupValue) const
 Return an interpolated value. More...
 
- Public Member Functions inherited from List< Tuple2< scalar, Type > >
constexpr List () noexcept
 Default construct. More...
 
 List (const label len)
 Construct with given size. More...
 
 List (const label len, const Tuple2< scalar, Type > &val)
 Construct with given size and value for all elements. More...
 
 List (const label len, const Foam::zero)
 Construct with given size initializing all elements to zero. More...
 
 List (const Foam::one, const Tuple2< scalar, Type > &val)
 Construct with length=1, copying the value as the only content. More...
 
 List (const Foam::one, Tuple2< scalar, Type > &&val)
 Construct with length=1, moving the value as the only content. More...
 
 List (const Foam::one, const Foam::zero)
 Construct with length=1, initializing content to zero. More...
 
 List (const List< Tuple2< scalar, Type > > &a)
 Copy construct from list. More...
 
 List (const UList< Tuple2< scalar, Type > > &a)
 Copy construct contents from list. More...
 
 List (List< Tuple2< scalar, Type > > &a, bool reuse)
 Construct as copy or re-use as specified. More...
 
 List (const UList< Tuple2< scalar, Type > > &list, const labelUList &indices)
 Copy construct subset of list. More...
 
 List (const UList< Tuple2< scalar, Type > > &list, const FixedList< label, N > &indices)
 Copy construct subset of list. More...
 
 List (const FixedList< Tuple2< scalar, Type >, N > &list)
 Construct as copy of FixedList<T, N> More...
 
 List (const PtrList< Tuple2< scalar, Type > > &list)
 Construct as copy of PtrList<T> More...
 
 List (const SLList< Tuple2< scalar, Type > > &list)
 Construct as copy of SLList<T> More...
 
 List (const IndirectListBase< Tuple2< scalar, Type >, Addr > &list)
 Construct as copy of IndirectList contents. More...
 
 List (std::initializer_list< Tuple2< scalar, Type > > list)
 Construct from an initializer list. More...
 
 List (List< Tuple2< scalar, Type > > &&list)
 Move construct from List. More...
 
 List (DynamicList< Tuple2< scalar, Type >, SizeMin > &&list)
 Move construct from DynamicList. More...
 
 List (SortableList< Tuple2< scalar, Type > > &&list)
 Move construct from SortableList. More...
 
 List (SLList< Tuple2< scalar, Type > > &&list)
 Move construct from SLList. More...
 
 List (Istream &is)
 Construct from Istream. More...
 
autoPtr< List< Tuple2< scalar, Type > > > clone () const
 Clone. More...
 
 ~List ()
 Destructor. More...
 
void clear ()
 Clear the list, i.e. set size to zero. More...
 
void resize (const label len)
 Adjust allocated size of list. More...
 
void resize (const label len, const Tuple2< scalar, Type > &val)
 Adjust allocated size of list and set val for new elements. More...
 
void resize (const label newLen)
 
void resize_nocopy (const label len)
 Adjust allocated size of list without necessarily. More...
 
void setSize (const label n)
 Alias for resize() More...
 
void setSize (const label n, const Tuple2< scalar, Type > &val)
 Alias for resize() More...
 
void append (const Tuple2< scalar, Type > &val)
 Append an element at the end of the list. More...
 
void append (Tuple2< scalar, Type > &&val)
 Move append an element at the end of the list. More...
 
void append (const UList< Tuple2< scalar, Type > > &list)
 Append a List to the end of this list. More...
 
void append (const IndirectListBase< Tuple2< scalar, Type >, Addr > &list)
 Append IndirectList contents at the end of this list. More...
 
label appendUniq (const Tuple2< scalar, Type > &val)
 Append an element if not already in the list. More...
 
void transfer (List< Tuple2< scalar, Type > > &list)
 
void transfer (DynamicList< Tuple2< scalar, Type >, SizeMin > &list)
 
void transfer (SortableList< Tuple2< scalar, Type > > &list)
 
Tuple2< scalar, Type > & newElmt (const label i)
 
void operator= (const UList< Tuple2< scalar, Type > > &a)
 Assignment to UList operator. Takes linear time. More...
 
void operator= (const List< Tuple2< scalar, Type > > &list)
 Assignment operator. Takes linear time. More...
 
void operator= (const SLList< Tuple2< scalar, Type > > &list)
 Assignment to SLList operator. Takes linear time. More...
 
void operator= (const IndirectListBase< Tuple2< scalar, Type >, Addr > &list)
 Assignment from IndirectList. Takes linear time. More...
 
void operator= (const FixedList< Tuple2< scalar, Type >, N > &list)
 Copy assignment from FixedList. More...
 
void operator= (std::initializer_list< Tuple2< scalar, Type > > list)
 Assignment to an initializer list. More...
 
void operator= (const Tuple2< scalar, Type > &val)
 Assignment of all entries to the given value. More...
 
void operator= (const Foam::zero)
 Assignment of all entries to zero. More...
 
void operator= (List< Tuple2< scalar, Type > > &&list)
 Move assignment. Takes constant time. More...
 
void operator= (DynamicList< Tuple2< scalar, Type >, SizeMin > &&list)
 Move assignment. Takes constant time. More...
 
void operator= (SortableList< Tuple2< scalar, Type > > &&list)
 Move assignment. Takes constant time. More...
 
void operator= (SLList< Tuple2< scalar, Type > > &&list)
 Move assignment. Takes constant time. More...
 
IstreamreadList (Istream &is)
 Read List from Istream, discarding contents of existing List. More...
 
IstreamreadList (Istream &is)
 
IstreamreadList (Istream &is)
 
void shallowCopy (const UList< Tuple2< scalar, Type > > &)=delete
 No shallowCopy permitted. More...
 
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type set (const label i, bool val=true)
 A bitSet::set() method for a list of bool. More...
 

Static Public Member Functions

static Type interpolateValue (const List< Tuple2< scalar, Type >> &list, scalar lookupValue, bounds::repeatableBounding=bounds::repeatableBounding::CLAMP)
 Return an interpolated value in List. More...
 
- Static Public Member Functions inherited from List< Tuple2< scalar, Type > >
static const List< Tuple2< scalar, Type > > & null ()
 Return a null List. More...
 

Detailed Description

template<class Type>
class Foam::interpolationTable< Type >

An interpolation/look-up table of scalar vs <Type> values. The reference scalar values must be monotonically increasing.

The handling of out-of-bounds values depends on the current setting of outOfBounds.

If repeat is chosen for the out-of-bounds handling, the final time value is treated as being equivalent to time=0 for the following periods.

The construct from dictionary reads a filename from a dictionary and has an optional readerType. Default is to read OpenFOAM format. The only other format is csv (comma separated values):

Read csv format:

    readerType          csv;
    file                "<constant>/p0vsTime.csv";
    hasHeaderLine       true;   // skip first line
    refColumn           0;      // reference (eg, time) is in column 0
    componentColumns    (1);    // component values starts in column 1
Note
  • Accessing an empty list results in an error.
  • Accessing a list with a single element always returns the same value.
Source files

Definition at line 81 of file interpolationTable.H.

Member Typedef Documentation

◆ value_type

typedef Tuple2<scalar, Type> value_type

The element data type.

Definition at line 108 of file interpolationTable.H.

◆ mapped_type

typedef Type mapped_type

The mapped data type.

Definition at line 111 of file interpolationTable.H.

Constructor & Destructor Documentation

◆ interpolationTable() [1/5]

Default construct.

Definition at line 61 of file interpolationTable.C.

◆ interpolationTable() [2/5]

interpolationTable ( const List< Tuple2< scalar, Type >> &  values,
const bounds::repeatableBounding  bounding,
const fileName fName 
)

Construct from components.

Definition at line 72 of file interpolationTable.C.

◆ interpolationTable() [3/5]

interpolationTable ( const fileName fName)
explicit

Construct given the name of the file containing the table of data.

Definition at line 86 of file interpolationTable.C.

◆ interpolationTable() [4/5]

interpolationTable ( const dictionary dict)
explicit

Construct by reading file name and outOfBounds from dictionary and read the table from that file.

This is a specialised constructor used by patchFields

Definition at line 98 of file interpolationTable.C.

◆ interpolationTable() [5/5]

interpolationTable ( const interpolationTable< Type > &  tbl)

Copy construct.

Definition at line 120 of file interpolationTable.C.

Member Function Documentation

◆ interpolateValue() [1/2]

Type interpolateValue ( const List< Tuple2< scalar, Type >> &  list,
scalar  lookupValue,
bounds::repeatableBounding  bounding = bounds::repeatableBounding::CLAMP 
)
static

Return an interpolated value in List.

Definition at line 311 of file interpolationTable.C.

◆ check()

void check ( ) const

Check that list is monotonically increasing.

Exit with a FatalError if there is a problem

Definition at line 134 of file interpolationTable.C.

◆ write()

void write ( Ostream os) const

Write.

Definition at line 160 of file interpolationTable.C.

◆ rateOfChange()

Type rateOfChange ( scalar  lookupValue) const

Return the rate of change at the interpolation location for the given lookup value

Definition at line 172 of file interpolationTable.C.

◆ interpolateValue() [2/2]

Type interpolateValue ( scalar  lookupValue) const

Return an interpolated value.

Definition at line 464 of file interpolationTable.C.

◆ interpolateValues()

Foam::tmp< Foam::Field< Type > > interpolateValues ( const UList< scalar > &  vals) const

Return multiple interpolated values.

Definition at line 475 of file interpolationTable.C.

◆ operator=()

void operator= ( const interpolationTable< Type > &  rhs)

Copy assignment.

Definition at line 495 of file interpolationTable.C.

◆ operator[]()

const Foam::Tuple2< Foam::scalar, Type > & operator[] ( label  idx) const

Return an element of constant Tuple2<scalar, Type>

Definition at line 513 of file interpolationTable.C.

◆ operator()()

Type operator() ( scalar  lookupValue) const

Return an interpolated value.

Definition at line 609 of file interpolationTable.C.


The documentation for this class was generated from the following files: