mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: additional constructors for IjkField
This commit is contained in:
@ -36,7 +36,8 @@ template<class T>
|
|||||||
Ostream& print(const IjkField<T>& fld)
|
Ostream& print(const IjkField<T>& fld)
|
||||||
{
|
{
|
||||||
Info<< static_cast<const Field<T>&>(fld).size()
|
Info<< static_cast<const Field<T>&>(fld).size()
|
||||||
<< " " << fld.sizes() << ' ' << flatOutput(fld);
|
<< " addr:" << long(fld.cdata()) << ' ' << fld.sizes() << ' '
|
||||||
|
<< flatOutput(fld);
|
||||||
|
|
||||||
return Info;
|
return Info;
|
||||||
}
|
}
|
||||||
@ -102,6 +103,11 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
Info<< "/= operator: "; print(field1) << nl;
|
Info<< "/= operator: "; print(field1) << nl;
|
||||||
|
|
||||||
|
IjkField<scalar> field3(std::move(field2));
|
||||||
|
|
||||||
|
Info<< "Move construct: "; print(field2) << nl;
|
||||||
|
print(field3) << nl;
|
||||||
|
|
||||||
// Field operations are still limited, but we can bypass things too
|
// Field operations are still limited, but we can bypass things too
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|||||||
@ -25,17 +25,11 @@ Class
|
|||||||
Foam::IjkField
|
Foam::IjkField
|
||||||
|
|
||||||
Description
|
Description
|
||||||
Generic templated field type.
|
Generic templated field type with i-j-k addressing.
|
||||||
|
|
||||||
SourceFiles
|
SourceFiles
|
||||||
IjkFieldFunctions.H
|
|
||||||
IjkFieldFunctionsM.H
|
|
||||||
IjkFieldMapper.H
|
|
||||||
IjkFieldI.H
|
IjkFieldI.H
|
||||||
IjkFieldM.H
|
|
||||||
IjkField.C
|
IjkField.C
|
||||||
IjkFieldFunctions.C
|
|
||||||
IjkFieldFunctionsM.C
|
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
@ -64,9 +58,6 @@ class IjkField
|
|||||||
//- The i-j-k addressing
|
//- The i-j-k addressing
|
||||||
ijkAddressing ijk_;
|
ijkAddressing ijk_;
|
||||||
|
|
||||||
//- Copy construct
|
|
||||||
inline IjkField(const IjkField<Type>& fld);
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -75,6 +66,12 @@ public:
|
|||||||
//- Construct zero-sized
|
//- Construct zero-sized
|
||||||
inline IjkField();
|
inline IjkField();
|
||||||
|
|
||||||
|
//- Copy construct
|
||||||
|
inline IjkField(const IjkField<Type>& field);
|
||||||
|
|
||||||
|
//- Move construct
|
||||||
|
inline IjkField(IjkField<Type>&& field);
|
||||||
|
|
||||||
//- Construct with sizing information, leaving values uninitialized
|
//- Construct with sizing information, leaving values uninitialized
|
||||||
inline explicit IjkField(const labelVector& ijk);
|
inline explicit IjkField(const labelVector& ijk);
|
||||||
|
|
||||||
|
|||||||
@ -33,6 +33,22 @@ inline Foam::IjkField<Type>::IjkField()
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
template<class Type>
|
||||||
|
inline Foam::IjkField<Type>::IjkField(const IjkField<Type>& field)
|
||||||
|
:
|
||||||
|
Field<Type>(field),
|
||||||
|
ijk_(field.ijk())
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
template<class Type>
|
||||||
|
inline Foam::IjkField<Type>::IjkField(IjkField<Type>&& field)
|
||||||
|
:
|
||||||
|
Field<Type>(std::move(field)),
|
||||||
|
ijk_(field.ijk())
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
template<class Type>
|
template<class Type>
|
||||||
inline Foam::IjkField<Type>::IjkField(const labelVector& ijk)
|
inline Foam::IjkField<Type>::IjkField(const labelVector& ijk)
|
||||||
:
|
:
|
||||||
|
|||||||
Reference in New Issue
Block a user