From VTK notes:
- The CVS $Revision$ keyword replacement will no longer maintain these
macros automatically. They were used only to implement CollectRevisions
and vtkObjectBase::PrintRevisions, an API that was never used.
Some tools now output sets at the pointsInstance (if relating to geometry),
some at the facesInstance (if relating to topology).
So when loading them we now search for them from current time down
to facesInstance. They cannot be beyond facesInstance.
Adapted Time::findInstance to take optional limiting instance. Adapted
topoSet to use this. Adapted all uses of IOobjectList on sets to do the
same.
- exception calcType.H since it'll most likely be used for building
applications anyhow
- use quailified names in more of the lagrangian code
- killed some tab indents in various places.
- Include Sets/Zones now scans immediately to refresh the list of available
mesh parts. Unfortunately, this also causes the object panel to be
modified, even although the selection doesn't acutally need to change.
This seems to be due to how the pqNamedWidgets are getting the information
from the proxy properties. I can't figure if it's possible to acheive what
I want, but we can probably live with the current implementation.
After IncludeZones, simply us 'Reset' to undo the spurious GUI changes.
Works fine - just looks a bit silly.
- Added 'Refresh' button to rescan for new times/fields. Good for
post-processing ongoing calculations without exiting the reader.
- Added 'Skip Zero Time' checkbox: many (some) calculations have
data missing at time=0 (eg, rho, lagrangian, etc). This provides
a convenient way to skip over this time.
- Future?:
We could probably pick up favourite default values for these switches from
~OpenFOAM/controlDict, from a case system/paraview, or simply by making
the casename.OpenFOAM also be an OpenFOAM dictionary with the settings.
- in preparation for adding an optional '-reconstruct' to a few utilities
re-use as -lreconstruct library
- move related stuff there too
src/decompositionMethods/decompositionMethods
-> src/parallel/decompositionMethods
- added missing namespace qualifiers
- Show Point Numbers as is_internal="1" and hook directly into a QT-checkbox
and thus bypass modifying the reader state.
- Same for Cache Mesh and Show Patch Names
- apply scaleFactor (eg, mm->m) in PV3 reader - this looks better when
overlaying with other objects
- stop segfault when paraview exits without deleting readers first
- remove patch/point text labels upon deletion
- combined client/server plugin instead of separate .so files
first experiment with adding panel decorations
- directory reorganization
- still using the same version of the reader API (2.03)
- this seems to solve strange issues with genericPatchField symbols,
but it still doesn't get the reader module working.
- added in the release information (the build string)
- using a filter such as clip-plane on a multi-port source causes
inconsistent UPDATE_TIME_STEPS() on each port. This looks like a
VTK/Paraview bug to me.
Workaround: check both ports and take the first one that has a value
different than the last time set.
- objectRegistry gets a rename() that also adjusts the dbDir
- cloud reworked to use static variables subInstance and defaultName.
This avoids writing "lagrangian" everywhere
string fixes
- avoid masking of std::string::replace in string.H
- avoid old strstream in PV3FoamReader
- OSspecific: chmod() -> chMod(), even although it's not used anywhere
- ListOps get subset() and inplaceSubset() templated on BoolListType
- added UList<bool>::operator[](..) const specialization.
Returns false (actually pTraits<bool>::zero) for out-of-range elements.
This lets us use List<bool> with lazy evaluation and no noticeable
change in performance.
- use rcIndex() and fcIndex() wherever possible.
Could check if branching or modulus is faster for fcIndex().
- UList and FixedList get 'const T* cdata() const' and 'T* data()' members.
Similar to the STL front() and std::string::data() methods, they return a
pointer to the first element without needing to write '&myList[0]', recast
begin() or violate const-ness.
- can use 'XX.empty()' instead of 'XX.size() == 0', 'XX.size() < 1' or
'XX.size() <= 0' or for simpler coding.
It also has the same number of characters as '!XX.size()' and /might/ be
more readable
- many size checking had 'XX.size() > 0', 'XX.size() != 0', or 'XX.size() >= 1'
when a simple 'XX.size()' suffices
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.
- 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