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


Public Types | |
| typedef Tuple2< scalar, Type > | value_type |
| The element data type. | |
| typedef Type | mapped_type |
| The mapped data type. | |
| Public Types inherited from List< Tuple2< scalar, Type > > | |
| typedef SubList< Tuple2< scalar, Type > > | subList |
| Declare type of subList. | |
| Public Types inherited from UList< Tuple2< scalar, Type > > | |
| typedef Tuple2< scalar, Type > | value_type |
| The value type the list contains. | |
| typedef Tuple2< scalar, Type > * | pointer |
| The pointer type for non-const access to value_type items. | |
| typedef const Tuple2< scalar, Type > * | const_pointer |
| The pointer type for const access to value_type items. | |
| typedef Tuple2< scalar, Type > & | reference |
| The type used for storing into value_type objects. | |
| typedef const Tuple2< scalar, Type > & | const_reference |
| The type used for reading from constant value_type objects. | |
| typedef Tuple2< scalar, Type > * | iterator |
| Random access iterator for traversing a UList. | |
| typedef const Tuple2< scalar, Type > * | const_iterator |
| Random access iterator for traversing a UList. | |
| typedef label | size_type |
| The type to represent the size of a UList. | |
| typedef label | difference_type |
| The difference between iterator objects. | |
| typedef std::reverse_iterator< iterator > | reverse_iterator |
| Reverse iterator (non-const access). | |
| typedef std::reverse_iterator< const_iterator > | const_reverse_iterator |
| Reverse iterator (const access). | |
| using | is_List |
| Have unique tag. | |
Public Member Functions | |
| interpolationTable () | |
| Default construct. | |
| interpolationTable (const List< Tuple2< scalar, Type > > &values, const bounds::repeatableBounding bounding, const fileName &fName) | |
| Construct from components. | |
| interpolationTable (const fileName &fName) | |
| Construct given the name of the file containing the table of data. | |
| interpolationTable (const dictionary &dict) | |
| Construct by reading file name and outOfBounds from dictionary and read the table from that file. | |
| interpolationTable (const interpolationTable &tbl) | |
| Copy construct. | |
| void | check () const |
| Check that list is monotonically increasing. | |
| void | write (Ostream &os) const |
| Write. | |
| Type | rateOfChange (scalar lookupValue) const |
| Return the rate of change at the interpolation location for the given lookup value. | |
| Type | interpolateValue (scalar lookupValue) const |
| Return an interpolated value. | |
| tmp< Field< Type > > | interpolateValues (const UList< scalar > &vals) const |
| Return multiple interpolated values. | |
| void | operator= (const interpolationTable< Type > &rhs) |
| Copy assignment. | |
| const Tuple2< scalar, Type > & | operator[] (label idx) const |
| Return an element of constant Tuple2<scalar, Type>. | |
| Type | operator() (scalar lookupValue) const |
| Return an interpolated value. | |
| Public Member Functions inherited from List< Tuple2< scalar, Type > > | |
| void | resize (const label len) |
| autoPtr< List< Tuple2< scalar, Type > > > | clone () const |
| Clone. | |
| ~List () | |
| Destructor. | |
| void | clear () |
| Clear the list, i.e. set size to zero. | |
| void | resize_copy (label count, const label len) |
| Change allocated size of list, retaining the first count elements. | |
| void | resize_fill (const label len, const Tuple2< scalar, Type > &val) |
| Adjust allocated size of list and set val for all elements. | |
| void | resize_nocopy (const label len) |
| Adjust allocated size of list without necessarily. | |
| void | transfer (List< Tuple2< scalar, Type > > &list) |
| Transfer the contents of the argument List into this list and annul the argument list. | |
| Tuple2< scalar, Type > & | newElmt (const label i) |
| Return subscript-checked element of UList and resizing the list if required. | |
| Tuple2< scalar, Type > & | emplace_back (Args &&... args) |
| Construct an element at the end of the list, return reference to the new list element. | |
| void | push_back (const Tuple2< scalar, Type > &val) |
| Append an element at the end of the list. | |
| label | push_uniq (const Tuple2< scalar, Type > &val) |
| Append an element if not already in the list. | |
| void | pop_back (label n=1) |
| Reduce size by 1 or more elements. Can be called on an empty list. | |
| void | operator= (const UList< Tuple2< scalar, Type > > &list) |
| Assignment to UList operator. Takes linear time. | |
| Istream & | readList (Istream &is) |
| Read List from Istream, discarding contents of existing List. | |
| void | shallowCopy (const UList< Tuple2< scalar, Type > > &)=delete |
| No shallowCopy permitted. | |
| bool | set (const label i, bool val=true) |
| A bitSet::set() method for a list of bool. | |
| void | append (const Tuple2< scalar, Type > &val) |
| Append an element at the end of the list. | |
| label | appendUniq (const Tuple2< scalar, Type > &val) |
| Same as push_uniq(). | |
| void | setSize (label n) |
| Alias for resize(). | |
| Public Member Functions inherited from UList< Tuple2< scalar, Type > > | |
| UList (const UList< Tuple2< scalar, Type > > &) noexcept=default | |
| Copy construct, shallow copy. | |
| UList< Tuple2< scalar, Type > > & | operator= (const UList< Tuple2< scalar, Type > > &)=delete |
| No copy assignment (default: shallow copy). | |
| label | fcIndex (const label i) const noexcept |
| The forward circular index. The next index in the list which returns to the first at the end of the list. | |
| label | rcIndex (const label i) const noexcept |
| The reverse circular index. The previous index in the list which returns to the last at the beginning of the list. | |
| const Tuple2< scalar, Type > & | fcValue (const label i) const |
| Return forward circular value (ie, next value in the list). | |
| const Tuple2< scalar, Type > & | rcValue (const label i) const |
| Return reverse circular value (ie, previous value in the list). | |
| const Tuple2< scalar, Type > * | cdata () const noexcept |
| Return pointer to the underlying array serving as data storage. | |
| Tuple2< scalar, Type > * | data () noexcept |
| Return pointer to the underlying array serving as data storage. | |
| const char * | cdata_bytes () const noexcept |
| Return pointer to the underlying array serving as data storage,. | |
| char * | data_bytes () noexcept |
| Return pointer to the underlying array serving as data storage,. | |
| Tuple2< scalar, Type > & | front () |
| Access first element of the list, position [0]. | |
| Tuple2< scalar, Type > & | back () |
| Access last element of the list, position [size()-1]. | |
| std::streamsize | size_bytes () const noexcept |
| Number of contiguous bytes for the List data. | |
| std::streamsize | byteSize () const |
| Number of contiguous bytes for the List data, runtime FatalError if type is not contiguous. | |
| void | checkStart (const label start) const |
| Check start is within valid range [0,size). | |
| void | checkSize (const label size) const |
| Check size is within valid range [0,size]. | |
| void | checkRange (const label start, const label len) const |
| Check that start and length define a valid range. | |
| void | checkIndex (const label i) const |
| Check index is within valid range [0,size). | |
| bool | uniform () const |
| True if all entries have identical values, and list is non-empty. | |
| bool | contains (const Tuple2< scalar, Type > &val) const |
| True if the value is contained in the list. | |
| label | find (const Tuple2< scalar, Type > &val) const |
| Find index of the first occurrence of the value. | |
| label | rfind (const Tuple2< scalar, Type > &val, label pos=-1) const |
| Find index of the last occurrence of the value. | |
| void | moveFirst (const label i) |
| Move element to the first position. | |
| void | moveLast (const label i) |
| Move element to the last position. | |
| void | swapFirst (const label i) |
| Swap element with the first element. Fatal on an empty list. | |
| void | swapLast (const label i) |
| Swap element with the last element. Fatal on an empty list. | |
| void | shallowCopy (Tuple2< scalar, Type > *__restrict__ ptr, const label len) noexcept |
| Copy the pointer and size. | |
| void | deepCopy (const UList< Tuple2< scalar, Type > > &list) |
| Copy elements of the given UList. Sizes must match! | |
| SubList< Tuple2< scalar, Type > > | slice (const label pos, label len=-1) |
| Return SubList slice (non-const access) - no range checking. | |
| Tuple2< scalar, Type > & | operator[] (const label i) |
| Return element of UList. | |
| operator const Foam::List< Tuple2< scalar, Type > > & () const | |
| Allow cast to a const List<T>&. | |
| iterator | begin () noexcept |
| Return an iterator to begin traversing the UList. | |
| iterator | end () noexcept |
| Return an iterator to end traversing the UList. | |
| const_iterator | cbegin () const noexcept |
| Return const_iterator to begin traversing the constant UList. | |
| const_iterator | cend () const noexcept |
| Return const_iterator to end traversing the constant UList. | |
| reverse_iterator | rbegin () |
| Return reverse_iterator to begin reverse traversing the UList. | |
| reverse_iterator | rend () |
| Return reverse_iterator to end reverse traversing the UList. | |
| const_reverse_iterator | crbegin () const |
| Return const_reverse_iterator to begin reverse traversing the UList. | |
| const_reverse_iterator | crend () const |
| Return const_reverse_iterator to end reverse traversing the UList. | |
| bool | empty () const noexcept |
| True if List is empty (ie, size() is zero). | |
| label | capacity () const noexcept |
| Size of the underlying storage. | |
| void | swap (UList< Tuple2< scalar, Type > > &list) noexcept |
| Swap content with another UList of the same type in constant time. | |
| bool | operator== (const UList< Tuple2< scalar, Type > > &list) const |
| Equality operation on ULists of the same type. | |
| bool | operator!= (const UList< Tuple2< scalar, Type > > &list) const |
| The opposite of the equality operation. Takes linear time. | |
| bool | operator< (const UList< Tuple2< scalar, Type > > &list) const |
| Compare two ULists lexicographically. Takes linear time. | |
| bool | operator> (const UList< Tuple2< scalar, Type > > &list) const |
| Compare two ULists lexicographically. Takes linear time. | |
| bool | operator<= (const UList< Tuple2< scalar, Type > > &list) const |
| Return true if !(a > b). Takes linear time. | |
| bool | operator>= (const UList< Tuple2< scalar, Type > > &list) const |
| Return true if !(a < b). Takes linear time. | |
| Istream & | readList (Istream &is) |
| Read List contents from Istream. | |
| Ostream & | writeList (Ostream &os, const label shortLen=0) const |
| Write List, with line-breaks in ASCII when length exceeds shortLen. | |
| bool | all () const |
| True if all entries are 'true' or if the list is empty. | |
| bool | any () const |
| True if any entries are 'true'. | |
| bool | none () const |
| True if no entries are 'true'. | |
| bool | test (const label i) const |
Test bool value at specified position, always false for out-of-range access. | |
| bool | get (const label i) const |
Return bool value at specified position, always false for out-of-range access. | |
| bool | unset (const label i) |
Unset the bool entry at specified position, always false for out-of-range access. | |
| std::string_view | view () const |
| Return a string_view of the charList. Content is non-modifiable. | |
| Tuple2< scalar, Type > & | first () |
| Access first element of the list, position [0]. | |
| Tuple2< scalar, Type > & | last () |
| Access last element of the list, position [size()-1]. | |
| bool | found (const Tuple2< scalar, Type > &val, label pos=0) const |
| Same as contains(). | |
| auto | expr () const |
| Wrap value as expression. | |
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. | |
| Static Public Member Functions inherited from List< Tuple2< scalar, Type > > | |
| static const List< Tuple2< scalar, Type > > & | null () noexcept |
| Return a null List (reference to a nullObject). Behaves like an empty List. | |
| Static Public Member Functions inherited from UList< Tuple2< scalar, Type > > | |
| static const UList< Tuple2< scalar, Type > > & | null () noexcept |
| Return a null UList (reference to a nullObject). Behaves like an empty UList. | |
| static constexpr label | max_size () noexcept |
| The size of the largest possible UList. | |
Additional Inherited Members | |
| Protected Member Functions inherited from UList< Tuple2< scalar, Type > > | |
| void | setAddressableSize (const label n) noexcept |
| Set addressed size to be inconsistent with allocated storage. | |
| void | size (const label n) |
| Older name for setAddressableSize. | |
| void | writeEntry (Ostream &os) const |
| Write the UList with its compound type. | |
| labelRange | validateRange (const labelRange &requestedRange) const |
| Return a validated (start,size) subset range, which means that it always addresses a valid section of the list. | |
| void | fill_uniform (const Tuple2< scalar, Type > &val) |
| Assign all entries to the given value. | |
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
Definition at line 77 of file interpolationTable.H.
| typedef Tuple2<scalar, Type> value_type |
The element data type.
Definition at line 114 of file interpolationTable.H.
| typedef Type mapped_type |
The mapped data type.
Definition at line 119 of file interpolationTable.H.
| interpolationTable | ( | ) |
Default construct.
Definition at line 54 of file interpolationTable.C.
Referenced by interpolationTable(), and operator=().

| interpolationTable | ( | const List< Tuple2< scalar, Type > > & | values, |
| const bounds::repeatableBounding | bounding, | ||
| const fileName & | fName ) |
Construct from components.
Definition at line 64 of file interpolationTable.C.
|
explicit |
Construct given the name of the file containing the table of data.
Definition at line 79 of file interpolationTable.C.
|
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 91 of file interpolationTable.C.
References dict, UList< Tuple2< scalar, Type > >::get(), and Foam::New().

| interpolationTable | ( | const interpolationTable< Type > & | tbl | ) |
Copy construct.
Definition at line 112 of file interpolationTable.C.
References List< Tuple2< scalar, Type > >::clone(), and interpolationTable().

|
static |
Return an interpolated value in List.
Definition at line 303 of file interpolationTable.C.
References Foam::bounds::CLAMP, Foam::endl(), Foam::bounds::ERROR, Foam::exit(), Foam::FatalError, FatalErrorInFunction, UList< T >::first(), UList< Tuple2< scalar, Type > >::first(), UList< T >::last(), n, Foam::nl, Foam::bounds::REPEAT, UList< T >::size(), Foam::bounds::WARN, and WarningInFunction.
Referenced by interpolateValue(), interpolateValues(), interpolation2DTable< scalar >::interpolation2DTable(), and operator()().


| void check | ( | ) | const |
Check that list is monotonically increasing.
Exit with a FatalError if there is a problem
Definition at line 127 of file interpolationTable.C.
References Foam::exit(), Foam::FatalError, FatalErrorInFunction, and Foam::nl.

| void write | ( | Ostream & | os | ) | const |
Write.
Definition at line 153 of file interpolationTable.C.
References os(), and Foam::bounds::repeatableBoundingNames.

| Type rateOfChange | ( | scalar | lookupValue | ) | const |
Return the rate of change at the interpolation location for the given lookup value.
Definition at line 165 of file interpolationTable.C.
References n, UList< T >::size(), and Foam::Zero.

| Type interpolateValue | ( | scalar | lookupValue | ) | const |
Return an interpolated value.
Definition at line 456 of file interpolationTable.C.
References interpolateValue().

| Foam::tmp< Foam::Field< Type > > interpolateValues | ( | const UList< scalar > & | vals | ) | const |
Return multiple interpolated values.
Definition at line 467 of file interpolationTable.C.
References fld(), forAll, interpolateValue(), Foam::New(), and UList< T >::size().

| void operator= | ( | const interpolationTable< Type > & | rhs | ) |
Copy assignment.
Definition at line 487 of file interpolationTable.C.
References interpolationTable(), and Foam::rhs().

| const Foam::Tuple2< Foam::scalar, Type > & operator[] | ( | label | idx | ) | const |
Return an element of constant Tuple2<scalar, Type>.
Definition at line 506 of file interpolationTable.C.
References Foam::bounds::CLAMP, Foam::bounds::ERROR, Foam::exit(), Foam::FatalError, FatalErrorInFunction, n, Foam::nl, Foam::bounds::REPEAT, UList< T >::size(), Foam::bounds::WARN, and WarningInFunction.

| Type operator() | ( | scalar | lookupValue | ) | const |
Return an interpolated value.
Definition at line 602 of file interpolationTable.C.
References interpolateValue().
