ENH: extended runTimePostProcessing (#1206)

- Extended runTimePostProcessing to include access to "live"
  simulation objects such a geometry patches and sampled surfaces
  stored on the "functionObjectObjects" registry.

- Add 'live' runTimePostProcessing of cloud data.
  Extracts position and fields from the cloud via its objectRegistry writer

- For the "live" simulation objects, there are two new volume filters
  that work directly with the OpenFOAM volume fields:
      * iso-surface
      * cutting planes
  Both use the VTK algorithms directly and support multiple values.
  Eg, can make multiple iso-levels or multiple planes parallel to each
  other.

- When VTK has been compiled with MPI-support, parallel rendering will
  be used.

- Additional title text properties (shadow, italic etc)

- Simplified handling of scalar-bar and visibility switches

- Support multiple text positions. Eg, for adding watermark text.
This commit is contained in:
Mark Olesen
2019-02-13 11:22:46 +01:00
parent 4eb35f7ba5
commit 7390849652
68 changed files with 7123 additions and 847 deletions

View File

@ -53,8 +53,9 @@ maxDeltaT 1;
functions
{
#include "dataCloud"
#include "vtkCloud"
// #include "dataCloud"
#include "runTimePostProcessing"
}

View File

@ -2,9 +2,11 @@
postPro1
{
type runTimePostProcessing;
libs ("librunTimePostProcessing.so");
writeControl writeTime;
#includeEtc "caseDicts/postProcessing/visualization/runTimePostPro.cfg"
// parallel false;
// debug true;
output
{
name image;
@ -23,10 +25,10 @@ postPro1
parallelProjection yes;
focalPoint (0.251 0.415 0.05);
position (0.251 0.415 2.218);
focalPoint (0.25 0.42 0.05);
position (0.15 0.42 2.5);
up (0 1 0);
zoom 1;
zoom 1.5;
}
// Default colours
@ -34,13 +36,7 @@ postPro1
// they are locally overridden
colours
{
background (0.5 0.5 0.5);
background2 (0.7 0.7 0.7);
text (1 1 1);
edge (1 0 0);
surface (0.5 0.5 0.5);
line (1 0 0);
point (0.5 0.5 0.5);
${..colourScheme.greyGradient};
}
// Points (cloud) data
@ -48,55 +44,69 @@ postPro1
{
cloud1
{
type functionObjectCloud;
functionObject cloudWrite1;
type cloud;
cloud coalCloud1;
colourMap blueWhiteRed;
colourMap coolToWarm;
representation sphere;
maxGlyphLength 0.05;
visible yes;
maxGlyphLength 0.025;
featureEdges no;
colourBy field;
colourField T;
field T;
range (290 410);
opacity 1;
scalarBar
{
visible yes;
visible true;
vertical yes;
position (0.8 0.1);
fontSize 12;
titleSize 24;
title "Temperature [K]";
labelFormat "%.0f";
numberOfLabels 8;
numberOfLabels 9;
bold false;
}
}
}
/* Future...
// Surface data
surfaces
{
container
patches
{
type patches;
patches (".*");
renderMode phong;
representation surface;
edgeColour (0 0 0);
visible yes;
colourBy colour;
field U;
range (0 40);
featureEdges yes;
opacity 0.25;
edgeColour (0 0 0);
// Fails in parallel: opacity 0.25;
}
k
{
type isoSurface;
renderMode phong;
representation surface;
field k;
values ( 100 );
colourField T;
colourBy field;
range (290 410);
smooth true;
}
}
*/
// Text data
text
{
text1
{
visible yes;
string "simplifiedSiwek";
position (0.1 0.05);
size 24;