DynamicField: Added size and value constructors

This commit is contained in:
Will Bainbridge
2024-06-27 11:56:07 +01:00
parent 7d53f25c07
commit 928db2bdce
2 changed files with 30 additions and 0 deletions

View File

@ -105,6 +105,12 @@ public:
//- Construct given size.
explicit inline DynamicField(const label);
//- Construct given size and initial value
inline DynamicField(const label, const T&);
//- Construct given size and initialised to zero
inline DynamicField(const label, const zero);
//- Construct from UList. Size set to UList size.
// Also constructs from DynamicField with different sizing parameters.
explicit inline DynamicField(const UList<T>&);

View File

@ -47,6 +47,30 @@ inline Foam::DynamicField<T, SizeInc, SizeMult, SizeDiv>::DynamicField
}
template<class T, unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
inline Foam::DynamicField<T, SizeInc, SizeMult, SizeDiv>::DynamicField
(
const label nElem,
const T& t
)
:
Field<T>(nElem, t),
capacity_(Field<T>::size())
{}
template<class T, unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
inline Foam::DynamicField<T, SizeInc, SizeMult, SizeDiv>::DynamicField
(
const label nElem,
const zero
)
:
Field<T>(nElem, Zero),
capacity_(Field<T>::size())
{}
template<class T, unsigned SizeInc, unsigned SizeMult, unsigned SizeDiv>
inline Foam::DynamicField<T, SizeInc, SizeMult, SizeDiv>::DynamicField
(