Pro: Good delimitation. Good visual distinction. No confusion with normal
cases, since '{}' characters are excluded by !word::valid()
Con: Possible quoting issues when creating directly instead of via paraFoam,
but seemed to work fine with bash TAB completion.
- handling multiple regions require multiple readers
- a region is currently recognized by the file name, anything after the
'=' delimiter (eg, "case=region.OpenFOAM") is used to determine the
mesh region, but might be changed in the future
eg, 'case%region', 'case^region', 'case~region', 'case{region}' ...
Note:
- Having a separate reader for each region instead attempting to handle
all the mesh regions in a single reader is the better solution.
It is not only simpler, but allows distinct field selections for
each region
Todo:
- Haven't a test for Lagrangian and multi-regions.
- handle new cloud locations, got missed before the release
- handle multiple clouds
- more efficient checking of fields etc.
- write case file at the end, thus we can potentially
do something more intelligent about the time set handling
- streamlined code somewhat, minor attempt to reclaim some memory
- now use "mesh parts" for patches/zones/sets/etc throughout to avoid
ambiguity with mesh regions
- collect superCells and addPointCellLabels in a class. The old version
actually seemed to have overwritten the addPointCellLabels with each
cellSet/cellZone. This means that part of the pointFields would be trashed
in the combination of polyhedral cells, cellSets/cellZones and internalMesh
- polyDecomp information for muitiple mesh regions, but not yet exploited
- pointFields now working for cellZones/cellSets
- extroplating fields onto walls also works as expected for interpolated
pointFields
- added tooltips to reader GUI
TODO:
- pointFields (real and interpolated) for faceSets/faceZones
- various GUI properties are now animateable="0"
(meaning they no longer show up on the time-line)
- move reader switches to the bottom of the GUI
- move Lagrangian fields above pointFields for better visibility
- basic support for multiple clouds
- filter fields based on selection before looping over all the geometry bits
- mesh conversion functions now return VTK mesh types for easier handling
- faceZones mesh conversion had points/faces allocation reversed
- updateInfo with every call to setTime() that changes the timeIndex
This seems to be the only way to notice Lagrangian fields
- restore displaying patchnames that got forgotten in the last commit
- misc reorganization
- normal mesh data on port0
- Lagrangian data on port1
- no fixed block numbers for dividing internalMesh, patches, zones etc.
This helps avoid ugly gaps in the multiblock output
- avoid segfault if Lagrangian fields are converted without positions
TODO:
- can we label the output ports?
- the selection of Lagrangian data and fields is wonky.
- added printMemory() method to aid debugging memory used
- call UpdateInformation() if the mesh has changed
- automatic activation of "internalMesh", "p", "U"
is suppressed if a fvMesh is cached. Otherwise,
appearing/disappearing volFields can cause a crash
Note:
The message "had to make up a selection value" that sometimes occurs
seems to be paraview related (see paraview mailing list),
- vtkPV3Foam get PrintSelf (reduces number of methods)
- move output data member from vtkPV3Foam -> PV3FoamReader
in preparation for rewriting output method
- roughed in code to track mesh/field changes in preparation for rewriting
output method
- progress bar with arbitrary values to give the user something to watch
- On the first call, select 'internalMesh' and the 'p', 'U' fields.
This corresponds to a fairly common default case without loading all
possible fields etc.
- Include zones should now work without issuing a FatalError when the
corresponding files are missing. I must have tried too many things
at once and didn't notice this before.
- Use ZoneMesh for zone names if the fvMesh is already cached
(skips re-reading the same files).
- Change reader description to "OpenFOAM Reader" to distinguish it a bit
from the vtkOpenFOAMReader built into paraview/vtk
- Misc. file and method names reorganized
- Remaining problem:
mixing internalMesh and cellZones is clunky since there aren't yet
interpolated point values for cellSets/cellZones. Paraview complains
about the mismatch, but extracting a block is still okay.
TODO:
- multi-port output for Lagrangian
- hold all the vtk mesh parts (including multiblock) and just pass the
reference. With this, the pipeline might notice that the geometry is
actually identical and skip the PVGeometryFilter that takes so long.
previous disabling of the TimeSelection arrays [commit c52b20b..]
resulted in the mesh caching being disabled :(
Simplified code is enabled/disabled by PV3FOAM_TIMESELECTION define.
Might be removed in the future.