From 0e5a8b809e30493ed847a9a14b53bf6f8c86adfa Mon Sep 17 00:00:00 2001 From: henry <henry@dm.opencfd.co.uk> Date: Thu, 1 May 2008 17:02:29 +0100 Subject: [PATCH] Updates --- .../sampling/sample/FoamX/axis.cfg | 24 - .../sampling/sample/FoamX/cloud.cfg | 21 - .../sampling/sample/FoamX/curve.cfg | 21 - .../sampling/sample/FoamX/end.cfg | 15 - .../sampling/sample/FoamX/face.cfg | 22 - .../sampling/sample/FoamX/midPoint.cfg | 22 - .../sampling/sample/FoamX/midPointAndFace.cfg | 22 - .../sampling/sample/FoamX/nPoints.cfg | 15 - .../sampling/sample/FoamX/name.cfg | 15 - .../sampling/sample/FoamX/points.cfg | 16 - .../sampling/sample/FoamX/sample.cfg | 71 -- .../sampling/sample/FoamX/sampleSet.cfg | 23 - .../sampling/sample/FoamX/start.cfg | 15 - .../sample/FoamX/tensorFieldSample.cfg | 43 - .../sampling/sample/FoamX/uniform.cfg | 23 - .../sample/FoamX/vectorFieldSample.cfg | 37 - .../postProcessing/sampling/sample/Make/files | 19 - .../sampling/sample/combineSampleSets.C | 120 --- .../sampling/sample/combineSampleSets.H | 60 -- .../sampling/sample/combineSampleValues.C | 86 -- .../sampling/sample/combineSampleValues.H | 65 -- .../postProcessing/sampling/sample/sample.C | 887 ------------------ .../postProcessing/sampling/sample/sampleDict | 119 --- .../sample/sampleSets/cloud/cloudSet.C | 177 ---- .../sample/sampleSets/cloud/cloudSet.H | 126 --- .../sample/sampleSets/coordSet/coordSet.C | 174 ---- .../sample/sampleSets/coordSet/coordSet.H | 145 --- .../sample/sampleSets/curve/curveSet.C | 421 --------- .../sample/sampleSets/curve/curveSet.H | 139 --- .../sample/sampleSets/face/faceOnlySet.C | 396 -------- .../sample/sampleSets/face/faceOnlySet.H | 153 --- .../sample/sampleSets/midPoint/midPointSet.C | 169 ---- .../sample/sampleSets/midPoint/midPointSet.H | 104 -- .../midPointAndFace/midPointAndFaceSet.C | 197 ---- .../midPointAndFace/midPointAndFaceSet.H | 105 --- .../sample/sampleSets/sampleSet/sampleSet.C | 467 --------- .../sample/sampleSets/sampleSet/sampleSet.H | 296 ------ .../sample/sampleSets/uniform/uniformSet.C | 499 ---------- .../sample/sampleSets/uniform/uniformSet.H | 160 ---- .../sampling/sample/test/testSample.C | 158 ---- .../sampling/sample/volFieldSampler.C | 91 -- .../sampling/sample/volFieldSampler.H | 109 --- .../sampling/sample/writers/gnuplot/gnuplot.C | 100 -- .../sampling/sample/writers/gnuplot/gnuplot.H | 105 --- .../sample/writers/gnuplot/gnuplotWriters.C | 45 - .../sample/writers/gnuplot/gnuplotWriters.H | 62 -- .../sampling/sample/writers/jplot/jplot.C | 106 --- .../sampling/sample/writers/jplot/jplot.H | 115 --- .../sample/writers/jplot/jplotWriters.C | 45 - .../sample/writers/jplot/jplotWriters.H | 62 -- .../sampling/sample/writers/raw/raw.C | 83 -- .../sampling/sample/writers/raw/raw.H | 105 --- .../sampling/sample/writers/raw/rawWriters.C | 45 - .../sampling/sample/writers/raw/rawWriters.H | 62 -- .../sampling/sample/writers/writer/writer.C | 205 ---- .../sampling/sample/writers/writer/writer.H | 239 ----- .../sampling/sample/writers/writer/writers.C | 57 -- .../sampling/sample/writers/writer/writers.H | 59 -- .../sampling/sample/writers/xmgr/xmgr.C | 89 -- .../sampling/sample/writers/xmgr/xmgr.H | 105 --- .../sample/writers/xmgr/xmgrWriters.C | 45 - .../sampling/sampleSurface/Make/files | 18 - .../sampling/sampleSurface/fieldsCache.C | 105 --- .../sampling/sampleSurface/fieldsCache.H | 109 --- .../sampling/sampleSurface/sampleSurface.C | 842 ----------------- .../sampling/sampleSurface/sampleSurfaceDict | 117 --- .../sampleSurface/surfaceWriters/dx/dx.C | 325 ------- .../sampleSurface/surfaceWriters/dx/dx.H | 150 --- .../surfaceWriters/dx/dxWriters.C | 43 - .../surfaceWriters/dx/dxWriters.H | 63 -- .../surfaceWriters/foamFile/foamFile.C | 99 -- .../surfaceWriters/foamFile/foamFile.H | 104 -- .../surfaceWriters/foamFile/foamFileWriters.C | 43 - .../surfaceWriters/foamFile/foamFileWriters.H | 63 -- .../sampleSurface/surfaceWriters/raw/raw.C | 359 ------- .../sampleSurface/surfaceWriters/raw/raw.H | 166 ---- .../surfaceWriters/raw/rawWriters.C | 43 - .../surfaceWriters/raw/rawWriters.H | 63 -- .../sampleSurface/surfaceWriters/stl/stl.C | 112 --- .../sampleSurface/surfaceWriters/stl/stl.H | 104 -- .../surfaceWriters/stl/stlWriters.C | 43 - .../surfaceWriters/stl/stlWriters.H | 63 -- .../surfaceWriter/surfaceWriter.C | 78 -- .../surfaceWriter/surfaceWriter.H | 158 ---- .../surfaceWriter/surfaceWriters.C | 55 -- .../surfaceWriter/surfaceWriters.H | 59 -- .../sampleSurface/surfaceWriters/vtk/vtk.C | 330 ------- .../sampleSurface/surfaceWriters/vtk/vtk.H | 153 --- .../surfaceWriters/vtk/vtkWriters.C | 43 - .../surfaceWriters/vtk/vtkWriters.H | 63 -- .../constantIsoSurface/constantIsoSurface.C | 271 ------ .../constantIsoSurface/constantIsoSurface.H | 199 ---- .../surfaces/constantPatch/constantPatch.C | 282 ------ .../surfaces/constantPatch/constantPatch.H | 223 ----- .../surfaces/constantPlane/constantPlane.C | 263 ------ .../surfaces/constantPlane/constantPlane.H | 219 ----- .../interpolatedIsoSurface.C | 281 ------ .../interpolatedIsoSurface.H | 203 ---- .../interpolatedPatch/interpolatedPatch.C | 211 ----- .../interpolatedPatch/interpolatedPatch.H | 163 ---- .../interpolatedPlane/interpolatedPlane.C | 203 ---- .../interpolatedPlane/interpolatedPlane.H | 164 ---- .../sampleSurface/surfaces/surface/surface.C | 135 --- .../sampleSurface/surfaces/surface/surface.H | 261 ------ .../sampling/probeLocations/Make/files | 3 + .../probeLocations}/Make/options | 8 +- .../probeLocations/probeLocations.C} | 67 +- .../sampling/probeLocations/probesDict | 38 + .../sampling/sampling/sample/Make/files | 3 + .../{ => sampling}/sample/Make/options | 15 +- .../sampling/sampling/sample/sample.C | 139 +++ .../sampling/sampling/sample/sampleDict | 173 ++++ etc/apps/paraview3/bashrc | 2 +- etc/apps/paraview3/cshrc | 8 +- .../fvMatrices/solvers/MULES/MULESTemplates.C | 4 +- 115 files changed, 414 insertions(+), 14678 deletions(-) delete mode 100644 applications/utilities/postProcessing/sampling/sample/FoamX/axis.cfg delete mode 100644 applications/utilities/postProcessing/sampling/sample/FoamX/cloud.cfg delete mode 100644 applications/utilities/postProcessing/sampling/sample/FoamX/curve.cfg delete mode 100644 applications/utilities/postProcessing/sampling/sample/FoamX/end.cfg delete mode 100644 applications/utilities/postProcessing/sampling/sample/FoamX/face.cfg delete mode 100644 applications/utilities/postProcessing/sampling/sample/FoamX/midPoint.cfg delete mode 100644 applications/utilities/postProcessing/sampling/sample/FoamX/midPointAndFace.cfg delete mode 100644 applications/utilities/postProcessing/sampling/sample/FoamX/nPoints.cfg delete mode 100644 applications/utilities/postProcessing/sampling/sample/FoamX/name.cfg delete mode 100644 applications/utilities/postProcessing/sampling/sample/FoamX/points.cfg delete mode 100644 applications/utilities/postProcessing/sampling/sample/FoamX/sample.cfg delete mode 100644 applications/utilities/postProcessing/sampling/sample/FoamX/sampleSet.cfg delete mode 100644 applications/utilities/postProcessing/sampling/sample/FoamX/start.cfg delete mode 100644 applications/utilities/postProcessing/sampling/sample/FoamX/tensorFieldSample.cfg delete mode 100644 applications/utilities/postProcessing/sampling/sample/FoamX/uniform.cfg delete mode 100644 applications/utilities/postProcessing/sampling/sample/FoamX/vectorFieldSample.cfg delete mode 100644 applications/utilities/postProcessing/sampling/sample/Make/files delete mode 100644 applications/utilities/postProcessing/sampling/sample/combineSampleSets.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/combineSampleSets.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/combineSampleValues.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/combineSampleValues.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/sample.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/sampleDict delete mode 100644 applications/utilities/postProcessing/sampling/sample/sampleSets/cloud/cloudSet.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/sampleSets/cloud/cloudSet.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/sampleSets/coordSet/coordSet.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/sampleSets/coordSet/coordSet.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/sampleSets/curve/curveSet.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/sampleSets/curve/curveSet.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/sampleSets/face/faceOnlySet.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/sampleSets/face/faceOnlySet.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/sampleSets/midPoint/midPointSet.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/sampleSets/midPoint/midPointSet.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/sampleSets/midPointAndFace/midPointAndFaceSet.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/sampleSets/midPointAndFace/midPointAndFaceSet.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/sampleSets/sampleSet/sampleSet.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/sampleSets/sampleSet/sampleSet.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/sampleSets/uniform/uniformSet.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/sampleSets/uniform/uniformSet.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/test/testSample.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/volFieldSampler.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/volFieldSampler.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/gnuplot/gnuplot.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/gnuplot/gnuplot.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/gnuplot/gnuplotWriters.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/gnuplot/gnuplotWriters.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/jplot/jplot.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/jplot/jplot.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/jplot/jplotWriters.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/jplot/jplotWriters.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/raw/raw.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/raw/raw.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/raw/rawWriters.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/raw/rawWriters.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/writer/writer.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/writer/writer.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/writer/writers.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/writer/writers.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/xmgr/xmgr.C delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/xmgr/xmgr.H delete mode 100644 applications/utilities/postProcessing/sampling/sample/writers/xmgr/xmgrWriters.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/Make/files delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/fieldsCache.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/fieldsCache.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/sampleSurface.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/sampleSurfaceDict delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/dx/dx.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/dx/dx.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/dx/dxWriters.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/dx/dxWriters.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/foamFile/foamFile.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/foamFile/foamFile.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/foamFile/foamFileWriters.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/foamFile/foamFileWriters.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/raw/raw.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/raw/raw.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/raw/rawWriters.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/raw/rawWriters.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/stl/stl.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/stl/stl.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/stl/stlWriters.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/stl/stlWriters.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/surfaceWriter/surfaceWriter.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/surfaceWriter/surfaceWriter.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/surfaceWriter/surfaceWriters.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/surfaceWriter/surfaceWriters.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/vtk/vtk.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/vtk/vtk.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/vtk/vtkWriters.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/vtk/vtkWriters.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantIsoSurface/constantIsoSurface.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantIsoSurface/constantIsoSurface.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantPatch/constantPatch.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantPatch/constantPatch.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantPlane/constantPlane.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantPlane/constantPlane.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedIsoSurface/interpolatedIsoSurface.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedIsoSurface/interpolatedIsoSurface.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedPatch/interpolatedPatch.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedPatch/interpolatedPatch.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedPlane/interpolatedPlane.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedPlane/interpolatedPlane.H delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaces/surface/surface.C delete mode 100644 applications/utilities/postProcessing/sampling/sampleSurface/surfaces/surface/surface.H create mode 100644 applications/utilities/postProcessing/sampling/sampling/probeLocations/Make/files rename applications/utilities/postProcessing/sampling/{sampleSurface => sampling/probeLocations}/Make/options (63%) rename applications/utilities/postProcessing/sampling/{sample/writers/xmgr/xmgrWriters.H => sampling/probeLocations/probeLocations.C} (57%) create mode 100644 applications/utilities/postProcessing/sampling/sampling/probeLocations/probesDict create mode 100644 applications/utilities/postProcessing/sampling/sampling/sample/Make/files rename applications/utilities/postProcessing/sampling/{ => sampling}/sample/Make/options (60%) create mode 100644 applications/utilities/postProcessing/sampling/sampling/sample/sample.C create mode 100644 applications/utilities/postProcessing/sampling/sampling/sample/sampleDict diff --git a/applications/utilities/postProcessing/sampling/sample/FoamX/axis.cfg b/applications/utilities/postProcessing/sampling/sample/FoamX/axis.cfg deleted file mode 100644 index 8657f923a9a..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/FoamX/axis.cfg +++ /dev/null @@ -1,24 +0,0 @@ -/*---------------------------------------------------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ - -axis -{ - type word; - description "Form of distance data"; - default distance; - valueList - ( - distance - x - y - z - xyz - ); -} - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/FoamX/cloud.cfg b/applications/utilities/postProcessing/sampling/sample/FoamX/cloud.cfg deleted file mode 100644 index 89c304e331a..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/FoamX/cloud.cfg +++ /dev/null @@ -1,21 +0,0 @@ -/*---------------------------------------------------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ - -cloud -{ - type dictionary; - description "Samples a set of specified points"; - entries - { - include "name.cfg"; - include "axis.cfg"; - include "points.cfg"; - } -} - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/FoamX/curve.cfg b/applications/utilities/postProcessing/sampling/sample/FoamX/curve.cfg deleted file mode 100644 index 4f707496636..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/FoamX/curve.cfg +++ /dev/null @@ -1,21 +0,0 @@ -/*---------------------------------------------------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ - -curve -{ - type dictionary; - description "Samples a set of specified points that are tracked along a curve"; - entries - { - include "name.cfg"; - include "axis.cfg"; - include "points.cfg"; - } -} - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/FoamX/end.cfg b/applications/utilities/postProcessing/sampling/sample/FoamX/end.cfg deleted file mode 100644 index 5d2c5b6d052..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/FoamX/end.cfg +++ /dev/null @@ -1,15 +0,0 @@ -/*---------------------------------------------------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ - -end -{ - type vector; - description "End point on sampling line"; -} - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/FoamX/face.cfg b/applications/utilities/postProcessing/sampling/sample/FoamX/face.cfg deleted file mode 100644 index d00a4a76c45..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/FoamX/face.cfg +++ /dev/null @@ -1,22 +0,0 @@ -/*---------------------------------------------------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ - -face -{ - type dictionary; - description "One sampling point per face intersection"; - entries - { - include "name.cfg"; - include "axis.cfg"; - include "start.cfg"; - include "end.cfg"; - } -} - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/FoamX/midPoint.cfg b/applications/utilities/postProcessing/sampling/sample/FoamX/midPoint.cfg deleted file mode 100644 index 5930161b49e..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/FoamX/midPoint.cfg +++ /dev/null @@ -1,22 +0,0 @@ -/*---------------------------------------------------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ - -midPoint -{ - type dictionary; - description "One sampling point per cell, between two face intersections"; - entries - { - include "name.cfg"; - include "axis.cfg"; - include "start.cfg"; - include "end.cfg"; - } -} - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/FoamX/midPointAndFace.cfg b/applications/utilities/postProcessing/sampling/sample/FoamX/midPointAndFace.cfg deleted file mode 100644 index bb492b5c182..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/FoamX/midPointAndFace.cfg +++ /dev/null @@ -1,22 +0,0 @@ -/*---------------------------------------------------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ - -midPointAndFace -{ - type dictionary; - description "One sampling point per intersected face and one per cell, between two face intersections"; - entries - { - include "name.cfg"; - include "axis.cfg"; - include "start.cfg"; - include "end.cfg"; - } -} - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/FoamX/nPoints.cfg b/applications/utilities/postProcessing/sampling/sample/FoamX/nPoints.cfg deleted file mode 100644 index aba1b8a8685..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/FoamX/nPoints.cfg +++ /dev/null @@ -1,15 +0,0 @@ -/*---------------------------------------------------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ - -nPoints -{ - type label; - description "Number of points on sampling line"; -} - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/FoamX/name.cfg b/applications/utilities/postProcessing/sampling/sample/FoamX/name.cfg deleted file mode 100644 index 4ab16bf9d8c..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/FoamX/name.cfg +++ /dev/null @@ -1,15 +0,0 @@ -/*---------------------------------------------------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ - -name -{ - type word; - description "Name of sampling set"; -} - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/FoamX/points.cfg b/applications/utilities/postProcessing/sampling/sample/FoamX/points.cfg deleted file mode 100644 index 3b4f47ebbee..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/FoamX/points.cfg +++ /dev/null @@ -1,16 +0,0 @@ -/*---------------------------------------------------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ - -points -{ - type list; - description "List of points to be sampled"; - elementType vector; -} - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/FoamX/sample.cfg b/applications/utilities/postProcessing/sampling/sample/FoamX/sample.cfg deleted file mode 100644 index 9cf95d9ae51..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/FoamX/sample.cfg +++ /dev/null @@ -1,71 +0,0 @@ -/*---------------------------------------------------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -// sample tool definition - -description "Line sampling"; - -sampleDict -{ - type dictionary; - description "sample control dictionary"; - dictionaryPath "system"; - - entries - { - arguments - { - type rootCaseTimeArguments; - } - - interpolationScheme - { - type word; - description "Sampling interpolation scheme"; - default cellPoint; - valueList - ( - cell - cellPoint - cellPointFace - ); - } - - writeFormat - { - type word; - description "Output format of data"; - default raw; - valueList - ( - raw - gnuplot - xmgr - jplot - ); - } - - sampleSets - { - type list; - description "List of sampling sets"; - elementType - { - include "sampleSet.cfg"; - } - } - - fields - { - type list; - description "List of fields to be sampled"; - elementType word; - } - } -} - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/FoamX/sampleSet.cfg b/applications/utilities/postProcessing/sampling/sample/FoamX/sampleSet.cfg deleted file mode 100644 index 9248dc4aecd..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/FoamX/sampleSet.cfg +++ /dev/null @@ -1,23 +0,0 @@ -/*---------------------------------------------------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ - -sampleSet -{ - type selection; - entries - { - include "uniform.cfg"; - include "face.cfg"; - include "midPoint.cfg"; - include "midPointAndFace.cfg"; - include "curve.cfg"; - include "cloud.cfg"; - } -} - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/FoamX/start.cfg b/applications/utilities/postProcessing/sampling/sample/FoamX/start.cfg deleted file mode 100644 index 5382f60eb8c..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/FoamX/start.cfg +++ /dev/null @@ -1,15 +0,0 @@ -/*---------------------------------------------------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ - -start -{ - type vector; - description "Start point on sampling line"; -} - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/FoamX/tensorFieldSample.cfg b/applications/utilities/postProcessing/sampling/sample/FoamX/tensorFieldSample.cfg deleted file mode 100644 index 1aee8b66cee..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/FoamX/tensorFieldSample.cfg +++ /dev/null @@ -1,43 +0,0 @@ -/*---------------------------------------------------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ - -tensorFieldSample -{ - type compound; - description "Tensor field to be sampled"; - entries - { - name - { - type word; - description "Field name"; - } - - component - { - type word; - description "Tensor component(s)"; - valueList - ( - xx - xy - xz - yx - yy - yz - zx - zy - zz - mag - full - ); - } - } -} - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/FoamX/uniform.cfg b/applications/utilities/postProcessing/sampling/sample/FoamX/uniform.cfg deleted file mode 100644 index e382ed1e44e..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/FoamX/uniform.cfg +++ /dev/null @@ -1,23 +0,0 @@ -/*---------------------------------------------------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ - -uniform -{ - type dictionary; - description "Uniform distribution of points on a line"; - entries - { - include "name.cfg"; - include "axis.cfg"; - include "start.cfg"; - include "end.cfg"; - include "nPoints.cfg"; - } -} - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/FoamX/vectorFieldSample.cfg b/applications/utilities/postProcessing/sampling/sample/FoamX/vectorFieldSample.cfg deleted file mode 100644 index 89d901d9758..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/FoamX/vectorFieldSample.cfg +++ /dev/null @@ -1,37 +0,0 @@ -/*---------------------------------------------------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ - -vectorFieldSample -{ - type compound; - description "Vector field to be sampled"; - entries - { - name - { - type word; - description "Field name"; - } - - component - { - type word; - description "Vector component(s)"; - valueList - ( - x - y - z - mag - full - ); - } - } -} - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/Make/files b/applications/utilities/postProcessing/sampling/sample/Make/files deleted file mode 100644 index d8193c05003..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/Make/files +++ /dev/null @@ -1,19 +0,0 @@ -combineSampleSets.C -sample.C - -writers/writer/writers.C -writers/xmgr/xmgrWriters.C -writers/gnuplot/gnuplotWriters.C -writers/jplot/jplotWriters.C -writers/raw/rawWriters.C - -sampleSets/coordSet/coordSet.C -sampleSets/sampleSet/sampleSet.C -sampleSets/cloud/cloudSet.C -sampleSets/face/faceOnlySet.C -sampleSets/curve/curveSet.C -sampleSets/uniform/uniformSet.C -sampleSets/midPoint/midPointSet.C -sampleSets/midPointAndFace/midPointAndFaceSet.C - -EXE = $(FOAM_APPBIN)/sample diff --git a/applications/utilities/postProcessing/sampling/sample/combineSampleSets.C b/applications/utilities/postProcessing/sampling/sample/combineSampleSets.C deleted file mode 100644 index 276eb1021a5..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/combineSampleSets.C +++ /dev/null @@ -1,120 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - - -#include "Pstream.H" -#include "ListListOps.H" -#include "combineSampleSets.H" -#include "SortableList.H" -#include "IndirectList.H" - -using namespace Foam; - -// * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * // - -// Combine points from all processors. Sort by curveDist and produce -// index list. Valid result only on master processor. -void combineSampleSets -( - const PtrList<sampleSet>& sampleSets, - PtrList<coordSet>& masterSampleSets, - labelListList& indexSets -) -{ - forAll(sampleSets, setI) - { - const sampleSet& samplePts = sampleSets[setI]; - - // Collect data from all processors - List<List<point> > gatheredPts(Pstream::nProcs()); - gatheredPts[Pstream::myProcNo()] = samplePts; - Pstream::gatherList(gatheredPts); - - List<labelList> gatheredSegments(Pstream::nProcs()); - gatheredSegments[Pstream::myProcNo()] = samplePts.segments(); - Pstream::gatherList(gatheredSegments); - - List<scalarList> gatheredDist(Pstream::nProcs()); - gatheredDist[Pstream::myProcNo()] = samplePts.curveDist(); - Pstream::gatherList(gatheredDist); - - - // Combine processor lists into one big list. - List<point> allPts - ( - ListListOps::combine<List<point> > - ( - gatheredPts, accessOp<List<point> >() - ) - ); - labelList allSegments - ( - ListListOps::combine<labelList> - ( - gatheredSegments, accessOp<labelList>() - ) - ); - scalarList allCurveDist - ( - ListListOps::combine<scalarList> - ( - gatheredDist, accessOp<scalarList>() - ) - ); - - // Sort curveDist and use to fill masterSamplePts - SortableList<scalar> sortedDist(allCurveDist); - indexSets[setI] = sortedDist.indices(); - - // Get reference point (note: only master has all points) - point refPt; - - if (allPts.size() > 0) - { - refPt = samplePts.getRefPoint(allPts); - } - else - { - refPt = vector::zero; - } - - - masterSampleSets.set - ( - setI, - new coordSet - ( - samplePts.name(), - samplePts.axis(), - IndirectList<point>(allPts, indexSets[setI]), - refPt - ) - ); - } -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/combineSampleSets.H b/applications/utilities/postProcessing/sampling/sample/combineSampleSets.H deleted file mode 100644 index 3dc889ed495..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/combineSampleSets.H +++ /dev/null @@ -1,60 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -InClass - Foam::combineSampleSets - -Description - Various utility functions for collection of samples on processors. - -SourceFiles - combineSampleSets.C - -\*---------------------------------------------------------------------------*/ - -#ifndef combineSampleSets_H -#define combineSampleSets_H - -#include "labelList.H" -#include "PtrList.H" -#include "coordSet.H" -#include "sampleSet.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -// Combine points from all processors. Sort by curveDist and produce -// index list. Valid result only on master processor. -void combineSampleSets -( - const Foam::PtrList<Foam::sampleSet>& sampleSets, - Foam::PtrList<Foam::coordSet>& masterSampleSets, - Foam::labelListList& indexSets -); - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/combineSampleValues.C b/applications/utilities/postProcessing/sampling/sample/combineSampleValues.C deleted file mode 100644 index adbf92f1ba0..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/combineSampleValues.C +++ /dev/null @@ -1,86 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - - -#include "combineSampleValues.H" -#include "Pstream.H" -#include "ListListOps.H" -#include "IndirectList.H" - -using namespace Foam; - -// * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * // - -// Combine values from all processors. Valid result only on master processor. -template<class T> -void combineSampleValues -( - const PtrList<volFieldSampler<T> >& sampledFields, - const labelListList& indexSets, - PtrList<volFieldSampler<T> >& masterFields -) -{ - forAll(sampledFields, fieldI) - { - List<Field<T> > masterValues(indexSets.size()); - - forAll(indexSets, setI) - { - // Collect data from all processors - List<Field<T> > gatheredData(Pstream::nProcs()); - gatheredData[Pstream::myProcNo()] = sampledFields[fieldI][setI]; - Pstream::gatherList(gatheredData); - - if (Pstream::master()) - { - Field<T> allData - ( - ListListOps::combine<Field<T> > - ( - gatheredData, - Foam::accessOp<Field<T> >() - ) - ); - - masterValues[setI] = - IndirectList<T>(allData, indexSets[setI])(); - } - } - masterFields.set - ( - fieldI, - new volFieldSampler<T> - ( - masterValues, - sampledFields[fieldI].name() - ) - ); - } -} - - -// ************************************************************************* // - diff --git a/applications/utilities/postProcessing/sampling/sample/combineSampleValues.H b/applications/utilities/postProcessing/sampling/sample/combineSampleValues.H deleted file mode 100644 index 2d21264f928..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/combineSampleValues.H +++ /dev/null @@ -1,65 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -InClass - Foam::combineSampleValues - -Description - Various utility functions for collection of samples on processors. - -SourceFiles - combineSampleValues.C - -\*---------------------------------------------------------------------------*/ - -#ifndef combineSampleValues_H -#define combineSampleValues_H - -#include "labelList.H" -#include "PtrList.H" -#include "volFieldSampler.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -// Combine values from all processors. Valid result only on master processor. -template<class T> -void combineSampleValues -( - const Foam::PtrList<Foam::volFieldSampler<T> >& sampledFields, - const Foam::labelListList& indexSets, - Foam::PtrList<Foam::volFieldSampler<T> >& masterFields -); - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "combineSampleValues.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/sample.C b/applications/utilities/postProcessing/sampling/sample/sample.C deleted file mode 100644 index 18cd64e869d..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/sample.C +++ /dev/null @@ -1,887 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Description - Sample field data with a choice of interpolation schemes, sampling options - and write formats. - - interpolationScheme : choice of - cell : use cell-centre value only; constant over cells - cellPoint : use cell-centre and vertex values - cellPointFace : use cell-centre, vertex and face values. - - sample: choice of - uniform evenly distributed points on line - face one point per face intersection - midPoint one point per cell, inbetween two face intersections - midPointAndFace combination of face and midPoint - - curve specified points, not nessecary on line, uses - tracking - cloud specified points, uses findCell - - writeFormat : choice of - xmgr - jplot - gnuplot - raw - -\*---------------------------------------------------------------------------*/ - -#include "Pstream.H" -#include "argList.H" -#include "OSspecific.H" - -#include "Cloud.H" -#include "passiveParticle.H" -#include "meshSearch.H" -#include "interpolation.H" -#include "volPointInterpolation.H" - -#include "writer.H" -#include "sampleSet.H" -#include "volFieldSampler.H" -#include "dictionaryEntry.H" - -#include "combineSampleSets.H" -#include "combineSampleValues.H" - -using namespace Foam; - - -template<class Type> -void writeSampleFile -( - const coordSet& masterSampleSet, - const PtrList<volFieldSampler<Type> >& masterFields, - const label setI, - const fileName& timeDir, - const word& writeFormat -) -{ - if (masterFields.size() > 0) - { - wordList valueSetNames(masterFields.size()); - List<const Field<Type>*> valueSets(masterFields.size()); - - forAll(masterFields, fieldI) - { - valueSetNames[fieldI] = masterFields[fieldI].name(); - valueSets[fieldI] = &masterFields[fieldI][setI]; - } - - autoPtr<writer<Type> > formatter - ( - writer<Type>::New(writeFormat) - ); - - fileName fName - ( - timeDir/formatter().getFileName(masterSampleSet, valueSetNames) - ); - - Info<< "Writing fields to " << fName << endl; - - formatter().write - ( - masterSampleSet, - valueSetNames, - valueSets, - OFstream(fName)() - ); - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -// Main program: - -int main(int argc, char *argv[]) -{ -# include "addTimeOptions.H" -# include "setRootCase.H" - -# include "createTime.H" - - // Get times list - instantList Times = runTime.times(); - - // set startTime and endTime depending on -time and -latestTime options -# include "checkTimeOptions.H" - - runTime.setTime(Times[startTime], startTime); - -# include "createMesh.H" - - // - // Hack: initialize Cloud to initialize the processor table so from - // now on we can use cloud on single processors only. - // - Cloud<passiveParticle> dummyCloud(mesh, IDLList<passiveParticle>()); - - // Read control dictionary - IOdictionary sampleDict - ( - IOobject - ( - "sampleDict", - runTime.system(), - mesh, - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ); - - const word interpolationScheme(sampleDict.lookup("interpolationScheme")); - const wordList fieldNames = sampleDict.lookup("fields"); - - // - // Construct writers - // - - word writeFormat(sampleDict.lookup("writeFormat")); - - // - // Construct interpolation dictionary (same interpolation for all fields) - // - - dictionary interpolationSchemes; - - forAll(fieldNames, fieldI) - { - interpolationSchemes.add - ( - fieldNames[fieldI], - interpolationScheme - ); - } - - // Set up interpolation - autoPtr<pointMesh> pMeshPtr(new pointMesh(mesh)); - autoPtr<volPointInterpolation> pInterpPtr - ( - new volPointInterpolation(mesh, pMeshPtr()) - ); - - // Set up mesh searching - meshSearch searchEngine(mesh, true); - - - fileName samplePath; - - if (Pstream::master()) - { - if (Pstream::parRun()) - { - samplePath = runTime.path()/".."/"samples"; - } - else - { - samplePath = runTime.path()/"samples"; - } - - if (exists(samplePath)) - { - Info<< "Deleting samples/ directory" << endl << endl; - rmDir(samplePath); - } - } - - fileName oldPointsDir("constant"); - - for (label i=startTime; i<endTime; i++) - { - runTime.setTime(Times[i], i); - - Info<< "Time = " << runTime.timeName() << endl; - - // - // Handle geometry/topology changes - // - polyMesh::readUpdateState state = mesh.readUpdate(); - - if - ( - state == polyMesh::POINTS_MOVED - || state == polyMesh::TOPO_CHANGE - ) - { - // Geometry and topology changes - searchEngine.correct(); - - pMeshPtr.reset(new pointMesh(mesh)); - - pInterpPtr.reset(new volPointInterpolation(mesh, pMeshPtr())); - } - - - // - // Construct sampling point generators - // - - PtrList<sampleSet> sampleSets - ( - sampleDict.lookup("sampleSets"), - sampleSet::iNew(mesh, searchEngine) - ); - if (sampleSets.size() < 1) - { - FatalErrorIn(args.executable()) - << "No sampleSets provided in sampleDict" - << exit(FatalError); - } - - // Storage for interpolated values - PtrList<volFieldSampler<scalar> > sampledScalarFields - ( - fieldNames.size() - ); - PtrList<volFieldSampler<vector> > sampledVectorFields - ( - fieldNames.size() - ); - PtrList<volFieldSampler<sphericalTensor> > sampledSphericalTensorFields - ( - fieldNames.size() - ); - PtrList<volFieldSampler<symmTensor> > sampledSymmTensorFields - ( - fieldNames.size() - ); - PtrList<volFieldSampler<tensor> > sampledTensorFields - ( - fieldNames.size() - ); - - // - // Do actual interpolation - // - - label nScalarFields = 0; - label nVectorFields = 0; - label nSphericalTensorFields = 0; - label nSymmTensorFields = 0; - label nTensorFields = 0; - - forAll(fieldNames, fieldI) - { - const word& fieldName = fieldNames[fieldI]; - - IOobject fieldHeader - ( - fieldName, - runTime.timeName(), - mesh, - IOobject::MUST_READ - ); - - // Determine number of processor actually having this field - label fieldFound = (fieldHeader.headerOk() ? 1 : 0); - reduce(fieldFound, sumOp<label>()); - - if (fieldFound == Pstream::nProcs()) - { - if - ( - fieldHeader.headerClassName() == volScalarField::typeName - ) - { - Info<< "Sampling " << fieldHeader.headerClassName() - << ' ' << fieldName << endl; - - volScalarField sField(fieldHeader, mesh); - - sampledScalarFields.set - ( - nScalarFields, - new volFieldSampler<scalar> - ( - pInterpPtr(), - interpolationSchemes, - sField, - sampleSets - ) - ); - - nScalarFields++; - } - else if - ( - fieldHeader.headerClassName() == volVectorField::typeName - ) - { - Info<< "Sampling " << fieldHeader.headerClassName() - << ' ' << fieldName << endl; - - volVectorField vField(fieldHeader, mesh); - - sampledVectorFields.set - ( - nVectorFields, - new volFieldSampler<vector> - ( - pInterpPtr(), - interpolationSchemes, - vField, - sampleSets - ) - ); - - nVectorFields++; - } - else if - ( - fieldHeader.headerClassName() - == volSphericalTensorField::typeName - ) - { - Info<< "Sampling " << fieldHeader.headerClassName() - << ' ' << fieldName << endl; - - volSphericalTensorField tField(fieldHeader, mesh); - - sampledSphericalTensorFields.set - ( - nSphericalTensorFields, - new volFieldSampler<sphericalTensor> - ( - pInterpPtr(), - interpolationSchemes, - tField, - sampleSets - ) - ); - - nSphericalTensorFields++; - } - else if - ( - fieldHeader.headerClassName() - == volSymmTensorField::typeName - ) - { - Info<< "Sampling " << fieldHeader.headerClassName() - << ' ' << fieldName << endl; - - volSymmTensorField tField(fieldHeader, mesh); - - sampledSymmTensorFields.set - ( - nSymmTensorFields, - new volFieldSampler<symmTensor> - ( - pInterpPtr(), - interpolationSchemes, - tField, - sampleSets - ) - ); - - nSymmTensorFields++; - } - else if - ( - fieldHeader.headerClassName() == volTensorField::typeName - ) - { - Info<< "Sampling " << fieldHeader.headerClassName() - << ' ' << fieldName << endl; - - volTensorField tField(fieldHeader, mesh); - - sampledTensorFields.set - ( - nTensorFields, - new volFieldSampler<tensor> - ( - pInterpPtr(), - interpolationSchemes, - tField, - sampleSets - ) - ); - - nTensorFields++; - } - } - else if (fieldFound != 0) - { - FatalErrorIn(args.executable()) - << "Did not find field " << fieldName - << " on all processors" << exit(FatalError); - } - else if (fieldName.find('(') != string::npos) - { - if (fieldName.find("component") != string::npos) - { - string baseFieldName(fieldName(0, fieldName.find('.'))); - - IOobject fieldHeader - ( - baseFieldName, - runTime.timeName(), - mesh, - IOobject::MUST_READ - ); - - // Determine number of processor actually having this field - label fieldFound = (fieldHeader.headerOk() ? 1 : 0); - reduce(fieldFound, sumOp<label>()); - - if (fieldFound == Pstream::nProcs()) - { - if - ( - fieldHeader.headerClassName() - == volVectorField::typeName - ) - { - size_t cmptPos(fieldName.find_last_of("012")); - - if (cmptPos == string::npos) - { - FatalErrorIn(args.executable()) - << "cannot find component index for " - << fieldName << exit(FatalError); - } - - direction cmpt = - atoi(string(fieldName[cmptPos]).c_str()); - - Info<< "Sampling " << fieldHeader.headerClassName() - << ' ' << fieldName << endl; - - volVectorField vField(fieldHeader, mesh); - - sampledScalarFields.set - ( - nScalarFields, - new volFieldSampler<scalar> - ( - pInterpPtr(), - interpolationSchemes, - vField.component(cmpt)(), - sampleSets - ) - ); - - nScalarFields++; - } - else if - ( - fieldHeader.headerClassName() - == volSymmTensorField::typeName - ) - { - size_t cmptPos(fieldName.find_last_of("0123456")); - - if (cmptPos == string::npos) - { - FatalErrorIn(args.executable()) - << "cannot find component index for " - << fieldName - << exit(FatalError); - } - - direction cmpt = - atoi(string(fieldName[cmptPos]).c_str()); - - Info<< "Sampling " << fieldHeader.headerClassName() - << ' ' << fieldName << endl; - - volSymmTensorField tField(fieldHeader, mesh); - - sampledScalarFields.set - ( - nScalarFields, - new volFieldSampler<scalar> - ( - pInterpPtr(), - interpolationSchemes, - tField.component(cmpt)(), - sampleSets - ) - ); - - nScalarFields++; - } - else if - ( - fieldHeader.headerClassName() - == volTensorField::typeName - ) - { - size_t cmptPos(fieldName.find_last_of("012345678")); - - if (cmptPos == string::npos) - { - FatalErrorIn(args.executable()) - << "cannot find component index for " - << fieldName - << exit(FatalError); - } - - direction cmpt = - atoi(string(fieldName[cmptPos]).c_str()); - - Info<< "Sampling " << fieldHeader.headerClassName() - << ' ' << fieldName << endl; - - volTensorField tField(fieldHeader, mesh); - - sampledScalarFields.set - ( - nScalarFields, - new volFieldSampler<scalar> - ( - pInterpPtr(), - interpolationSchemes, - tField.component(cmpt)(), - sampleSets - ) - ); - - nScalarFields++; - } - else - { - FatalErrorIn(args.executable()) - << "component function not supported for field " - << fieldName << " of type " - << fieldHeader.headerClassName() - << exit(FatalError); - } - } - else if (fieldFound != 0) - { - FatalErrorIn(args.executable()) - << "Did not find field " << baseFieldName - << " on all processors" << exit(FatalError); - } - - } - else if (fieldName.find("mag") != string::npos) - { - string baseFieldName - ( - fieldName(fieldName.find('(') + 1, - fieldName.find(')') - fieldName.find('(') - 1) - ); - - IOobject fieldHeader - ( - baseFieldName, - runTime.timeName(), - mesh, - IOobject::MUST_READ - ); - - // Determine number of processor actually having this field - label fieldFound = (fieldHeader.headerOk() ? 1 : 0); - reduce(fieldFound, sumOp<label>()); - - - if (fieldFound == Pstream::nProcs()) - { - if - ( - fieldHeader.headerClassName() - == volScalarField::typeName - ) - { - Info<< "Sampling " << fieldHeader.headerClassName() - << ' ' << fieldName << endl; - - volScalarField sField(fieldHeader, mesh); - - sampledScalarFields.set - ( - nScalarFields, - new volFieldSampler<scalar> - ( - pInterpPtr(), - interpolationSchemes, - mag(sField), - sampleSets - ) - ); - - nScalarFields++; - } - else if - ( - fieldHeader.headerClassName() - == volVectorField::typeName - ) - { - Info<< "Sampling " << fieldHeader.headerClassName() - << ' ' << fieldName << endl; - - volVectorField vField(fieldHeader, mesh); - - sampledScalarFields.set - ( - nScalarFields, - new volFieldSampler<scalar> - ( - pInterpPtr(), - interpolationSchemes, - mag(vField), - sampleSets - ) - ); - - nScalarFields++; - } - else if - ( - fieldHeader.headerClassName() - == volSphericalTensorField::typeName - ) - { - Info<< "Sampling " << fieldHeader.headerClassName() - << ' ' << fieldName << endl; - - volSphericalTensorField tField(fieldHeader, mesh); - - sampledScalarFields.set - ( - nScalarFields, - new volFieldSampler<scalar> - ( - pInterpPtr(), - interpolationSchemes, - mag(tField), - sampleSets - ) - ); - - nScalarFields++; - } - else if - ( - fieldHeader.headerClassName() - == volSymmTensorField::typeName - ) - { - Info<< "Sampling " << fieldHeader.headerClassName() - << ' ' << fieldName << endl; - - volSymmTensorField tField(fieldHeader, mesh); - - sampledScalarFields.set - ( - nScalarFields, - new volFieldSampler<scalar> - ( - pInterpPtr(), - interpolationSchemes, - mag(tField), - sampleSets - ) - ); - - nScalarFields++; - } - else if - ( - fieldHeader.headerClassName() - == volTensorField::typeName - ) - { - Info<< "Sampling " << fieldHeader.headerClassName() - << ' ' << fieldName << endl; - - volTensorField tField(fieldHeader, mesh); - - sampledScalarFields.set - ( - nScalarFields, - new volFieldSampler<scalar> - ( - pInterpPtr(), - interpolationSchemes, - mag(tField), - sampleSets - ) - ); - - nScalarFields++; - } - else - { - FatalErrorIn(args.executable()) - << "mag function not supported for field " - << fieldName << " of type " - << fieldHeader.headerClassName() - << exit(FatalError); - } - } - else if (fieldFound != 0) - { - FatalErrorIn(args.executable()) - << "Did not find field " << baseFieldName - << " on all processors" << exit(FatalError); - } - } - } - } - - // Set the sampledFields to the correct size - sampledScalarFields.setSize(nScalarFields); - sampledVectorFields.setSize(nVectorFields); - sampledSphericalTensorFields.setSize(nSphericalTensorFields); - sampledSymmTensorFields.setSize(nSymmTensorFields); - sampledTensorFields.setSize(nTensorFields); - - // - // Now we have all results - // - sampleSets : list of all sampling sets - // - sampledXXXFields : list of all sampled fields - // - - // Combine sampleSets from processors. Sort by curveDist. Return - // ordering in indexSets. - // Note: only master results are valid - - PtrList<coordSet> masterSampleSets(sampleSets.size()); - labelListList indexSets(sampleSets.size()); - combineSampleSets(sampleSets, masterSampleSets, indexSets); - - - // Combine sampled fields from processors. - // Note: only master results are valid - - PtrList<volFieldSampler<scalar> > masterScalarFields - ( - sampledScalarFields.size() - ); - combineSampleValues(sampledScalarFields, indexSets, masterScalarFields); - - PtrList<volFieldSampler<vector> > masterVectorFields - ( - sampledVectorFields.size() - ); - combineSampleValues(sampledVectorFields, indexSets, masterVectorFields); - - PtrList<volFieldSampler<sphericalTensor> > masterSphericalTensorFields - ( - sampledSphericalTensorFields.size() - ); - combineSampleValues - ( - sampledSphericalTensorFields, - indexSets, - masterSphericalTensorFields - ); - - PtrList<volFieldSampler<symmTensor> > masterSymmTensorFields - ( - sampledSymmTensorFields.size() - ); - combineSampleValues - ( - sampledSymmTensorFields, - indexSets, - masterSymmTensorFields - ); - - PtrList<volFieldSampler<tensor> > masterTensorFields - ( - sampledTensorFields.size() - ); - combineSampleValues(sampledTensorFields, indexSets, masterTensorFields); - - - // - // Write each set, each Field type (scalar/vector/tensor) to separate - // file. - // - - if (Pstream::master()) - { - fileName timeDir(samplePath/runTime.timeName()); - - // Mirror the time structure under "samples" - mkDir(timeDir); - - forAll(masterSampleSets, setI) - { - writeSampleFile - ( - masterSampleSets[setI], - masterScalarFields, - setI, - timeDir, - writeFormat - ); - - writeSampleFile - ( - masterSampleSets[setI], - masterVectorFields, - setI, - timeDir, - writeFormat - ); - - writeSampleFile - ( - masterSampleSets[setI], - masterSphericalTensorFields, - setI, - timeDir, - writeFormat - ); - - writeSampleFile - ( - masterSampleSets[setI], - masterSymmTensorFields, - setI, - timeDir, - writeFormat - ); - - writeSampleFile - ( - masterSampleSets[setI], - masterTensorFields, - setI, - timeDir, - writeFormat - ); - } - - Info<< endl; - } - } - - Info<< "End\n" << endl; - - return 0; -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/sampleDict b/applications/utilities/postProcessing/sampling/sample/sampleDict deleted file mode 100644 index de61f90f831..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/sampleDict +++ /dev/null @@ -1,119 +0,0 @@ -/*---------------------------------------------------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ - -FoamFile -{ - version 2.0; - format ascii; - - root "/home/penfold/mattijs/foam/mattijs2.1/run/icoFoam"; - case "cavity"; - instance "system"; - local ""; - - class dictionary; - object sampleDict; -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -// interpolationScheme : choice of -// cell : use cell-centre value only; constant over cells -// cellPoint : use cell-centre and vertex values -// cellPointFace : use cell-centre, vertex and face values. -// 1] vertex values determined from neighbouring cell-centre values -// 2] face values determined using the current face interpolation scheme -// for the field (linear, gamma, etc.) -interpolationScheme cellPoint; - - -// writeFormat : choice of -// xmgr -// jplot -// gnuplot -// raw -writeFormat raw; - - -// sampling definition: -// -// Dictionary with fields -// type : type of sampling method -// name : name of samples. Used e.g. as filename -// axis : how to write point coordinate -// ... : depending on method -// -// -// sample: choice of -// uniform evenly distributed points on line -// face one point per face intersection -// midPoint one point per cell, inbetween two face intersections -// midPointAndFace combination of face and midPoint -// -// curve specified points, not nessecary on line, uses -// tracking -// cloud specified points, uses findCell -// -// -// axis: how to write point coordinate. Choice of -// - x/y/z: x/y/z coordinate only -// - xyz: three columns -// (probably does not make sense for anything but raw) -// - distance: distance from start of sampling line (if uses line) or -// distance from first specified sampling point -// -// type specific: -// uniform, face, midPoint, midPointAndFace : start and end coordinate -// uniform: extra number of sampling points -// curve, cloud: list of coordinates -sampleSets -( - uniform - { - name lineX1; - axis distance; - - //- cavity - start (0.02 0.051 0.005); - end (0.06 0.051 0.005); - nPoints 10; - } - - face - { - name lineX2; - axis x; - - //- flangeHex - //start (0 20 -20); - //end (0 20 10); - - //- nablaCavity - //start (-1 0.05 0.005); - //end ( 1 0.05 0.005); - - //- cavity - start (0.0 0.51 0.005); - end (2 0.51 0.005); - nPoints 10; - } -); - - -// Fields to sample. -fields -( - p - mag(U) - U.component(1) - R.component(0) -); - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/sampleSets/cloud/cloudSet.C b/applications/utilities/postProcessing/sampling/sample/sampleSets/cloud/cloudSet.C deleted file mode 100644 index 9afa3b30cd3..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/sampleSets/cloud/cloudSet.C +++ /dev/null @@ -1,177 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Description - -\*---------------------------------------------------------------------------*/ - -#include "cloudSet.H" -#include "sampleSet.H" -#include "meshSearch.H" -#include "DynamicList.H" -#include "polyMesh.H" -#include "addToRunTimeSelectionTable.H" -#include "word.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - -defineTypeNameAndDebug(cloudSet, 0); - -addToRunTimeSelectionTable(sampleSet, cloudSet, word); - -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -void Foam::cloudSet::calcSamples -( - DynamicList<point>& samplingPts, - DynamicList<label>& samplingCells, - DynamicList<label>& samplingFaces, - DynamicList<label>& samplingSegments, - DynamicList<scalar>& samplingCurveDist -) const -{ - forAll(sampleCoords_, sampleI) - { - label cellI = searchEngine().findCell(sampleCoords_[sampleI]); - - if (cellI != -1) - { - samplingPts.append(sampleCoords_[sampleI]); - samplingCells.append(cellI); - samplingFaces.append(-1); - samplingSegments.append(0); - samplingCurveDist.append(1.0 * sampleI); - } - } -} - - -void Foam::cloudSet::genSamples() -{ - // Storage for sample points - DynamicList<point> samplingPts; - DynamicList<label> samplingCells; - DynamicList<label> samplingFaces; - DynamicList<label> samplingSegments; - DynamicList<scalar> samplingCurveDist; - - calcSamples - ( - samplingPts, - samplingCells, - samplingFaces, - samplingSegments, - samplingCurveDist - ); - - samplingPts.shrink(); - samplingCells.shrink(); - samplingFaces.shrink(); - samplingSegments.shrink(); - samplingCurveDist.shrink(); - - setSamples - ( - samplingPts, - samplingCells, - samplingFaces, - samplingSegments, - samplingCurveDist - ); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from components -Foam::cloudSet::cloudSet -( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& axis, - const List<point>& sampleCoords -) -: - sampleSet(mesh, searchEngine, name, axis), - sampleCoords_(sampleCoords) -{ - genSamples(); - - if (debug) - { - write(Info); - } -} - - -// Construct from dictionary -Foam::cloudSet::cloudSet -( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict -) -: - sampleSet(mesh, searchEngine, dict), - sampleCoords_(dict.lookup("points")) -{ - genSamples(); - - if (debug) - { - write(Info); - } -} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::cloudSet::~cloudSet() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::point Foam::cloudSet::getRefPoint(const List<point>& pts) const -{ - if (pts.size() > 0) - { - // Use first samplePt as starting point - return pts[0]; - } - else - { - return vector::zero; - } -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/sampleSets/cloud/cloudSet.H b/applications/utilities/postProcessing/sampling/sample/sampleSets/cloud/cloudSet.H deleted file mode 100644 index 6aafc96c903..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/sampleSets/cloud/cloudSet.H +++ /dev/null @@ -1,126 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::cloudSet - -Description - -SourceFiles - cloudSet.C - -\*---------------------------------------------------------------------------*/ - -#ifndef cloudSet_H -#define cloudSet_H - -#include "sampleSet.H" -#include "DynamicList.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// Forward declaration of classes -class passiveParticle; -template<class Type> class particle; - -/*---------------------------------------------------------------------------*\ - Class cloudSet Declaration -\*---------------------------------------------------------------------------*/ - -class cloudSet -: - public sampleSet -{ - // Private data - - //- Sampling points - List<point> sampleCoords_; - - - // Private Member Functions - - //- Samples all points in sampleCoords. - void calcSamples - ( - DynamicList<point>& samplingPts, - DynamicList<label>& samplingCells, - DynamicList<label>& samplingFaces, - DynamicList<label>& samplingSegments, - DynamicList<scalar>& samplingCurveDist - ) const; - - //- Uses calcSamples to obtain samples. Copies them into *this. - void genSamples(); - -public: - - //- Runtime type information - TypeName("cloud"); - - - // Constructors - - //- Construct from components - cloudSet - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& axis, - const List<point>& sampleCoords - ); - - //- Construct from dictionary - cloudSet - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict - ); - - - // Destructor - - virtual ~cloudSet(); - - - // Member Functions - - //- Get reference point - virtual point getRefPoint(const List<point>&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/sampleSets/coordSet/coordSet.C b/applications/utilities/postProcessing/sampling/sample/sampleSets/coordSet/coordSet.C deleted file mode 100644 index badf0067035..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/sampleSets/coordSet/coordSet.C +++ /dev/null @@ -1,174 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Description - -\*---------------------------------------------------------------------------*/ - -#include "coordSet.H" - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -//- Construct from components -Foam::coordSet::coordSet -( - const word& name, - const word& axis -) -: - pointField(0), - name_(name), - axis_(axis), - refPoint_(vector::zero) -{} - - -//- Construct from components -Foam::coordSet::coordSet -( - const word& name, - const word& axis, - const List<point>& points, - const point& refPoint -) -: - pointField(points), - name_(name), - axis_(axis), - refPoint_(refPoint) -{} - - -//- Construct from components -Foam::coordSet::coordSet -( - const word& name, - const word& axis, - const scalarField& points, - const scalar refPoint -) -: - pointField(points.size(), point::zero), - name_(name), - axis_(axis), - refPoint_(point::zero) -{ - if (axis_ == "x" || axis_ == "distance") - { - refPoint_.x() = refPoint; - replace(point::X, points); - } - else if (axis_ == "y") - { - replace(point::Y, points); - } - else if (axis_ == "z") - { - replace(point::Z, points); - } - else - { - FatalErrorIn - ( - "coordSet::coordSet(const word& name," - "const word& axis, const List<scalar>& points," - "const scalar refPoint)" - ) << "Illegal axis specification " << axis_ - << " for sampling line " << name_ - << exit(FatalError); - } -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -bool Foam::coordSet::hasVectorAxis() const -{ - return axis_ == "xyz"; -} - - -Foam::scalar Foam::coordSet::scalarCoord -( - const label index -) const -{ - const point& p = operator[](index); - - if (axis_ == "x") - { - return p.x(); - } - else if (axis_ == "y") - { - return p.y(); - } - else if (axis_ == "z") - { - return p.z(); - } - else if (axis_ == "distance") - { - // Use distance to reference point - return mag(p - refPoint_); - } - else - { - FatalErrorIn - ( - "coordSet::scalarCoord(const label)" - ) << "Illegal axis specification " << axis_ - << " for sampling line " << name_ - << exit(FatalError); - - return 0; - } -} - - -Foam::point Foam::coordSet::vectorCoord(const label index) const -{ - const point& p = operator[](index); - - return p; -} - - -Foam::Ostream& Foam::coordSet::write(Ostream& os) const -{ - os << "name:" << name_ << " axis:" << axis_ << " reference:" << refPoint_ - << endl - << endl << "\t(coord)" - << endl; - - forAll(*this, sampleI) - { - os << '\t' << operator[](sampleI) << endl; - } - - return os; -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/sampleSets/coordSet/coordSet.H b/applications/utilities/postProcessing/sampling/sample/sampleSets/coordSet/coordSet.H deleted file mode 100644 index e9b910cbdd0..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/sampleSets/coordSet/coordSet.H +++ /dev/null @@ -1,145 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::coordSet - -Description - Holds list of sampling positions - -SourceFiles - coordSet.C - -\*---------------------------------------------------------------------------*/ - -#ifndef coordSet_H -#define coordSet_H - -#include "pointField.H" -#include "word.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class coordSet Declaration -\*---------------------------------------------------------------------------*/ - -class coordSet -: - public pointField -{ - -protected: - - //- Name - const word name_; - - //- Axis write type - const word axis_; - - //- Reference point for "distance" write specifier. - point refPoint_; - -public: - - // Constructors - - //- Construct from components - coordSet - ( - const word& name, - const word& axis - ); - - - //- Construct from components - coordSet - ( - const word& name, - const word& axis, - const List<point>& points, - const point& refPoint = point::zero - ); - - //- Construct from components - coordSet - ( - const word& name, - const word& axis, - const scalarField& points, - const scalar refPoint = 0.0 - ); - - - // Member functions - - const word& name() const - { - return name_; - } - - const word& axis() const - { - return axis_; - } - - const point& refPoint() const - { - return refPoint_; - } - - //- Is axis specification a vector - bool hasVectorAxis() const; - - //- Get coordinate of point according to axis specification. - // If axis="distance" can be: -distance to starting point (e.g. - // uniformSet) or -distance to first sampling point - // (e.g. cloudSet) - scalar scalarCoord - ( - const label index - ) const; - - //- Get point according to axis="full" specification - vector vectorCoord - ( - const label index - ) const; - - Ostream& write(Ostream& os) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/sampleSets/curve/curveSet.C b/applications/utilities/postProcessing/sampling/sample/sampleSets/curve/curveSet.C deleted file mode 100644 index 91c7ee5ded0..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/sampleSets/curve/curveSet.C +++ /dev/null @@ -1,421 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Description - -\*---------------------------------------------------------------------------*/ - -#include "curveSet.H" -#include "meshSearch.H" -#include "DynamicList.H" -#include "polyMesh.H" - -#include "Cloud.H" -#include "passiveParticle.H" -#include "IDLList.H" - -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - -defineTypeNameAndDebug(curveSet, 0); - -addToRunTimeSelectionTable(sampleSet, curveSet, word); - -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -// Sample till hits boundary. -bool Foam::curveSet::trackToBoundary -( - Particle<passiveParticle>& singleParticle, - label& sampleI, - DynamicList<point>& samplingPts, - DynamicList<label>& samplingCells, - DynamicList<label>& samplingFaces, - DynamicList<scalar>& samplingCurveDist -) const -{ - // Alias - const point& trackPt = singleParticle.position(); - - while(true) - { - // Local geometry info - const vector offset = sampleCoords_[sampleI+1] - sampleCoords_[sampleI]; - const scalar smallDist = mag(tol*offset); - - point oldPos = trackPt; - label facei = -1; - do - { - singleParticle.stepFraction() = 0; - singleParticle.track(sampleCoords_[sampleI+1]); - } - while - ( - !singleParticle.onBoundary() - && (mag(trackPt - oldPos) < smallDist) - ); - - if (singleParticle.onBoundary()) - { - //Info<< "trackToBoundary : reached boundary" - // << " trackPt:" << trackPt << endl; - if - ( - mag(trackPt - sampleCoords_[sampleI+1]) - < smallDist - ) - { - // Reached samplePt on boundary - //Info<< "trackToBoundary : boundary. also sampling." - // << " trackPt:" << trackPt << " sampleI+1:" << sampleI+1 - // << endl; - samplingPts.append(trackPt); - samplingCells.append(singleParticle.cell()); - samplingFaces.append(facei); - - // trackPt is at sampleI+1 - samplingCurveDist.append(1.0*(sampleI+1)); - } - return true; - } - - // Reached samplePt in cell - samplingPts.append(trackPt); - samplingCells.append(singleParticle.cell()); - samplingFaces.append(-1); - - // Convert trackPt to fraction inbetween sampleI and sampleI+1 - scalar dist = - mag(trackPt - sampleCoords_[sampleI]) - / mag(sampleCoords_[sampleI+1] - sampleCoords_[sampleI]); - samplingCurveDist.append(sampleI + dist); - - // go to next samplePt - sampleI++; - - if (sampleI == sampleCoords_.size() - 1) - { - // no more samples. - //Info<< "trackToBoundary : Reached end : sampleI now:" << sampleI - // << endl; - return false; - } - } -} - - -void Foam::curveSet::calcSamples -( - DynamicList<point>& samplingPts, - DynamicList<label>& samplingCells, - DynamicList<label>& samplingFaces, - DynamicList<label>& samplingSegments, - DynamicList<scalar>& samplingCurveDist -) const -{ - // Check sampling points - if (sampleCoords_.size() < 2) - { - FatalErrorIn("curveSet::calcSamples()") - << "Incorrect sample specification. Too few points:" - << sampleCoords_ << exit(FatalError); - } - point oldPoint = sampleCoords_[0]; - for(label sampleI = 1; sampleI < sampleCoords_.size(); sampleI++) - { - if (mag(sampleCoords_[sampleI] - oldPoint) < SMALL) - { - FatalErrorIn("curveSet::calcSamples()") - << "Incorrect sample specification." - << " Point " << sampleCoords_[sampleI-1] - << " at position " << sampleI-1 - << " and point " << sampleCoords_[sampleI] - << " at position " << sampleI - << " are too close" << exit(FatalError); - } - oldPoint = sampleCoords_[sampleI]; - } - - // current segment number - label segmentI = 0; - - // starting index of current segment in samplePts - label startSegmentI = 0; - - label sampleI = 0; - - point lastSample(GREAT, GREAT, GREAT); - while(true) - { - // Get boundary intersection - point trackPt; - label trackCellI = -1; - label trackFaceI = -1; - - do - { - const vector offset = - sampleCoords_[sampleI+1] - sampleCoords_[sampleI]; - const scalar smallDist = mag(tol*offset); - - - // Get all boundary intersections - List<pointIndexHit> bHits = - searchEngine().intersections - ( - sampleCoords_[sampleI], - sampleCoords_[sampleI+1] - ); - - point bPoint(GREAT, GREAT, GREAT); - label bFaceI = -1; - - if (bHits.size() > 0) - { - bPoint = bHits[0].hitPoint(); - bFaceI = bHits[0].index(); - } - - // Get tracking point - - bool isSample = - getTrackingPoint - ( - sampleCoords_[sampleI+1] - sampleCoords_[sampleI], - sampleCoords_[sampleI], - bPoint, - bFaceI, - - trackPt, - trackCellI, - trackFaceI - ); - - if (isSample && (mag(lastSample - trackPt) > smallDist)) - { - //Info<< "calcSamples : getTrackingPoint returned valid sample " - // << " trackPt:" << trackPt - // << " trackFaceI:" << trackFaceI - // << " trackCellI:" << trackCellI - // << " sampleI:" << sampleI - // << " dist:" << dist - // << endl; - - samplingPts.append(trackPt); - samplingCells.append(trackCellI); - samplingFaces.append(trackFaceI); - - // Convert sampling position to unique curve parameter. Get - // fraction of distance between sampleI and sampleI+1. - scalar dist = - mag(trackPt - sampleCoords_[sampleI]) - / mag(sampleCoords_[sampleI+1] - sampleCoords_[sampleI]); - samplingCurveDist.append(sampleI + dist); - - lastSample = trackPt; - } - - if (trackCellI == -1) - { - // No intersection found. Go to next point - sampleI++; - } - } while((trackCellI == -1) && (sampleI < sampleCoords_.size() - 1)); - - if (sampleI == sampleCoords_.size() - 1) - { - //Info<< "calcSamples : Reached end of samples: " - // << " sampleI now:" << sampleI - // << endl; - break; - } - - // - // Segment sampleI .. sampleI+1 intersected by domain - // - - // Initialize tracking starting from sampleI - Cloud<passiveParticle> particles(mesh(), IDLList<passiveParticle>()); - - passiveParticle singleParticle - ( - particles, - trackPt, - trackCellI - ); - - bool bReached = trackToBoundary - ( - singleParticle, - sampleI, - samplingPts, - samplingCells, - samplingFaces, - samplingCurveDist - ); - - // fill sampleSegments - for(label i = samplingPts.size() - 1; i >= startSegmentI; --i) - { - samplingSegments.append(segmentI); - } - - if (!bReached) - { - //Info<< "calcSamples : Reached end of samples: " - // << " sampleI now:" << sampleI - // << endl; - break; - } - lastSample = singleParticle.position(); - - - // Find next boundary. - sampleI++; - - if (sampleI == sampleCoords_.size() - 1) - { - //Info<< "calcSamples : Reached end of samples: " - // << " sampleI now:" << sampleI - // << endl; - break; - } - - segmentI++; - - startSegmentI = samplingPts.size(); - } -} - - -void Foam::curveSet::genSamples() -{ - // Storage for sample points - DynamicList<point> samplingPts; - DynamicList<label> samplingCells; - DynamicList<label> samplingFaces; - DynamicList<label> samplingSegments; - DynamicList<scalar> samplingCurveDist; - - calcSamples - ( - samplingPts, - samplingCells, - samplingFaces, - samplingSegments, - samplingCurveDist - ); - - samplingPts.shrink(); - samplingCells.shrink(); - samplingFaces.shrink(); - samplingSegments.shrink(); - samplingCurveDist.shrink(); - - setSamples - ( - samplingPts, - samplingCells, - samplingFaces, - samplingSegments, - samplingCurveDist - ); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from components -Foam::curveSet::curveSet -( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& axis, - const List<point>& sampleCoords -) -: - sampleSet(mesh, searchEngine, name, axis), - sampleCoords_(sampleCoords) -{ - genSamples(); - - if (debug) - { - write(Info); - } -} - - -// Construct from dictionary -Foam::curveSet::curveSet -( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict -) -: - sampleSet(mesh, searchEngine, dict), - sampleCoords_(dict.lookup("points")) -{ - genSamples(); - - if (debug) - { - write(Info); - } -} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::curveSet::~curveSet() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::point Foam::curveSet::getRefPoint(const List<point>& pts) const -{ - if (pts.size() > 0) - { - // Use first samplePt as starting point - return pts[0]; - } - else - { - return vector::zero; - } -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/sampleSets/curve/curveSet.H b/applications/utilities/postProcessing/sampling/sample/sampleSets/curve/curveSet.H deleted file mode 100644 index 579401fbbc2..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/sampleSets/curve/curveSet.H +++ /dev/null @@ -1,139 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::curveSet - -Description - -SourceFiles - curveSet.C - -\*---------------------------------------------------------------------------*/ - -#ifndef curveSet_H -#define curveSet_H - -#include "sampleSet.H" -#include "DynamicList.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// Forward declaration of classes -class passiveParticle; -template<class Type> class Particle; - -/*---------------------------------------------------------------------------*\ - Class curveSet Declaration -\*---------------------------------------------------------------------------*/ - -class curveSet -: - public sampleSet -{ - // Private data - - //- sampling points - List<point> sampleCoords_; - - - // Private Member Functions - - //- Sample till hits boundary. Called with singleParticle at position - // inbetween sampleCoords_[sampleI] and sampleCoords_[sampleI+1]. - // Returns false if end of samples reached. - bool trackToBoundary - ( - Particle<passiveParticle>& singleParticle, - label& sampleI, - DynamicList<point>& samplingPts, - DynamicList<label>& samplingCells, - DynamicList<label>& samplingFaces, - DynamicList<scalar>& samplingCurveDist - ) const; - - //- Samples all point in sampleCoords_ - // samplingSegments contains segmentNo for each sample. - void calcSamples - ( - DynamicList<point>& samplingPts, - DynamicList<label>& samplingCells, - DynamicList<label>& samplingFaces, - DynamicList<label>& samplingSegments, - DynamicList<scalar>& samplingCurveDist - ) const; - - //- Uses calcSamples to obtain samples. Copies them into *this. - void genSamples(); -public: - - //- Runtime type information - TypeName("curve"); - - - // Constructors - - //- Construct from components - curveSet - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& axis, - const List<point>& samplePoints - ); - - //- Construct from dictionary - curveSet - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict - ); - - - // Destructor - - virtual ~curveSet(); - - - // Member Functions - - //- Get reference point - virtual point getRefPoint(const List<point>&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/sampleSets/face/faceOnlySet.C b/applications/utilities/postProcessing/sampling/sample/sampleSets/face/faceOnlySet.C deleted file mode 100644 index db0486af2b6..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/sampleSets/face/faceOnlySet.C +++ /dev/null @@ -1,396 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Description - -\*---------------------------------------------------------------------------*/ - -#include "faceOnlySet.H" -#include "meshSearch.H" -#include "DynamicList.H" -#include "polyMesh.H" - -#include "Cloud.H" -#include "passiveParticle.H" -#include "IDLList.H" - -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(faceOnlySet, 0); - addToRunTimeSelectionTable(sampleSet, faceOnlySet, word); -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - - -// Sample singly connected segment. Returns false if end_ reached. -bool Foam::faceOnlySet::trackToBoundary -( - Particle<passiveParticle>& singleParticle, - DynamicList<point>& samplingPts, - DynamicList<label>& samplingCells, - DynamicList<label>& samplingFaces, - DynamicList<scalar>& samplingCurveDist -) const -{ - // distance vector between sampling points - const vector offset = end_ - start_; - const vector smallVec = tol*offset; - const scalar smallDist = mag(smallVec); - - // Alias - const point& trackPt = singleParticle.position(); - - while(true) - { - point oldPoint = trackPt; - - singleParticle.trackToFace(end_); - - if (singleParticle.face() != -1 && mag(oldPoint - trackPt) > smallDist) - { - // Reached face. Sample. - samplingPts.append(trackPt); - samplingCells.append(singleParticle.cell()); - samplingFaces.append(singleParticle.face()); - samplingCurveDist.append(mag(trackPt - start_)); - } - - if (mag(trackPt - end_) < smallDist) - { - // end reached - return false; - } - else if (singleParticle.onBoundary()) - { - // Boundary reached. - return true; - } - } -} - - -void Foam::faceOnlySet::calcSamples -( - DynamicList<point>& samplingPts, - DynamicList<label>& samplingCells, - DynamicList<label>& samplingFaces, - DynamicList<label>& samplingSegments, - DynamicList<scalar>& samplingCurveDist -) const -{ - // distance vector between sampling points - if (mag(end_ - start_) < SMALL) - { - FatalErrorIn("faceOnlySet::calcSamples()") - << "Incorrect sample specification :" - << " start equals end point." << endl - << " start:" << start_ - << " end:" << end_ - << exit(FatalError); - } - - const vector offset = (end_ - start_); - const vector normOffset = offset/mag(offset); - const vector smallVec = tol*offset; - const scalar smallDist = mag(smallVec); - - - // Get all boundary intersections - List<pointIndexHit> bHits = - searchEngine().intersections - ( - start_ - smallVec, - end_ + smallVec - ); - - point bPoint(GREAT, GREAT, GREAT); - label bFaceI = -1; - - if (bHits.size() > 0) - { - bPoint = bHits[0].hitPoint(); - bFaceI = bHits[0].index(); - } - - // Get first tracking point. Use bPoint, bFaceI if provided. - - point trackPt; - label trackCellI = -1; - label trackFaceI = -1; - - //Info<< "before getTrackingPoint : bPoint:" << bPoint - // << " bFaceI:" << bFaceI << endl; - - getTrackingPoint - ( - offset, - start_, - bPoint, - bFaceI, - - trackPt, - trackCellI, - trackFaceI - ); - - //Info<< "after getTrackingPoint : " - // << " trackPt:" << trackPt - // << " trackCellI:" << trackCellI - // << " trackFaceI:" << trackFaceI - // << endl; - - if (trackCellI == -1) - { - // Line start_ - end_ does not intersect domain at all. - // (or is along edge) - // Set points and cell/face labels to empty lists - //Info<< "calcSamples : Both start_ and end_ outside domain" - // << endl; - - return; - } - - if (trackFaceI == -1) - { - // No boundary face. Check for nearish internal face - trackFaceI = findNearFace(trackCellI, trackPt, smallDist); - } - - //Info<< "calcSamples : got first point to track from :" - // << " trackPt:" << trackPt - // << " trackCell:" << trackCellI - // << " trackFace:" << trackFaceI - // << endl; - - // - // Track until hit end of all boundary intersections - // - - // current segment number - label segmentI = 0; - - // starting index of current segment in samplePts - label startSegmentI = 0; - - // index in bHits; current boundary intersection - label bHitI = 1; - - while(true) - { - if (trackFaceI != -1) - { - //Info<< "trackPt:" << trackPt << " on face so use." << endl; - samplingPts.append(trackPt); - samplingCells.append(trackCellI); - samplingFaces.append(trackFaceI); - samplingCurveDist.append(mag(trackPt - start_)); - } - - // Initialize tracking starting from trackPt - Cloud<passiveParticle> particles(mesh(), IDLList<passiveParticle>()); - - passiveParticle singleParticle - ( - particles, - trackPt, - trackCellI - ); - - bool reachedBoundary = trackToBoundary - ( - singleParticle, - samplingPts, - samplingCells, - samplingFaces, - samplingCurveDist - ); - - // fill sampleSegments - for(label i = samplingPts.size() - 1; i >= startSegmentI; --i) - { - samplingSegments.append(segmentI); - } - - - if (!reachedBoundary) - { - //Info<< "calcSamples : Reached end of samples: " - // << " samplePt now:" << singleParticle.position() - // << endl; - break; - } - - - // Go past boundary intersection where tracking stopped - // Use coordinate comparison instead of face comparison for - // accuracy reasons - - bool foundValidB = false; - - while (bHitI < bHits.size()) - { - scalar dist = - (bHits[bHitI].hitPoint() - singleParticle.position()) - & normOffset; - - //Info<< "Finding next boundary : " - // << "bPoint:" << bHits[bHitI].hitPoint() - // << " tracking:" << singleParticle.position() - // << " dist:" << dist - // << endl; - - if (dist > smallDist) - { - // hitpoint is past tracking position - foundValidB = true; - break; - } - else - { - bHitI++; - } - } - - if (!foundValidB) - { - // No valid boundary intersection found beyond tracking position - break; - } - - // Update starting point for tracking - trackFaceI = bHits[bHitI].index(); - trackPt = pushIn(bHits[bHitI].hitPoint(), trackFaceI); - trackCellI = getBoundaryCell(trackFaceI); - - segmentI++; - - startSegmentI = samplingPts.size(); - } -} - - -void Foam::faceOnlySet::genSamples() -{ - // Storage for sample points - DynamicList<point> samplingPts; - DynamicList<label> samplingCells; - DynamicList<label> samplingFaces; - DynamicList<label> samplingSegments; - DynamicList<scalar> samplingCurveDist; - - calcSamples - ( - samplingPts, - samplingCells, - samplingFaces, - samplingSegments, - samplingCurveDist - ); - - samplingPts.shrink(); - samplingCells.shrink(); - samplingFaces.shrink(); - samplingSegments.shrink(); - samplingCurveDist.shrink(); - - // Copy into *this - setSamples - ( - samplingPts, - samplingCells, - samplingFaces, - samplingSegments, - samplingCurveDist - ); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from components -Foam::faceOnlySet::faceOnlySet -( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& axis, - const point& start, - const point& end -) -: - sampleSet(mesh, searchEngine, name, axis), - start_(start), - end_(end) -{ - genSamples(); - - if (debug) - { - write(Info); - } -} - - -// Construct from dictionary -Foam::faceOnlySet::faceOnlySet -( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict -) -: - sampleSet(mesh, searchEngine, dict), - start_(dict.lookup("start")), - end_(dict.lookup("end")) -{ - genSamples(); - - if (debug) - { - write(Info); - } -} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::faceOnlySet::~faceOnlySet() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::point Foam::faceOnlySet::getRefPoint(const List<point>& pts) const -{ - return start_; -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/sampleSets/face/faceOnlySet.H b/applications/utilities/postProcessing/sampling/sample/sampleSets/face/faceOnlySet.H deleted file mode 100644 index 213881c00aa..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/sampleSets/face/faceOnlySet.H +++ /dev/null @@ -1,153 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::faceOnlySet - -Description - -SourceFiles - faceOnlySet.C - -\*---------------------------------------------------------------------------*/ - -#ifndef faceOnlySet_H -#define faceOnlySet_H - -#include "sampleSet.H" -#include "DynamicList.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// Forward declaration of classes -class passiveParticle; -template<class Type> class Particle; - -/*---------------------------------------------------------------------------*\ - Class faceOnlySet Declaration -\*---------------------------------------------------------------------------*/ - -class faceOnlySet -: - public sampleSet -{ - // Private data - - //- Starting point - point start_; - - //- End point - point end_; - - - // Private Member Functions - - //- Samples from startTrackPt/CellI. Updates particle/samplePt/sampleI - // and puts - // samples in the DynamicLists. Returns false if end of all samples - // reached - bool trackToBoundary - ( - Particle<passiveParticle>& singleParticle, - DynamicList<point>& samplingPts, - DynamicList<label>& samplingCells, - DynamicList<label>& samplingFaces, - DynamicList<scalar>& samplingCurve - ) const; - - //- Samples from start_ to end_. samplingSegments contains segmentNo - // for each sample. - void calcSamples - ( - DynamicList<point>& samplingPts, - DynamicList<label>& samplingCells, - DynamicList<label>& samplingFaces, - DynamicList<label>& samplingSegments, - DynamicList<scalar>& samplingCurveDist - ) const; - - //- Uses calcSamples to obtain samples. Copies them into *this. - void genSamples(); - -public: - - //- Runtime type information - TypeName("face"); - - // Constructors - - //- Construct from components - faceOnlySet - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& axis, - const point& start, - const point& end - ); - - //- Construct from dictionary - faceOnlySet - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict - ); - - - // Destructor - - virtual ~faceOnlySet(); - - - // Member Functions - - const point& start() const - { - return start_; - } - - const point& end() const - { - return end_; - } - - //- Get reference point - virtual point getRefPoint(const List<point>&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/sampleSets/midPoint/midPointSet.C b/applications/utilities/postProcessing/sampling/sample/sampleSets/midPoint/midPointSet.C deleted file mode 100644 index 88d4b86a3e3..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/sampleSets/midPoint/midPointSet.C +++ /dev/null @@ -1,169 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "midPointSet.H" -#include "DynamicList.H" -#include "polyMesh.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - -defineTypeNameAndDebug(midPointSet, 0); - -addToRunTimeSelectionTable(sampleSet, midPointSet, word); - -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -// Rework faceOnlySet samples. -// Take two consecutive samples -void Foam::midPointSet::genSamples() -{ - // Generate midpoints. - - List<point> midPoints(2*size()); - labelList midCells(2*size()); - labelList midSegments(2*size()); - scalarList midCurveDist(2*size()); - - label midI = 0; - - label sampleI = 0; - - while(true) - { - // calculate midpoint between sampleI and sampleI+1 (if in same segment) - while - ( - (sampleI < size() - 1) - && (segments_[sampleI] == segments_[sampleI+1]) - ) - { - midPoints[midI] = - 0.5*(operator[](sampleI) + operator[](sampleI+1)); - - label cell1 = getCell(faces_[sampleI], midPoints[midI]); - label cell2 = getCell(faces_[sampleI+1], midPoints[midI]); - - if (cell1 != cell2) - { - FatalErrorIn("midPointSet::genSamples()") - << " sampleI:" << sampleI - << " midI:" << midI - << " sampleI:" << sampleI - << " pts[sampleI]:" << operator[](sampleI) - << " face[sampleI]:" << faces_[sampleI] - << " pts[sampleI+1]:" << operator[](sampleI+1) - << " face[sampleI+1]:" << faces_[sampleI+1] - << " cell1:" << cell1 - << " cell2:" << cell2 - << abort(FatalError); - } - - midCells[midI] = cell1; - midSegments[midI] = segments_[sampleI]; - midCurveDist[midI] = mag(midPoints[midI] - start()); - - midI++; - sampleI++; - } - - if (sampleI == size() - 1) - { - break; - } - sampleI++; - } - - midPoints.setSize(midI); - midCells.setSize(midI); - midSegments.setSize(midI); - midCurveDist.setSize(midI); - setSamples - ( - midPoints, - midCells, - labelList(midCells.size(), -1), - midSegments, - midCurveDist - ); -} - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from components -Foam::midPointSet::midPointSet -( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& axis, - const point& start, - const point& end -) -: - faceOnlySet(mesh, searchEngine, name, axis, start, end) -{ - genSamples(); - - if (debug) - { - write(Info); - } -} - - -// Construct from dictionary -Foam::midPointSet::midPointSet -( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict -) -: - faceOnlySet(mesh, searchEngine, dict) -{ - genSamples(); - - if (debug) - { - write(Info); - } -} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::midPointSet::~midPointSet() -{} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/sampleSets/midPoint/midPointSet.H b/applications/utilities/postProcessing/sampling/sample/sampleSets/midPoint/midPointSet.H deleted file mode 100644 index 10c2dc96881..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/sampleSets/midPoint/midPointSet.H +++ /dev/null @@ -1,104 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::midPointSet - -Description - -SourceFiles - midPointSet.C - -\*---------------------------------------------------------------------------*/ - -#ifndef midPointSet_H -#define midPointSet_H - -#include "faceOnlySet.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// Forward declaration of classes -class passiveParticle; -template<class Type> class particle; -class meshSearch; - -/*---------------------------------------------------------------------------*\ - Class midPointSet Declaration -\*---------------------------------------------------------------------------*/ - -class midPointSet -: - public faceOnlySet -{ - // Private Member Functions - - void genSamples(); - -public: - - //- Runtime type information - TypeName("midPoint"); - - - // Constructors - - //- Construct from components - midPointSet - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& axis, - const point& start, - const point& end - ); - - //- Construct from dictionary - midPointSet - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict - ); - - - // Destructor - - virtual ~midPointSet(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/sampleSets/midPointAndFace/midPointAndFaceSet.C b/applications/utilities/postProcessing/sampling/sample/sampleSets/midPointAndFace/midPointAndFaceSet.C deleted file mode 100644 index a425dc9bf65..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/sampleSets/midPointAndFace/midPointAndFaceSet.C +++ /dev/null @@ -1,197 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Description - -\*---------------------------------------------------------------------------*/ - -#include "midPointAndFaceSet.H" -#include "DynamicList.H" -#include "polyMesh.H" -#include "addToRunTimeSelectionTable.H" - - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - -defineTypeNameAndDebug(midPointAndFaceSet, 0); - -addToRunTimeSelectionTable(sampleSet, midPointAndFaceSet, word); - -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -// Rework faceOnlySet samples. -// Take two consecutive samples -void Foam::midPointAndFaceSet::genSamples() -{ - // Generate midpoints and add to face points - - List<point> newSamplePoints(3*size()); - labelList newSampleCells(3*size()); - labelList newSampleFaces(3*size()); - labelList newSampleSegments(3*size()); - scalarList newSampleCurveDist(3*size()); - - label newSampleI = 0; - - label sampleI = 0; - - while(true) - { - // sampleI is start of segment - - // Add sampleI - newSamplePoints[newSampleI] = operator[](sampleI); - newSampleCells[newSampleI] = cells_[sampleI]; - newSampleFaces[newSampleI] = faces_[sampleI]; - newSampleSegments[newSampleI] = segments_[sampleI]; - newSampleCurveDist[newSampleI] = curveDist_[sampleI]; - newSampleI++; - - while - ( - (sampleI < size() - 1) - && (segments_[sampleI] == segments_[sampleI+1]) - ) - { - // Add mid point - const point mid = 0.5*(operator[](sampleI) + operator[](sampleI+1)); - - label cell1 = getCell(faces_[sampleI], mid); - label cell2 = getCell(faces_[sampleI+1], mid); - - if (cell1 != cell2) - { - FatalErrorIn("midPointAndFaceSet::genSamples()") - << " sampleI:" << sampleI - << " newSampleI:" << newSampleI - << " pts[sampleI]:" << operator[](sampleI) - << " face[sampleI]:" << faces_[sampleI] - << " pts[sampleI+1]:" << operator[](sampleI+1) - << " face[sampleI+1]:" << faces_[sampleI+1] - << " cell1:" << cell1 - << " cell2:" << cell2 - << abort(FatalError); - } - - newSamplePoints[newSampleI] = mid; - newSampleCells[newSampleI] = cell1; - newSampleFaces[newSampleI] = -1; - newSampleSegments[newSampleI] = segments_[sampleI]; - newSampleCurveDist[newSampleI] = - mag(newSamplePoints[newSampleI] - start()); - - newSampleI++; - - // Add sampleI+1 - newSamplePoints[newSampleI] = operator[](sampleI+1); - newSampleCells[newSampleI] = cells_[sampleI+1]; - newSampleFaces[newSampleI] = faces_[sampleI+1]; - newSampleSegments[newSampleI] = segments_[sampleI+1]; - newSampleCurveDist[newSampleI] = - mag(newSamplePoints[newSampleI] - start()); - - newSampleI++; - - sampleI++; - } - - if (sampleI == size() - 1) - { - break; - } - sampleI++; - } - - newSamplePoints.setSize(newSampleI); - newSampleCells.setSize(newSampleI); - newSampleFaces.setSize(newSampleI); - newSampleSegments.setSize(newSampleI); - newSampleCurveDist.setSize(newSampleI); - - setSamples - ( - newSamplePoints, - newSampleCells, - newSampleFaces, - newSampleSegments, - newSampleCurveDist - ); -} - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from components -Foam::midPointAndFaceSet::midPointAndFaceSet -( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& axis, - const point& start, - const point& end -) -: - faceOnlySet(mesh, searchEngine, name, axis, start, end) -{ - genSamples(); - - if (debug) - { - write(Info); - } -} - - -// Construct from dictionary -Foam::midPointAndFaceSet::midPointAndFaceSet -( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict -) -: - faceOnlySet(mesh, searchEngine, dict) -{ - genSamples(); - - if (debug) - { - write(Info); - } -} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::midPointAndFaceSet::~midPointAndFaceSet() -{} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/sampleSets/midPointAndFace/midPointAndFaceSet.H b/applications/utilities/postProcessing/sampling/sample/sampleSets/midPointAndFace/midPointAndFaceSet.H deleted file mode 100644 index 12d957b60fe..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/sampleSets/midPointAndFace/midPointAndFaceSet.H +++ /dev/null @@ -1,105 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::midPointAndFaceSet - -Description - -SourceFiles - midPointAndFaceSet.C - -\*---------------------------------------------------------------------------*/ - -#ifndef midPointAndFaceSet_H -#define midPointAndFaceSet_H - -#include "faceOnlySet.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// Forward declaration of classes -class passiveParticle; -template<class Type> class particle; -class meshSearch; - -/*---------------------------------------------------------------------------*\ - Class midPointAndFaceSet Declaration -\*---------------------------------------------------------------------------*/ - -class midPointAndFaceSet -: - public faceOnlySet -{ - - // Private Member Functions - - void genSamples(); - -public: - - //- Runtime type information - TypeName("midPointAndFace"); - - - // Constructors - - //- Construct from components - midPointAndFaceSet - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& axis, - const point& start, - const point& end - ); - - //- Construct from dictionary - midPointAndFaceSet - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict - ); - - - // Destructor - - virtual ~midPointAndFaceSet(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/sampleSets/sampleSet/sampleSet.C b/applications/utilities/postProcessing/sampling/sample/sampleSets/sampleSet/sampleSet.C deleted file mode 100644 index 3a06bfb8afc..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/sampleSets/sampleSet/sampleSet.C +++ /dev/null @@ -1,467 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Description - -\*---------------------------------------------------------------------------*/ - -#include "sampleSet.H" -#include "polyMesh.H" -#include "primitiveMesh.H" -#include "meshSearch.H" -#include "writer.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - -const scalar sampleSet::tol = 1e-6; - -defineTypeNameAndDebug(sampleSet, 0); -defineRunTimeSelectionTable(sampleSet, word); - -autoPtr<sampleSet> sampleSet::New -( - const word& sampleType, - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict -) -{ - wordConstructorTable::iterator cstrIter = - wordConstructorTablePtr_ - ->find(sampleType); - - if (cstrIter == wordConstructorTablePtr_->end()) - { - FatalErrorIn - ( - "sampleSet::New(const word&, " - "const polyMesh&, meshSearch&, const dictionary&)" - ) << "Unknown sample type " << sampleType - << endl << endl - << "Valid sample types : " << endl - << wordConstructorTablePtr_->toc() - << exit(FatalError); - } - - return autoPtr<sampleSet> - ( - cstrIter() - ( - mesh, - searchEngine, - dict - ) - ); -} - -} // End namespace Foam - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -Foam::label Foam::sampleSet::getBoundaryCell(const label faceI) const -{ - return mesh().faceOwner()[faceI]; -} - - -Foam::label Foam::sampleSet::getCell -( - const label faceI, - const point& sample -) const -{ - if (faceI == -1) - { - FatalErrorIn - ( - "sampleSet::getCell(const label, const point&)" - ) << "Illegal face label " << faceI - << abort(FatalError); - } - - if (faceI >= mesh().nInternalFaces()) - { - label cellI = getBoundaryCell(faceI); - - if (!mesh().pointInCell(sample, cellI)) - { - FatalErrorIn - ( - "sampleSet::getCell(const label, const point&)" - ) << "Found cell " << cellI << " using face " << faceI - << ". But cell does not contain point " << sample - << abort(FatalError); - } - return cellI; - } - else - { - // Try owner and neighbour to see which one contains sample - - label cellI = mesh().faceOwner()[faceI]; - - if (mesh().pointInCell(sample, cellI)) - { - return cellI; - } - else - { - cellI = mesh().faceNeighbour()[faceI]; - - if (mesh().pointInCell(sample, cellI)) - { - return cellI; - } - else - { - FatalErrorIn - ( - "sampleSet::getCell(const label, const point&)" - ) << "None of the neighbours of face " - << faceI << " contains point " << sample - << abort(FatalError); - - return -1; - } - } - } -} - - -Foam::scalar Foam::sampleSet::calcSign -( - const label faceI, - const point& sample -) const -{ - vector vec = sample - mesh().faceCentres()[faceI]; - - scalar magVec = mag(vec); - - if (magVec < VSMALL) - { - // sample on face centre. Regard as inside - return -1; - } - - vec /= magVec; - - vector n = mesh().faceAreas()[faceI]; - - n /= mag(n) + VSMALL; - - return n & vec; -} - - -// Return face (or -1) of face which is within smallDist of sample -Foam::label Foam::sampleSet::findNearFace -( - const label cellI, - const point& sample, - const scalar smallDist -) const -{ - const cell& myFaces = mesh().cells()[cellI]; - - forAll(myFaces, myFaceI) - { - const face& f = mesh().faces()[myFaces[myFaceI]]; - - pointHit inter = f.nearestPoint(sample, mesh().points()); - - scalar dist; - - if (inter.hit()) - { - dist = mag(inter.hitPoint() - sample); - } - else - { - dist = mag(inter.missPoint() - sample); - } - - if (dist < smallDist) - { - return myFaces[myFaceI]; - } - } - return -1; -} - - -// 'Pushes' point facePt (which is almost on face) in direction of cell centre -// so it is clearly inside. -Foam::point Foam::sampleSet::pushIn -( - const point& facePt, - const label faceI -) const -{ - label cellI = mesh().faceOwner()[faceI]; - - const point& cellCtr = mesh().cellCentres()[cellI]; - - point newSample = - facePt + tol*(cellCtr - facePt); - - if (!searchEngine().pointInCell(newSample, cellI)) - { - FatalErrorIn - ( - "sampleSet::pushIn(const point&, const label)" - ) << "After pushing " << facePt << " to " << newSample - << " it is still outside faceI " << faceI << endl - << "Please change your starting point" - << abort(FatalError); - } - //Info<< "pushIn : moved " << facePt << " to " << newSample - // << endl; - - return newSample; -} - - -// Calculates start of tracking given samplePt and first boundary intersection -// (bPoint, bFaceI). bFaceI == -1 if no boundary intersection. -// Returns true if trackPt is sampling point -bool Foam::sampleSet::getTrackingPoint -( - const vector& offset, - const point& samplePt, - const point& bPoint, - const label bFaceI, - - point& trackPt, - label& trackCellI, - label& trackFaceI -) const -{ - const scalar smallDist = mag(tol*offset); - - bool isGoodSample = false; - - if (bFaceI == -1) - { - // No boundary intersection. Try and find cell samplePt is in - trackCellI = mesh().findCell(samplePt); - - if - ( - (trackCellI == -1) - || !mesh().pointInCell(samplePt, trackCellI) - ) - { - // Line samplePt - end_ does not intersect domain at all. - // (or is along edge) - //Info<< "getTrackingPoint : samplePt outside domain : " - // << " samplePt:" << samplePt - // << endl; - - trackCellI = -1; - trackFaceI = -1; - - isGoodSample = false; - } - else - { - // start is inside. Use it as tracking point - //Info<< "getTrackingPoint : samplePt inside :" - // << " samplePt:" << samplePt - // << " trackCellI:" << trackCellI - // << endl; - - trackPt = samplePt; - trackFaceI = -1; - - isGoodSample = true; - } - } - else if (mag(samplePt - bPoint) < smallDist) - { - //Info<< "getTrackingPoint : samplePt:" << samplePt - // << " close to bPoint:" - // << bPoint << endl; - - // samplePt close to bPoint. Snap to it - trackPt = pushIn(bPoint, bFaceI); - trackFaceI = bFaceI; - trackCellI = getBoundaryCell(trackFaceI); - - isGoodSample = true; - } - else - { - scalar sign = calcSign(bFaceI, samplePt); - - if (sign < 0) - { - // samplePt inside or marginally outside. - trackPt = samplePt; - trackFaceI = -1; - trackCellI = mesh().findCell(trackPt); - - isGoodSample = true; - } - else - { - // samplePt outside. use bPoint - trackPt = pushIn(bPoint, bFaceI); - trackFaceI = bFaceI; - trackCellI = getBoundaryCell(trackFaceI); - - isGoodSample = false; - } - } - - if (debug) - { - Info<< "sampleSet::getTrackingPoint :" - << " offset:" << offset - << " samplePt:" << samplePt - << " bPoint:" << bPoint - << " bFaceI:" << bFaceI - << endl << " Calculated first tracking point :" - << " trackPt:" << trackPt - << " trackCellI:" << trackCellI - << " trackFaceI:" << trackFaceI - << " isGoodSample:" << isGoodSample - << endl; - } - - return isGoodSample; -} - - -void Foam::sampleSet::setSamples -( - const List<point>& samplingPts, - const labelList& samplingCells, - const labelList& samplingFaces, - const labelList& samplingSegments, - const scalarList& samplingCurveDist -) -{ - setSize(samplingPts.size()); - cells_.setSize(samplingCells.size()); - faces_.setSize(samplingFaces.size()); - segments_.setSize(samplingSegments.size()); - curveDist_.setSize(samplingCurveDist.size()); - - if - ( - (cells_.size() != size()) - || (faces_.size() != size()) - || (segments_.size() != size()) - || (curveDist_.size() != size()) - ) - { - FatalErrorIn("sampleSet::setSamples()") - << "sizes not equal : " - << " points:" << size() - << " cells:" << cells_.size() - << " faces:" << faces_.size() - << " segments:" << segments_.size() - << " curveDist:" << curveDist_.size() - << abort(FatalError); - } - - forAll(samplingPts, sampleI) - { - operator[](sampleI) = samplingPts[sampleI]; - } - cells_ = samplingCells; - faces_ = samplingFaces; - segments_ = samplingSegments; - curveDist_ = samplingCurveDist; -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from mesh, name -Foam::sampleSet::sampleSet -( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& axis -) -: - coordSet(name, axis), - mesh_(mesh), - searchEngine_(searchEngine), - segments_(0), - curveDist_(0), - cells_(0), - faces_(0) -{} - - -// Construct from dictionary -Foam::sampleSet::sampleSet -( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict -) -: - coordSet(dict.lookup("name"), dict.lookup("axis")), - mesh_(mesh), - searchEngine_(searchEngine), - segments_(0), - curveDist_(0), - cells_(0), - faces_(0) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::sampleSet::~sampleSet() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::Ostream& Foam::sampleSet::write(Ostream& os) const -{ - coordSet::write(os); - - os << endl << "\t(cellI)\t(faceI)" - << endl; - forAll(*this, sampleI) - { - os << '\t' << cells_[sampleI] - << '\t' << faces_[sampleI] - << endl; - } - return os; -} - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/sampleSets/sampleSet/sampleSet.H b/applications/utilities/postProcessing/sampling/sample/sampleSets/sampleSet/sampleSet.H deleted file mode 100644 index 96cdef7ad2d..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/sampleSets/sampleSet/sampleSet.H +++ /dev/null @@ -1,296 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::sampleSet - -Description - Holds list of sampling points which is filled at construction time. - Various implementations of this base class to e.g. get sampling points - at uniform distance along a line (uniformSet) or directly specified - (cloudSet) - - Each 'sampleSet' has a name and a specifier of how the axis should be - write (x/y/z component or all 3 components) - -SourceFiles - sampleSet.C - -\*---------------------------------------------------------------------------*/ - -#ifndef sampleSet_H -#define sampleSet_H - -#include "pointField.H" -#include "word.H" -#include "labelList.H" -#include "typeInfo.H" -#include "runTimeSelectionTables.H" -#include "autoPtr.H" -#include "coordSet.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// Forward declaration of classes -class polyMesh; -class meshSearch; - -/*---------------------------------------------------------------------------*\ - Class sampleSet Declaration -\*---------------------------------------------------------------------------*/ - -class sampleSet -: - public coordSet -{ - // Private data - - //- Reference to mesh - const polyMesh& mesh_; - - //- Reference to mesh searching class - meshSearch& searchEngine_; - -protected: - - //- Segment numbers - labelList segments_; - - //- Parameter along sample curve. Uniquely identifies position - // along sampling. Used for combining parallel results. - scalarList curveDist_; - - //- Cell numbers - labelList cells_; - - //- Face numbers (-1 if not known) - labelList faces_; - - // Protected Member Functions - - //- Returns cell next to boundary face - label getBoundaryCell(const label) const; - - //- Returns cell using face and containing sample - label getCell - ( - const label faceI, - const point& sample - ) const; - - //- Calculates inproduct of face normal and vector sample-face centre - // <0 if sample inside. - scalar calcSign(const label faceI, const point& sample) const; - - //- Returns face label (or -1) of face which is close to sample - label findNearFace - ( - const label cellI, - const point& sample, - const scalar smallDist - ) const; - - //- Moves sample in direction of -n to it is 'inside' of faceI - point pushIn - ( - const point& sample, - const label faceI - ) const; - - //- Calculates start of tracking given samplePt and first boundary - // intersection - // (bPoint, bFaceI) (bFaceI == -1 if no boundary intersection) - // Returns true if trackPt is valid sampling point. Sets trackPt, - // trackFaceI, trackCellI (-1 if no tracking point found) - bool getTrackingPoint - ( - const vector& offset, - const point& samplePt, - const point& bPoint, - const label bFaceI, - - point& trackPt, - label& trackCellI, - label& trackFaceI - ) const; - - //- Sets sample data - void setSamples - ( - const List<point>& samplingPts, - const labelList& samplingCells, - const labelList& samplingFaces, - const labelList& samplingSegments, - const scalarList& samplingCurveDist - ); - -public: - - //- Runtime type information - TypeName("sampleSet"); - - - // Declare run-time constructor selection table - - declareRunTimeSelectionTable - ( - autoPtr, - sampleSet, - word, - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict - ), - (mesh, searchEngine, dict) - ); - - - //- Class used for the read-construction of - // PtrLists of sampleSet - class iNew - { - const polyMesh& mesh_; - meshSearch& searchEngine_; - - public: - - iNew(const polyMesh& mesh, meshSearch& searchEngine) - : - mesh_(mesh), - searchEngine_(searchEngine) - {} - - autoPtr<sampleSet> operator()(Istream& is) const - { - word sampleType(is); - dictionary dict(is); - return sampleSet::New(sampleType, mesh_, searchEngine_, dict); - } - }; - - - // Static data - - //- Tolerance when comparing points. Usually relative to difference - // between start_ and end_ - const static scalar tol; - - - // Constructors - - //- Construct from mesh, name - sampleSet - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& axis - ); - - //- Construct from dictionary - sampleSet - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict - ); - - //- Clone - autoPtr<sampleSet> clone() const - { - notImplemented("autoPtr<sampleSet> clone() const"); - return autoPtr<sampleSet>(NULL); - } - - - // Selectors - - //- Return a reference to the selected sampleSet - static autoPtr<sampleSet> New - ( - const word& sampleType, - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict - ); - - - // Destructor - - virtual ~sampleSet(); - - - // Member Functions - - const polyMesh& mesh() const - { - return mesh_; - } - - meshSearch& searchEngine() const - { - return searchEngine_; - } - - const labelList& segments() const - { - return segments_; - } - - const scalarList& curveDist() const - { - return curveDist_; - } - - const labelList& cells() const - { - return cells_; - } - - const labelList& faces() const - { - return faces_; - } - - //- Given all sampling points (on all processors) return reference point - virtual point getRefPoint(const List<point>&) const = 0; - - //- Output for debugging - Ostream& write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/sampleSets/uniform/uniformSet.C b/applications/utilities/postProcessing/sampling/sample/sampleSets/uniform/uniformSet.C deleted file mode 100644 index c50fe97adb0..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/sampleSets/uniform/uniformSet.C +++ /dev/null @@ -1,499 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "uniformSet.H" -#include "meshSearch.H" -#include "DynamicList.H" -#include "polyMesh.H" - -#include "Cloud.H" -#include "passiveParticle.H" -#include "IDLList.H" - -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(uniformSet, 0); - addToRunTimeSelectionTable(sampleSet, uniformSet, word); -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -// Finds along line (samplePt + t * offset) next sample beyond or equal to -// currentPt. -// Updates samplePt, sampleI -bool Foam::uniformSet::nextSample -( - const point& currentPt, - const vector& offset, - const scalar smallDist, - point& samplePt, - label& sampleI -) const -{ - bool pointFound = false; - - const vector normOffset = offset/mag(offset); - - samplePt += offset; - sampleI++; - - for(; sampleI < nPoints_; sampleI++) - { - scalar s = (samplePt - currentPt) & normOffset; - - if (s > -smallDist) - { - // samplePt is close to or beyond currentPt -> use it - pointFound = true; - - break; - } - samplePt += offset; - } - - return pointFound; -} - - -// Sample singly connected segment. Returns false if end_ reached. -bool Foam::uniformSet::trackToBoundary -( - Particle<passiveParticle>& singleParticle, - point& samplePt, - label& sampleI, - DynamicList<point>& samplingPts, - DynamicList<label>& samplingCells, - DynamicList<label>& samplingFaces, - DynamicList<scalar>& samplingCurveDist -) const -{ - // distance vector between sampling points - const vector offset = (end_ - start_)/(nPoints_ - 1); - const vector smallVec = tol*offset; - const scalar smallDist = mag(smallVec); - - // Alias - const point& trackPt = singleParticle.position(); - - while(true) - { - // Find next samplePt on/after trackPt. Update samplePt, sampleI - if (!nextSample(trackPt, offset, smallDist, samplePt, sampleI)) - { - // no more samples. - if (debug) - { - Info<< "trackToBoundary : Reached end : samplePt now:" - << samplePt << " sampleI now:" << sampleI << endl; - } - return false; - } - - if (mag(samplePt - trackPt) < smallDist) - { - // trackPt corresponds with samplePt. Store and use next samplePt - if (debug) - { - Info<< "trackToBoundary : samplePt corresponds to trackPt : " - << " trackPt:" << trackPt << " samplePt:" << samplePt - << endl; - } - - samplingPts.append(trackPt); - samplingCells.append(singleParticle.cell()); - samplingFaces.append(-1); - samplingCurveDist.append(mag(trackPt - start_)); - - // go to next samplePt - if (!nextSample(trackPt, offset, smallDist, samplePt, sampleI)) - { - // no more samples. - if (debug) - { - Info<< "trackToBoundary : Reached end : " - << " samplePt now:" << samplePt - << " sampleI now:" << sampleI - << endl; - } - - return false; - } - } - - - if (debug) - { - Info<< "Searching along trajectory from " - << " trackPt:" << trackPt - << " trackCellI:" << singleParticle.cell() - << " to:" << samplePt << endl; - } - - point oldPos = trackPt; - label facei = -1; - do - { - singleParticle.stepFraction() = 0; - singleParticle.track(samplePt); - - if (debug) - { - Info<< "Result of tracking " - << " trackPt:" << trackPt - << " trackCellI:" << singleParticle.cell() - << " trackFaceI:" << singleParticle.face() - << " onBoundary:" << singleParticle.onBoundary() - << " samplePt:" << samplePt - << " smallDist:" << smallDist - << endl; - } - } - while - ( - !singleParticle.onBoundary() - && (mag(trackPt - oldPos) < smallDist) - ); - - if (singleParticle.onBoundary()) - { - //Info<< "trackToBoundary : reached boundary" << endl; - if (mag(trackPt - samplePt) < smallDist) - { - //Info<< "trackToBoundary : boundary is also sampling point" - // << endl; - // Reached samplePt on boundary - samplingPts.append(trackPt); - samplingCells.append(singleParticle.cell()); - samplingFaces.append(facei); - samplingCurveDist.append(mag(trackPt - start_)); - } - - return true; - } - - //Info<< "trackToBoundary : reached internal sampling point" << endl; - // Reached samplePt in cell or on internal face - samplingPts.append(trackPt); - samplingCells.append(singleParticle.cell()); - samplingFaces.append(-1); - samplingCurveDist.append(mag(trackPt - start_)); - - // go to next samplePt - } -} - - -void Foam::uniformSet::calcSamples -( - DynamicList<point>& samplingPts, - DynamicList<label>& samplingCells, - DynamicList<label>& samplingFaces, - DynamicList<label>& samplingSegments, - DynamicList<scalar>& samplingCurveDist -) const -{ - // distance vector between sampling points - if ((nPoints_ < 2) || (mag(end_ - start_) < SMALL)) - { - FatalErrorIn("uniformSet::calcSamples()") - << "Incorrect sample specification. Either too few points or" - << " start equals end point." << endl - << "nPoints:" << nPoints_ - << " start:" << start_ - << " end:" << end_ - << exit(FatalError); - } - - const vector offset = (end_ - start_)/(nPoints_ - 1); - const vector normOffset = offset/mag(offset); - const vector smallVec = tol*offset; - const scalar smallDist = mag(smallVec); - - // Get all boundary intersections - List<pointIndexHit> bHits = - searchEngine().intersections - ( - start_ - smallVec, - end_ + smallVec - ); - - point bPoint(GREAT, GREAT, GREAT); - label bFaceI = -1; - - if (bHits.size() > 0) - { - bPoint = bHits[0].hitPoint(); - bFaceI = bHits[0].index(); - } - - // Get first tracking point. Use bPoint, bFaceI if provided. - - point trackPt; - label trackCellI = -1; - label trackFaceI = -1; - - bool isSample = - getTrackingPoint - ( - offset, - start_, - bPoint, - bFaceI, - - trackPt, - trackCellI, - trackFaceI - ); - - if (trackCellI == -1) - { - // Line start_ - end_ does not intersect domain at all. - // (or is along edge) - // Set points and cell/face labels to empty lists - - return; - } - - if (isSample) - { - samplingPts.append(start_); - samplingCells.append(trackCellI); - samplingFaces.append(trackFaceI); - samplingCurveDist.append(0.0); - } - - // - // Track until hit end of all boundary intersections - // - - // current segment number - label segmentI = 0; - - // starting index of current segment in samplePts - label startSegmentI = 0; - - label sampleI = 0; - point samplePt = start_; - - // index in bHits; current boundary intersection - label bHitI = 1; - - while(true) - { - // Initialize tracking starting from trackPt - Cloud<passiveParticle> particles(mesh(), IDLList<passiveParticle>()); - - passiveParticle singleParticle - ( - particles, - trackPt, - trackCellI - ); - - bool reachedBoundary = trackToBoundary - ( - singleParticle, - samplePt, - sampleI, - samplingPts, - samplingCells, - samplingFaces, - samplingCurveDist - ); - - // fill sampleSegments - for(label i = samplingPts.size() - 1; i >= startSegmentI; --i) - { - samplingSegments.append(segmentI); - } - - - if (!reachedBoundary) - { - if (debug) - { - Info<< "calcSamples : Reached end of samples: " - << " samplePt now:" << samplePt - << " sampleI now:" << sampleI - << endl; - } - break; - } - - - bool foundValidB = false; - - while (bHitI < bHits.size()) - { - scalar dist = - (bHits[bHitI].hitPoint() - singleParticle.position()) - & normOffset; - - if (debug) - { - Info<< "Finding next boundary : " - << "bPoint:" << bHits[bHitI].hitPoint() - << " tracking:" << singleParticle.position() - << " dist:" << dist - << endl; - } - - if (dist > smallDist) - { - // hitpoint is past tracking position - foundValidB = true; - break; - } - else - { - bHitI++; - } - } - - if (!foundValidB) - { - // No valid boundary intersection found beyond tracking position - break; - } - - // Update starting point for tracking - trackFaceI = bFaceI; - trackPt = pushIn(bPoint, trackFaceI); - trackCellI = getBoundaryCell(trackFaceI); - - segmentI++; - - startSegmentI = samplingPts.size(); - } -} - - -void Foam::uniformSet::genSamples() -{ - // Storage for sample points - DynamicList<point> samplingPts; - DynamicList<label> samplingCells; - DynamicList<label> samplingFaces; - DynamicList<label> samplingSegments; - DynamicList<scalar> samplingCurveDist; - - calcSamples - ( - samplingPts, - samplingCells, - samplingFaces, - samplingSegments, - samplingCurveDist - ); - - samplingPts.shrink(); - samplingCells.shrink(); - samplingFaces.shrink(); - samplingSegments.shrink(); - samplingCurveDist.shrink(); - - setSamples - ( - samplingPts, - samplingCells, - samplingFaces, - samplingSegments, - samplingCurveDist - ); -} - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from components -Foam::uniformSet::uniformSet -( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& axis, - const point& start, - const point& end, - const label nPoints -) -: - sampleSet(mesh, searchEngine, name, axis), - start_(start), - end_(end), - nPoints_(nPoints) -{ - genSamples(); - - if (debug) - { - write(Info); - } -} - - -// Construct from dictionary -Foam::uniformSet::uniformSet -( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict -) -: - sampleSet(mesh, searchEngine, dict), - start_(dict.lookup("start")), - end_(dict.lookup("end")), - nPoints_(readLabel(dict.lookup("nPoints"))) -{ - genSamples(); - - if (debug) - { - write(Info); - } -} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::uniformSet::~uniformSet() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - - -Foam::point Foam::uniformSet::getRefPoint(const List<point>& pts) const -{ - // Use start point as reference for 'distance' - return start_; -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/sampleSets/uniform/uniformSet.H b/applications/utilities/postProcessing/sampling/sample/sampleSets/uniform/uniformSet.H deleted file mode 100644 index 99dc0e815bf..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/sampleSets/uniform/uniformSet.H +++ /dev/null @@ -1,160 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::uniformSet - -Description - -SourceFiles - uniformSet.C - -\*---------------------------------------------------------------------------*/ - -#ifndef uniformSet_H -#define uniformSet_H - -#include "sampleSet.H" -#include "DynamicList.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// Forward declaration of classes -class passiveParticle; -template<class Type> class Particle; - -/*---------------------------------------------------------------------------*\ - Class uniformSet Declaration -\*---------------------------------------------------------------------------*/ - -class uniformSet -: - public sampleSet -{ - // Private data - - //- Starting point - point start_; - - //- End point - point end_; - - //- Number of points - label nPoints_; - - // Private Member Functions - - //- Calculates - starting at samplePt - the first sampling point - // on or after currentPt. smallDist is the tolerance used to compare - // positions. Returns false if end of samples reached. - bool nextSample - ( - const point& currentPt, - const vector& offset, - const scalar smallDist, - point& samplePt, - label& sampleI - ) const; - - //- Samples from startTrackPt/CellI. Updates particle/samplePt/sampleI - // and puts - // samples in the DynamicLists. Returns false if end of all samples - // reached - bool trackToBoundary - ( - Particle<passiveParticle>& singleParticle, - point& samplePt, - label& sampleI, - DynamicList<point>& samplingPts, - DynamicList<label>& samplingCells, - DynamicList<label>& samplingFaces, - DynamicList<scalar>& samplingCurveDist - ) const; - - //- Samples from start_ to end_. samplingSegments contains segmentNo - // for each sample. - void calcSamples - ( - DynamicList<point>& samplingPts, - DynamicList<label>& samplingCells, - DynamicList<label>& samplingFaces, - DynamicList<label>& samplingSegments, - DynamicList<scalar>& samplingCurveDist - ) const; - - //- Uses calcSamples to obtain samples. Copies them into *this. - void genSamples(); - -public: - - //- Runtime type information - TypeName("uniform"); - - // Constructors - - //- Construct from components - uniformSet - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& axis, - const point& start, - const point& end, - const label nPoints - ); - - //- Construct from dictionary - uniformSet - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict - ); - - - // Destructor - - virtual ~uniformSet(); - - - // Member Functions - - //- Get reference point - virtual point getRefPoint(const List<point>&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/test/testSample.C b/applications/utilities/postProcessing/sampling/sample/test/testSample.C deleted file mode 100644 index 0b4435abeb1..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/test/testSample.C +++ /dev/null @@ -1,158 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "meshSearch.H" -#include "interpolation.H" -#include "volPointInterpolation.H" -#include "PtrList.H" - -#include "writer.H" -#include "sampleSet.H" -#include "volFieldSampler.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -// Main program: - -int main(int argc, char *argv[]) -{ - -# include "setRootCase.H" -# include "createTime.H" -# include "createMesh.H" - - - // - // 1. Sampling and writing. - // - - // Set up mesh searching - meshSearch searchEngine(mesh, true); - - // Construct sample points generator - dictionary sampleDict; - sampleDict.add("name", "lineX1"); - sampleDict.add("axis", "distance"); - sampleDict.add("start", point(0.02, 0.051, 0.005)); - sampleDict.add("end", point(0.06, 0.051, 0.005)); - sampleDict.add("nPoints", 10); - - PtrList<sampleSet> sampleSets(1); - sampleSets.set - ( - 0, - sampleSet::New - ( - "uniform", - mesh, - searchEngine, - sampleDict - ).ptr() - ); - - // Load field - volScalarField sField - ( - IOobject - ( - "p", - runTime.timeName(), - mesh, - IOobject::MUST_READ - ), - mesh - ); - - // Set up interpolation - pointMesh pMesh(mesh); - volPointInterpolation pInterp(mesh, pMesh); - - - // Do actual sampling - dictionary interpolationSchemes; - interpolationSchemes.add("p", "cell"); - - volFieldSampler<scalar> sampleVals - ( - pInterp, - interpolationSchemes, - sField, - sampleSets - ); - - // Construct writer and write - autoPtr<writer<scalar> > scalarFormatter(writer<scalar>::New("xmgr")); - - scalarFormatter().write - ( - ".", - sampleSets[0], - sampleVals.name(), - sampleVals[0] - ); - - - - // - // 2. No sampling, just using writing - // - List<point> points(5); - points[0] = point(0, 0, 0); - points[1] = point(1, 1, 1); - points[2] = point(2, 2, 2); - points[3] = point(3, 3, 3); - points[4] = point(4, 4, 4); - - scalarList vals(5); - vals[0] = 0.0; - vals[1] = 0.1; - vals[2] = 0.2; - vals[3] = 0.3; - vals[4] = 0.4; - - - scalarFormatter().write - ( - ".", - coordSet - ( - "someLine", - "distance", - points, - points[0] - ), - "U.component(0)", - vals - ); - - - Info << "End\n" << endl; - - return 0; -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/volFieldSampler.C b/applications/utilities/postProcessing/sampling/sample/volFieldSampler.C deleted file mode 100644 index 27938d24c1b..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/volFieldSampler.C +++ /dev/null @@ -1,91 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Description - -\*---------------------------------------------------------------------------*/ - -#include "volFieldSampler.H" -#include "volPointInterpolation.H" -#include "dictionary.H" - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from components -template <class Type> -Foam::volFieldSampler<Type>::volFieldSampler -( - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes, - const GeometricField<Type, fvPatchField, volMesh>& field, - const PtrList<sampleSet>& samplers -) -: - List<Field<Type> >(samplers.size()), - name_(field.name()) -{ - autoPtr<interpolation<Type> > interpolator - ( - interpolation<Type>::New(interpolationSchemes, pInterp, field) - ); - - forAll(samplers, setI) - { - Field<Type>& values = this->operator[](setI); - - const sampleSet& samples = samplers[setI]; - - values.setSize(samples.size()); - forAll(samples, sampleI) - { - const point& samplePt = samples[sampleI]; - label cellI = samples.cells()[sampleI]; - label faceI = samples.faces()[sampleI]; - - values[sampleI] = - interpolator().interpolate - ( - samplePt, - cellI, - faceI - ); - } - } -} - - -// Construct from components -template <class Type> -Foam::volFieldSampler<Type>::volFieldSampler -( - const List<Field<Type> >& values, - const word& name -) -: - List<Field<Type> >(values), - name_(name) -{} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/volFieldSampler.H b/applications/utilities/postProcessing/sampling/sample/volFieldSampler.H deleted file mode 100644 index 29222903ece..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/volFieldSampler.H +++ /dev/null @@ -1,109 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::volFieldSampler - -Description - Samples a volField given a list of sampleSets (i.e. points). - -SourceFiles - volFieldSampler.C - -\*---------------------------------------------------------------------------*/ - -#ifndef volFieldSampler_H -#define volFieldSampler_H - -#include "sampleSet.H" -#include "List.H" -#include "PtrList.H" -#include "volFields.H" - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// Forward declaration of classes -class volPointInterpolation; -class dictionary; - -/*---------------------------------------------------------------------------*\ - Class volFieldSampler Declaration -\*---------------------------------------------------------------------------*/ - -template <class Type> -class volFieldSampler -: - public List<Field<Type> > -{ - //- Name of this collection of values - const word name_; - -public: - - // Constructors - - //- Construct from sampleSet, interpolator, Field - volFieldSampler - ( - const volPointInterpolation&, - const dictionary& interpolationSchemes, - const GeometricField<Type, fvPatchField, volMesh>& field, - const PtrList<sampleSet>& - ); - - //- Construct from components - volFieldSampler - ( - const List<Field<Type> >& values, - const word& name - ); - - // Member functions - - const word& name() const - { - return name_; - } -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "volFieldSampler.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/gnuplot/gnuplot.C b/applications/utilities/postProcessing/sampling/sample/writers/gnuplot/gnuplot.C deleted file mode 100644 index cdde095954d..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/gnuplot/gnuplot.C +++ /dev/null @@ -1,100 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "gnuplot.H" -#include "clock.H" -#include "coordSet.H" -#include "fileName.H" -#include "OFstream.H" -#include "addToRunTimeSelectionTable.H" - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from components -template<class Type> -Foam::gnuplot<Type>::gnuplot() -: - writer<Type>() -{} - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class Type> -Foam::gnuplot<Type>::~gnuplot() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template<class Type> -Foam::fileName Foam::gnuplot<Type>::getFileName -( - const coordSet& points, - const wordList& valueSetNames -) const -{ - return this->getBaseName(points, valueSetNames) + ".gplt"; -} - - -template<class Type> -void Foam::gnuplot<Type>::write -( - const coordSet& points, - const wordList& valueSetNames, - const List<const Field<Type>*>& valueSets, - Ostream& os -) const -{ - os << "set term postscript color" << endl - << "set output \"" << points.name() << ".ps\"" << endl - << "plot"; - - bool firstField = true; - - forAll(valueSets, i) - { - if (!firstField) - { - os << ','; - } - firstField = false; - - os << "'-' title \"" << valueSetNames[i] << "\" with lines"; - } - os << endl; - - - forAll(valueSets, i) - { - os << endl; - writeTable(points, *valueSets[i], os); - } -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/gnuplot/gnuplot.H b/applications/utilities/postProcessing/sampling/sample/writers/gnuplot/gnuplot.H deleted file mode 100644 index 868cd1e4edb..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/gnuplot/gnuplot.H +++ /dev/null @@ -1,105 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::gnuplot - -Description - -SourceFiles - gnuplot.C - -\*---------------------------------------------------------------------------*/ - -#ifndef gnuplot_H -#define gnuplot_H - -#include "writer.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class gnuplot Declaration -\*---------------------------------------------------------------------------*/ - -template<class Type> -class gnuplot -: - public writer<Type> -{ - -public: - - //- Runtime type information - TypeName("gnuplot"); - - - // Constructors - - //- Construct null - gnuplot(); - - // Destructor - - virtual ~gnuplot(); - - - // Member Functions - - // Write - - virtual fileName getFileName - ( - const coordSet&, - const wordList& - ) const; - - void write - ( - const coordSet&, - const wordList&, - const List<const Field<Type>*>&, - Ostream& os - ) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "gnuplot.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/gnuplot/gnuplotWriters.C b/applications/utilities/postProcessing/sampling/sample/writers/gnuplot/gnuplotWriters.C deleted file mode 100644 index 4185940736d..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/gnuplot/gnuplotWriters.C +++ /dev/null @@ -1,45 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Description - -\*---------------------------------------------------------------------------*/ - -#include "gnuplotWriters.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -makeWriters(gnuplot); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/gnuplot/gnuplotWriters.H b/applications/utilities/postProcessing/sampling/sample/writers/gnuplot/gnuplotWriters.H deleted file mode 100644 index cd327a79537..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/gnuplot/gnuplotWriters.H +++ /dev/null @@ -1,62 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -InClass - Foam::gnuplotWriters - -Description - -SourceFiles - gnuplotWriters.C - - -\*---------------------------------------------------------------------------*/ - -#ifndef gnuplotWriters_H -#define gnuplotWriters_H - -#include "gnuplot.H" -#include "writers.H" -#include "fieldTypes.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -typedef gnuplot<scalar> gnuplotScalarWriter; -typedef gnuplot<vector> gnuplotVectorWriter; -typedef gnuplot<tensor> gnuplotTensorWriter; - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/jplot/jplot.C b/applications/utilities/postProcessing/sampling/sample/writers/jplot/jplot.C deleted file mode 100644 index 61d7c20a848..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/jplot/jplot.C +++ /dev/null @@ -1,106 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "jplot.H" -#include "clock.H" -#include "coordSet.H" -#include "fileName.H" -#include "OFstream.H" - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -template<class Type> -Foam::Ostream& Foam::jplot<Type>::writeHeader(Ostream& os) const -{ - return os - << "# JPlot input file" << endl - << "#" << endl - << endl - << "# Generated by sample on " << clock::date().c_str() << endl; -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from components -template<class Type> -Foam::jplot<Type>::jplot() -: - writer<Type>() -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class Type> -Foam::jplot<Type>::~jplot() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template<class Type> -Foam::fileName Foam::jplot<Type>::getFileName -( - const coordSet& points, - const wordList& valueSetNames -) const -{ - return this->getBaseName(points, valueSetNames) + ".dat"; -} - - -template<class Type> -void Foam::jplot<Type>::write -( - const coordSet& points, - const wordList& valueSetNames, - const List<const Field<Type>*>& valueSets, - Ostream& os -) const -{ - os << "# JPlot file" << endl - << "# column 1: " << points.name() << endl; - - forAll(valueSets, i) - { - os << "# column " << i + 2 << ": " << valueSetNames[i] << endl; - } - - // Collect sets into columns - List<const List<Type>*> columns(valueSets.size()); - - forAll(valueSets, i) - { - columns[i] = valueSets[i]; - } - - writeTable(points, columns, os); -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/jplot/jplot.H b/applications/utilities/postProcessing/sampling/sample/writers/jplot/jplot.H deleted file mode 100644 index ffaed7e6a6f..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/jplot/jplot.H +++ /dev/null @@ -1,115 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::jplot - -Description - -SourceFiles - jplot.C - -\*---------------------------------------------------------------------------*/ - -#ifndef jplot_H -#define jplot_H - -#include "writer.H" -#include "vector.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// Forward declaration of classes - -/*---------------------------------------------------------------------------*\ - Class jplot Declaration -\*---------------------------------------------------------------------------*/ - -template<class Type> -class jplot -: - public writer<Type> -{ - - // Private Member Functions - - //- Write header - Ostream& writeHeader(Ostream& os) const; - -public: - - //- Runtime type information - TypeName("jplot"); - - - // Constructors - - //- Construct null - jplot(); - - // Destructor - - virtual ~jplot(); - - - // Member Functions - - // Access - - // Write - - virtual fileName getFileName - ( - const coordSet&, - const wordList& - ) const; - - void write - ( - const coordSet&, - const wordList&, - const List<const Field<Type>*>&, - Ostream& os - ) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "jplot.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/jplot/jplotWriters.C b/applications/utilities/postProcessing/sampling/sample/writers/jplot/jplotWriters.C deleted file mode 100644 index ec3d01e3451..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/jplot/jplotWriters.C +++ /dev/null @@ -1,45 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Description - -\*---------------------------------------------------------------------------*/ - -#include "jplotWriters.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -makeWriters(jplot); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/jplot/jplotWriters.H b/applications/utilities/postProcessing/sampling/sample/writers/jplot/jplotWriters.H deleted file mode 100644 index c7bf85e26cc..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/jplot/jplotWriters.H +++ /dev/null @@ -1,62 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -InClass - Foam::jplotWriters - -Description - -SourceFiles - jplotWriters.C - - -\*---------------------------------------------------------------------------*/ - -#ifndef jplotWriters_H -#define jplotWriters_H - -#include "jplot.H" -#include "writers.H" -#include "fieldTypes.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -typedef jplot<scalar> jplotScalarWriter; -typedef jplot<vector> jplotVectorWriter; -typedef jplot<tensor> jplotTensorWriter; - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/raw/raw.C b/applications/utilities/postProcessing/sampling/sample/writers/raw/raw.C deleted file mode 100644 index 8785c1ce9b4..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/raw/raw.C +++ /dev/null @@ -1,83 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "raw.H" -#include "coordSet.H" -#include "fileName.H" -#include "OFstream.H" - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from components -template<class Type> -Foam::raw<Type>::raw() -: - writer<Type>() -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class Type> -Foam::raw<Type>::~raw() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template<class Type> -Foam::fileName Foam::raw<Type>::getFileName -( - const coordSet& points, - const wordList& valueSetNames -) const -{ - return this->getBaseName(points, valueSetNames) + ".xy"; -} - - -template<class Type> -void Foam::raw<Type>::write -( - const coordSet& points, - const wordList& valueSetNames, - const List<const Field<Type>*>& valueSets, - Ostream& os -) const -{ - // Collect sets into columns - List<const List<Type>*> columns(valueSets.size()); - - forAll(valueSets, i) - { - columns[i] = valueSets[i]; - } - - writeTable(points, columns, os); -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/raw/raw.H b/applications/utilities/postProcessing/sampling/sample/writers/raw/raw.H deleted file mode 100644 index 63d1ff7317b..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/raw/raw.H +++ /dev/null @@ -1,105 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::raw - -Description - -SourceFiles - raw.C - -\*---------------------------------------------------------------------------*/ - -#ifndef raw_H -#define raw_H - -#include "writer.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class raw Declaration -\*---------------------------------------------------------------------------*/ - -template<class Type> -class raw -: - public writer<Type> -{ - -public: - - //- Runtime type information - TypeName("raw"); - - - // Constructors - - //- Construct null - raw(); - - // Destructor - - virtual ~raw(); - - - // Member Functions - - // Write - - virtual fileName getFileName - ( - const coordSet&, - const wordList& - ) const; - - void write - ( - const coordSet&, - const wordList&, - const List<const Field<Type>*>&, - Ostream& os - ) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "raw.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/raw/rawWriters.C b/applications/utilities/postProcessing/sampling/sample/writers/raw/rawWriters.C deleted file mode 100644 index e2084b1bb63..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/raw/rawWriters.C +++ /dev/null @@ -1,45 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Description - -\*---------------------------------------------------------------------------*/ - -#include "rawWriters.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -makeWriters(raw); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/raw/rawWriters.H b/applications/utilities/postProcessing/sampling/sample/writers/raw/rawWriters.H deleted file mode 100644 index 46c32fd1714..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/raw/rawWriters.H +++ /dev/null @@ -1,62 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -InClass - Foam::rawWriters - -Description - -SourceFiles - rawWriters.C - - -\*---------------------------------------------------------------------------*/ - -#ifndef rawWriters_H -#define rawWriters_H - -#include "raw.H" -#include "writers.H" -#include "fieldTypes.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -typedef raw<scalar> rawScalarWriter; -typedef raw<vector> rawVectorWriter; -typedef raw<tensor> rawTensorWriter; - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/writer/writer.C b/applications/utilities/postProcessing/sampling/sample/writers/writer/writer.C deleted file mode 100644 index 74833f194a4..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/writer/writer.C +++ /dev/null @@ -1,205 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "writer.H" -#include "coordSet.H" -#include "OFstream.H" -#include "OSspecific.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - -template<class Type> -autoPtr<writer<Type> > writer<Type>::New(const word& writeType) -{ - typename wordConstructorTable::iterator cstrIter = - wordConstructorTablePtr_ - ->find(writeType); - - if (cstrIter == wordConstructorTablePtr_->end()) - { - FatalErrorIn - ( - "writer::New(const word&)" - ) << "Unknown write type " << writeType - << endl << endl - << "Valid write types : " << endl - << wordConstructorTablePtr_->toc() - << exit(FatalError); - } - - return autoPtr<writer<Type> >(cstrIter()()); -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -template<class Type> -fileName writer<Type>::getBaseName -( - const coordSet& points, - const wordList& valueSets -) const -{ - fileName fName(points.name()); - - forAll(valueSets, i) - { - fName += '_' + valueSets[i]; - } - - return fName; -} - - -template<class Type> -void writer<Type>::writeCoord -( - const coordSet& points, - const label pointI, - Ostream& os -) const -{ - if (points.hasVectorAxis()) - { - write(points.vectorCoord(pointI), os); - } - else - { - write(points.scalarCoord(pointI), os); - } -} - - -template<class Type> -void writer<Type>::writeTable -( - const coordSet& points, - const List<Type>& values, - Ostream& os -) const -{ - forAll(points, pointI) - { - writeCoord(points, pointI, os); - - os << token::SPACE; - - write(values[pointI], os); - - os << endl; - } -} - - -template<class Type> -void writer<Type>::writeTable -( - const coordSet& points, - const List<const List<Type>*>& valuesPtrList, - Ostream& os -) const -{ - forAll(points, pointI) - { - writeCoord(points, pointI, os); - - forAll(valuesPtrList, i) - { - os << token::SPACE; - - const List<Type>& values = *valuesPtrList[i]; - - write(values[pointI], os); - } - os << endl; - } -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct null -template<class Type> -writer<Type>::writer() -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class Type> -writer<Type>::~writer() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template<class Type> -Foam::Ostream& Foam::writer<Type>::write(const scalar value, Ostream& os) const -{ - return os << value; -} - - -template<class Type> -Foam::Ostream& Foam::writer<Type>::write(const vector& value, Ostream& os) const -{ - for (direction d=0; d<vector::nComponents; d++) - { - os << value.component(d); - - if (d <= vector::nComponents-1) - { - os << token::TAB; - } - } - return os; -} - - -template<class Type> -Foam::Ostream& Foam::writer<Type>::write(const tensor& value, Ostream& os) const -{ - for (direction d=0; d<tensor::nComponents; d++) - { - os << value.component(d); - - if (d <= tensor::nComponents-1) - { - os << token::TAB; - } - } - return os; -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/writer/writer.H b/applications/utilities/postProcessing/sampling/sample/writers/writer/writer.H deleted file mode 100644 index 47d2d1f9c24..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/writer/writer.H +++ /dev/null @@ -1,239 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::writer - -Description - base class for graphics format writing. Entry points are - - write(..). Write to an Ostream a table of points with corresponding - values. - - - write(scalar/vector/tensor). Write single scalar/vector/tensor. - Default is to write space separated components. - - Example: - - // Construct writer of xmgr type - autoPtr<writer<scalar> > scalarFormatter(writer<scalar>::New("xmgr")); - - // Output list of points and corresponding values - scalarFormatter().write - ( - coordSet - ( - points, // sample coordinates - "someLine", // name of coordSet - "distance", // write coordinates as distance to refPoint - points[0] // reference point - ), - "U.component(0)", // name of values - vals // values - ); - - -SourceFiles - writer.C - -\*---------------------------------------------------------------------------*/ - -#ifndef writer_H -#define writer_H - -#include "fileName.H" -#include "wordList.H" -#include "vector.H" -#include "tensor.H" -#include "typeInfo.H" -#include "runTimeSelectionTables.H" -#include "autoPtr.H" -#include "Field.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// Forward declaration of classes -class coordSet; - -/*---------------------------------------------------------------------------*\ - Class writer Declaration -\*---------------------------------------------------------------------------*/ - -template<class Type> -class writer -{ - -protected: - - //- Generates filename from coordSet and sampled fields - fileName getBaseName(const coordSet&, const wordList&) const; - - void writeCoord - ( - const coordSet& samples, - const label sampleI, - Ostream& os - ) const; - - //- Writes single-column ascii write. Column 1 is coordSet coordinate, - // columns 2 is the value. Uses write() function - // to write coordinate in correct format. - void writeTable - ( - const coordSet&, - const List<Type>&, - Ostream& os - ) const; - - //- Writes multi-column ascii write. Column 1 is coordSet coordinate, - // columns 2..n are the values. Uses write() function - // to write coordinate in correct format. - void writeTable - ( - const coordSet&, - const List<const List<Type>*>&, - Ostream& os - ) const; - - -public: - - //- Runtime type information - TypeName("writer"); - - // Declare run-time constructor selection table - - declareRunTimeSelectionTable - ( - autoPtr, - writer, - word, - (), - () - ); - - - // Selectors - - //- Return a reference to the selected writer - static autoPtr<writer> New - ( - const word& writeFormat - ); - - - // Constructors - - //- Construct null - writer(); - - - // Destructor - - virtual ~writer() = 0; - - - // Member Functions - - // Access - - // Write - - //- Generate file name with correct extension - virtual fileName getFileName - ( - const coordSet&, - const wordList& - ) const = 0; - - //- General entry point for writing. - // The data is organized in a set of point with one or - // more values per point - virtual void write - ( - const coordSet&, - const wordList&, - const List<const Field<Type>*>&, - Ostream& - ) const = 0; - - //- Write scalar as ascii - virtual Ostream& write(const scalar, Ostream&) const; - - //- Write vector. Tab separated ascii - virtual Ostream& write(const vector&, Ostream&) const; - - //- Write tensor. Tab separated ascii - virtual Ostream& write(const tensor&, Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "writer.C" -#endif - -// Only used internally -#define makeTypeWritersTypeName(type) \ - \ -defineNamedTemplateTypeNameAndDebug(type, 0); - -// Used externally sometimes -#define makeWritersTypeName(typeWriter) \ - \ -makeTypeWritersTypeName(typeWriter##ScalarWriter); \ -makeTypeWritersTypeName(typeWriter##VectorWriter); \ -makeTypeWritersTypeName(typeWriter##TensorWriter); - -// Define type info for single template instantiation (e.g. vector) -#define makeWriterTypes(WriterType, type) \ - \ -defineNamedTemplateTypeNameAndDebug(type, 0); \ - \ -addToRunTimeSelectionTable \ -( \ - WriterType, type, word \ -); - - -// Define type info info for scalar, vector etc. instantiations -#define makeWriters(typeWriter) \ - \ -makeWriterTypes(scalarWriter, typeWriter##ScalarWriter); \ -makeWriterTypes(vectorWriter, typeWriter##VectorWriter); \ -makeWriterTypes(tensorWriter, typeWriter##TensorWriter); - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/writer/writers.C b/applications/utilities/postProcessing/sampling/sample/writers/writer/writers.C deleted file mode 100644 index fd6e50654a1..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/writer/writers.C +++ /dev/null @@ -1,57 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Description - -\*---------------------------------------------------------------------------*/ - -#include "writers.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineNamedTemplateTypeNameAndDebug(scalarWriter, 0); -defineTemplateRunTimeSelectionTable(scalarWriter, word); - -defineNamedTemplateTypeNameAndDebug(vectorWriter, 0); -defineTemplateRunTimeSelectionTable(vectorWriter, word); - -defineNamedTemplateTypeNameAndDebug(sphericalTensorWriter, 0); -defineTemplateRunTimeSelectionTable(sphericalTensorWriter, word); - -defineNamedTemplateTypeNameAndDebug(symmTensorWriter, 0); -defineTemplateRunTimeSelectionTable(symmTensorWriter, word); - -defineNamedTemplateTypeNameAndDebug(tensorWriter, 0); -defineTemplateRunTimeSelectionTable(tensorWriter, word); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/writer/writers.H b/applications/utilities/postProcessing/sampling/sample/writers/writer/writers.H deleted file mode 100644 index 1ce1ed17e02..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/writer/writers.H +++ /dev/null @@ -1,59 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -InClass - Foam::writer - -Description - -\*---------------------------------------------------------------------------*/ - -#ifndef writers_H -#define writers_H - -#include "writer.H" -#include "fieldTypes.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -typedef writer<scalar> scalarWriter; -typedef writer<vector> vectorWriter; -typedef writer<sphericalTensor> sphericalTensorWriter; -typedef writer<symmTensor> symmTensorWriter; -typedef writer<tensor> tensorWriter; - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/xmgr/xmgr.C b/applications/utilities/postProcessing/sampling/sample/writers/xmgr/xmgr.C deleted file mode 100644 index c5b2fc65e64..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/xmgr/xmgr.C +++ /dev/null @@ -1,89 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "xmgr.H" -#include "coordSet.H" -#include "fileName.H" -#include "OFstream.H" - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from components -template<class Type> -Foam::xmgr<Type>::xmgr() -: - writer<Type>() -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class Type> -Foam::xmgr<Type>::~xmgr() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template<class Type> -Foam::fileName Foam::xmgr<Type>::getFileName -( - const coordSet& points, - const wordList& valueSetNames -) const -{ - return this->getBaseName(points, valueSetNames) + ".agr"; -} - - -template<class Type> -void Foam::xmgr<Type>::write -( - const coordSet& points, - const wordList& valueSetNames, - const List<const Field<Type>*>& valueSets, - Ostream& os -) const -{ - os << "@title \"" << points.name() << '"' << endl - << "@xaxis label " << '"' << points.axis() << '"' << endl; - - forAll(valueSets, i) - { - os << "@s" << i << " legend " << '"' - << valueSetNames[i] << '"' << endl - << "@target G0.S" << i << endl - << "@type xy" << endl; - - writeTable(points, *valueSets[i], os); - - os << endl; - } -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/xmgr/xmgr.H b/applications/utilities/postProcessing/sampling/sample/writers/xmgr/xmgr.H deleted file mode 100644 index a20ff87e573..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/xmgr/xmgr.H +++ /dev/null @@ -1,105 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::xmgr - -Description - -SourceFiles - xmgr.C - -\*---------------------------------------------------------------------------*/ - -#ifndef xmgr_H -#define xmgr_H - -#include "writer.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class xmgr Declaration -\*---------------------------------------------------------------------------*/ - -template<class Type> -class xmgr -: - public writer<Type> -{ - -public: - - //- Runtime type information - TypeName("xmgr"); - - - // Constructors - - //- Construct null - xmgr(); - - // Destructor - - virtual ~xmgr(); - - - // Member Functions - - // Write - - virtual fileName getFileName - ( - const coordSet&, - const wordList& - ) const; - - void write - ( - const coordSet&, - const wordList&, - const List<const Field<Type>*>&, - Ostream& os - ) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "xmgr.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sample/writers/xmgr/xmgrWriters.C b/applications/utilities/postProcessing/sampling/sample/writers/xmgr/xmgrWriters.C deleted file mode 100644 index c9966329f03..00000000000 --- a/applications/utilities/postProcessing/sampling/sample/writers/xmgr/xmgrWriters.C +++ /dev/null @@ -1,45 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Description - -\*---------------------------------------------------------------------------*/ - -#include "xmgrWriters.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -makeWriters(xmgr); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/Make/files b/applications/utilities/postProcessing/sampling/sampleSurface/Make/files deleted file mode 100644 index 1016f8e914f..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/Make/files +++ /dev/null @@ -1,18 +0,0 @@ -sampleSurface.C - -surfaces/surface/surface.C -surfaces/constantIsoSurface/constantIsoSurface.C -surfaces/interpolatedIsoSurface/interpolatedIsoSurface.C -surfaces/constantPatch/constantPatch.C -surfaces/interpolatedPatch/interpolatedPatch.C -surfaces/constantPlane/constantPlane.C -surfaces/interpolatedPlane/interpolatedPlane.C - -surfaceWriters/surfaceWriter/surfaceWriters.C -surfaceWriters/foamFile/foamFileWriters.C -surfaceWriters/dx/dxWriters.C -surfaceWriters/raw/rawWriters.C -surfaceWriters/vtk/vtkWriters.C -surfaceWriters/stl/stlWriters.C - -EXE = $(FOAM_APPBIN)/sampleSurface diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/fieldsCache.C b/applications/utilities/postProcessing/sampling/sampleSurface/fieldsCache.C deleted file mode 100644 index c5ea19c4320..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/fieldsCache.C +++ /dev/null @@ -1,105 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "fieldsCache.H" -#include "volPointInterpolation.H" - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -template<class Type> -Foam::fieldsCache<Type>::fieldsCache() -: - HashPtrTable<GeometricField<Type, fvPatchField, volMesh> >(), - pointFields_(), - interpolators_() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template<class Type> -const Foam::GeometricField<Type, Foam::pointPatchField, Foam::pointMesh>& -Foam::fieldsCache<Type>::pointField -( - const word& name, - const volPointInterpolation& pInterp -) const -{ - if (!pointFields_.found(name)) - { - const GeometricField<Type, fvPatchField, volMesh>& vField = - *this->operator[](name); - - tmp<GeometricField<Type, pointPatchField, pointMesh> > tptField = - pInterp.interpolate(vField); - - GeometricField<Type, pointPatchField, pointMesh>* ptFieldPtr = - tptField.ptr(); - - pointFields_.insert(name, ptFieldPtr); - - return *ptFieldPtr; - } - else - { - return *pointFields_[name]; - } -} - - -template<class Type> -const Foam::interpolation<Type>& Foam::fieldsCache<Type>::interpolator -( - const word& name, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - if (!interpolators_.found(name)) - { - const GeometricField<Type, fvPatchField, volMesh>& vField = - *this->operator[](name); - - interpolation<Type>* interpolatorPtr = - interpolation<Type>::New - ( - interpolationSchemes, - pInterp, - vField - ).ptr(); - - interpolators_.insert(name, interpolatorPtr); - - return *interpolatorPtr; - } - else - { - return *interpolators_[name]; - } -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/fieldsCache.H b/applications/utilities/postProcessing/sampling/sampleSurface/fieldsCache.H deleted file mode 100644 index 98b6904a61d..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/fieldsCache.H +++ /dev/null @@ -1,109 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::fieldsCache - -Description - -SourceFiles - fieldsCache.C - -\*---------------------------------------------------------------------------*/ - -#ifndef fieldsCache_H -#define fieldsCache_H - -#include "volFields.H" -#include "pointFields.H" -#include "HashPtrTable.H" -#include "interpolation.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class fieldsCache Declaration -\*---------------------------------------------------------------------------*/ - -template<class Type> -class fieldsCache -: - public HashPtrTable<GeometricField<Type, fvPatchField, volMesh> > -{ - -private: - - //- Cached pointFields - mutable HashPtrTable<GeometricField<Type, pointPatchField, pointMesh> > - pointFields_; - - //- Cached interpolators - mutable HashPtrTable<interpolation<Type> > interpolators_; - - -public: - - // Constructors - - //- Construct null - fieldsCache(); - - - // Member Functions - - //- Get pointField of named field - const GeometricField<Type, pointPatchField, pointMesh>& pointField - ( - const word&, - const volPointInterpolation& pInterp - ) const; - - //- Get interpolator for named field - const interpolation<Type>& interpolator - ( - const word&, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes - ) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "fieldsCache.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/sampleSurface.C b/applications/utilities/postProcessing/sampling/sampleSurface/sampleSurface.C deleted file mode 100644 index cc7fcedc544..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/sampleSurface.C +++ /dev/null @@ -1,842 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "argList.H" -#include "OSspecific.H" -#include "meshSearch.H" -#include "interpolation.H" -#include "volPointInterpolation.H" -#include "cuttingPlane.H" -#include "OFstream.H" -#include "Pstream.H" -#include "ListListOps.H" -#include "Cloud.H" -#include "passiveParticle.H" -#include "mergePoints.H" - -#include "fieldsCache.H" -#include "surface.H" -#include "surfaceWriter.H" - -using namespace Foam; - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -// Used to offset faces in Pstream::combineOffset -namespace Foam -{ - -template <> -class offsetOp<face> -{ - -public: - - face operator() - ( - const face& x, - const label offset - ) const - { - face result(x.size()); - - forAll(x, xI) - { - result[xI] = x[xI] + offset; - } - return result; - } -}; - -} - - -void mergePoints -( - const polyMesh& mesh, - const scalar mergeTol, - List<pointField>& allPoints, - List<faceList>& allFaces, - labelListList& allOldToNew -) -{ - const boundBox& bb = mesh.globalData().bb(); - - scalar mergeDim = mergeTol * mag(bb.max() - bb.min()); - - Info<< nl << "Merging all points within " << mergeDim << " meter." << endl; - - allOldToNew.setSize(allPoints.size()); - - forAll(allPoints, surfaceI) - { - pointField newPoints; - labelList oldToNew; - - bool hasMerged = mergePoints - ( - allPoints[surfaceI], - mergeDim, - false, // verbosity - oldToNew, - newPoints - ); - - if (hasMerged) - { - // Copy points - allPoints[surfaceI].transfer(newPoints); - - // Store point mapping - allOldToNew[surfaceI].transfer(oldToNew); - - // Relabel faces. - faceList& faces = allFaces[surfaceI]; - - forAll(faces, faceI) - { - inplaceRenumber(allOldToNew[surfaceI], faces[faceI]); - } - - Info<< "For surface " << surfaceI << " merged from " - << allOldToNew[surfaceI].size() << " points down to " - << allPoints[surfaceI].size() << " points." << endl; - } - } -} - - -template<class T> -void renumberData -( - const labelList& oldToNewPoints, - const label newSize, - Field<T>& values -) -{ - if (oldToNewPoints.size() == values.size()) - { - inplaceReorder(oldToNewPoints, values); - values.setSize(newSize); - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -// Main program: - -int main(int argc, char *argv[]) -{ - -# include "addTimeOptions.H" -# include "setRootCase.H" - -# include "createTime.H" - - // Get times list - instantList Times = runTime.times(); - - // set startTime and endTime depending on -time and -latestTime options -# include "checkTimeOptions.H" - - runTime.setTime(Times[startTime], startTime); - -# include "createMesh.H" - - - // - // Hack: initialize Cloud to initialize the processor table so from - // now on we can use cloud (in meshSearch) on single processors only. - // - Cloud<passiveParticle> dummyCloud(mesh, IDLList<passiveParticle>()); - - // - // Read control dictionary - // - - IOdictionary sampleDict - ( - IOobject - ( - "sampleSurfaceDict", - runTime.system(), - mesh, - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ); - - const word interpolationScheme(sampleDict.lookup("interpolationScheme")); - const wordList fieldNames = sampleDict.lookup("fields"); - - // - // Construct writers - // - - word writeFormat(sampleDict.lookup("surfaceFormat")); - - autoPtr<surfaceWriter<scalar> > scalarFormatter - ( - surfaceWriter<scalar>::New(writeFormat) - ); - autoPtr<surfaceWriter<vector> > vectorFormatter - ( - surfaceWriter<vector>::New(writeFormat) - ); - autoPtr<surfaceWriter<sphericalTensor> > sphericalTensorFormatter - ( - surfaceWriter<sphericalTensor>::New(writeFormat) - ); - autoPtr<surfaceWriter<symmTensor> > symmTensorFormatter - ( - surfaceWriter<symmTensor>::New(writeFormat) - ); - autoPtr<surfaceWriter<tensor> > tensorFormatter - ( - surfaceWriter<tensor>::New(writeFormat) - ); - - // - // Construct interpolation dictionary (same interpolation for all fields) - // - - dictionary interpolationSchemes; - - forAll(fieldNames, fieldI) - { - interpolationSchemes.add - ( - fieldNames[fieldI], - interpolationScheme - ); - } - - fileName samplePath; - - if (Pstream::parRun()) - { - samplePath = runTime.path()/".."/"sampleSurfaces"; - } - else - { - samplePath = runTime.path()/"sampleSurfaces"; - } - - if (Pstream::master() && exists(samplePath)) - { - Info<< "Deleting sampleSurfaces/ directory" << endl << endl; - rmDir(samplePath); - } - - // Set up interpolation - autoPtr<pointMesh> pMeshPtr(new pointMesh(mesh)); - autoPtr<volPointInterpolation> pInterpPtr - ( - new volPointInterpolation(mesh, pMeshPtr()) - ); - - // Set up mesh searching - meshSearch searchEngine(mesh, true); - - // Create sample surfaces - PtrList<surface> surfaces - ( - sampleDict.lookup("surfaces"), - surface::iNew(mesh, searchEngine) - ); - Info<< endl; - - - fileName oldPointsDir("constant"); - - - for (label i=startTime; i<endTime; i++) - { - runTime.setTime(Times[i], i); - - Info<< "Time = " << runTime.timeName() << endl; - - // - // Handle geometry/topology changes - // - polyMesh::readUpdateState state = mesh.readUpdate(); - - bool meshChanged = false; - - if - ( - state == polyMesh::POINTS_MOVED - || state == polyMesh::TOPO_CHANGE - ) - { - // Geometry and topology changes - searchEngine.correct(); - - pMeshPtr.reset(new pointMesh(mesh)); - - pInterpPtr.reset(new volPointInterpolation(mesh, pMeshPtr())); - - meshChanged = true; - } - - if (Pstream::master()) - { - Info<< "Creating directory " << samplePath/runTime.timeName() - << endl << endl; - - mkDir(samplePath/runTime.timeName()); - } - - - // - // Cache used fields and interpolators - // - - fieldsCache<scalar> scalarCache; - fieldsCache<vector> vectorCache; - fieldsCache<sphericalTensor> sphericalTensorCache; - fieldsCache<symmTensor> symmTensorCache; - fieldsCache<tensor> tensorCache; - - forAll(fieldNames, fieldI) - { - const word& fieldName = fieldNames[fieldI]; - - IOobject fieldHeader - ( - fieldName, - runTime.timeName(), - mesh, - IOobject::MUST_READ - ); - - if (fieldHeader.headerOk()) - { - if - ( - fieldHeader.headerClassName() == volScalarField::typeName - ) - { - Info<< "Loading " << fieldHeader.headerClassName() - << ' ' << fieldName << endl; - - volScalarField* fieldPtr - ( - new volScalarField - ( - fieldHeader, - mesh - ) - ); - - scalarCache.insert(fieldName, fieldPtr); - } - - else if - ( - fieldHeader.headerClassName() == volVectorField::typeName - ) - { - Info<< "Loading " << fieldHeader.headerClassName() - << ' ' << fieldName << endl; - - volVectorField* fieldPtr - ( - new volVectorField - ( - fieldHeader, - mesh - ) - ); - - vectorCache.insert(fieldName, fieldPtr); - } - - else if - ( - fieldHeader.headerClassName() - == volSphericalTensorField::typeName - ) - { - Info<< "Loading " << fieldHeader.headerClassName() - << ' ' << fieldName << endl; - - volSphericalTensorField* fieldPtr - ( - new volSphericalTensorField - ( - fieldHeader, - mesh - ) - ); - - sphericalTensorCache.insert(fieldName, fieldPtr); - } - - else if - ( - fieldHeader.headerClassName() - == volSymmTensorField::typeName - ) - { - Info<< "Loading " << fieldHeader.headerClassName() - << ' ' << fieldName << endl; - - volSymmTensorField* fieldPtr - ( - new volSymmTensorField - ( - fieldHeader, - mesh - ) - ); - - symmTensorCache.insert(fieldName, fieldPtr); - } - - else if - ( - fieldHeader.headerClassName() == volTensorField::typeName - ) - { - Info<< "Loading " << fieldHeader.headerClassName() - << ' ' << fieldName << endl; - - volTensorField* fieldPtr - ( - new volTensorField - ( - fieldHeader, - mesh - ) - ); - - tensorCache.insert(fieldName, fieldPtr); - } - } - } - - - - // - // Now we have fields cached and know whether mesh has changed. - // Update surfaces with this information. - // - - forAll(surfaces, surfaceI) - { - surfaces[surfaceI].correct - ( - meshChanged, - pInterpPtr, - interpolationSchemes, - scalarCache - ); - } - - - // - // Combine surfaces onto master (bug:should not be redone for static - // meshes) - // - - List<pointField> allPoints(surfaces.size()); - List<faceList> allFaces(surfaces.size()); - - forAll(surfaces, surfaceI) - { - // Collect points from all processors - List<pointField> gatheredPoints(Pstream::nProcs()); - gatheredPoints[Pstream::myProcNo()] = surfaces[surfaceI].points(); - Pstream::gatherList(gatheredPoints); - - if (Pstream::master()) - { - allPoints[surfaceI] = ListListOps::combine<pointField> - ( - gatheredPoints, - accessOp<pointField>() - ); - } - - // Collect faces from all processors and renumber using sizes of - // gathered points - List<faceList> gatheredFaces(Pstream::nProcs()); - gatheredFaces[Pstream::myProcNo()] = surfaces[surfaceI].faces(); - Pstream::gatherList(gatheredFaces); - - if (Pstream::master()) - { - allFaces[surfaceI] = static_cast<const faceList&> - ( - ListListOps::combineOffset<faceList> - ( - gatheredFaces, - ListListOps::subSizes - ( - gatheredPoints, - accessOp<pointField>() - ), - accessOp<faceList>(), - offsetOp<face>() - ) - ); - } - } - - // Merge close points (1E-10 of mesh bounding box) - labelListList allOldToNewPoints; - mergePoints(mesh, 1E-10, allPoints, allFaces, allOldToNewPoints); - - - // - // Do actual interpolation - // - - forAll(fieldNames, fieldI) - { - Info<< endl; - - const word& fieldName = fieldNames[fieldI]; - - // Scalar fields - - if (scalarCache.found(fieldName)) - { - Info<< "Sampling volScalarField " << fieldName << endl << endl; - - forAll(surfaces, surfaceI) - { - const surface& s = surfaces[surfaceI]; - - scalarField values - ( - s.interpolate - ( - fieldName, - scalarCache, - pInterpPtr, - interpolationSchemes - ) - ); - - // Collect values from all processors - List<scalarField> gatheredValues(Pstream::nProcs()); - gatheredValues[Pstream::myProcNo()] = values; - Pstream::gatherList(gatheredValues); - - if (Pstream::master()) - { - // Combine values into single field - scalarField allValues - ( - ListListOps::combine<scalarField> - ( - gatheredValues, - accessOp<scalarField>() - ) - ); - - // Renumber (point data) to correspond to merged points - renumberData - ( - allOldToNewPoints[surfaceI], - allPoints[surfaceI].size(), - allValues - ); - - // Write to time directory under sampleSurfaces/ - scalarFormatter().write - ( - samplePath, - runTime.timeName(), - s.name(), - allPoints[surfaceI], - allFaces[surfaceI], - fieldName, - allValues - ); - } - } - } - - // Vector fields - - else if (vectorCache.found(fieldName)) - { - Info<< "Sampling volVectorField " << fieldName << endl << endl; - - forAll(surfaces, surfaceI) - { - const surface& s = surfaces[surfaceI]; - - vectorField values - ( - s.interpolate - ( - fieldName, - vectorCache, - pInterpPtr, - interpolationSchemes - ) - ); - - // Collect values from all processors - List<vectorField> gatheredValues(Pstream::nProcs()); - gatheredValues[Pstream::myProcNo()] = values; - Pstream::gatherList(gatheredValues); - - if (Pstream::master()) - { - vectorField allValues - ( - ListListOps::combine<vectorField> - ( - gatheredValues, - accessOp<vectorField>() - ) - ); - - // Renumber (point data) to correspond to merged points - renumberData - ( - allOldToNewPoints[surfaceI], - allPoints[surfaceI].size(), - allValues - ); - - // Write to time directory under sampleSurfaces/ - vectorFormatter().write - ( - samplePath, - runTime.timeName(), - s.name(), - allPoints[surfaceI], - allFaces[surfaceI], - fieldName, - allValues - ); - } - } - } - - // SphericalTensor fields - - else if (sphericalTensorCache.found(fieldName)) - { - Info<< "Sampling volSphericalTensorField " - << fieldName << endl << endl; - - forAll(surfaces, surfaceI) - { - const surface& s = surfaces[surfaceI]; - - sphericalTensorField values - ( - s.interpolate - ( - fieldName, - sphericalTensorCache, - pInterpPtr, - interpolationSchemes - ) - ); - - // Collect values from all processors - List<sphericalTensorField> - gatheredValues(Pstream::nProcs()); - - gatheredValues[Pstream::myProcNo()] = values; - Pstream::gatherList(gatheredValues); - - if (Pstream::master()) - { - sphericalTensorField allValues - ( - ListListOps::combine<sphericalTensorField> - ( - gatheredValues, - accessOp<sphericalTensorField>() - ) - ); - - // Renumber (point data) to correspond to merged points - renumberData - ( - allOldToNewPoints[surfaceI], - allPoints[surfaceI].size(), - allValues - ); - - // Write to time directory under sampleSurfaces/ - sphericalTensorFormatter().write - ( - samplePath, - runTime.timeName(), - s.name(), - allPoints[surfaceI], - allFaces[surfaceI], - fieldName, - allValues - ); - } - } - } - - // SymmTensor fields - - else if (symmTensorCache.found(fieldName)) - { - Info<< "Sampling volSymmTensorField " - << fieldName << endl << endl; - - forAll(surfaces, surfaceI) - { - const surface& s = surfaces[surfaceI]; - - symmTensorField values - ( - s.interpolate - ( - fieldName, - symmTensorCache, - pInterpPtr, - interpolationSchemes - ) - ); - - // Collect values from all processors - List<symmTensorField> gatheredValues(Pstream::nProcs()); - gatheredValues[Pstream::myProcNo()] = values; - Pstream::gatherList(gatheredValues); - - if (Pstream::master()) - { - symmTensorField allValues - ( - ListListOps::combine<symmTensorField> - ( - gatheredValues, - accessOp<symmTensorField>() - ) - ); - - // Renumber (point data) to correspond to merged points - renumberData - ( - allOldToNewPoints[surfaceI], - allPoints[surfaceI].size(), - allValues - ); - - // Write to time directory under sampleSurfaces/ - symmTensorFormatter().write - ( - samplePath, - runTime.timeName(), - s.name(), - allPoints[surfaceI], - allFaces[surfaceI], - fieldName, - allValues - ); - } - } - } - - // Tensor fields - - else if (tensorCache.found(fieldName)) - { - Info<< "Sampling volTensorField " << fieldName << endl << endl; - - forAll(surfaces, surfaceI) - { - const surface& s = surfaces[surfaceI]; - - tensorField values - ( - s.interpolate - ( - fieldName, - tensorCache, - pInterpPtr, - interpolationSchemes - ) - ); - - // Collect values from all processors - List<tensorField> gatheredValues(Pstream::nProcs()); - gatheredValues[Pstream::myProcNo()] = values; - Pstream::gatherList(gatheredValues); - - if (Pstream::master()) - { - tensorField allValues - ( - ListListOps::combine<tensorField> - ( - gatheredValues, - accessOp<tensorField>() - ) - ); - - // Renumber (point data) to correspond to merged points - renumberData - ( - allOldToNewPoints[surfaceI], - allPoints[surfaceI].size(), - allValues - ); - - // Write to time directory under sampleSurfaces/ - tensorFormatter().write - ( - samplePath, - runTime.timeName(), - s.name(), - allPoints[surfaceI], - allFaces[surfaceI], - fieldName, - allValues - ); - } - } - } - } - - Info<< endl; - } - - - Info<< "End\n" << endl; - - return 0; -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/sampleSurfaceDict b/applications/utilities/postProcessing/sampling/sampleSurface/sampleSurfaceDict deleted file mode 100644 index 6065785638e..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/sampleSurfaceDict +++ /dev/null @@ -1,117 +0,0 @@ -/*---------------------------------------------------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.0 | -| \\ / A nd | Web: http://www.openfoam.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ - -FoamFile -{ - version 2.0; - format ascii; - - root "/home/penfold/mattijs/foam/mattijs2.1/run/icoFoam"; - case "cavity"; - instance "system"; - local ""; - - class dictionary; - object sampleDict; -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - -// Output format. Choice of -// foamFile : separate points, faces and values file -// dx : DX scalar or vector format -// vtk : VTK ascii format -// raw : x y z value format for use with e.g. gnuplot 'splot'. -// stl : ascii stl. Does not contain values! -surfaceFormat vtk; - - -// interpolationScheme : choice of -// cell : use cell-centre value only; constant over cells -// cellPoint : use cell-centre and vertex values -// cellPointFace : use cell-centre, vertex and face values. -// 1] vertex values determined from neighbouring cell-centre values -// 2] face values determined using the current face interpolation scheme -// for the field (linear, gamma, etc.) -interpolationScheme cellPointFace; - - -// sampling definition: choice of -// interpolatedPlane : values on plane defined by point, normal. -// One value per vertex using above -// interpolationScheme -// constantPlane : values on plane defined by point, normal. -// One (cell centre) value per triangle -// constantPatch : values on patch. One (face centre) value -// per triangle. -surfaces -( - constantPlane - { - name constantPlane; - - basePoint (0.05 0.05 0.005); - normalVector (0.1 0.1 1); - - // Optional: whether to leave as faces or triangulate (=default) - triangulate false; - } - - interpolatedPlane - { - name interpolatedPlane; - - basePoint (0.05 0.05 0.005); - normalVector (0.1 0.1 1); - - triangulate false; - } - - - constantPatch - { - name movingWall_constant; - patchName movingWall; - - triangulate false; - } - - interpolatedPatch - { - name movingWall_interpolated; - patchName movingWall; - - triangulate false; - } - - constantIsoSurface - { - name constantIso; - field p; - value 0; - } - interpolatedIsoSurface - { - name someIso; - field p; - value 0; - } -); - - -// Fields to sample. Note: need to include isoSurface fields. -fields -( - p - U -); - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/dx/dx.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/dx/dx.C deleted file mode 100644 index 37bd38ace0c..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/dx/dx.C +++ /dev/null @@ -1,325 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "dx.H" -#include "fileName.H" -#include "OFstream.H" -#include "faceList.H" -#include "OSspecific.H" - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -template<class Type> -void Foam::dx<Type>::writeDXGeometry -( - const pointField& points, - const faceList& faces, - Ostream& os -) const -{ - // Write vertex coordinates - - os << "# The irregular positions" << nl - << "object 1 class array type float rank 1 shape 3 items " - << points.size() << " data follows" << nl; - - forAll(points, pointI) - { - const point& pt = points[pointI]; - - os << float(pt.x()) << ' ' << float(pt.y()) << ' ' << float(pt.z()) - << nl; - } - os << nl; - - // Write triangles - - os << "# The irregular connections (triangles)" << nl - << "object 2 class array type int rank 1 shape 3 items " - << faces.size() << " data follows" << nl; - - forAll(faces, faceI) - { - const face& f = faces[faceI]; - - if (f.size() != 3) - { - FatalErrorIn - ( - "writeDXGeometry(Ostream&, const pointField&, const faceList&)" - ) << "Face " << faceI << " vertices " << f - << " is not a triangle." - << exit(FatalError); - } - - os << f[0] << ' ' << f[1] << ' ' << f[2] << nl; - } - os << "attribute \"element type\" string \"triangles\"" << nl - << "attribute \"ref\" string \"positions\"" << nl << nl; -} - - -// Write scalarField in DX format -template<class Type> -void Foam::dx<Type>::writeDXData -( - const pointField& points, - const scalarField& values, - Ostream& os -) const -{ - // Write data - os << "object 3 class array type float rank 0 items " - << values.size() - << " data follows" << nl; - - forAll(values, elemI) - { - os << float(values[elemI]) << nl; - } - - if (values.size() == points.size()) - { - os << nl << "attribute \"dep\" string \"positions\"" - << nl << nl; - } - else - { - os << nl << "attribute \"dep\" string \"connections\"" - << nl << nl; - } -} - - -// Write vectorField in DX format -template<class Type> -void Foam::dx<Type>::writeDXData -( - const pointField& points, - const vectorField& values, - Ostream& os -) const -{ - // Write data - os << "object 3 class array type float rank 1 shape 3 items " - << values.size() - << " data follows" << nl; - - forAll(values, elemI) - { - os << float(values[elemI].x()) << ' ' - << float(values[elemI].y()) << ' ' - << float(values[elemI].z()) << nl; - } - - if (values.size() == points.size()) - { - os << nl << "attribute \"dep\" string \"positions\"" - << nl << nl; - } - else - { - os << nl << "attribute \"dep\" string \"connections\"" - << nl << nl; - } -} - - -// Write sphericalTensorField in DX format -template<class Type> -void Foam::dx<Type>::writeDXData -( - const pointField& points, - const sphericalTensorField& values, - Ostream& os -) const -{ - // Write data - os << "object 3 class array type float rank 0 items " - << values.size() - << " data follows" << nl; - - forAll(values, elemI) - { - os << float(values[elemI][0]) << nl; - } - - if (values.size() == points.size()) - { - os << nl << "attribute \"dep\" string \"positions\"" - << nl << nl; - } - else - { - os << nl << "attribute \"dep\" string \"connections\"" - << nl << nl; - } -} - - -// Write symmTensorField in DX format -template<class Type> -void Foam::dx<Type>::writeDXData -( - const pointField& points, - const symmTensorField& values, - Ostream& os -) const -{ - // Write data - os << "object 3 class array type float rank 2 shape 3 items " - << values.size() - << " data follows" << nl; - - forAll(values, elemI) - { - const symmTensor& t = values[elemI]; - - os << float(t.xx()) << ' ' << float(t.xy()) << ' ' << float(t.xz()) - << float(t.xy()) << ' ' << float(t.yy()) << ' ' << float(t.yz()) - << float(t.xz()) << ' ' << float(t.yz()) << ' ' << float(t.zz()) - << nl; - } - - if (values.size() == points.size()) - { - os << nl << "attribute \"dep\" string \"positions\"" - << nl << nl; - } - else - { - os << nl << "attribute \"dep\" string \"connections\"" - << nl << nl; - } -} - - -// Write tensorField in DX format -template<class Type> -void Foam::dx<Type>::writeDXData -( - const pointField& points, - const tensorField& values, - Ostream& os -) const -{ - // Write data - os << "object 3 class array type float rank 2 shape 3 items " - << values.size() - << " data follows" << nl; - - forAll(values, elemI) - { - const tensor& t = values[elemI]; - - os << float(t.xx()) << ' ' << float(t.xy()) << ' ' << float(t.xz()) - << float(t.yx()) << ' ' << float(t.yy()) << ' ' << float(t.yz()) - << float(t.zx()) << ' ' << float(t.zy()) << ' ' << float(t.zz()) - << nl; - } - - if (values.size() == points.size()) - { - os << nl << "attribute \"dep\" string \"positions\"" - << nl << nl; - } - else - { - os << nl << "attribute \"dep\" string \"connections\"" - << nl << nl; - } -} - - -// Write trailer in DX format -template<class Type> -void Foam::dx<Type>::writeDXTrailer(Ostream& os) const -{ - os << "# the field, with three components: \"positions\"," - << " \"connections\", and \"data\"" << nl - << "object \"irregular positions irregular " - << "connections\" class field" - << nl - << "component \"positions\" value 1" << nl - << "component \"connections\" value 2" << nl - << "component \"data\" value 3" << nl; -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -template<class Type> -Foam::dx<Type>::dx() -: - surfaceWriter<Type>() -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class Type> -Foam::dx<Type>::~dx() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template<class Type> -void Foam::dx<Type>::write -( - const fileName& samplePath, - const fileName& timeDir, - const fileName& surfaceName, - const pointField& points, - const faceList& faces, - const fileName& fieldName, - const Field<Type>& values -) const -{ - fileName surfaceDir(samplePath/timeDir); - - if (!exists(surfaceDir)) - { - mkDir(surfaceDir); - } - - fileName planeFName(surfaceDir/fieldName + '_' + surfaceName + ".dx"); - - Info<< "Writing field " << fieldName << " to " << planeFName << endl; - - OFstream dxFile(planeFName); - - writeDXGeometry(points, faces, dxFile); - - writeDXData(points, values, dxFile); - - writeDXTrailer(dxFile); - - dxFile << "end" << nl; -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/dx/dx.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/dx/dx.H deleted file mode 100644 index 8732ac1ae02..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/dx/dx.H +++ /dev/null @@ -1,150 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::dx - -Description - -SourceFiles - dx.C - -\*---------------------------------------------------------------------------*/ - -#ifndef dx_H -#define dx_H - -#include "surfaceWriter.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class dx Declaration -\*---------------------------------------------------------------------------*/ - -template<class Type> -class dx -: - public surfaceWriter<Type> -{ - - // Private Member Functions - - void writeDXGeometry - ( - const pointField& points, - const faceList& faces, - Ostream& os - ) const; - - void writeDXData - ( - const pointField& points, - const scalarField& values, - Ostream& os - ) const; - - void writeDXData - ( - const pointField& points, - const vectorField& values, - Ostream& os - ) const; - - void writeDXData - ( - const pointField& points, - const sphericalTensorField& values, - Ostream& os - ) const; - - void writeDXData - ( - const pointField& points, - const symmTensorField& values, - Ostream& os - ) const; - - void writeDXData - ( - const pointField& points, - const tensorField& values, - Ostream& os - ) const; - - void writeDXTrailer(Ostream& os) const; - -public: - - //- Runtime type information - TypeName("dx"); - - - // Constructors - - //- Construct null - dx(); - - - // Destructor - - virtual ~dx(); - - - // Member Functions - - // Write - - //- Writes single surface to file. - virtual void write - ( - const fileName& samplePath, - const fileName& timeDir, - const fileName& surfaceName, - const pointField& points, - const faceList& faces, - const fileName& fieldName, - const Field<Type>& values - ) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "dx.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/dx/dxWriters.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/dx/dxWriters.C deleted file mode 100644 index f0bd7ea7e00..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/dx/dxWriters.C +++ /dev/null @@ -1,43 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "dxWriters.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -makeWriters(dx); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/dx/dxWriters.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/dx/dxWriters.H deleted file mode 100644 index 39dfedabdd1..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/dx/dxWriters.H +++ /dev/null @@ -1,63 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -InClass - Foam::dxWriters - -Description - -SourceFiles - dxWriters.C - -\*---------------------------------------------------------------------------*/ - -#ifndef dxWriters_H -#define dxWriters_H - -#include "dx.H" -#include "surfaceWriters.H" -#include "fieldTypes.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -typedef dx<scalar> dxScalarWriter; -typedef dx<vector> dxVectorWriter; -typedef dx<sphericalTensor> dxSphericalTensorWriter; -typedef dx<symmTensor> dxSymmTensorWriter; -typedef dx<tensor> dxTensorWriter; - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/foamFile/foamFile.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/foamFile/foamFile.C deleted file mode 100644 index 9c54699c40a..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/foamFile/foamFile.C +++ /dev/null @@ -1,99 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "foamFile.H" -#include "fileName.H" -#include "OFstream.H" -#include "faceList.H" -#include "OSspecific.H" - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -template<class Type> -Foam::foamFile<Type>::foamFile() -: - surfaceWriter<Type>() -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class Type> -Foam::foamFile<Type>::~foamFile() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template<class Type> -void Foam::foamFile<Type>::write -( - const fileName& samplePath, - const fileName& timeDir, - const fileName& surfaceName, - const pointField& points, - const faceList& faces, - const fileName& fieldName, - const Field<Type>& values -) const -{ - fileName planeFName(samplePath/timeDir/surfaceName); - - if (!exists(planeFName)) - { - mkDir(planeFName); - } - - Info<< "Writing field " << fieldName << " to " << planeFName << endl; - - // Points - OFstream pointsFile(planeFName/"points"); - - pointsFile << points; - - // Faces - OFstream facesFile(planeFName/"faces"); - - facesFile << faces; - - // Values to separate directory (e.g. "scalarField/p") - - fileName foamName(pTraits<Type>::typeName); - - fileName valuesDir(planeFName / (foamName + Field<Type>::typeName)); - - if (!exists(valuesDir)) - { - mkDir(valuesDir); - } - - OFstream valuesFile(valuesDir/fieldName); - - valuesFile << values; -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/foamFile/foamFile.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/foamFile/foamFile.H deleted file mode 100644 index 3f5d1455e6e..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/foamFile/foamFile.H +++ /dev/null @@ -1,104 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::foamFile - -Description - -SourceFiles - foamFile.C - -\*---------------------------------------------------------------------------*/ - -#ifndef foamFile_H -#define foamFile_H - -#include "surfaceWriter.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class foamFile Declaration -\*---------------------------------------------------------------------------*/ - -template<class Type> -class foamFile -: - public surfaceWriter<Type> -{ - -public: - - //- Runtime type information - TypeName("foamFile"); - - - // Constructors - - //- Construct null - foamFile(); - - - // Destructor - - virtual ~foamFile(); - - - // Member Functions - - // Write - - //- Writes single surface to file. - virtual void write - ( - const fileName& samplePath, - const fileName& timeDir, - const fileName& surfaceName, - const pointField& points, - const faceList& faces, - const fileName& fieldName, - const Field<Type>& values - ) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "foamFile.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/foamFile/foamFileWriters.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/foamFile/foamFileWriters.C deleted file mode 100644 index 746b4f2ce30..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/foamFile/foamFileWriters.C +++ /dev/null @@ -1,43 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "foamFileWriters.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -makeWriters(foamFile); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/foamFile/foamFileWriters.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/foamFile/foamFileWriters.H deleted file mode 100644 index 61868b618e3..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/foamFile/foamFileWriters.H +++ /dev/null @@ -1,63 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -InClass - Foam::foamFileWriters - -Description - -SourceFiles - foamFileWriters.C - -\*---------------------------------------------------------------------------*/ - -#ifndef foamFileWriters_H -#define foamFileWriters_H - -#include "foamFile.H" -#include "surfaceWriters.H" -#include "fieldTypes.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -typedef foamFile<scalar> foamFileScalarWriter; -typedef foamFile<vector> foamFileVectorWriter; -typedef foamFile<sphericalTensor> foamFileSphericalTensorWriter; -typedef foamFile<symmTensor> foamFileSymmTensorWriter; -typedef foamFile<tensor> foamFileTensorWriter; - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/raw/raw.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/raw/raw.C deleted file mode 100644 index 9aaa6a4f7ed..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/raw/raw.C +++ /dev/null @@ -1,359 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "raw.H" -#include "fileName.H" -#include "OFstream.H" -#include "faceList.H" -#include "OSspecific.H" -#include "IOmanip.H" - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -template<class Type> -void Foam::raw<Type>::writeGeometry -( - const pointField& points, - const label& pointI, - Ostream& os -) const -{ - const point& pt = points[pointI]; - - os << pt.x() << ' ' << pt.y() << ' ' << pt.z() << ' '; -} - - -template<class Type> -void Foam::raw<Type>::writeGeometry -( - const pointField& points, - const faceList& faces, - const label& faceI, - Ostream& os -) const -{ - const point& ct = faces[faceI].centre(points); - - os << ct.x() << ' ' << ct.y() << ' ' << ct.z() << ' '; -} - -// Write scalarField in raw format -template<class Type> -void Foam::raw<Type>::writeData -( - const fileName& fieldName, - const pointField& points, - const faceList& faces, - const scalarField& values, - Ostream& os -) const -{ - // header - os << "# " << fieldName; - - if (values.size() == points.size()) - { - os << " POINT_DATA " << values.size() - << nl; - } - else - { - os << " FACE_DATA " << values.size() - << nl; - } - - os << "# x y z " << fieldName - << endl; - - // Write data - forAll(values, elemI) - { - if (values.size() == points.size()) - { - writeGeometry(points, elemI, os); - } - else - { - writeGeometry(points, faces, elemI, os); - } - os << values[elemI] << endl; - } - os << nl; -} - - -// Write vectorField in raw format -template<class Type> -void Foam::raw<Type>::writeData -( - const fileName& fieldName, - const pointField& points, - const faceList& faces, - const vectorField& values, - Ostream& os -) const -{ - // header - os << "# " << fieldName; - - if (values.size() == points.size()) - { - os << " POINT_DATA " << values.size() - << nl; - } - else - { - os << " FACE_DATA " << values.size() - << nl; - } - - os << "# x y z " - << fieldName << "_x " - << fieldName << "_y " - << fieldName << "_z " - << endl; - - // Write data - forAll(values, elemI) - { - const vector& v = values[elemI]; - - if (values.size() == points.size()) - { - writeGeometry(points, elemI, os); - } - else - { - writeGeometry(points, faces, elemI, os); - } - - os << v[0] << ' ' << v[1] << ' ' << v[2] << nl; - } -} - - -// Write sphericalTensorField in raw format -template<class Type> -void Foam::raw<Type>::writeData -( - const fileName& fieldName, - const pointField& points, - const faceList& faces, - const sphericalTensorField& values, - Ostream& os -) const -{ - // header - os << "# " << fieldName; - - if (values.size() == points.size()) - { - os << " POINT_DATA " << values.size() - << nl; - } - else - { - os << " FACE_DATA " << values.size() - << nl; - } - - os << "# ii "; - os << fieldName << "_ii" << endl; - - // Write data - forAll(values, elemI) - { - const sphericalTensor& v = values[elemI]; - - if (values.size() == points.size()) - { - writeGeometry(points, elemI, os); - } - else - { - writeGeometry(points, faces, elemI, os); - } - - os << v[0] << nl; - } -} - - -// Write symmTensorField in raw format -template<class Type> -void Foam::raw<Type>::writeData -( - const fileName& fieldName, - const pointField& points, - const faceList& faces, - const symmTensorField& values, - Ostream& os -) const -{ - // header - os << "# " << fieldName; - - if (values.size() == points.size()) - { - os << " POINT_DATA " << values.size() - << nl; - } - else - { - os << " FACE_DATA " << values.size() - << nl; - } - - os << "# xx xy xz yy yz "; - for(int i=0; i<6; i++) - { - os << fieldName << "_" << i << " "; - } - os << endl; - - // Write data - forAll(values, elemI) - { - const symmTensor& v = values[elemI]; - - if (values.size() == points.size()) - { - writeGeometry(points, elemI, os); - } - else - { - writeGeometry(points, faces, elemI, os); - } - - os << v[0] << ' ' << v[1] << ' ' << v[2] - << v[3] << ' ' << v[4] << ' ' << v[5] - << nl; - } -} - - -// Write tensorField in raw format -template<class Type> -void Foam::raw<Type>::writeData -( - const fileName& fieldName, - const pointField& points, - const faceList& faces, - const tensorField& values, - Ostream& os -) const -{ - // header - os << "# " << fieldName; - - if (values.size() == points.size()) - { - os << " POINT_DATA " << values.size() - << nl; - } - else - { - os << " FACE_DATA " << values.size() - << nl; - } - - os << "# xx xy xz yx yy yz zx zy zz"; - for(int i=0; i<9; i++) - { - os << fieldName << "_" << i << " "; - } - os << endl; - - // Write data - forAll(values, elemI) - { - const tensor& v = values[elemI]; - - if (values.size() == points.size()) - { - writeGeometry(points, elemI, os); - } - else - { - writeGeometry(points, faces, elemI, os); - } - - os << v[0] << ' ' << v[1] << ' ' << v[2] - << v[3] << ' ' << v[4] << ' ' << v[5] - << v[6] << ' ' << v[7] << ' ' << v[8] << nl; - } -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -template<class Type> -Foam::raw<Type>::raw() -: - surfaceWriter<Type>() -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class Type> -Foam::raw<Type>::~raw() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template<class Type> -void Foam::raw<Type>::write -( - const fileName& samplePath, - const fileName& timeDir, - const fileName& surfaceName, - const pointField& points, - const faceList& faces, - const fileName& fieldName, - const Field<Type>& values -) const -{ - fileName surfaceDir(samplePath/timeDir); - - if (!exists(surfaceDir)) - { - mkDir(surfaceDir); - } - - fileName planeFName(surfaceDir/fieldName + '_' + surfaceName + ".raw"); - - Info<< "Writing field " << fieldName << " to " << planeFName << endl; - - OFstream rawFile(planeFName); - - writeData(fieldName, points, faces, values, rawFile); -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/raw/raw.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/raw/raw.H deleted file mode 100644 index a98e44bdc6d..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/raw/raw.H +++ /dev/null @@ -1,166 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::raw - -Description - -SourceFiles - raw.C - -\*---------------------------------------------------------------------------*/ - -#ifndef raw_H -#define raw_H - -#include "surfaceWriter.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class raw Declaration -\*---------------------------------------------------------------------------*/ - -template<class Type> -class raw -: - public surfaceWriter<Type> -{ - - // Private Member Functions - - void writeGeometry - ( - const pointField& points, - const label& pointI, - Ostream& os - ) const; - - void writeGeometry - ( - const pointField& points, - const faceList& faces, - const label& faceI, - Ostream& os - ) const; - - void writeData - ( - const fileName& fieldName, - const pointField& points, - const faceList& faces, - const scalarField& values, - Ostream& os - ) const; - - void writeData - ( - const fileName& fieldName, - const pointField& points, - const faceList& faces, - const vectorField& values, - Ostream& os - ) const; - - void writeData - ( - const fileName& fieldName, - const pointField& points, - const faceList& faces, - const sphericalTensorField& values, - Ostream& os - ) const; - - void writeData - ( - const fileName& fieldName, - const pointField& points, - const faceList& faces, - const symmTensorField& values, - Ostream& os - ) const; - - void writeData - ( - const fileName& fieldName, - const pointField& points, - const faceList& faces, - const tensorField& values, - Ostream& os - ) const; - - -public: - - //- Runtime type information - TypeName("raw"); - - - // Constructors - - //- Construct null - raw(); - - // Destructor - - virtual ~raw(); - - - // Member Functions - - // Write - - //- Writes single surface to file. - virtual void write - ( - const fileName& samplePath, - const fileName& timeDir, - const fileName& surfaceName, - const pointField& points, - const faceList& faces, - const fileName& fieldName, - const Field<Type>& values - ) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "raw.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/raw/rawWriters.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/raw/rawWriters.C deleted file mode 100644 index ecf4146d17f..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/raw/rawWriters.C +++ /dev/null @@ -1,43 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "rawWriters.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -makeWriters(raw); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/raw/rawWriters.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/raw/rawWriters.H deleted file mode 100644 index 63012f65128..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/raw/rawWriters.H +++ /dev/null @@ -1,63 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -InClass - Foam::rawWriters - -Description - -SourceFiles - rawWriters.C - -\*---------------------------------------------------------------------------*/ - -#ifndef rawWriters_H -#define rawWriters_H - -#include "raw.H" -#include "surfaceWriters.H" -#include "fieldTypes.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -typedef raw<scalar> rawScalarWriter; -typedef raw<vector> rawVectorWriter; -typedef raw<sphericalTensor> rawSphericalTensorWriter; -typedef raw<symmTensor> rawSymmTensorWriter; -typedef raw<tensor> rawTensorWriter; - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/stl/stl.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/stl/stl.C deleted file mode 100644 index e35b6a915f1..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/stl/stl.C +++ /dev/null @@ -1,112 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "stl.H" -#include "fileName.H" -#include "OFstream.H" -#include "faceList.H" -#include "OSspecific.H" -#include "triSurface.H" - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -template<class Type> -Foam::stl<Type>::stl() -: - surfaceWriter<Type>() -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class Type> -Foam::stl<Type>::~stl() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template<class Type> -void Foam::stl<Type>::write -( - const fileName& samplePath, - const fileName& timeDir, - const fileName& surfaceName, - const pointField& points, - const faceList& faces, - const fileName& fieldName, - const Field<Type>& values -) const -{ - fileName surfaceDir(samplePath/timeDir); - - if (!exists(surfaceDir)) - { - mkDir(surfaceDir); - } - - fileName planeFName(surfaceDir/fieldName + '_' + surfaceName + ".stl"); - - Info<< "Writing field " << fieldName << " to " << planeFName << endl; - - - // Convert faces to triangles. - DynamicList<labelledTri> tris(faces.size()); - - forAll(faces, i) - { - const face& f = faces[i]; - - faceList triFaces(f.nTriangles(points)); - label nTris = 0; - f.triangles(points, nTris, triFaces); - - forAll(triFaces, triI) - { - const face& tri = triFaces[triI]; - tris.append(labelledTri(tri[0], tri[1], tri[2], 0)); - } - } - - triSurface - ( - tris.shrink(), - geometricSurfacePatchList - ( - 1, - geometricSurfacePatch - ( - "patch", // geometricType - string::validate<word>(fieldName), // fieldName - 0 // index - ) - ), - points - ).write(planeFName); -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/stl/stl.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/stl/stl.H deleted file mode 100644 index 528969dffa0..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/stl/stl.H +++ /dev/null @@ -1,104 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::stl - -Description - -SourceFiles - stl.C - -\*---------------------------------------------------------------------------*/ - -#ifndef stl_H -#define stl_H - -#include "surfaceWriter.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class stl Declaration -\*---------------------------------------------------------------------------*/ - -template<class Type> -class stl -: - public surfaceWriter<Type> -{ - -public: - - //- Runtime type information - TypeName("stl"); - - - // Constructors - - //- Construct null - stl(); - - - // Destructor - - virtual ~stl(); - - - // Member Functions - - // Write - - //- Writes single surface to file. - virtual void write - ( - const fileName& samplePath, - const fileName& timeDir, - const fileName& surfaceName, - const pointField& points, - const faceList& faces, - const fileName& fieldName, - const Field<Type>& values - ) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "stl.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/stl/stlWriters.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/stl/stlWriters.C deleted file mode 100644 index 4bccc9da5c8..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/stl/stlWriters.C +++ /dev/null @@ -1,43 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "stlWriters.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -makeWriters(stl); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/stl/stlWriters.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/stl/stlWriters.H deleted file mode 100644 index 735587ef8be..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/stl/stlWriters.H +++ /dev/null @@ -1,63 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -InClass - Foam::stlWriters - -Description - -SourceFiles - stlWriters.C - -\*---------------------------------------------------------------------------*/ - -#ifndef stlWriters_H -#define stlWriters_H - -#include "stl.H" -#include "surfaceWriters.H" -#include "fieldTypes.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -typedef stl<scalar> stlScalarWriter; -typedef stl<vector> stlVectorWriter; -typedef stl<sphericalTensor> stlSphericalTensorWriter; -typedef stl<symmTensor> stlSymmTensorWriter; -typedef stl<tensor> stlTensorWriter; - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/surfaceWriter/surfaceWriter.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/surfaceWriter/surfaceWriter.C deleted file mode 100644 index 9ba9ac6b995..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/surfaceWriter/surfaceWriter.C +++ /dev/null @@ -1,78 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "surfaceWriter.H" -#include "HashTable.H" -#include "word.H" -#include "fileName.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - -template<class Type> -autoPtr<surfaceWriter<Type> > surfaceWriter<Type>::New(const word& writeType) -{ - typename wordConstructorTable::iterator cstrIter = - wordConstructorTablePtr_ - ->find(writeType); - - if (cstrIter == wordConstructorTablePtr_->end()) - { - FatalErrorIn - ( - "surfaceWriter::New(const word&)" - ) << "Unknown write type " << writeType - << endl << endl - << "Valid write types : " << endl - << wordConstructorTablePtr_->toc() - << exit(FatalError); - } - - return autoPtr<surfaceWriter<Type> >(cstrIter()()); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -template<class Type> -surfaceWriter<Type>::surfaceWriter() -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class Type> -surfaceWriter<Type>::~surfaceWriter() -{} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/surfaceWriter/surfaceWriter.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/surfaceWriter/surfaceWriter.H deleted file mode 100644 index 36ee07b5194..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/surfaceWriter/surfaceWriter.H +++ /dev/null @@ -1,158 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::surfaceWriter - -Description - -SourceFiles - surfaceWriter.C - -\*---------------------------------------------------------------------------*/ - -#ifndef surfaceWriter_H -#define surfaceWriter_H - -#include "Field.H" -#include "typeInfo.H" -#include "runTimeSelectionTables.H" -#include "autoPtr.H" -#include "pointField.H" -#include "faceList.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class surfaceWriter Declaration -\*---------------------------------------------------------------------------*/ - -template<class Type> -class surfaceWriter -{ - -public: - - //- Runtime type information - TypeName("surfaceWriter"); - - // Declare run-time constructor selection table - - declareRunTimeSelectionTable - ( - autoPtr, - surfaceWriter, - word, - (), - () - ); - - - // Selectors - - //- Return a reference to the selected surfaceWriter - static autoPtr<surfaceWriter> New(const word& writeFormat); - - - // Constructors - - //- Construct null - surfaceWriter(); - - - // Destructor - - virtual ~surfaceWriter(); - - - // Member Functions - - //- Writes single surface to file. Either one value per vertex or - // one value per face (detected by values.size()==faces.size()) - virtual void write - ( - const fileName& samplePath, // <root>/<case>/sampleSurfaces - const fileName& timeDir, // time directory - const fileName& surfaceName, // name of surface - const pointField& points, - const faceList& faces, - const fileName& fieldName, // name of field - const Field<Type>& values - ) const = 0; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "surfaceWriter.C" -#endif - -// Only used internally -#define makeTypeWritersTypeName(type) \ - \ -defineNamedTemplateTypeNameAndDebug(type, 0); - -// Used externally sometimes -#define makeWritersTypeName(typeWriter) \ - \ -makeTypeWritersTypeName(typeWriter##ScalarWriter); \ -makeTypeWritersTypeName(typeWriter##VectorWriter); \ -makeTypeWritersTypeName(typeWriter##SphericalTensorWriter); \ -makeTypeWritersTypeName(typeWriter##SymmTensorWriter); \ -makeTypeWritersTypeName(typeWriter##TensorWriter); - -// Define type info for single template instantiation (e.g. vector) -#define makeWriterTypes(WriterType, type) \ - \ -defineNamedTemplateTypeNameAndDebug(type, 0); \ - \ -addToRunTimeSelectionTable \ -( \ - WriterType, type, word \ -); - - -// Define type info info for scalar, vector etc. instantiations -#define makeWriters(typeWriter) \ - \ -makeWriterTypes(scalarWriter, typeWriter##ScalarWriter); \ -makeWriterTypes(vectorWriter, typeWriter##VectorWriter); \ -makeWriterTypes(sphericalTensorWriter, typeWriter##SphericalTensorWriter); \ -makeWriterTypes(symmTensorWriter, typeWriter##SymmTensorWriter);\ -makeWriterTypes(tensorWriter, typeWriter##TensorWriter); - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/surfaceWriter/surfaceWriters.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/surfaceWriter/surfaceWriters.C deleted file mode 100644 index bd1e73ee0ec..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/surfaceWriter/surfaceWriters.C +++ /dev/null @@ -1,55 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "surfaceWriters.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineNamedTemplateTypeNameAndDebug(scalarWriter, 0); -defineTemplateRunTimeSelectionTable(scalarWriter, word); - -defineNamedTemplateTypeNameAndDebug(vectorWriter, 0); -defineTemplateRunTimeSelectionTable(vectorWriter, word); - -defineNamedTemplateTypeNameAndDebug(sphericalTensorWriter, 0); -defineTemplateRunTimeSelectionTable(sphericalTensorWriter, word); - -defineNamedTemplateTypeNameAndDebug(symmTensorWriter, 0); -defineTemplateRunTimeSelectionTable(symmTensorWriter, word); - -defineNamedTemplateTypeNameAndDebug(tensorWriter, 0); -defineTemplateRunTimeSelectionTable(tensorWriter, word); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/surfaceWriter/surfaceWriters.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/surfaceWriter/surfaceWriters.H deleted file mode 100644 index 33a5e87ba76..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/surfaceWriter/surfaceWriters.H +++ /dev/null @@ -1,59 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -InClass - Foam::surfaceWriter - -Description - -\*---------------------------------------------------------------------------*/ - -#ifndef surfaceWriters_H -#define surfaceWriters_H - -#include "surfaceWriter.H" -#include "fieldTypes.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -typedef surfaceWriter<scalar> scalarWriter; -typedef surfaceWriter<vector> vectorWriter; -typedef surfaceWriter<sphericalTensor> sphericalTensorWriter; -typedef surfaceWriter<symmTensor> symmTensorWriter; -typedef surfaceWriter<tensor> tensorWriter; - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/vtk/vtk.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/vtk/vtk.C deleted file mode 100644 index 204b6aca2c9..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/vtk/vtk.C +++ /dev/null @@ -1,330 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "vtk.H" -#include "fileName.H" -#include "OFstream.H" -#include "faceList.H" -#include "OSspecific.H" - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -template<class Type> -void Foam::vtk<Type>::writeGeometry -( - const pointField& points, - const faceList& faces, - Ostream& os -) const -{ - // Write vertex coordinates - - os - << "# vtk DataFile Version 2.0" << nl - << "sampleSurface" << nl - << "ASCII" << nl - << "DATASET POLYDATA" << nl; - - os << "POINTS " << points.size() << " float" << nl; - - forAll(points, pointI) - { - const point& pt = points[pointI]; - - os << float(pt.x()) << ' ' << float(pt.y()) << ' ' << float(pt.z()) - << nl; - } - os << endl; - - - // Write triangles - - label nFaceVerts = 0; - - forAll(faces, faceI) - { - const face& f = faces[faceI]; - - nFaceVerts += f.size() + 1; - } - - os << "POLYGONS " << faces.size() << ' ' << nFaceVerts << nl; - - forAll(faces, faceI) - { - const face& f = faces[faceI]; - - os << f.size(); - - forAll(f, fp) - { - os << ' ' << f[fp]; - } - os << nl; - } -} - - -// Write scalarField in vtk format -template<class Type> -void Foam::vtk<Type>::writeData -( - const fileName& fieldName, - const pointField& points, - const scalarField& values, - Ostream& os -) const -{ - // Write data - if (values.size() == points.size()) - { - os << "POINT_DATA " << values.size() - << nl - << "FIELD attributes 1" << nl; - } - else - { - os << "CELL_DATA " << values.size() - << nl - << "FIELD attributes 1" << nl; - } - - os << fieldName << " 1 " << values.size() << " float" << nl; - - forAll(values, elemI) - { - os << float(values[elemI]); - - if (elemI > 0 && (elemI%10) == 0) - { - os << nl; - } - else - { - os << ' '; - } - } - os << nl; -} - - -// Write vectorField in vtk format -template<class Type> -void Foam::vtk<Type>::writeData -( - const fileName& fieldName, - const pointField& points, - const vectorField& values, - Ostream& os -) const -{ - // Write data - if (values.size() == points.size()) - { - os << "POINT_DATA " << values.size() - << nl - << "FIELD attributes 1" << nl; - } - else - { - os << "CELL_DATA " << values.size() - << nl - << "FIELD attributes 1" << nl; - } - - os << fieldName << " 3 " << values.size() << " float" << nl; - - forAll(values, elemI) - { - const vector& v = values[elemI]; - - os << float(v[0]) << ' ' << float(v[1]) << ' ' << float(v[2]) << nl; - } -} - - -// Write sphericalTensorField in vtk format -template<class Type> -void Foam::vtk<Type>::writeData -( - const fileName& fieldName, - const pointField& points, - const sphericalTensorField& values, - Ostream& os -) const -{ - // Write data - if (values.size() == points.size()) - { - os << "POINT_DATA " << values.size() - << nl - << "FIELD attributes 1" << nl; - } - else - { - os << "CELL_DATA " << values.size() - << nl - << "FIELD attributes 1" << nl; - } - - os << fieldName << " 1 " << values.size() << " float" << nl; - - forAll(values, elemI) - { - const sphericalTensor& v = values[elemI]; - - os << float(v[0]) - << nl; - } -} - - -// Write symmTensorField in vtk format -template<class Type> -void Foam::vtk<Type>::writeData -( - const fileName& fieldName, - const pointField& points, - const symmTensorField& values, - Ostream& os -) const -{ - // Write data - if (values.size() == points.size()) - { - os << "POINT_DATA " << values.size() - << nl - << "FIELD attributes 1" << nl; - } - else - { - os << "CELL_DATA " << values.size() - << nl - << "FIELD attributes 1" << nl; - } - - os << fieldName << " 6 " << values.size() << " float" << nl; - - forAll(values, elemI) - { - const symmTensor& v = values[elemI]; - - os << float(v[0]) << ' ' << float(v[1]) << ' ' << float(v[2]) - << float(v[3]) << ' ' << float(v[4]) << ' ' << float(v[5]) - << nl; - } -} - - -// Write tensorField in vtk format -template<class Type> -void Foam::vtk<Type>::writeData -( - const fileName& fieldName, - const pointField& points, - const tensorField& values, - Ostream& os -) const -{ - // Write data - if (values.size() == points.size()) - { - os << "POINT_DATA " << values.size() - << nl - << "FIELD attributes 1" << nl; - } - else - { - os << "CELL_DATA " << values.size() - << nl - << "FIELD attributes 1" << nl; - } - - os << fieldName << " 9 " << values.size() << " float" << nl; - - forAll(values, elemI) - { - const tensor& v = values[elemI]; - - os << float(v[0]) << ' ' << float(v[1]) << ' ' << float(v[2]) - << float(v[3]) << ' ' << float(v[4]) << ' ' << float(v[5]) - << float(v[6]) << ' ' << float(v[7]) << ' ' << float(v[8]) - << nl; - } -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from components -template<class Type> -Foam::vtk<Type>::vtk() -: - surfaceWriter<Type>() -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class Type> -Foam::vtk<Type>::~vtk() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template<class Type> -void Foam::vtk<Type>::write -( - const fileName& samplePath, - const fileName& timeDir, - const fileName& surfaceName, - const pointField& points, - const faceList& faces, - const fileName& fieldName, - const Field<Type>& values -) const -{ - fileName surfaceDir(samplePath/timeDir); - - if (!exists(surfaceDir)) - { - mkDir(surfaceDir); - } - - fileName planeFName(surfaceDir/fieldName + '_' + surfaceName + ".vtk"); - - Info<< "Writing field " << fieldName << " to " << planeFName << endl; - - OFstream vtkFile(planeFName); - - writeGeometry(points, faces, vtkFile); - - writeData(fieldName, points, values, vtkFile); -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/vtk/vtk.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/vtk/vtk.H deleted file mode 100644 index 2da3ed496f4..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/vtk/vtk.H +++ /dev/null @@ -1,153 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::vtk - -Description - -SourceFiles - vtk.C - -\*---------------------------------------------------------------------------*/ - -#ifndef vtk_H -#define vtk_H - -#include "surfaceWriter.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class vtk Declaration -\*---------------------------------------------------------------------------*/ - -template<class Type> -class vtk -: - public surfaceWriter<Type> -{ - - // Private Member Functions - - void writeGeometry - ( - const pointField& points, - const faceList& faces, - Ostream& os - ) const; - - void writeData - ( - const fileName& fieldName, - const pointField& points, - const scalarField& values, - Ostream& os - ) const; - - void writeData - ( - const fileName& fieldName, - const pointField& points, - const vectorField& values, - Ostream& os - ) const; - - void writeData - ( - const fileName& fieldName, - const pointField& points, - const sphericalTensorField& values, - Ostream& os - ) const; - - void writeData - ( - const fileName& fieldName, - const pointField& points, - const symmTensorField& values, - Ostream& os - ) const; - - void writeData - ( - const fileName& fieldName, - const pointField& points, - const tensorField& values, - Ostream& os - ) const; - - -public: - - //- Runtime type information - TypeName("vtk"); - - - // Constructors - - //- Construct null - vtk(); - - // Destructor - - virtual ~vtk(); - - - // Member Functions - - // Write - - //- Writes single surface to file. - virtual void write - ( - const fileName& samplePath, - const fileName& timeDir, - const fileName& surfaceName, - const pointField& points, - const faceList& faces, - const fileName& fieldName, - const Field<Type>& values - ) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "vtk.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/vtk/vtkWriters.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/vtk/vtkWriters.C deleted file mode 100644 index 22936eff257..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/vtk/vtkWriters.C +++ /dev/null @@ -1,43 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "vtkWriters.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -makeWriters(vtk); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/vtk/vtkWriters.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/vtk/vtkWriters.H deleted file mode 100644 index 1e8e0cea19e..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaceWriters/vtk/vtkWriters.H +++ /dev/null @@ -1,63 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -InClass - Foam::vtkWriters - -Description - -SourceFiles - vtkWriters.C - -\*---------------------------------------------------------------------------*/ - -#ifndef vtkWriters_H -#define vtkWriters_H - -#include "vtk.H" -#include "surfaceWriters.H" -#include "fieldTypes.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -typedef vtk<scalar> vtkScalarWriter; -typedef vtk<vector> vtkVectorWriter; -typedef vtk<sphericalTensor> vtkSphericalTensorWriter; -typedef vtk<symmTensor> vtkSymmTensorWriter; -typedef vtk<tensor> vtkTensorWriter; - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantIsoSurface/constantIsoSurface.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantIsoSurface/constantIsoSurface.C deleted file mode 100644 index e7014877910..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantIsoSurface/constantIsoSurface.C +++ /dev/null @@ -1,271 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "constantIsoSurface.H" -#include "meshSearch.H" -#include "polyMesh.H" -#include "interpolation.H" -#include "dictionary.H" -#include "meshCutSurface.H" -#include "cellDecompIsoSurfaceCuts.H" - -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - -defineTypeNameAndDebug(constantIsoSurface, 0); - -addToRunTimeSelectionTable(surface, constantIsoSurface, word); - -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -template<class Type> -Foam::tmp<Foam::Field<Type> > Foam::constantIsoSurface::interpolate -( - const word& fieldName, - const fieldsCache<Type>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - const GeometricField<Type, fvPatchField, volMesh>& vField = - *cache[fieldName]; - - tmp<Field<Type> > tresult(new Field<Type>(faces().size())); - Field<Type>& result = tresult(); - - forAll(result, faceI) - { - result[faceI] = vField[cellLabels_[faceI]]; - } - - return tresult; -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::constantIsoSurface::constantIsoSurface -( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& isoFieldName, - const scalar isoVal -) -: - surface(mesh, searchEngine, name), - isoFieldName_(isoFieldName), - isoVal_(isoVal), - points_(0), - faces_(0), - cellLabels_(0) -{} - - -Foam::constantIsoSurface::constantIsoSurface -( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict -) -: - surface(mesh, searchEngine, dict), - isoFieldName_(dict.lookup("field")), - isoVal_(readScalar(dict.lookup("value"))), - points_(0), - faces_(0), - cellLabels_(0) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::constantIsoSurface::~constantIsoSurface() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void Foam::constantIsoSurface::correct -( - const bool meshChanged, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes, - const fieldsCache<scalar>& scalarCache -) -{ - if (!scalarCache.found(isoFieldName_)) - { - FatalErrorIn - ( - "constantIsoSurface::correct(const bool meshChanged," - "const volPointInterpolation&, const fieldsCache<scalar>&" - ", const fieldsCache<vector>&, const fieldsCache<tensor>&)" - ) << "Field " << isoFieldName_ << " not loaded." << endl - << "It has to be one of the sampled fields" - << exit(FatalError); - } - const volScalarField& vField = *scalarCache[isoFieldName_]; - - const pointScalarField& pField = - scalarCache.pointField(isoFieldName_, pInterp); - - // Create smooth volField. - volScalarField smoothVolField(vField); - - const labelListList& cellPoints = vField.mesh().cellPoints(); - - forAll(cellPoints, cellI) - { - const labelList& cPoints = cellPoints[cellI]; - - scalar sum = 0; - - forAll(cPoints, i) - { - sum += pField[cPoints[i]]; - } - smoothVolField[cellI] = sum / cPoints.size(); - } - - - cellDecompIsoSurfaceCuts isoSurfaceCuts - ( - smoothVolField, - pField, - isoVal_, - -0.1 - ); - - meshCutSurface isoSurf(isoSurfaceCuts); - - points_ = isoSurf.points(); - - // Convert triangles into faces - faces_.setSize(isoSurf.size()); - cellLabels_.setSize(isoSurf.size()); - - forAll(isoSurf, triI) - { - face& f = faces_[triI]; - const labelledTri& t = isoSurf[triI]; - - f.setSize(3); - f[0] = t[0]; - f[1] = t[1]; - f[2] = t[2]; - - cellLabels_[triI] = t.region(); - } - - Pout<< "Created " << name() << " :" - << " isoValue:" << isoVal_ - << " field:" << isoFieldName_ - << " faces:" << faces_.size() - << " points:" << points_.size() << endl; -} - - -Foam::tmp<Foam::scalarField> Foam::constantIsoSurface::interpolate -( - const word& fieldName, - const fieldsCache<scalar>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<scalar>(fieldName, cache, pInterp, interpolationSchemes); -} - - -Foam::tmp<Foam::vectorField> Foam::constantIsoSurface::interpolate -( - const word& fieldName, - const fieldsCache<vector>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<vector>(fieldName, cache, pInterp, interpolationSchemes); -} - - -Foam::tmp<Foam::sphericalTensorField> Foam::constantIsoSurface::interpolate -( - const word& fieldName, - const fieldsCache<sphericalTensor>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<sphericalTensor> - ( - fieldName, - cache, - pInterp, - interpolationSchemes - ); -} - - -Foam::tmp<Foam::symmTensorField> Foam::constantIsoSurface::interpolate -( - const word& fieldName, - const fieldsCache<symmTensor>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<symmTensor> - ( - fieldName, - cache, - pInterp, - interpolationSchemes - ); -} - - -Foam::tmp<Foam::tensorField> Foam::constantIsoSurface::interpolate -( - const word& fieldName, - const fieldsCache<tensor>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<tensor>(fieldName, cache, pInterp, interpolationSchemes); -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantIsoSurface/constantIsoSurface.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantIsoSurface/constantIsoSurface.H deleted file mode 100644 index 7ab98c788f8..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantIsoSurface/constantIsoSurface.H +++ /dev/null @@ -1,199 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::constantIsoSurface - -Description - -SourceFiles - constantIsoSurface.C - -\*---------------------------------------------------------------------------*/ - -#ifndef constantIsoSurface_H -#define constantIsoSurface_H - -#include "surface.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -//class meshSearch; -class dictionary; -class plane; -class volPointInterpolation; -template<class Type> class fieldsCache; -class cellDecompIsoSurfaceCuts; - -/*---------------------------------------------------------------------------*\ - Class constantIsoSurface Declaration -\*---------------------------------------------------------------------------*/ - -class constantIsoSurface -: - public surface -{ - // Private data - - //- Name of field to use to construct isosurface - const word isoFieldName_; - - //- Iso surface value - const scalar isoVal_; - - //- Generated points - mutable pointField points_; - - //- Generated triangles - mutable faceList faces_; - - //- Labels into original cells - mutable labelList cellLabels_; - - - // Private Member Functions - - template<class Type> - tmp<Field<Type> > interpolate - ( - const word& fieldName, - const fieldsCache<Type>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes - ) const; - - -public: - - //- Runtime type information - TypeName("constantIsoSurface"); - - // Constructors - - //- Construct from components - constantIsoSurface - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& isoFieldName, - const scalar isoVal - ); - - //- Construct from dictionary - constantIsoSurface - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict - ); - - - // Destructor - - virtual ~constantIsoSurface(); - - - // Member Functions - - //- Points of surface - virtual const pointField& points() const - { - return points_; - }; - - //- Faces of surface - virtual const faceList& faces() const - { - return faces_; - } - - //- Correct for mesh movement and/or field changes - virtual void correct - ( - const bool meshChanged, - const volPointInterpolation&, - const dictionary& interpolationSchemes, - const fieldsCache<scalar>& - ); - - //- interpolate field to surface - virtual tmp<scalarField> interpolate - ( - const word&, - const fieldsCache<scalar>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<vectorField> interpolate - ( - const word&, - const fieldsCache<vector>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<sphericalTensorField> interpolate - ( - const word&, - const fieldsCache<sphericalTensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<symmTensorField> interpolate - ( - const word&, - const fieldsCache<symmTensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<tensorField> interpolate - ( - const word&, - const fieldsCache<tensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantPatch/constantPatch.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantPatch/constantPatch.C deleted file mode 100644 index 91c5efa4d35..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantPatch/constantPatch.C +++ /dev/null @@ -1,282 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "constantPatch.H" -#include "meshSearch.H" -#include "polyMesh.H" -#include "interpolation.H" -#include "dictionary.H" -#include "polyPatch.H" - -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - -defineTypeNameAndDebug(constantPatch, 0); - -addToRunTimeSelectionTable(surface, constantPatch, word); - -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -void Foam::constantPatch::makeTriangles() -{ - if (patchIndex_ != -1) - { - const polyPatch& patch = mesh().boundaryMesh()[patchIndex_]; - - // Count triangles - label nTris = 0; - - const faceList& localFaces = patch.localFaces(); - - forAll(localFaces, patchFaceI) - { - const face& f = localFaces[patchFaceI]; - - nTris += f.nTriangles(patch.localPoints()); - } - - // Triangulation is done using all localPoints - points_ = patch.localPoints(); - - faces_.setSize(nTris); - patchFaceLabels_.setSize(nTris); - - label triI = 0; - label oldTriI = 0; - - forAll(localFaces, patchFaceI) - { - const face& f = localFaces[patchFaceI]; - - f.triangles(patch.localPoints(), triI, faces_); - - for(label i = oldTriI; i < triI; i++) - { - patchFaceLabels_[i] = patchFaceI; - } - - oldTriI = triI; - } - } -} - - -void Foam::constantPatch::copyFaces() -{ - if (patchIndex_ != -1) - { - const polyPatch& patch = mesh().boundaryMesh()[patchIndex_]; - - points_ = patch.localPoints(); - faces_ = patch.localFaces(); - patchFaceLabels_.setSize(faces_.size()); - forAll(patchFaceLabels_, i) - { - patchFaceLabels_[i] = i; - } - } -} - - -void Foam::constantPatch::createGeometry() -{ - if (triangulate_) - { - makeTriangles(); - } - else - { - copyFaces(); - } - - Pout<< "Created " << name() << " :" - << " patch:" << patchName_ - << " faces:" << faces_.size() - << " points:" << points_.size() << endl; -} - - -template <class Type> -Foam::tmp<Foam::Field<Type> > Foam::constantPatch::interpolate -( - const word& fieldName, - const fieldsCache<Type>& cache -) const -{ - // One value per face - tmp<Field<Type> > tvalues(new Field<Type>(patchFaceLabels_.size())); - Field<Type>& values = tvalues(); - - if (patchIndex_ != -1) - { - const GeometricField<Type, fvPatchField, volMesh>& vField = - *cache[fieldName]; - - const Field<Type>& bField = vField.boundaryField()[patchIndex_]; - - forAll(patchFaceLabels_, elemI) - { - values[elemI] = bField[patchFaceLabels_[elemI]]; - } - } - - return tvalues; -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::constantPatch::constantPatch -( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& patchName, - const bool triangulate -) -: - surface(mesh, searchEngine, name), - patchName_(patchName), - patchIndex_(mesh.boundaryMesh().findPatchID(patchName_)), - triangulate_(triangulate), - points_(0), - faces_(0), - patchFaceLabels_(0) -{ - createGeometry(); -} - - -Foam::constantPatch::constantPatch -( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict -) -: - surface(mesh, searchEngine, dict), - patchName_(dict.lookup("patchName")), - patchIndex_(mesh.boundaryMesh().findPatchID(patchName_)), - triangulate_(getBool(dict, "triangulate", true)), - points_(0), - faces_(0), - patchFaceLabels_(0) -{ - createGeometry(); -} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::constantPatch::~constantPatch() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void Foam::constantPatch::correct -( - const bool meshChanged, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes, - const fieldsCache<scalar>& scalarCache -) -{ - if (meshChanged) - { - createGeometry(); - } -} - - -Foam::tmp<Foam::scalarField> Foam::constantPatch::interpolate -( - const word& fieldName, - const fieldsCache<scalar>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<scalar>(fieldName, cache); -} - - -Foam::tmp<Foam::vectorField> Foam::constantPatch::interpolate -( - const word& fieldName, - const fieldsCache<vector>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<vector>(fieldName, cache); -} - - -Foam::tmp<Foam::sphericalTensorField> Foam::constantPatch::interpolate -( - const word& fieldName, - const fieldsCache<sphericalTensor>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<sphericalTensor>(fieldName, cache); -} - - -Foam::tmp<Foam::symmTensorField> Foam::constantPatch::interpolate -( - const word& fieldName, - const fieldsCache<symmTensor>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<symmTensor>(fieldName, cache); -} - - -Foam::tmp<Foam::tensorField> Foam::constantPatch::interpolate -( - const word& fieldName, - const fieldsCache<tensor>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<tensor>(fieldName, cache); -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantPatch/constantPatch.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantPatch/constantPatch.H deleted file mode 100644 index bbb07f90df3..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantPatch/constantPatch.H +++ /dev/null @@ -1,223 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::constantPatch - -Description - -SourceFiles - constantPatch.C - -\*---------------------------------------------------------------------------*/ - -#ifndef constantPatch_H -#define constantPatch_H - -#include "surface.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -//class meshSearch; -class dictionary; -class plane; -class volPointInterpolation; -template<class Type> class fieldsCache; - -/*---------------------------------------------------------------------------*\ - Class constantPatch Declaration -\*---------------------------------------------------------------------------*/ - -class constantPatch -: - public surface -{ - // Private data - - //- Name of patch - const word patchName_; - - //- Index of patch in boundaryMesh - const label patchIndex_; - - //- Make triangles or keep faces - const bool triangulate_; - - //- Zero size or copy of patch.localPoints() - pointField points_; - - //- Generated triangles - faceList faces_; - - //- Original patch face labels - labelList patchFaceLabels_; - - // Private Member Functions - - //- Triangulate patch - void makeTriangles(); - - void copyFaces(); - - //- Do all to construct geometry. - void createGeometry(); - - //- Interpolate field onto faces - template <class Type> - tmp<Field<Type> > interpolate - ( - const word&, - const fieldsCache<Type>& - ) const; - - -public: - - //- Runtime type information - TypeName("constantPatch"); - - - // Constructors - - //- Construct from components - constantPatch - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& patchName, - const bool triangulate = true - ); - - //- Construct from dictionary - constantPatch - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict - ); - - - // Destructor - - virtual ~constantPatch(); - - - // Member Functions - - const word patchName() const - { - return patchName_; - } - - label patchIndex() const - { - return patchIndex_; - } - - const labelList& patchFaceLabels() const - { - return patchFaceLabels_; - } - - //- Points of surface - virtual const pointField& points() const - { - return points_; - } - - //- Faces of surface - virtual const faceList& faces() const - { - return faces_; - } - - //- Correct for mesh movement and/or field changes - virtual void correct - ( - const bool meshChanged, - const volPointInterpolation&, - const dictionary& interpolationSchemes, - const fieldsCache<scalar>& - ); - - //- interpolate field to surface - virtual tmp<scalarField> interpolate - ( - const word&, - const fieldsCache<scalar>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<vectorField> interpolate - ( - const word&, - const fieldsCache<vector>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<sphericalTensorField> interpolate - ( - const word&, - const fieldsCache<sphericalTensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<symmTensorField> interpolate - ( - const word&, - const fieldsCache<symmTensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<tensorField> interpolate - ( - const word&, - const fieldsCache<tensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantPlane/constantPlane.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantPlane/constantPlane.C deleted file mode 100644 index 73bd4f0b942..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantPlane/constantPlane.C +++ /dev/null @@ -1,263 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "constantPlane.H" -#include "meshSearch.H" -#include "polyMesh.H" -#include "interpolation.H" -#include "dictionary.H" -#include "plane.H" -#include "cuttingPlane.H" - -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - -defineTypeNameAndDebug(constantPlane, 0); - -addToRunTimeSelectionTable(surface, constantPlane, word); - -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -void Foam::constantPlane::makeTriangles(const cuttingPlane& cut) -{ - // Count triangles - label nTris = 0; - forAll(cut.faces(), cutFaceI) - { - const face& f = cut.faces()[cutFaceI]; - - nTris += f.nTriangles(cut.points()); - } - - // Triangulation uses all points from cut - points_ = cut.points(); - - faces_.setSize(nTris); - meshCells_.setSize(nTris); - - label triI = 0; - label oldTriI = 0; - - forAll(cut.faces(), cutFaceI) - { - const face& f = cut.faces()[cutFaceI]; - - f.triangles(cut.points(), triI, faces_); - - for(label i = oldTriI; i < triI; i++) - { - meshCells_[i] = cut.cells()[cutFaceI]; - } - - oldTriI = triI; - } -} - - -void Foam::constantPlane::copyFaces(const cuttingPlane& cut) -{ - points_ = cut.points(); - faces_ = cut.faces(); - meshCells_ = cut.cells(); -} - - -void Foam::constantPlane::createGeometry() -{ - cuttingPlane plane(mesh(), planeDesc_); - - if (triangulate_) - { - makeTriangles(plane); - } - else - { - copyFaces(plane); - } - - Pout<< "Created " << name() << " :" - << " base:" << planeDesc_.refPoint() - << " normal:" << planeDesc_.normal() - << " faces:" << faces_.size() - << " points:" << points_.size() << endl; -} - - -template <class Type> -Foam::tmp<Foam::Field<Type> > Foam::constantPlane::interpolate -( - const word& fieldName, - const fieldsCache<Type>& cache -) const -{ - // One value per face - tmp<Field<Type> > tvalues(new Field<Type>(meshCells_.size())); - Field<Type>& values = tvalues(); - - const GeometricField<Type, fvPatchField, volMesh>& field = - *cache[fieldName]; - - forAll(meshCells_, elemI) - { - values[elemI] = field[meshCells_[elemI]]; - } - - return tvalues; -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::constantPlane::constantPlane -( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const plane& planeDesc, - const bool triangulate -) -: - surface(mesh, searchEngine, name), - planeDesc_(planeDesc), - triangulate_(triangulate), - points_(0), - faces_(0), - meshCells_(0) -{ - createGeometry(); -} - - -Foam::constantPlane::constantPlane -( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict -) -: - surface(mesh, searchEngine, dict), - planeDesc_(dict.lookup("basePoint"), dict.lookup("normalVector")), - triangulate_(getBool(dict, "triangulate", true)), - points_(0), - faces_(0), - meshCells_(0) -{ - createGeometry(); -} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::constantPlane::~constantPlane() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void Foam::constantPlane::correct -( - const bool meshChanged, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes, - const fieldsCache<scalar>& scalarCache -) -{ - if (meshChanged) - { - // Only change of mesh changes plane. - createGeometry(); - } -} - - -Foam::tmp<Foam::scalarField> Foam::constantPlane::interpolate -( - const word& fieldName, - const fieldsCache<scalar>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<scalar>(fieldName, cache); -} - - -Foam::tmp<Foam::vectorField> Foam::constantPlane::interpolate -( - const word& fieldName, - const fieldsCache<vector>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<vector>(fieldName, cache); -} - - -Foam::tmp<Foam::sphericalTensorField> Foam::constantPlane::interpolate -( - const word& fieldName, - const fieldsCache<sphericalTensor>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<sphericalTensor>(fieldName, cache); -} - - -Foam::tmp<Foam::symmTensorField> Foam::constantPlane::interpolate -( - const word& fieldName, - const fieldsCache<symmTensor>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<symmTensor>(fieldName, cache); -} - - -Foam::tmp<Foam::tensorField> Foam::constantPlane::interpolate -( - const word& fieldName, - const fieldsCache<tensor>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<tensor>(fieldName, cache); -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantPlane/constantPlane.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantPlane/constantPlane.H deleted file mode 100644 index e5d807cb1dd..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/constantPlane/constantPlane.H +++ /dev/null @@ -1,219 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::constantPlane - -Description - -SourceFiles - constantPlane.C - -\*---------------------------------------------------------------------------*/ - -#ifndef constantPlane_H -#define constantPlane_H - -#include "surface.H" -#include "cuttingPlane.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -class polyMesh; -class meshSearch; -class dictionary; -class plane; -class volPointInterpolation; -template<class Type> class fieldsCache; - -/*---------------------------------------------------------------------------*\ - Class constantPlane Declaration -\*---------------------------------------------------------------------------*/ - -class constantPlane -: - public surface -{ - // Private data - - //- Cutting plane description - const plane planeDesc_; - - //- Make triangles or keep faces - const bool triangulate_; - - //- Generated points - pointField points_; - - //- Generated faces - faceList faces_; - - //- Fro every face original cell in mesh - labelList meshCells_; - - - // Private Member Functions - - //- Cut & triangulate - void makeTriangles(const cuttingPlane&); - - //- Copy cut; do not triangulate - void copyFaces(const cuttingPlane&); - - //- Do all to create geometry. Cut&triangulate if nessecary - void createGeometry(); - - //- Interpolate field onto faces - template <class Type> - tmp<Field<Type> > interpolate - ( - const word& fieldName, - const fieldsCache<Type>& cache - ) const; - - -public: - - //- Runtime type information - TypeName("constantPlane"); - - - // Constructors - - //- Construct from components - constantPlane - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const plane& planeDesc, - const bool triangulate = true - ); - - //- Construct from dictionary - constantPlane - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict - ); - - - // Destructor - - virtual ~constantPlane(); - - - // Member Functions - - const plane& planeDesc() const - { - return planeDesc_; - } - - const labelList& meshCells() const - { - return meshCells_; - } - - //- Points of surface - virtual const pointField& points() const - { - return points_; - } - - //- Faces of surface - virtual const faceList& faces() const - { - return faces_; - } - - //- Correct for mesh movement and/or field changes - virtual void correct - ( - const bool meshChanged, - const volPointInterpolation&, - const dictionary& interpolationSchemes, - const fieldsCache<scalar>& - ); - - //- interpolate field to surface - virtual tmp<scalarField> interpolate - ( - const word&, - const fieldsCache<scalar>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<vectorField> interpolate - ( - const word&, - const fieldsCache<vector>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<sphericalTensorField> interpolate - ( - const word&, - const fieldsCache<sphericalTensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<symmTensorField> interpolate - ( - const word&, - const fieldsCache<symmTensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<tensorField> interpolate - ( - const word&, - const fieldsCache<tensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedIsoSurface/interpolatedIsoSurface.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedIsoSurface/interpolatedIsoSurface.C deleted file mode 100644 index 983a621eb05..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedIsoSurface/interpolatedIsoSurface.C +++ /dev/null @@ -1,281 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "interpolatedIsoSurface.H" -#include "meshSearch.H" -#include "polyMesh.H" -#include "interpolation.H" -#include "dictionary.H" -#include "meshCutSurface.H" -#include "cellDecompIsoSurfaceCuts.H" - -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - -defineTypeNameAndDebug(interpolatedIsoSurface, 0); - -addToRunTimeSelectionTable(surface, interpolatedIsoSurface, word); - -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -template<class Type> -Foam::tmp<Foam::Field<Type> > Foam::interpolatedIsoSurface::interpolate -( - const word& fieldName, - const fieldsCache<Type>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - const GeometricField<Type, fvPatchField, volMesh>& vField = - *cache[fieldName]; - - const GeometricField<Type, pointPatchField, pointMesh>& pField = - cache.pointField(fieldName, pInterp); - - return meshCutSurface::interpolate(isoSurfCuts(), vField, pField); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::interpolatedIsoSurface::interpolatedIsoSurface -( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& isoFieldName, - const scalar isoVal -) -: - surface(mesh, searchEngine, name), - isoFieldName_(isoFieldName), - isoVal_(isoVal), - points_(0), - faces_(0), - isoSurfCutsPtr_(NULL) -{} - - -Foam::interpolatedIsoSurface::interpolatedIsoSurface -( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict -) -: - surface(mesh, searchEngine, dict), - isoFieldName_(dict.lookup("field")), - isoVal_(readScalar(dict.lookup("value"))), - points_(0), - faces_(0), - isoSurfCutsPtr_(NULL) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::interpolatedIsoSurface::~interpolatedIsoSurface() -{ - if (isoSurfCutsPtr_) - { - delete isoSurfCutsPtr_; - isoSurfCutsPtr_ = NULL; - } -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -const Foam::cellDecompIsoSurfaceCuts& -Foam::interpolatedIsoSurface::isoSurfCuts() const -{ - if (!isoSurfCutsPtr_) - { - FatalErrorIn("interpolatedIsoSurface::isoSurfCuts()") - << "No interpolatedIsoSurfaceCuts allocated" << abort(FatalError); - } - return *isoSurfCutsPtr_; -} - - -void Foam::interpolatedIsoSurface::correct -( - const bool meshChanged, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes, - const fieldsCache<scalar>& scalarCache -) -{ - if (!scalarCache.found(isoFieldName_)) - { - FatalErrorIn - ( - "interpolatedIsoSurface::correct(const bool meshChanged," - "const volPointInterpolation&, const fieldsCache<scalar>&" - ", const fieldsCache<vector>&, const fieldsCache<tensor>&)" - ) << "Field " << isoFieldName_ << " not loaded." << endl - << "It has to be one of the sampled fields" - << exit(FatalError); - } - const volScalarField& vField = *scalarCache[isoFieldName_]; - - const pointScalarField& pField = - scalarCache.pointField(isoFieldName_, pInterp); - - if (isoSurfCutsPtr_) - { - delete isoSurfCutsPtr_; - } - - isoSurfCutsPtr_ = new cellDecompIsoSurfaceCuts - ( - vField, - pField, - isoVal_, - -0.1 - ); - - meshCutSurface isoSurf(isoSurfCuts()); - - points_ = isoSurf.points(); - - // Convert triangles into faces - faces_.setSize(isoSurf.size()); - - forAll(isoSurf, triI) - { - face& f = faces_[triI]; - const labelledTri& t = isoSurf[triI]; - - f.setSize(3); - f[0] = t[0]; - f[1] = t[1]; - f[2] = t[2]; - } - - Pout<< "Created " << name() << " :" - << " isoValue:" << isoVal_ - << " field:" << isoFieldName_ - << " faces:" << faces_.size() - << " points:" << points_.size() << endl; -} - - -Foam::tmp<Foam::scalarField> Foam::interpolatedIsoSurface::interpolate -( - const word& fieldName, - const fieldsCache<scalar>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - if (fieldName == isoFieldName_) - { - // Same field as isoSurface was based on -> single value. - return tmp<scalarField>(new scalarField(points_.size(), isoVal_)); - } - else - { - return interpolate<scalar> - ( - fieldName, - cache, - pInterp, - interpolationSchemes - ); - } -} - - -Foam::tmp<Foam::vectorField> Foam::interpolatedIsoSurface::interpolate -( - const word& fieldName, - const fieldsCache<vector>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<vector>(fieldName, cache, pInterp, interpolationSchemes); -} - - -Foam::tmp<Foam::sphericalTensorField> Foam::interpolatedIsoSurface::interpolate -( - const word& fieldName, - const fieldsCache<sphericalTensor>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<sphericalTensor> - ( - fieldName, - cache, - pInterp, - interpolationSchemes - ); -} - - -Foam::tmp<Foam::symmTensorField> Foam::interpolatedIsoSurface::interpolate -( - const word& fieldName, - const fieldsCache<symmTensor>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<symmTensor> - ( - fieldName, - cache, - pInterp, - interpolationSchemes - ); -} - - -Foam::tmp<Foam::tensorField> Foam::interpolatedIsoSurface::interpolate -( - const word& fieldName, - const fieldsCache<tensor>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<tensor>(fieldName, cache, pInterp, interpolationSchemes); -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedIsoSurface/interpolatedIsoSurface.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedIsoSurface/interpolatedIsoSurface.H deleted file mode 100644 index c66083103ed..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedIsoSurface/interpolatedIsoSurface.H +++ /dev/null @@ -1,203 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::interpolatedIsoSurface - -Description - -SourceFiles - interpolatedIsoSurface.C - -\*---------------------------------------------------------------------------*/ - -#ifndef interpolatedIsoSurface_H -#define interpolatedIsoSurface_H - -#include "surface.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -//class meshSearch; -class dictionary; -class plane; -class volPointInterpolation; -template<class Type> class fieldsCache; -class cellDecompIsoSurfaceCuts; - -/*---------------------------------------------------------------------------*\ - Class interpolatedIsoSurface Declaration -\*---------------------------------------------------------------------------*/ - -class interpolatedIsoSurface -: - public surface -{ - // Private data - - //- Name of field to use to construct isosurface - const word isoFieldName_; - - //- Iso surface value - const scalar isoVal_; - - //- Generated points - mutable pointField points_; - - //- Generated triangles - mutable faceList faces_; - - //- Iso surface edge descriptors - const cellDecompIsoSurfaceCuts* isoSurfCutsPtr_; - - // Private Member Functions - - template<class Type> - tmp<Field<Type> > interpolate - ( - const word& fieldName, - const fieldsCache<Type>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes - ) const; - - -public: - - //- Runtime type information - TypeName("interpolatedIsoSurface"); - - // Constructors - - //- Construct from components - interpolatedIsoSurface - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& isoFieldName, - const scalar isoVal - ); - - //- Construct from dictionary - interpolatedIsoSurface - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict - ); - - - // Destructor - - virtual ~interpolatedIsoSurface(); - - - // Member Functions - - //- Access isoSurface edge cuts - const cellDecompIsoSurfaceCuts& isoSurfCuts() const; - - //- Points of surface - virtual const pointField& points() const - { - return points_; - }; - - //- Faces of surface - virtual const faceList& faces() const - { - return faces_; - } - - //- Correct for mesh movement and/or field changes. Differs from - // constantIsoSurface one since meshCuts are stored for use in - // interpolation later on - virtual void correct - ( - const bool meshChanged, - const volPointInterpolation&, - const dictionary& interpolationSchemes, - const fieldsCache<scalar>& - ); - - //- interpolate field to surface - virtual tmp<scalarField> interpolate - ( - const word&, - const fieldsCache<scalar>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<vectorField> interpolate - ( - const word&, - const fieldsCache<vector>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<sphericalTensorField> interpolate - ( - const word&, - const fieldsCache<sphericalTensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<symmTensorField> interpolate - ( - const word&, - const fieldsCache<symmTensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<tensorField> interpolate - ( - const word&, - const fieldsCache<tensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedPatch/interpolatedPatch.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedPatch/interpolatedPatch.C deleted file mode 100644 index e0029398ca4..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedPatch/interpolatedPatch.C +++ /dev/null @@ -1,211 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "interpolatedPatch.H" -#include "meshSearch.H" -#include "polyMesh.H" -#include "interpolation.H" -#include "dictionary.H" -#include "polyPatch.H" - -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - -defineTypeNameAndDebug(interpolatedPatch, 0); - -addToRunTimeSelectionTable(surface, interpolatedPatch, word); - -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -template <class Type> -Foam::tmp<Foam::Field<Type> > Foam::interpolatedPatch::interpolate -( - const word& fieldName, - const fieldsCache<Type>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - // One value per vertex - tmp<Field<Type> > tvalues(new Field<Type>(points().size())); - Field<Type>& values = tvalues(); - - // Get interpolator from cache - const interpolation<Type>& interpolator = - cache.interpolator(fieldName, pInterp, interpolationSchemes); - - if (patchIndex() != -1) - { - const polyPatch& patch = mesh().boundaryMesh()[patchIndex()]; - const labelList& own = mesh().faceOwner(); - - boolList pointDone(points().size(), false); - - forAll(faces(), cutFaceI) - { - const face& f = faces()[cutFaceI]; - - forAll(f, faceVertI) - { - label pointI = f[faceVertI]; - - if (!pointDone[pointI]) - { - label faceI = patchFaceLabels()[cutFaceI] + patch.start(); - - label cellI = own[faceI]; - - values[pointI] = - interpolator.interpolate - ( - points()[pointI], - cellI, - faceI - ); - pointDone[pointI] = true; - } - } - } - } - - return tvalues; -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::interpolatedPatch::interpolatedPatch -( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& patchName, - const bool triangulate -) -: - constantPatch(mesh, searchEngine, name, patchName, triangulate) -{} - - -Foam::interpolatedPatch::interpolatedPatch -( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict -) -: - constantPatch(mesh, searchEngine, dict) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::interpolatedPatch::~interpolatedPatch() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp<Foam::scalarField> Foam::interpolatedPatch::interpolate -( - const word& fieldName, - const fieldsCache<scalar>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<scalar>(fieldName, cache, pInterp, interpolationSchemes); -} - - -Foam::tmp<Foam::vectorField> Foam::interpolatedPatch::interpolate -( - const word& fieldName, - const fieldsCache<vector>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<vector>(fieldName, cache, pInterp, interpolationSchemes); -} - - -Foam::tmp<Foam::sphericalTensorField> Foam::interpolatedPatch::interpolate -( - const word& fieldName, - const fieldsCache<sphericalTensor>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<sphericalTensor> - ( - fieldName, - cache, - pInterp, - interpolationSchemes - ); -} - - -Foam::tmp<Foam::symmTensorField> Foam::interpolatedPatch::interpolate -( - const word& fieldName, - const fieldsCache<symmTensor>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<symmTensor> - ( - fieldName, - cache, - pInterp, - interpolationSchemes - ); -} - - -Foam::tmp<Foam::tensorField> Foam::interpolatedPatch::interpolate -( - const word& fieldName, - const fieldsCache<tensor>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<tensor>(fieldName, cache, pInterp, interpolationSchemes); -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedPatch/interpolatedPatch.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedPatch/interpolatedPatch.H deleted file mode 100644 index a589a8a4aa5..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedPatch/interpolatedPatch.H +++ /dev/null @@ -1,163 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::interpolatedPatch - -Description - -SourceFiles - interpolatedPatch.C - -\*---------------------------------------------------------------------------*/ - -#ifndef interpolatedPatch_H -#define interpolatedPatch_H - -#include "surface.H" -#include "constantPatch.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -class meshSearch; -class dictionary; -class plane; -class volPointInterpolation; -template<class Type> class fieldsCache; - -/*---------------------------------------------------------------------------*\ - Class interpolatedPatch Declaration -\*---------------------------------------------------------------------------*/ - -class interpolatedPatch -: - public constantPatch -{ - // Private Member Functions - - //- Interpolate field onto faces - template <class Type> - tmp<Field<Type> > interpolate - ( - const word& fieldName, - const fieldsCache<Type>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes - ) const; - - -public: - - //- Runtime type information - TypeName("interpolatedPatch"); - - // Constructors - - //- Construct from components - interpolatedPatch - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const word& patchName, - const bool triangulate = true - ); - - //- Construct from dictionary - interpolatedPatch - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict - ); - - - // Destructor - - virtual ~interpolatedPatch(); - - - // Member Functions - - //- correct() implemented by constantPatch::correct() - - //- interpolate field to surface - virtual tmp<scalarField> interpolate - ( - const word&, - const fieldsCache<scalar>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<vectorField> interpolate - ( - const word&, - const fieldsCache<vector>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<sphericalTensorField> interpolate - ( - const word&, - const fieldsCache<sphericalTensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<symmTensorField> interpolate - ( - const word&, - const fieldsCache<symmTensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<tensorField> interpolate - ( - const word&, - const fieldsCache<tensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedPlane/interpolatedPlane.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedPlane/interpolatedPlane.C deleted file mode 100644 index 5d4146a8c3f..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedPlane/interpolatedPlane.C +++ /dev/null @@ -1,203 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "interpolatedPlane.H" -#include "meshSearch.H" -#include "polyMesh.H" -#include "meshSearch.H" -#include "interpolation.H" -#include "dictionary.H" -#include "plane.H" - -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - -defineTypeNameAndDebug(interpolatedPlane, 0); - -addToRunTimeSelectionTable(surface, interpolatedPlane, word); - -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -template <class Type> -Foam::tmp<Foam::Field<Type> > Foam::interpolatedPlane::interpolate -( - const word& fieldName, - const fieldsCache<Type>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - // One value per point - tmp<Field<Type> > tvalues(new Field<Type>(points().size())); - Field<Type>& values = tvalues(); - - // Get interpolator from cache - const interpolation<Type>& interpolator = - cache.interpolator(fieldName, pInterp, interpolationSchemes); - - boolList pointDone(points().size(), false); - - forAll(faces(), cutFaceI) - { - const face& f = faces()[cutFaceI]; - - forAll(f, faceVertI) - { - label pointI = f[faceVertI]; - - if (!pointDone[pointI]) - { - values[pointI] = - interpolator.interpolate - ( - points()[pointI], - meshCells()[cutFaceI] - ); - pointDone[pointI] = true; - } - } - } - - return tvalues; -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from components -Foam::interpolatedPlane::interpolatedPlane -( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const plane& planeDesc, - const bool triangulate -) -: - constantPlane(mesh, searchEngine, name, planeDesc, triangulate) -{} - - -// Construct from dictionary -Foam::interpolatedPlane::interpolatedPlane -( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict -) -: - constantPlane(mesh, searchEngine, dict) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::interpolatedPlane::~interpolatedPlane() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp<Foam::scalarField> Foam::interpolatedPlane::interpolate -( - const word& fieldName, - const fieldsCache<scalar>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<scalar>(fieldName, cache, pInterp, interpolationSchemes); -} - - -Foam::tmp<Foam::vectorField> Foam::interpolatedPlane::interpolate -( - const word& fieldName, - const fieldsCache<vector>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<vector>(fieldName, cache, pInterp, interpolationSchemes); -} - - -Foam::tmp<Foam::sphericalTensorField> Foam::interpolatedPlane::interpolate -( - const word& fieldName, - const fieldsCache<sphericalTensor>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<sphericalTensor> - ( - fieldName, - cache, - pInterp, - interpolationSchemes - ); -} - - -Foam::tmp<Foam::symmTensorField> Foam::interpolatedPlane::interpolate -( - const word& fieldName, - const fieldsCache<symmTensor>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<symmTensor> - ( - fieldName, - cache, - pInterp, - interpolationSchemes - ); -} - - -Foam::tmp<Foam::tensorField> Foam::interpolatedPlane::interpolate -( - const word& fieldName, - const fieldsCache<tensor>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes -) const -{ - return interpolate<tensor>(fieldName, cache, pInterp, interpolationSchemes); -} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedPlane/interpolatedPlane.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedPlane/interpolatedPlane.H deleted file mode 100644 index 91e55ae65c2..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/interpolatedPlane/interpolatedPlane.H +++ /dev/null @@ -1,164 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::interpolatedPlane - -Description - -SourceFiles - interpolatedPlane.C - -\*---------------------------------------------------------------------------*/ - -#ifndef interpolatedPlane_H -#define interpolatedPlane_H - -#include "surface.H" -#include "constantPlane.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -class polyMesh; -class meshSearch; -class dictionary; -class plane; -class volPointInterpolation; - -/*---------------------------------------------------------------------------*\ - Class interpolatedPlane Declaration -\*---------------------------------------------------------------------------*/ - -class interpolatedPlane -: - public constantPlane -{ - - // Private Member Functions - - //- Interpolate field onto vertices - template<class Type> - tmp<Field<Type> > interpolate - ( - const word& fieldName, - const fieldsCache<Type>& cache, - const volPointInterpolation& pInterp, - const dictionary& interpolationSchemes - ) const; - - -public: - - //- Runtime type information - TypeName("interpolatedPlane"); - - // Constructors - - //- Construct from components - interpolatedPlane - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name, - const plane& planeDesc, - const bool triangulate - ); - - //- Construct from dictionary - interpolatedPlane - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict - ); - - - // Destructor - - virtual ~interpolatedPlane(); - - - // Member Functions - - //- correct surface for new mesh done by constantPlane::correct() - - //- interpolate field to surface - virtual tmp<scalarField> interpolate - ( - const word&, - const fieldsCache<scalar>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<vectorField> interpolate - ( - const word&, - const fieldsCache<vector>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<sphericalTensorField> interpolate - ( - const word&, - const fieldsCache<sphericalTensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<symmTensorField> interpolate - ( - const word&, - const fieldsCache<symmTensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; - - //- interpolate field to surface - virtual tmp<tensorField> interpolate - ( - const word&, - const fieldsCache<tensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/surface/surface.C b/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/surface/surface.C deleted file mode 100644 index ab5f1cceb61..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/surface/surface.C +++ /dev/null @@ -1,135 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Description - -\*---------------------------------------------------------------------------*/ - -#include "surface.H" -#include "polyMesh.H" -#include "primitiveMesh.H" -#include "meshSearch.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - -defineTypeNameAndDebug(surface, 0); -defineRunTimeSelectionTable(surface, word); - -autoPtr<surface> surface::New -( - const word& sampleType, - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict -) -{ - wordConstructorTable::iterator cstrIter = - wordConstructorTablePtr_ - ->find(sampleType); - - if (cstrIter == wordConstructorTablePtr_->end()) - { - FatalErrorIn - ( - "surface::New(const word&, " - "const polyMesh&, meshSearch&, const dictionary&)" - ) << "Unknown sample type " << sampleType - << endl << endl - << "Valid sample types : " << endl - << wordConstructorTablePtr_->toc() - << exit(FatalError); - } - - return autoPtr<surface> - ( - cstrIter() - ( - mesh, - searchEngine, - dict - ) - ); -} - -} // End namespace Foam - - -bool Foam::surface::getBool -( - const dictionary& dict, - const word& key, - const bool defaultVal -) -{ - if (dict.found(key)) - { - return readBool(dict.lookup(key)); - } - else - { - return defaultVal; - } -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from mesh, name -Foam::surface::surface -( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name -) -: - mesh_(mesh), - searchEngine_(searchEngine), - name_(name) -{} - - -// Construct from dictionary -Foam::surface::surface -( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict -) -: - mesh_(mesh), - searchEngine_(searchEngine), - name_(dict.lookup("name")) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::surface::~surface() -{} - - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/surface/surface.H b/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/surface/surface.H deleted file mode 100644 index c1bb9022a65..00000000000 --- a/applications/utilities/postProcessing/sampling/sampleSurface/surfaces/surface/surface.H +++ /dev/null @@ -1,261 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::surface - -Description - -SourceFiles - surface.C - -\*---------------------------------------------------------------------------*/ - -#ifndef surface_H -#define surface_H - -#include "pointField.H" -#include "word.H" -#include "labelList.H" -#include "faceList.H" -#include "typeInfo.H" -#include "runTimeSelectionTables.H" -#include "autoPtr.H" -#include "volFieldsFwd.H" -#include "fieldsCache.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// Forward declaration of classes -class polyMesh; -class meshSearch; -class volPointInterpolation; -template<class Type> class fieldsCache; - -/*---------------------------------------------------------------------------*\ - Class surface Declaration -\*---------------------------------------------------------------------------*/ - -class surface -{ - // Private data - - //- Reference to mesh - const polyMesh& mesh_; - - //- Reference to mesh searching class - meshSearch& searchEngine_; - - //- Name of set - const word name_; - -protected: - - // Protected static functions - - //- Read bool from dictionary. Return provided value if not found - static bool getBool(const dictionary& dict, const word&, const bool); - - -public: - - //- Runtime type information - TypeName("surface"); - - - // Declare run-time constructor selection table - - declareRunTimeSelectionTable - ( - autoPtr, - surface, - word, - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict - ), - (mesh, searchEngine, dict) - ); - - - //- Class used for the read-construction of - // PtrLists of surface - class iNew - { - const polyMesh& mesh_; - meshSearch& searchEngine_; - - public: - - iNew(const polyMesh& mesh, meshSearch& searchEngine) - : - mesh_(mesh), - searchEngine_(searchEngine) - {} - - autoPtr<surface> operator()(Istream& is) const - { - word sampleType(is); - dictionary dict(is); - return surface::New(sampleType, mesh_, searchEngine_, dict); - } - }; - - - // Constructors - - //- Construct from mesh, name - surface - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const word& name - ); - - //- Construct from dictionary - surface - ( - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict - ); - - //- Clone - autoPtr<surface> clone() const - { - notImplemented("autoPtr<surface> clone() const"); - return autoPtr<surface>(NULL); - } - - - // Selectors - - //- Return a reference to the selected surface - static autoPtr<surface> New - ( - const word& sampleType, - const polyMesh& mesh, - meshSearch& searchEngine, - const dictionary& dict - ); - - - // Destructor - - virtual ~surface(); - - - // Member Functions - - const polyMesh& mesh() const - { - return mesh_; - } - - meshSearch& searchEngine() const - { - return searchEngine_; - } - - //- Name of surface - const word& name() const - { - return name_; - } - - //- Points of surface - virtual const pointField& points() const = 0; - - //- Faces of surface - virtual const faceList& faces() const = 0; - - //- Correct for mesh movement and/or field changes - virtual void correct - ( - const bool meshChanged, - const volPointInterpolation&, - const dictionary& interpolationSchemes, - const fieldsCache<scalar>& - ) = 0; - - //- interpolate field to surface - virtual tmp<scalarField> interpolate - ( - const word&, - const fieldsCache<scalar>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const = 0; - - //- interpolate field to surface - virtual tmp<vectorField> interpolate - ( - const word&, - const fieldsCache<vector>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const = 0; - - //- interpolate field to surface - virtual tmp<sphericalTensorField> interpolate - ( - const word&, - const fieldsCache<sphericalTensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const = 0; - - //- interpolate field to surface - virtual tmp<symmTensorField> interpolate - ( - const word&, - const fieldsCache<symmTensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const = 0; - - //- interpolate field to surface - virtual tmp<tensorField> interpolate - ( - const word&, - const fieldsCache<tensor>&, - const volPointInterpolation&, - const dictionary& interpolationSchemes - ) const = 0; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampling/probeLocations/Make/files b/applications/utilities/postProcessing/sampling/sampling/probeLocations/Make/files new file mode 100644 index 00000000000..2546931c3f6 --- /dev/null +++ b/applications/utilities/postProcessing/sampling/sampling/probeLocations/Make/files @@ -0,0 +1,3 @@ +probeLocations.C + +EXE = $(FOAM_APPBIN)/probeLocations diff --git a/applications/utilities/postProcessing/sampling/sampleSurface/Make/options b/applications/utilities/postProcessing/sampling/sampling/probeLocations/Make/options similarity index 63% rename from applications/utilities/postProcessing/sampling/sampleSurface/Make/options rename to applications/utilities/postProcessing/sampling/sampling/probeLocations/Make/options index f58ef8fd320..083d04c7a67 100644 --- a/applications/utilities/postProcessing/sampling/sampleSurface/Make/options +++ b/applications/utilities/postProcessing/sampling/sampling/probeLocations/Make/options @@ -1,10 +1,5 @@ EXE_INC = \ -I$(LIB_SRC)/finiteVolume/lnInclude \ - -Isurfaces/surface \ - -Isurfaces/constantPlane \ - -Isurfaces/constantPatch \ - -Isurfaces/isoSurface \ - -IsurfaceWriters/surfaceWriter \ -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/triSurface/lnInclude \ @@ -15,5 +10,4 @@ EXE_LIBS = \ -lmeshTools \ -lsampling \ -ltriSurface \ - -llagrangian \ - + -llagrangian diff --git a/applications/utilities/postProcessing/sampling/sample/writers/xmgr/xmgrWriters.H b/applications/utilities/postProcessing/sampling/sampling/probeLocations/probeLocations.C similarity index 57% rename from applications/utilities/postProcessing/sampling/sample/writers/xmgr/xmgrWriters.H rename to applications/utilities/postProcessing/sampling/sampling/probeLocations/probeLocations.C index 59c09c30e39..07e06e8dd6a 100644 --- a/applications/utilities/postProcessing/sampling/sample/writers/xmgr/xmgrWriters.H +++ b/applications/utilities/postProcessing/sampling/sampling/probeLocations/probeLocations.C @@ -22,41 +22,66 @@ License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -InClass - Foam::xmgrWriters - Description - -SourceFiles - xmgrWriters.C - + Probe locations. \*---------------------------------------------------------------------------*/ -#ifndef xmgrWriters_H -#define xmgrWriters_H +#include "argList.H" +#include "IOprobes.H" -#include "xmgr.H" -#include "writers.H" -#include "fieldTypes.H" +using namespace Foam; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Main program: -namespace Foam +int main(int argc, char *argv[]) { -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +# include "addTimeOptions.H" +# include "setRootCase.H" -typedef xmgr<scalar> xmgrScalarWriter; -typedef xmgr<vector> xmgrVectorWriter; -typedef xmgr<tensor> xmgrTensorWriter; +# include "createTime.H" -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + // Get times list + instantList Times = runTime.times(); -} // End namespace Foam + // set startTime and endTime depending on -time and -latestTime options +# include "checkTimeOptions.H" -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + runTime.setTime(Times[startTime], startTime); + +# include "createMesh.H" + + IOprobes sniff(mesh, "probesDict", true); + + for (label i=startTime; i<endTime; i++) + { + runTime.setTime(Times[i], i); + Info<< "Time = " << runTime.timeName() << endl; + + // Handle geometry/topology changes + polyMesh::readUpdateState state = mesh.readUpdate(); + + if + ( + state == polyMesh::POINTS_MOVED + || state == polyMesh::TOPO_CHANGE + ) + { + sniff.read(); + } + + sniff.write(); + + Info<< endl; + } + + + Info<< "End\n" << endl; + + return 0; +} -#endif // ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampling/probeLocations/probesDict b/applications/utilities/postProcessing/sampling/sampling/probeLocations/probesDict new file mode 100644 index 00000000000..3f7679f0ded --- /dev/null +++ b/applications/utilities/postProcessing/sampling/sampling/probeLocations/probesDict @@ -0,0 +1,38 @@ +/*-------------------------------*- C++ -*---------------------------------*\ +| ========= | +| \\ / OpenFOAM 1.4.1 | +| \\ / | +| \\ / The Open Source CFD Toolbox | +| \\/ http://www.OpenFOAM.org | +\*-------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location system; + object probesDict; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + +// Fields to be probed. runTime modifiable! +fields +( + p +); + +// Locations to be probed. runTime modifiable! +probeLocations +( + (0.0254 0.0253 0.0) + (0.0508 0.0253 0.0) + (0.0762 0.0253 0.0) + (0.1016 0.0253 0.0) + (0.1270 0.0253 0.0) + (0.1524 0.0253 0.0) + (0.1778 0.0253 0.0) +); + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/utilities/postProcessing/sampling/sampling/sample/Make/files b/applications/utilities/postProcessing/sampling/sampling/sample/Make/files new file mode 100644 index 00000000000..287a5f8a83f --- /dev/null +++ b/applications/utilities/postProcessing/sampling/sampling/sample/Make/files @@ -0,0 +1,3 @@ +sample.C + +EXE = $(FOAM_APPBIN)/sample diff --git a/applications/utilities/postProcessing/sampling/sample/Make/options b/applications/utilities/postProcessing/sampling/sampling/sample/Make/options similarity index 60% rename from applications/utilities/postProcessing/sampling/sample/Make/options rename to applications/utilities/postProcessing/sampling/sampling/sample/Make/options index 672f2483700..083d04c7a67 100644 --- a/applications/utilities/postProcessing/sampling/sample/Make/options +++ b/applications/utilities/postProcessing/sampling/sampling/sample/Make/options @@ -1,16 +1,13 @@ EXE_INC = \ -I$(LIB_SRC)/finiteVolume/lnInclude \ - -IsampleSets/sampleSet \ - -IsampleSets/coordSet \ - -IsampleSets/face \ - -Iwriters/writer \ - -I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/sampling/lnInclude \ + -I$(LIB_SRC)/triSurface/lnInclude \ -I$(LIB_SRC)/lagrangian/basic/lnInclude \ EXE_LIBS = \ - -lsampling \ + -lfiniteVolume \ -lmeshTools \ - -llagrangian \ - -lfiniteVolume - + -lsampling \ + -ltriSurface \ + -llagrangian diff --git a/applications/utilities/postProcessing/sampling/sampling/sample/sample.C b/applications/utilities/postProcessing/sampling/sampling/sample/sample.C new file mode 100644 index 00000000000..e73591de51c --- /dev/null +++ b/applications/utilities/postProcessing/sampling/sampling/sample/sample.C @@ -0,0 +1,139 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Description + Sample field data with a choice of interpolation schemes, sampling options + and write formats. + + Keywords: + + setFormat: set output format, choice of + xmgr + jplot + gnuplot + raw + + surfaceFormat: surface output format, choice of + null : suppress output + foamFile : separate points, faces and values file + dx : DX scalar or vector format + vtk : VTK ascii format + raw : x y z value format for use with e.g. gnuplot 'splot'. + stl : ascii stl. Does not contain values! + + interpolationScheme: interpolation scheme, choice of + cell : use cell-centre value; constant over cells (default) + cellPoint : use cell-centre and vertex values + cellPointFace : use cell-centre, vertex and face values. + 1] vertex values determined from neighbouring cell-centre values + 2] face values determined using the current face interpolation scheme + for the field (linear, limitedLinear, etc.) + + fields: list of fields to sample + + sets: list of sets to sample, choice of + uniform evenly distributed points on line + face one point per face intersection + midPoint one point per cell, inbetween two face intersections + midPointAndFace combination of face and midPoint + + curve specified points, not nessecary on line, uses + tracking + cloud specified points, uses findCell + + Option axis: how to write point coordinate. Choice of + - x/y/z: x/y/z coordinate only + - xyz: three columns + (probably does not make sense for anything but raw) + - distance: distance from start of sampling line (if uses line) + or distance from first specified sampling point + + Type specific options: + uniform, face, midPoint, midPointAndFace : start and end coordinate + uniform: extra number of sampling points + curve, cloud: list of coordinates + + surfaces: list of surfaces to sample, choice of + plane : values on plane defined by point, normal. + patch : values on patch. + + Runs in parallel. + +\*---------------------------------------------------------------------------*/ + +#include "argList.H" +#include "IOsampledSets.H" +#include "IOsampledSurfaces.H" + +using namespace Foam; + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Main program: + +int main(int argc, char *argv[]) +{ + +# include "addTimeOptions.H" +# include "setRootCase.H" + +# include "createTime.H" + + // Get times list + instantList Times = runTime.times(); + + // set startTime and endTime depending on -time and -latestTime options +# include "checkTimeOptions.H" + + runTime.setTime(Times[startTime], startTime); + +# include "createMesh.H" + + IOsampledSets sSets(mesh, "sampleDict", true); + IOsampledSurfaces sSurfaces(mesh, "sampleDict", true); + + for (label i=startTime; i<endTime; i++) + { + runTime.setTime(Times[i], i); + Info<< "Time = " << runTime.timeName() << endl; + + // Handle geometry/topology changes + polyMesh::readUpdateState state = mesh.readUpdate(); + + sSets.readUpdate(state); + sSurfaces.readUpdate(state); + + sSets.write(); + sSurfaces.write(); + + Info<< endl; + } + + + Info<< "End\n" << endl; + + return 0; +} + + +// ************************************************************************* // diff --git a/applications/utilities/postProcessing/sampling/sampling/sample/sampleDict b/applications/utilities/postProcessing/sampling/sampling/sample/sampleDict new file mode 100644 index 00000000000..ea6e1f7dbd7 --- /dev/null +++ b/applications/utilities/postProcessing/sampling/sampling/sample/sampleDict @@ -0,0 +1,173 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.openfoam.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location system; + object sampleDict; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// Set output format : choice of +// xmgr +// jplot +// gnuplot +// raw +setFormat raw; + +// Surface output format. Choice of +// null : suppress output +// foamFile : separate points, faces and values file +// dx : DX scalar or vector format +// vtk : VTK ascii format +// raw : x y z value format for use with e.g. gnuplot 'splot'. +// stl : ascii stl. Does not contain values! +surfaceFormat vtk; + +// interpolationScheme. choice of +// cell : use cell-centre value only; constant over cells (default) +// cellPoint : use cell-centre and vertex values +// cellPointFace : use cell-centre, vertex and face values. +// 1] vertex values determined from neighbouring cell-centre values +// 2] face values determined using the current face interpolation scheme +// for the field (linear, gamma, etc.) +interpolationScheme cellPointFace; + +// Fields to sample. +fields +( + p + U +); + + +// Set sampling definition: choice of +// uniform evenly distributed points on line +// face one point per face intersection +// midPoint one point per cell, inbetween two face intersections +// midPointAndFace combination of face and midPoint +// +// curve specified points, not nessecary on line, uses +// tracking +// cloud specified points, uses findCell +// +// axis: how to write point coordinate. Choice of +// - x/y/z: x/y/z coordinate only +// - xyz: three columns +// (probably does not make sense for anything but raw) +// - distance: distance from start of sampling line (if uses line) or +// distance from first specified sampling point +// +// type specific: +// uniform, face, midPoint, midPointAndFace : start and end coordinate +// uniform: extra number of sampling points +// curve, cloud: list of coordinates +sets +( + lineX1 + { + type uniform; + axis distance; + + //- cavity + start (0.02 0.051 0.005); + end (0.06 0.051 0.005); + nPoints 10; + } + + lineX2 + { + type face; + axis x; + + //- flangeHex + //start (0 20 -20); + //end (0 20 10); + + //- nablaCavity + //start (-1 0.05 0.005); + //end ( 1 0.05 0.005); + + //- cavity + start (0.0 0.51 0.005); + end (2 0.51 0.005); + nPoints 10; + } +); + + +// Surface sampling definition: choice of +// plane : values on plane defined by point, normal. +// patch : values on patch. +surfaces +( + constantPlane + { + type plane; + basePoint (0.0501 0.0501 0.005); + normalVector (0.1 0.1 1); + + //- Optional: restrict to a particular zone + // zoneName zone1; + + // Optional: whether to leave as faces or triangulate (=default) + triangulate false; + } + + interpolatedPlane + { + type plane; + // make plane relative to the coordinateSystem (Cartesian) + coordinateSystem + { + origin (0.0501 0.0501 0.005); + } + basePoint (0 0 0); + normalVector (0.1 0.1 1); + triangulate false; + interpolate true; + } + + movingWall_constant + { + type patch; + patchName movingWall; + triangulate false; + } + + movingWall_interpolated + { + type patch; + patchName movingWall; + triangulate false; + interpolate true; + } + +/* not yet (re)implemented -- + constantIso + { + name iso; + field rho; + value 0.5; + } + someIso + { + type iso; + field rho; + value 0.5; + interpolate true; + } + */ +); + + +// *********************************************************************** // diff --git a/etc/apps/paraview3/bashrc b/etc/apps/paraview3/bashrc index 6bd2b9646ec..c02b490abb8 100644 --- a/etc/apps/paraview3/bashrc +++ b/etc/apps/paraview3/bashrc @@ -45,7 +45,7 @@ fi export ParaView_VERSION=3 -export ParaView_INST_DIR=$WM_PROJECT_INST_DIR/ParaView3.2.1 +export ParaView_INST_DIR=$WM_PROJECT_INST_DIR/ParaView3.3-cvs export ParaView_DIR=$ParaView_INST_DIR/platforms/$WM_OPTIONS export PYTHONPATH=$PYTHONPATH:$ParaView_DIR/bin:$ParaView_DIR/Utilities/VTKPythonWrapping diff --git a/etc/apps/paraview3/cshrc b/etc/apps/paraview3/cshrc index aa9f8d3c56d..78473481643 100644 --- a/etc/apps/paraview3/cshrc +++ b/etc/apps/paraview3/cshrc @@ -45,14 +45,10 @@ endif setenv ParaView_VERSION 3 -setenv ParaView_INST_DIR $WM_PROJECT_INST_DIR/ParaView3.2.1 +setenv ParaView_INST_DIR $WM_PROJECT_INST_DIR/ParaView3.3-cvs setenv ParaView_DIR $ParaView_INST_DIR/platforms/$WM_OPTIONS -if ($?PYTHONPATH) then - setenv PYTHONPATH ${PYTHONPATH}:$ParaView_DIR/bin:$ParaView_DIR/Utilities/VTKPythonWrapping -else - setenv PYTHONPATH $ParaView_DIR/bin:$ParaView_DIR/Utilities/VTKPythonWrapping -endif +setenv PYTHONPATH $PYTHONPATH:$ParaView_DIR/bin:$ParaView_DIR/Utilities/VTKPythonWrapping if ( -r $ParaView_INST_DIR ) then set path=($ParaView_DIR/bin $path) diff --git a/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C b/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C index ff46f9ee35b..e9e012a09d0 100644 --- a/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C +++ b/src/finiteVolume/fvMatrices/solvers/MULES/MULESTemplates.C @@ -265,8 +265,8 @@ void Foam::MULES::implicitSolve } else { - Info<< "max(psi) - 1 = " << maxPsiM1 << endl; - Info<< "min(psi) = " << minPsi << endl; + Info<< "max(" + psi.name() + " - 1 = " << maxPsiM1 << endl; + Info<< "min(" + psi.name() + ") = " << minPsi << endl; phiBD = psiConvectionDiffusion.flux(); -- GitLab