IOList, GlobalIOList, CompactIOList: Templated on container type
This reduces duplication and inconsistency between the List, Field, Map, and PtrList variants. It also allows for future extension to other container types such as DynamicList.
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -102,10 +102,7 @@ public:
|
||||
(
|
||||
const label cloudI,
|
||||
const IOobjectList& lagrangianObjects,
|
||||
PtrList
|
||||
<
|
||||
PtrList<CompactIOField<Field<Type>, Type>>
|
||||
>& lagrangianFields
|
||||
PtrList<PtrList<CompactIOField<Field<Type>>>>& lagrangianFields
|
||||
);
|
||||
|
||||
|
||||
@ -118,10 +115,10 @@ public:
|
||||
) const;
|
||||
|
||||
template<class Type>
|
||||
tmp<CompactIOField<Field<Type>, Type>> decomposeFieldField
|
||||
tmp<CompactIOField<Field<Type>>> decomposeFieldField
|
||||
(
|
||||
const word& cloudName,
|
||||
const CompactIOField<Field<Type>, Type>& field
|
||||
const CompactIOField<Field<Type>>& field
|
||||
) const;
|
||||
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration | Website: https://openfoam.org
|
||||
\\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2022 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -68,7 +68,7 @@ void Foam::lagrangianFieldDecomposer::readFieldFields
|
||||
(
|
||||
const label cloudI,
|
||||
const IOobjectList& lagrangianObjects,
|
||||
PtrList<PtrList<CompactIOField<Field<Type>, Type>>>& lagrangianFields
|
||||
PtrList<PtrList<CompactIOField<Field<Type>>>>& lagrangianFields
|
||||
)
|
||||
{
|
||||
// Search list of objects for lagrangian fields
|
||||
@ -81,15 +81,14 @@ void Foam::lagrangianFieldDecomposer::readFieldFields
|
||||
(
|
||||
lagrangianObjects.lookupClass
|
||||
(
|
||||
CompactIOField<Field<Type>,
|
||||
Type>::typeName
|
||||
CompactIOField<Field<Type>>::typeName
|
||||
)
|
||||
);
|
||||
|
||||
lagrangianFields.set
|
||||
(
|
||||
cloudI,
|
||||
new PtrList<CompactIOField<Field<Type>, Type>>
|
||||
new PtrList<CompactIOField<Field<Type>>>
|
||||
(
|
||||
lagrangianTypeObjectsA.size() + lagrangianTypeObjectsB.size()
|
||||
)
|
||||
@ -102,7 +101,7 @@ void Foam::lagrangianFieldDecomposer::readFieldFields
|
||||
lagrangianFields[cloudI].set
|
||||
(
|
||||
lagrangianFieldi++,
|
||||
new CompactIOField<Field<Type>, Type>(*iter())
|
||||
new CompactIOField<Field<Type>>(*iter())
|
||||
);
|
||||
}
|
||||
|
||||
@ -111,7 +110,7 @@ void Foam::lagrangianFieldDecomposer::readFieldFields
|
||||
lagrangianFields[cloudI].set
|
||||
(
|
||||
lagrangianFieldi++,
|
||||
new CompactIOField<Field<Type>, Type>(*iter())
|
||||
new CompactIOField<Field<Type>>(*iter())
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -150,20 +149,20 @@ Foam::lagrangianFieldDecomposer::decomposeField
|
||||
|
||||
|
||||
template<class Type>
|
||||
Foam::tmp<Foam::CompactIOField<Foam::Field<Type>, Type>>
|
||||
Foam::tmp<Foam::CompactIOField<Foam::Field<Type>>>
|
||||
Foam::lagrangianFieldDecomposer::decomposeFieldField
|
||||
(
|
||||
const word& cloudName,
|
||||
const CompactIOField<Field<Type>, Type>& field
|
||||
const CompactIOField<Field<Type>>& field
|
||||
) const
|
||||
{
|
||||
// Create and map the internal field values
|
||||
Field<Field<Type>> procField(field, particleIndices_);
|
||||
|
||||
// Create the field for the processor
|
||||
return tmp<CompactIOField<Field<Type>, Type>>
|
||||
return tmp<CompactIOField<Field<Type>>>
|
||||
(
|
||||
new CompactIOField<Field<Type>, Type>
|
||||
new CompactIOField<Field<Type>>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
|
||||
@ -69,7 +69,7 @@ tmp<IOField<Type>> reconstructLagrangianField
|
||||
|
||||
|
||||
template<class Type>
|
||||
tmp<CompactIOField<Field<Type>, Type>> reconstructLagrangianFieldField
|
||||
tmp<CompactIOField<Field<Type>>> reconstructLagrangianFieldField
|
||||
(
|
||||
const word& cloudName,
|
||||
const polyMesh& mesh,
|
||||
|
||||
@ -89,7 +89,7 @@ Foam::tmp<Foam::IOField<Type>> Foam::reconstructLagrangianField
|
||||
|
||||
|
||||
template<class Type>
|
||||
Foam::tmp<Foam::CompactIOField<Foam::Field<Type>, Type>>
|
||||
Foam::tmp<Foam::CompactIOField<Foam::Field<Type>>>
|
||||
Foam::reconstructLagrangianFieldField
|
||||
(
|
||||
const word& cloudName,
|
||||
@ -99,9 +99,9 @@ Foam::reconstructLagrangianFieldField
|
||||
)
|
||||
{
|
||||
// Construct empty field on mesh
|
||||
tmp<CompactIOField<Field<Type>, Type >> tfield
|
||||
tmp<CompactIOField<Field<Type>>> tfield
|
||||
(
|
||||
new CompactIOField<Field<Type>, Type>
|
||||
new CompactIOField<Field<Type>>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
@ -132,7 +132,7 @@ Foam::reconstructLagrangianFieldField
|
||||
|
||||
if (localIOobject.headerOk())
|
||||
{
|
||||
CompactIOField<Field<Type>, Type> fieldi(localIOobject);
|
||||
CompactIOField<Field<Type>> fieldi(localIOobject);
|
||||
|
||||
label offset = field.size();
|
||||
field.setSize(offset + fieldi.size());
|
||||
@ -203,7 +203,7 @@ void Foam::reconstructLagrangianFieldFields
|
||||
)
|
||||
{
|
||||
{
|
||||
const word fieldClassName(CompactIOField<Field<Type>, Type>::typeName);
|
||||
const word fieldClassName(CompactIOField<Field<Type>>::typeName);
|
||||
|
||||
IOobjectList fields = objects.lookupClass(fieldClassName);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user