29 #ifndef vtkPVFoamLagrangianFields_H
30 #define vtkPVFoamLagrangianFields_H
33 #include "vtkPVFoamReader.h"
42 #include "vtkFloatArray.h"
43 #include "vtkPointData.h"
48 void Foam::vtkPVFoam::convertlagrangianFields
51 vtkMultiBlockDataSet* output,
55 const arrayRange&
range = arrayRangelagrangian_;
65 const IOField<Type>
tf
67 reader_->GetDecomposedCase()
68 ? lagrangianReconstructors_[datasetNo]
69 .reconstructField<Type, IOField, IOField>(*iter())
70 : tmp<IOField<Type>>(
new IOField<Type>(*iter()))
73 convertlagrangianField
84 template<
class Type,
template<
class>
class GeoField>
85 void Foam::vtkPVFoam::convertLagrangianFields
88 vtkMultiBlockDataSet* output,
92 const arrayRange&
range = arrayRangeLagrangian_;
106 const GeoField<Type>
tf
108 reader_->GetDecomposedCase()
109 ? LagrangianReconstructors_[datasetNo]
110 .reconstructField<GeoField<Type>>(*iter())
111 : tmp<GeoField<Type>>
113 new GeoField<Type>(*iter(), LagrangianMeshes_[datasetNo])
117 convertLagrangianField<Type, GeoField>
137 void Foam::vtkPVFoam::convertlagrangianField
139 const IOField<Type>&
tf,
140 vtkMultiBlockDataSet* output,
141 const arrayRange&
range,
142 const label datasetNo
145 const label nComp = pTraits<Type>::nComponents;
148 pointData->SetNumberOfTuples(
tf.
size());
149 pointData->SetNumberOfComponents(nComp);
150 pointData->Allocate(nComp*
tf.
size());
151 pointData->SetName(
tf.name().c_str());
154 <<
"Converting lagrangian field: " <<
tf.name()
156 <<
", nComp=" << nComp <<
endl;
162 const Type& t =
tf[i];
169 vtkOpenFOAMTupleRemap<Type>(vec);
171 pointData->InsertTuple(i, vec);
174 vtkPolyData::SafeDownCast
176 GetDataSetFromBlock(output,
range, datasetNo)
178 ->AddArray(pointData);
184 template<
class Type,
template<
class>
class GeoField>
185 void Foam::vtkPVFoam::convertLagrangianField
187 const GeoField<Type>&
tf,
188 vtkMultiBlockDataSet* output,
189 const arrayRange&
range,
190 const label datasetNo
193 static const label nComp = pTraits<Type>::nComponents;
196 pointData->SetNumberOfTuples(
tf.primitiveField().
size());
197 pointData->SetNumberOfComponents(nComp);
198 pointData->Allocate(nComp*
tf.primitiveField().
size());
199 pointData->SetName(
tf.name().c_str());
202 <<
"Converting Lagrangian field: " <<
tf.name()
203 <<
" size=" <<
tf.primitiveField().
size()
204 <<
", nComp=" << nComp <<
endl;
210 const Type& t =
tf.primitiveField()[i];
217 vtkOpenFOAMTupleRemap<Type>(vec);
219 pointData->InsertTuple(i, vec);
222 vtkPolyData::SafeDownCast
224 GetDataSetFromBlock(output,
range, datasetNo)
226 ->AddArray(pointData);
#define forAll(list, i)
Loop across all elements in list.
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
static const char *const typeName
void size(const label)
Override size to be inconsistent with allocated storage.
void dontThrowExceptions()
#define DebugInFunction
Report an information message using Foam::Info.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Ostream & endl(Ostream &os)
Add newline and flush stream.
String typeName(const std::type_info &info)
Return the un-mangled name given the standard type info.
void component(GeometricField< typename GeometricField< Type, GeoMesh, PrimitiveField1 >::cmptType, GeoMesh, PrimitiveField1 > &gcf, const GeometricField< Type, GeoMesh, PrimitiveField2 > &gf, const direction d)
tmp< DimensionedField< TypeR, GeoMesh, Field > > New(const tmp< DimensionedField< TypeR, GeoMesh, Field >> &tdf1, const word &name, const dimensionSet &dimensions)