1+
2+
3+
14namespace pFlow ::postprocessData
25{
36
@@ -9,6 +12,86 @@ regionField<T>::regionField(
912:
1013 field_ (name, " regionFieldValue" , rPoints.size(), rPoints.size(), defaultVal),
1114 regionPoints_(rPoints)
15+
1216{}
1317
18+ template <typename T>
19+ inline
20+ bool regionField<T>::writeFieldToVtk(iOstream& os)const
21+ {
22+ fatalErrorInFunction<< " This type is not supported for vtk conversion:" <<
23+ field_.typeName ()<<endl;
24+ fatalExit;
25+ return false ;
26+ }
27+
28+ template <>
29+ inline
30+ bool regionField<real>::writeFieldToVtk(iOstream& os)const
31+ {
32+ os<<" FIELD FieldData 1 " << field_.name () << " 1 " << field_.size () << " float\n " ;
33+
34+
35+ const auto mapper = cellMapper{shape ()};
36+
37+ for (uint32 k=0 ; k<mapper.nz (); k++)
38+ {
39+ for (uint32 j=0 ; j<mapper.ny (); j++)
40+ {
41+ for (uint32 i=0 ; i<mapper.nx (); i++)
42+ {
43+ os<< field_[ mapper (i,j,k) ]<<' \n ' ;
44+ }
45+ }
46+ }
47+ os<<endl;
48+ return true ;
49+ }
50+
51+ template <>
52+ inline
53+ bool regionField<realx3>::writeFieldToVtk(iOstream& os)const
54+ {
55+ os<<" FIELD FieldData 1 " << field_.name () << " 3 " << field_.size () << " float\n " ;
56+
57+
58+ const auto mapper = cellMapper{shape ()};
59+
60+ for (uint32 k=0 ; k<mapper.nz (); k++)
61+ {
62+ for (uint32 j=0 ; j<mapper.ny (); j++)
63+ {
64+ for (uint32 i=0 ; i<mapper.nx (); i++)
65+ {
66+ os<<field_[mapper (i,j,k)].x ()<<' ' <<field_[mapper (i,j,k)].y ()<<' ' <<field_[mapper (i,j,k)].z ()<<' \n ' ;
67+ }
68+ }
69+ }
70+ os<<endl;
71+ return true ;
72+ }
73+
74+ template <>
75+ inline
76+ bool regionField<uint32>::writeFieldToVtk(iOstream& os)const
77+ {
78+ os<<" FIELD FieldData 1 " << field_.name () << " 1 " << field_.size () << " int\n " ;
79+
80+
81+ const auto mapper = cellMapper{shape ()} ;
82+
83+ for (uint32 k=0 ; k<mapper.nz (); k++)
84+ {
85+ for (uint32 j=0 ; j<mapper.ny (); j++)
86+ {
87+ for (uint32 i=0 ; i<mapper.nx (); i++)
88+ {
89+ os<< field_[ mapper (i,j,k) ]<<' \n ' ;
90+ }
91+ }
92+ }
93+ os<<endl;
94+ return true ;
95+ }
96+
1497} // End namespace pFlow::postprocessData
0 commit comments