A field of fields is a PtrList of fields with reference counting. More...
Public Types | |
typedef pTraits< Type >::cmptType | cmptType |
Component type. More... | |
Public Types inherited from UPtrList< T > | |
typedef T | value_type |
Type of values the list contains. More... | |
typedef T & | reference |
A non-const reference to the value_type. More... | |
typedef const T & | const_reference |
A const reference to the value_type. More... | |
Public Member Functions | |
constexpr | FieldField () noexcept |
Construct null. More... | |
FieldField (const label size) | |
Construct given size. More... | |
FieldField (const word &type, const FieldField< Field, Type > &ff) | |
Clone construct with new type. More... | |
FieldField (const FieldField< Field, Type > &ff) | |
Copy construct, cloning each element. More... | |
FieldField (FieldField< Field, Type > &&ff) | |
Move construct. More... | |
FieldField (FieldField< Field, Type > &ff, bool reuse) | |
Construct as copy or re-use as specified. More... | |
FieldField (const PtrList< Field< Type >> &list) | |
Copy construct from PtrList. More... | |
FieldField (PtrList< Field< Type >> &&list) | |
Move construct from PtrList. More... | |
FieldField (const tmp< FieldField< Field, Type >> &tf) | |
Move/copy construct from tmp<FieldField> More... | |
FieldField (Istream &is) | |
Construct from Istream. More... | |
tmp< FieldField< Field, Type > > | clone () const |
Clone. More... | |
void | negate () |
Negate this field. See notes in Field. More... | |
void | normalise () |
Normalise this field. See notes in Field. More... | |
tmp< FieldField< Field, cmptType > > | component (const direction) const |
Return a component field of the field. More... | |
void | replace (const direction, const FieldField< Field, cmptType > &) |
Replace a component field of the field. More... | |
void | replace (const direction, const cmptType &) |
Replace a component field of the field. More... | |
void | clamp_min (const Type &lower) |
Impose lower (floor) clamp on the field values (in-place) More... | |
void | clamp_max (const Type &upper) |
Impose upper (ceiling) clamp on the field values (in-place) More... | |
void | clamp_range (const Type &lower, const Type &upper) |
Clamp field values (in-place) to the specified range. More... | |
void | clamp_range (const MinMax< Type > &range) |
Clamp field values (in-place) to the specified range. More... | |
tmp< FieldField< Field, Type > > | T () const |
Return the field transpose (only defined for second rank tensors) More... | |
const Type & | operator[] (const labelPair &index) const |
Const access to a single field element via (fieldi, elemi) More... | |
Type & | operator[] (const labelPair &index) |
Non-const access to a single field element via (fieldi, elemi) More... | |
void | operator= (const FieldField< Field, Type > &) |
Copy assignment. More... | |
void | operator= (FieldField< Field, Type > &&) |
Move assignment. More... | |
void | operator= (const tmp< FieldField< Field, Type >> &) |
Move or clone assignment. More... | |
void | operator= (const Type &val) |
Assign uniform value. More... | |
void | operator= (const Foam::zero) |
Assign uniform zero. More... | |
void | operator+= (const FieldField< Field, Type > &) |
void | operator+= (const tmp< FieldField< Field, Type >> &) |
void | operator-= (const FieldField< Field, Type > &) |
void | operator-= (const tmp< FieldField< Field, Type >> &) |
void | operator*= (const FieldField< Field, scalar > &) |
void | operator*= (const tmp< FieldField< Field, scalar >> &) |
void | operator/= (const FieldField< Field, scalar > &) |
void | operator/= (const tmp< FieldField< Field, scalar >> &) |
void | operator+= (const Type &) |
void | operator-= (const Type &) |
void | operator*= (const scalar &) |
void | operator/= (const scalar &) |
Public Member Functions inherited from refCount | |
constexpr | refCount () noexcept |
Default construct, initializing count to 0. More... | |
int | use_count () const noexcept |
Return the current reference count. More... | |
bool | unique () const noexcept |
Return true if the reference count is zero. More... | |
void | operator++ () noexcept |
Increment the reference count. More... | |
void | operator++ (int) noexcept |
Increment the reference count. More... | |
void | operator-- () noexcept |
Decrement the reference count. More... | |
void | operator-- (int) noexcept |
Decrement the reference count. More... | |
Public Member Functions inherited from PtrList< Field< Type > > | |
constexpr | PtrList () noexcept |
Default construct. More... | |
PtrList (const label len) | |
Construct with specified size, each element initialized to nullptr. More... | |
PtrList (const PtrList< Field< Type > > &list) | |
Copy construct using 'clone()' method on each element. More... | |
PtrList (PtrList< Field< Type > > &&list) | |
Move construct. More... | |
PtrList (UList< Field< Type > * > &list) | |
Take ownership of pointers in the list, set old pointers to null. More... | |
PtrList (const PtrList< Field< Type > > &list, const CloneArg &cloneArgs) | |
Copy construct using 'clone()' method on each element. More... | |
PtrList (PtrList< Field< Type > > &list, bool reuse) | |
Construct as copy or re-use as specified. More... | |
PtrList (const SLPtrList< Field< Type > > &list) | |
Copy construct using 'clone()' on each element of SLPtrList<T> More... | |
PtrList (Istream &is, const INew &inew) | |
Construct from Istream using given Istream constructor class. More... | |
PtrList (Istream &is) | |
Construct from Istream using default Istream constructor class. More... | |
~PtrList () | |
Destructor. Frees all pointers. More... | |
PtrList< Field< Type > > | clone (Args &&... args) const |
Make a copy by cloning each of the list elements. More... | |
Foam::PtrList< Field< Type > > | clone (Args &&... args) const |
const Field< Type > * | set (const label i) const |
Return const pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking). More... | |
autoPtr< Field< Type > > | set (const label i, Field< Type > *ptr) |
Set element to given pointer and return old element (can be null) More... | |
autoPtr< Field< Type > > | set (const label i, std::unique_ptr< Field< Type > > &&ptr) |
Set element to given unique_ptr and return old element. More... | |
autoPtr< Field< Type > > | set (const label i, autoPtr< Field< Type > > &&ptr) |
Set element to given autoPtr and return old element. More... | |
autoPtr< Field< Type > > | set (const label i, const refPtr< Field< Type > > &ptr) |
Set element to given refPtr and return old element. More... | |
autoPtr< Field< Type > > | set (const label i, const tmp< Field< Type > > &ptr) |
Set element to given tmp and return old element. More... | |
autoPtr< Field< Type > > | set (const label i, autoPtr< Field< Type > > &ptr) |
Set element to given autoPtr and return old element. More... | |
void | clear () |
Clear the PtrList. Delete allocated entries and set size to zero. More... | |
void | free () |
Free memory and nullify all entries. Does not change the list size. More... | |
void | resize (const label newLen) |
Adjust size of PtrList. More... | |
Field< Type > & | emplace_back (Args &&... args) |
Construct and append an element to the end of the list, return reference to the new list element. More... | |
void | push_back (Field< Type > *ptr) |
Append an element to the end of the list. More... | |
void | push_back (std::unique_ptr< Field< Type > > &&ptr) |
Move append an element to the end of the list. More... | |
void | push_back (autoPtr< Field< Type > > &&ptr) |
Move append an element to the end of the list. More... | |
void | push_back (const refPtr< Field< Type > > &ptr) |
Move or clone append a refPtr to the end of the list. More... | |
void | push_back (const tmp< Field< Type > > &ptr) |
Move or clone append a tmp to the end of the list. More... | |
void | push_back (PtrList< Field< Type > > &&other) |
Move append another list to the end of this list. More... | |
void | push_back (autoPtr< Field< Type > > &ptr)=delete |
Disallow push_back with autoPtr without std::move. More... | |
Field< Type > & | emplace_set (const label i, Args &&... args) |
Construct and set a new element at given position, (discard old element at that location). Return reference to the new list element. More... | |
Field< Type > & | emplace (const label i, Args &&... args) |
Same as emplace_set() More... | |
autoPtr< Field< Type > > | release (const label i) |
Release ownership of the pointer at the given position. More... | |
void | transfer (PtrList< Field< Type > > &list) |
Transfer into this list and annul the argument list. More... | |
void | operator= (const PtrList< Field< Type > > &list) |
Copy assignment. More... | |
void | operator= (PtrList< Field< Type > > &&list) |
Move assignment. More... | |
void | setSize (const label newLen) |
Same as resize() More... | |
void | append (autoPtr< Field< Type > > &ptr) |
Move append an element to the end of the list. More... | |
void | append (Field< Type > *ptr) |
Append an element to the end of the list. More... | |
void | append (std::unique_ptr< Field< Type > > &&ptr) |
Move append an element to the end of the list. More... | |
void | append (autoPtr< Field< Type > > &&ptr) |
Move append an element to the end of the list. More... | |
void | append (const refPtr< Field< Type > > &ptr) |
Move or clone append a tmp to the end of the list. More... | |
void | append (const tmp< Field< Type > > &ptr) |
Move or clone append a tmp to the end of the list. More... | |
void | append (PtrList< Field< Type > > &&other) |
Move append another list to the end of this list. More... | |
Public Member Functions inherited from UPtrList< T > | |
constexpr | UPtrList () noexcept |
Default construct. More... | |
UPtrList (const label len) | |
Construct with specified size, each element initialized to nullptr. More... | |
UPtrList (const UPtrList< T > &list) | |
Copy construct (shallow copies addresses) More... | |
UPtrList (UPtrList< T > &&list) | |
Move construct. More... | |
UPtrList (UPtrList< T > &list, bool reuse) | |
Construct as shallow copy or re-use as specified. More... | |
UPtrList (PtrList< T > &list) | |
Shallow copy from PtrList. More... | |
UPtrList (const UList< T *> &list) | |
Construct from UList of pointers (shallow copy) More... | |
UPtrList (UList< T > &list) | |
Construct from UList, taking the address of each list element. More... | |
bool | empty () const noexcept |
True if the list is empty (ie, size() is zero) More... | |
label | size () const noexcept |
The number of entries in the list. More... | |
label | count () const noexcept |
The number of non-null entries in the list. More... | |
T & | front () |
Reference to the first element of the list. More... | |
const T & | front () const |
Reference to first element of the list. More... | |
T & | back () |
Reference to the last element of the list. More... | |
const T & | back () const |
Reference to the last element of the list. More... | |
const T * | test (const label i) const |
Return const pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking). More... | |
const T * | get (const label i) const |
Return const pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking). More... | |
T * | get (const label i) |
Return pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking). More... | |
const T * | set (const label i) const |
Return const pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking). More... | |
void | clear () |
Set list size to zero. More... | |
void | free () |
Nullify all entries. Does not change the list size. More... | |
void | resize (const label newLen) |
Change the size of the list. More... | |
label | squeezeNull () |
Squeeze out nullptr entries in the list of pointers after which any null pointers will be at the end of the list. More... | |
void | trimTrailingNull () |
Reduce addressable list size to ignore any trailing null pointers. More... | |
void | push_back (T *ptr) |
Append an element to the end of the list. More... | |
void | push_back (UPtrList< T > &&other) |
Move append another list to the end of this list. More... | |
void | swap (UPtrList< T > &list) |
Swap content. More... | |
void | transfer (UPtrList< T > &list) |
Transfer contents into this list and annul the argument. More... | |
T * | set (const label i, T *ptr) |
Set element to specified pointer and return the old list element, which can be a nullptr. More... | |
void | reorder (const labelUList &oldToNew, const bool check=false) |
Reorder elements. Reordering must be unique (ie, shuffle). More... | |
void | sortOrder (const labelUList &order, const bool check=false) |
Reorder elements according to new order mapping (newToOld). Reordering must be unique (ie, shuffle). More... | |
void | checkNonNull () const |
Check and raise FatalError if any nullptr exists in the list. More... | |
const T & | at (const label i) const |
Return const reference to the element at given position. FatalError for bounds problem or nullptr. More... | |
T & | at (const label i) |
Return reference to the element at given position. FatalError for bounds problem or nullptr. More... | |
const T & | operator[] (const label i) const |
Return const reference to the element at given position. FatalError for bounds problem or nullptr. Same as at(). More... | |
T & | operator[] (const label i) |
Return reference to the element at given position. FatalError for bounds problem or nullptr. Same as at(). More... | |
FOAM_DEPRECATED_FOR (2022-09, "get(), set() or test() methods") const T *operator()(const label i) const | |
Deprecated(2022-09) - same as get() More... | |
void | operator= (const UPtrList< T > &list) |
Copy assignment (shallow copies addresses) More... | |
void | operator= (UPtrList< T > &&list) |
Move assignment. More... | |
T ** | begin_ptr () noexcept |
Iterator to begin of raw pointers traversal (use with caution) More... | |
T ** | end_ptr () noexcept |
Iterator beyond end of raw pointers traversal (use with caution) More... | |
iterator | begin () |
Return iterator to begin traversal of non-nullptr entries. More... | |
iterator | end () noexcept |
Return iterator beyond end of UPtrList traversal. More... | |
const_iterator | cbegin () const |
Return const_iterator to begin traversal of non-nullptr entries. More... | |
const_iterator | cend () const noexcept |
Return const_iterator beyond end of UPtrList traversal. More... | |
const_iterator | begin () const |
Return const_iterator to begin traversal of non-nullptr entries. More... | |
const_iterator | end () const noexcept |
Return const_iterator beyond end of UPtrList traversal. More... | |
void | setSize (const label n) |
Alias for resize() More... | |
T & | first () |
Reference to the first element of the list. More... | |
const T & | first () const |
Return reference to first element of the list. More... | |
T & | last () |
Return reference to the last element of the list. More... | |
const T & | last () const |
Return reference to the last element of the list. More... | |
void | append (T *ptr) |
Append an element to the end of the list. More... | |
void | append (UPtrList< T > &&other) |
Move append another list to the end of this list. More... | |
Static Public Member Functions | |
template<class Type2 > | |
static tmp< FieldField< Field, Type > > | NewCalculatedType (const FieldField< Field, Type2 > &ff) |
Return a pointer to a new calculatedFvPatchFieldField created on. More... | |
Friends | |
Ostream & | operator (Ostream &, const FieldField< Field, Type > &) |
Ostream & | operator (Ostream &, const tmp< FieldField< Field, Type >> &) |
Additional Inherited Members | |
Protected Member Functions inherited from PtrList< Field< Type > > | |
void | readIstream (Istream &is, const INew &inew) |
Read from Istream using Istream constructor class. More... | |
Protected Member Functions inherited from UPtrList< T > | |
void | setAddressableSize (const label n) noexcept |
Adjust addressable size. More... | |
label | find_next (label pos) const |
The next non-null entry after the specified position. More... | |
UPtrList (Detail::PtrListDetail< T > &&ptrs) | |
Low-level move construct. More... | |
Protected Attributes inherited from UPtrList< T > | |
Detail::PtrListDetail< T > | ptrs_ |
The list of pointers. More... | |
A field of fields is a PtrList of fields with reference counting.
Definition at line 51 of file FieldField.H.
Component type.
Definition at line 83 of file FieldField.H.
|
noexcept |
Construct null.
Used for temporary fields which are initialised after construction
Definition at line 101 of file FieldField.C.
|
explicit |
Construct given size.
Used for temporary fields which are initialised after construction
Definition at line 108 of file FieldField.C.
FieldField | ( | const word & | type, |
const FieldField< Field, Type > & | ff | ||
) |
Clone construct with new type.
Definition at line 116 of file FieldField.C.
FieldField | ( | const FieldField< Field, Type > & | ff | ) |
Copy construct, cloning each element.
Definition at line 131 of file FieldField.C.
FieldField | ( | FieldField< Field, Type > && | ff | ) |
Move construct.
Definition at line 138 of file FieldField.C.
FieldField | ( | FieldField< Field, Type > & | ff, |
bool | reuse | ||
) |
Construct as copy or re-use as specified.
Definition at line 145 of file FieldField.C.
FieldField | ( | const PtrList< Field< Type >> & | list | ) |
Copy construct from PtrList.
Definition at line 152 of file FieldField.C.
FieldField | ( | PtrList< Field< Type >> && | list | ) |
Move construct from PtrList.
Definition at line 159 of file FieldField.C.
FieldField | ( | const tmp< FieldField< Field, Type >> & | tf | ) |
Move/copy construct from tmp<FieldField>
Definition at line 166 of file FieldField.C.
FieldField | ( | Istream & | is | ) |
Construct from Istream.
Definition at line 175 of file FieldField.C.
tmp< FieldField< Field, Type > > clone | ( | ) | const |
Clone.
Definition at line 182 of file FieldField.C.
|
static |
Return a pointer to a new calculatedFvPatchFieldField created on.
freestore without setting patchField values
Definition at line 191 of file FieldField.C.
Referenced by Foam::cmptAv(), Foam::cmptMag(), Foam::cmptMax(), Foam::cmptMin(), Foam::mag(), Foam::magSqr(), reuseTmpFieldField< Field, TypeR, Type1 >::New(), reuseTmpFieldField< Field, TypeR, TypeR >::New(), reuseTmpTmpFieldField< Field, TypeR, Type1, Type12, Type2 >::New(), reuseTmpTmpFieldField< Field, TypeR, Type1, Type12, TypeR >::New(), reuseTmpTmpFieldField< Field, TypeR, TypeR, TypeR, Type2 >::New(), reuseTmpTmpFieldField< Field, TypeR, TypeR, TypeR, TypeR >::New(), Foam::pow(), and Foam::sqr().
void negate | ( | ) |
Negate this field. See notes in Field.
Definition at line 212 of file FieldField.C.
void normalise | ( | ) |
Normalise this field. See notes in Field.
Definition at line 222 of file FieldField.C.
tmp< FieldField< Field, typename FieldField< Field, Type >::cmptType > > component | ( | const direction | d | ) | const |
Return a component field of the field.
Definition at line 234 of file FieldField.C.
void replace | ( | const direction | d, |
const FieldField< Field, cmptType > & | sf | ||
) |
Replace a component field of the field.
Definition at line 252 of file FieldField.C.
Replace a component field of the field.
Definition at line 266 of file FieldField.C.
void clamp_min | ( | const Type & | lower | ) |
Impose lower (floor) clamp on the field values (in-place)
Definition at line 280 of file FieldField.C.
void clamp_max | ( | const Type & | upper | ) |
Impose upper (ceiling) clamp on the field values (in-place)
Definition at line 293 of file FieldField.C.
void clamp_range | ( | const Type & | lower, |
const Type & | upper | ||
) |
Clamp field values (in-place) to the specified range.
Does not check if range is valid or not.
Definition at line 306 of file FieldField.C.
void clamp_range | ( | const MinMax< Type > & | range | ) |
Clamp field values (in-place) to the specified range.
Does not check if range is valid or not.
Definition at line 322 of file FieldField.C.
tmp< FieldField< Field, Type > > T | ( | ) | const |
Return the field transpose (only defined for second rank tensors)
Definition at line 336 of file FieldField.C.
Const access to a single field element via (fieldi, elemi)
Definition at line 351 of file FieldField.C.
Non-const access to a single field element via (fieldi, elemi)
Definition at line 358 of file FieldField.C.
void operator= | ( | const FieldField< Field, Type > & | ff | ) |
Copy assignment.
Definition at line 365 of file FieldField.C.
void operator= | ( | FieldField< Field, Type > && | ff | ) |
Move assignment.
Definition at line 382 of file FieldField.C.
void operator= | ( | const tmp< FieldField< Field, Type >> & | ) |
Move or clone assignment.
void operator= | ( | const Type & | val | ) |
Assign uniform value.
Definition at line 414 of file FieldField.C.
void operator= | ( | const Foam::zero | ) |
Assign uniform zero.
Definition at line 424 of file FieldField.C.
void operator+= | ( | const FieldField< Field, Type > & | f | ) |
Definition at line 463 of file FieldField.C.
void operator+= | ( | const tmp< FieldField< Field, Type >> & | tf | ) |
Definition at line 463 of file FieldField.C.
void operator-= | ( | const FieldField< Field, Type > & | f | ) |
Definition at line 464 of file FieldField.C.
void operator-= | ( | const tmp< FieldField< Field, Type >> & | tf | ) |
Definition at line 464 of file FieldField.C.
void operator*= | ( | const FieldField< Field, scalar > & | f | ) |
Definition at line 465 of file FieldField.C.
void operator*= | ( | const tmp< FieldField< Field, scalar >> & | tf | ) |
Definition at line 465 of file FieldField.C.
void operator/= | ( | const FieldField< Field, scalar > & | f | ) |
Definition at line 466 of file FieldField.C.
void operator/= | ( | const tmp< FieldField< Field, scalar >> & | tf | ) |
Definition at line 466 of file FieldField.C.
void operator+= | ( | const Type & | t | ) |
Definition at line 463 of file FieldField.C.
void operator-= | ( | const Type & | t | ) |
Definition at line 464 of file FieldField.C.
void operator*= | ( | const scalar & | t | ) |
Definition at line 465 of file FieldField.C.
void operator/= | ( | const scalar & | t | ) |
Definition at line 466 of file FieldField.C.
|
friend |
|
friend |
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.