FieldField< Field, Type > Class Template Reference

A field of fields is a PtrList of fields with reference counting. More...

Inherits refCount, and PtrList< Field< Type > >.

Inherited by AveragingMethod< Foam::Vector >, AveragingMethod< scalar >, GeometricBoundaryField< symmTensor, fvPatchField, volMesh >, GeometricBoundaryField< scalar, fvPatchField, volMesh >, GeometricBoundaryField< Type, pointPatchField, pointMesh >, GeometricBoundaryField< vector, fvPatchField, volMesh >, GeometricBoundaryField< tensor, fvPatchField, volMesh >, GeometricBoundaryField< scalar, Foam::fvPatchField, Foam::volMesh >, GeometricBoundaryField< Foam::Vector, Foam::fvPatchField, Foam::volMesh >, GeometricBoundaryField< Foam::Vector, Foam::pointPatchField, Foam::pointMesh >, GeometricBoundaryField< scalar, fvsPatchField, surfaceMesh >, GeometricBoundaryField< scalar, pointPatchField, pointMesh >, GeometricBoundaryField< vector, pointPatchField, pointMesh >, GeometricBoundaryField< scalar, faPatchField, areaMesh >, GeometricBoundaryField< scalar, Foam::faPatchField, Foam::areaMesh >, GeometricBoundaryField< scalar, Foam::faePatchField, Foam::edgeMesh >, GeometricBoundaryField< Foam::Vector, Foam::faPatchField, Foam::areaMesh >, GeometricBoundaryField< Foam::Vector, Foam::faePatchField, Foam::edgeMesh >, GeometricBoundaryField< Foam::SphericalTensor, Foam::faPatchField, Foam::areaMesh >, GeometricBoundaryField< Foam::SphericalTensor, Foam::faePatchField, Foam::edgeMesh >, GeometricBoundaryField< Foam::SymmTensor, Foam::faPatchField, Foam::areaMesh >, GeometricBoundaryField< Foam::SymmTensor, Foam::faePatchField, Foam::edgeMesh >, GeometricBoundaryField< Foam::Tensor, Foam::faPatchField, Foam::areaMesh >, GeometricBoundaryField< Foam::Tensor, Foam::faePatchField, Foam::edgeMesh >, GeometricBoundaryField< scalar, Foam::fvsPatchField, Foam::surfaceMesh >, GeometricBoundaryField< Foam::Vector, Foam::fvsPatchField, Foam::surfaceMesh >, GeometricBoundaryField< Foam::SphericalTensor, Foam::fvPatchField, Foam::volMesh >, GeometricBoundaryField< Foam::SphericalTensor, Foam::fvsPatchField, Foam::surfaceMesh >, GeometricBoundaryField< Foam::SymmTensor, Foam::fvPatchField, Foam::volMesh >, GeometricBoundaryField< Foam::SymmTensor, Foam::fvsPatchField, Foam::surfaceMesh >, GeometricBoundaryField< Foam::Tensor, Foam::fvPatchField, Foam::volMesh >, GeometricBoundaryField< Foam::Tensor, Foam::fvsPatchField, Foam::surfaceMesh >, GeometricBoundaryField< Type, Foam::fvPatchField, Foam::volMesh >, GeometricBoundaryField< Type, Foam::pointPatchField, Foam::pointMesh >, GeometricBoundaryField< Type, Foam::fvsPatchField, Foam::surfaceMesh >, GeometricBoundaryField< vector, fvsPatchField, surfaceMesh >, GeometricBoundaryField< scalar, Foam::pointPatchField, Foam::pointMesh >, GeometricBoundaryField< Foam::SphericalTensor, Foam::pointPatchField, Foam::pointMesh >, GeometricBoundaryField< Foam::SymmTensor, Foam::pointPatchField, Foam::pointMesh >, GeometricBoundaryField< Foam::Tensor, Foam::pointPatchField, Foam::pointMesh >, GeometricBoundaryField< tensor, faPatchField, areaMesh >, GeometricBoundaryField< vector, faPatchField, areaMesh >, GeometricBoundaryField< scalar, faePatchField, edgeMesh >, and AveragingMethod< Type >.

Collaboration diagram for FieldField< Field, Type >:
[legend]

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 Treference
 A non-const reference to the value_type. More...
 
typedef const Tconst_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...
 
tmp< FieldField< Field, Type > > T () const
 Return the field transpose (only defined for second rank tensors) 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 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 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. 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
 
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, autoPtr< Field< Type > > &ptr)
 Set element to given autoPtr 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, std::unique_ptr< Field< Type > > &&ptr)
 Set element to given unique_ptr 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...
 
void clear ()
 Clear the PtrList. Delete allocated entries and set size to zero. More...
 
void resize (const label newLen)
 Adjust size of PtrList. More...
 
void setSize (const label newLen)
 Same as resize() More...
 
void emplace_append (Args &&... args)
 Construct and 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 (autoPtr< 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 (std::unique_ptr< 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 refPtr 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...
 
autoPtr< Field< Type > > emplace (const label i, Args &&... args)
 Construct and set an element. More...
 
Foam::autoPtr< Field< Type > > emplace (const label i, Args &&... args)
 
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...
 
- 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...
 
label size () const noexcept
 The number of elements in the list. More...
 
bool empty () const noexcept
 True if the list is empty (ie, size() is zero) More...
 
Tfirst ()
 Return reference to the first element of the list. More...
 
const Tfirst () const
 Return reference to first element of the list. More...
 
Tlast ()
 Return reference to the last element of the list. More...
 
const Tlast () const
 Return reference to the last element of the list. More...
 
const Ttest (const label i) const
 
Tget (const label i)
 
const Tget (const label i) const
 
const Tset (const label i) const
 
void clear ()
 Set list size to zero. More...
 
void resize (const label newLen)
 Change the size of the list. More...
 
void setSize (const label n)
 Alias for resize() More...
 
label squeezeNull ()
 Squeeze out intermediate nullptr entries in the list of pointers. 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...
 
void swap (UPtrList< T > &list)
 Swap content. More...
 
void transfer (UPtrList< T > &list)
 Transfer contents into this list and annul the argument. More...
 
Tset (const label i, T *ptr)
 
void reorder (const labelUList &oldToNew, const bool check=false)
 
void sortOrder (const labelUList &order, const bool check=false)
 
void checkNonNull () const
 Check and raise FatalError if any nullptr exists in the list. More...
 
const Toperator[] (const label i) const
 Return const reference to the element. More...
 
Toperator[] (const label i)
 Return reference to the element. More...
 
const Toperator() (const label i) const
 Return const pointer to the element - 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 () noexcept
 Return an iterator to begin of UPtrList traversal. More...
 
iterator end () noexcept
 Return iterator beyond end of UPtrList traversal. More...
 
const_iterator cbegin () const noexcept
 Return const_iterator to begin of UPtrList traversal. More...
 
const_iterator cend () const noexcept
 Return const_iterator beyond end of UPtrList traversal. More...
 
const_iterator begin () const noexcept
 Return const_iterator to begin of UPtrList traversal. More...
 
const_iterator end () const noexcept
 Return const_iterator beyond end of UPtrList traversal. 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

Ostreamoperator (Ostream &, const FieldField< Field, Type > &)
 
Ostreamoperator (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...
 
void free ()
 Delete the allocated entries, but retain the list size. More...
 
- Protected Member Functions inherited from UPtrList< T >
void setAddressableSize (const label n) noexcept
 Adjust addressable size. More...
 
 UPtrList (Detail::PtrListDetail< T > &&ptrs)
 Low-level move construct. More...
 
- Protected Attributes inherited from UPtrList< T >
Detail::PtrListDetail< Tptrs_
 The list of pointers. More...
 

Detailed Description

template<template< class > class Field, class Type>
class Foam::FieldField< Field, Type >

A field of fields is a PtrList of fields with reference counting.

Source files

Definition at line 76 of file FieldField.H.

Member Typedef Documentation

◆ cmptType

typedef pTraits<Type>::cmptType cmptType

Component type.

Definition at line 85 of file FieldField.H.

Constructor & Destructor Documentation

◆ FieldField() [1/10]

constexpr FieldField
constexprnoexcept

Construct null.

Used for temporary fields which are initialised after construction

Definition at line 108 of file FieldField.C.

◆ FieldField() [2/10]

FieldField ( const label  size)
explicit

Construct given size.

Used for temporary fields which are initialised after construction

Definition at line 115 of file FieldField.C.

◆ FieldField() [3/10]

FieldField ( const word type,
const FieldField< Field, Type > &  ff 
)

Clone construct with new type.

Definition at line 122 of file FieldField.C.

◆ FieldField() [4/10]

FieldField ( const FieldField< Field, Type > &  ff)

Copy construct, cloning each element.

Definition at line 138 of file FieldField.C.

◆ FieldField() [5/10]

FieldField ( FieldField< Field, Type > &&  ff)

Move construct.

Definition at line 145 of file FieldField.C.

◆ FieldField() [6/10]

FieldField ( FieldField< Field, Type > &  ff,
bool  reuse 
)

Construct as copy or re-use as specified.

Definition at line 152 of file FieldField.C.

◆ FieldField() [7/10]

FieldField ( const PtrList< Field< Type > > &  list)

Copy construct from PtrList.

Definition at line 159 of file FieldField.C.

◆ FieldField() [8/10]

FieldField ( PtrList< Field< Type > > &&  list)

Move construct from PtrList.

Definition at line 166 of file FieldField.C.

◆ FieldField() [9/10]

FieldField ( const tmp< FieldField< Field, Type > > &  tf)

Move/copy construct from tmp<FieldField>

Definition at line 173 of file FieldField.C.

◆ FieldField() [10/10]

FieldField ( Istream is)

Construct from Istream.

Definition at line 182 of file FieldField.C.

Member Function Documentation

◆ clone()

tmp< FieldField< Field, Type > > clone

Clone.

Definition at line 189 of file FieldField.C.

References Foam::New().

Here is the call graph for this function:

◆ NewCalculatedType()

tmp< FieldField< Field, Type > > NewCalculatedType ( const FieldField< Field, Type2 > &  ff)
static

Return a pointer to a new calculatedFvPatchFieldField created on.

freestore without setting patchField values

Definition at line 197 of file FieldField.C.

References Foam::New().

Referenced by reuseTmpFieldField< Field, TypeR, Type1 >::New(), reuseTmpTmpFieldField< Field, TypeR, Type1, Type12, Type2 >::New(), reuseTmpTmpFieldField< Field, TypeR, Type1, Type12, TypeR >::New(), reuseTmpFieldField< Field, TypeR, TypeR >::New(), reuseTmpTmpFieldField< Field, TypeR, TypeR, TypeR, Type2 >::New(), and reuseTmpTmpFieldField< Field, TypeR, TypeR, TypeR, TypeR >::New().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ negate()

void negate

Negate this field. See notes in Field.

Definition at line 219 of file FieldField.C.

References forAll.

◆ normalise()

void normalise

Normalise this field. See notes in Field.

Definition at line 229 of file FieldField.C.

References forAll.

◆ component()

tmp< FieldField< Field, typename FieldField< Field, Type >::cmptType > > component ( const direction  d) const

Return a component field of the field.

Definition at line 240 of file FieldField.C.

References Foam::component().

Here is the call graph for this function:

◆ replace() [1/2]

void replace ( const direction  d,
const FieldField< Field, cmptType > &  sf 
)

Replace a component field of the field.

Definition at line 258 of file FieldField.C.

References forAll.

◆ replace() [2/2]

void replace ( const direction  d,
const cmptType s 
)

Replace a component field of the field.

Definition at line 272 of file FieldField.C.

References forAll, and s().

Here is the call graph for this function:

◆ T()

tmp< FieldField< Field, Type > > T

Return the field transpose (only defined for second rank tensors)

Definition at line 286 of file FieldField.C.

References Foam::T().

Referenced by Moment< Type >::Moment().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=() [1/4]

void operator= ( const FieldField< Field, Type > &  ff)

Copy assignment.

Definition at line 301 of file FieldField.C.

References forAll.

Referenced by GeometricBoundaryField< Type, PatchField, GeoMesh >::operator=().

Here is the caller graph for this function:

◆ operator=() [2/4]

void operator= ( FieldField< Field, Type > &&  ff)

Move assignment.

Definition at line 318 of file FieldField.C.

◆ operator=() [3/4]

void operator= ( const tmp< FieldField< Field, Type > > &  )

Move or clone assignment.

◆ operator=() [4/4]

void operator= ( const Type &  val)

Assign uniform value.

Definition at line 350 of file FieldField.C.

References forAll.

◆ operator+=() [1/3]

void operator+= ( const FieldField< Field, Type > &  f)

Definition at line 389 of file FieldField.C.

◆ operator+=() [2/3]

void operator+= ( const tmp< FieldField< Field, Type > > &  tf)

Definition at line 389 of file FieldField.C.

◆ operator-=() [1/3]

void operator-= ( const FieldField< Field, Type > &  f)

Definition at line 390 of file FieldField.C.

◆ operator-=() [2/3]

void operator-= ( const tmp< FieldField< Field, Type > > &  tf)

Definition at line 390 of file FieldField.C.

◆ operator*=() [1/3]

void operator*= ( const FieldField< Field, scalar > &  f)

Definition at line 391 of file FieldField.C.

◆ operator*=() [2/3]

void operator*= ( const tmp< FieldField< Field, scalar > > &  tf)

Definition at line 391 of file FieldField.C.

◆ operator/=() [1/3]

void operator/= ( const FieldField< Field, scalar > &  f)

Definition at line 392 of file FieldField.C.

◆ operator/=() [2/3]

void operator/= ( const tmp< FieldField< Field, scalar > > &  tf)

Definition at line 392 of file FieldField.C.

◆ operator+=() [3/3]

void operator+= ( const Type &  t)

Definition at line 389 of file FieldField.C.

◆ operator-=() [3/3]

void operator-= ( const Type &  t)

Definition at line 390 of file FieldField.C.

◆ operator*=() [3/3]

void operator*= ( const scalar &  t)

Definition at line 391 of file FieldField.C.

◆ operator/=() [3/3]

void operator/= ( const scalar &  t)

Definition at line 392 of file FieldField.C.

Friends And Related Function Documentation

◆ operator [1/2]

Ostream & operator ( Ostream ,
const FieldField< Field, Type > &   
)
friend

◆ operator [2/2]

Ostream & operator ( Ostream ,
const tmp< FieldField< Field, Type > > &   
)
friend

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