30template<
class GeoField>
33 const HashPtrTable<GeoField, label, Hash<label>>&
fields,
34 const labelList& indices,
35 const scalarField& weights
38 const GeoField& field0 = *(*
fields.begin());
41 auto tfld = tmp<GeoField>::New
45 "uniformInterpolate(" + field0.name() +
')',
46 field0.time().timeName(),
51 weights[0]*(*
fields[indices[0]])
55 for (label i = 1; i < indices.size(); ++i)
64template<
class GeoField>
67 const IOobject& fieldIO,
68 const word& fieldName,
69 const wordList& times,
70 const scalarField& weights,
71 const objectRegistry& fieldsCache
75 const objectRegistry& time0Fields = fieldsCache.lookupObject
82 const GeoField& field0 = time0Fields.lookupObject
92 auto tfld = tmp<GeoField>::New(fieldIO, weights[0]*field0);
93 GeoField&
fld = tfld.ref();
95 for (label i = 1; i < times.size(); ++i)
97 const objectRegistry& timeIFields =
98 fieldsCache.lookupObject<
const objectRegistry>(times[i]);
100 const GeoField& fieldi =
101 timeIFields.lookupObject<
const GeoField>(fieldName);
103 fld += weights[i]*fieldi;
110template<
class GeoField>
113 const IOobject& fieldIO,
114 const word& fieldName,
115 const wordList& times,
116 const scalarField& weights,
117 const word& registryName
120 return uniformInterpolate<GeoField>
126 fieldIO.db().subRegistry(registryName,
true)
Info<< nl<< "Wrote faMesh in vtk format: "<< writer.output().name()<< nl;}{ vtk::lineWriter writer(aMesh.points(), aMesh.edges(), fileName(aMesh.mesh().time().globalPath()/"finiteArea-edges"));writer.writeGeometry();writer.beginCellData(4);writer.writeProcIDs();{ Field< scalar > fld(faMeshTools::flattenEdgeField(aMesh.magLe(), true))
A class for managing temporary objects.
tmp< GeoField > uniformInterpolate(const HashPtrTable< GeoField, label, Hash< label > > &fields, const labelList &indices, const scalarField &weights)
Interpolate selected fields (given by indices and corresponding weights)
multivariateSurfaceInterpolationScheme< scalar >::fieldTable fields