- Cannot pass through to underlying list constructor directly.
- As this constructor was broken, there seem to be a number of
workarounds scattered in the code. Could revisit them in the future
as part of code-style:
edgeMesh(const Xfer<pointField>&, const Xfer<edgeList>&);
CompactIOField(const IOobject&, const Xfer<Field<T>>&);
GlobalIOField(const IOobject&, const Xfer<Field<Type>>&);
IOField(const IOobject&, const Xfer<Field<Type>>&);
- Condition is there to catch cases where the vtkSurfaceFormat returns
no zones (which should never be the case), but assigns a fallback
value without first resizing.
- This format is fortunately little-used (or never used) since its
inception.
Using raw stream operators to write zones, points and faces in a
single file was not well thought out - the output content varies
with the Face template type (face, triFace, labelledFace), which
makes it not very robust at all.
The static read in OFSsurfaceFormat also has a bug - keeping
transcribed faces from being passed through.
Conclusion: removing it makes more sense that repairing and still
not having something good.
Do retain stream operators for MeshedSurface and UnsortedMeshedSurface,
since they are useful for passing around data
(eg, between processors), but they shouldn't be used for files.
- Cannot test if these older reader modules actually build,
owning largely to build issues since with paraview 3.14 (Feb 2012)
and paraview 3.98 (Dec 2012) themselves.
Improvements to the conversion utilities
Various changes associated with issue #204.
* Reduced code duplication for handling prostar conversion and IO
* Simple conversion to/from AVL/FIRE geometries
* New library basis for conversion to/from CCM geometries - handles multiple regions, conformal interfaces etc. No support for film or 2d shell geometries
* Improved infrastructure for writing VTK content. Will propagate usage through other parts of the code in the future.
See merge request !76
- relied on 'export' keyword, which was removed in commit b844867112
--
ENH: foamConfigurePaths support for additional items:
-label 32|64 specify label size
-system name specify 'system' compiler to be used
-thirdParty name specify 'ThirdParty' compiler to be used
-boost ver specify boost_version
-boostArchPath dir specify BOOST_ARCH_PATH
-cgal ver specify cgal_version
-cgalArchPath dir specify CGAL_ARCH_PATH
-clang ver specify clang_version for ThirdParty Clang
-cmake ver specify cmake_version
-fftw ver specify fffw_version
-fftwArchPath dir specify FFTW_ARCH_PATH
-metis ver specify METIS_VERSION
-metisArchPath dir specify METIS_ARCH_PATH
- Follow similar pattern as per boost/CGAL with the '*-none' to disable,
and '*-system' for system installations.
Also support central non-ThirdParty installations by specifying the
version as "*-system", but also providing the fully qualified
*_ARCH_PATH too.
--
ENH: Verify label and scalar sizes used in the metis header.
- ensure they match with expected values, which can be obtained via
the OpenFOAM definitions for WM_LABEL_SIZE and WM_PRECISION_OPTION
- Only reference the FOAM_EXT_LIBBIN locations when linking.
The respective SCOTCH_ARCH_PATH/lib, METIS_ARCH_PATH/lib locations
either do not exist, or are possibly inconsistent and won't be
seen at run-time anyhow.
- Incorporate decompose/metisDecomp/Allwmake into the top-level
decompose/Allwmake
On 64-bit systems, the system installations of boost, cgal are under
lib64/. The behaviour for a ThirdParty build is mostly lib/ but this
can also be changing.
Boost 1_62_0 and older build into 'lib/'.
CGAL-4.9 builds into 'lib64/', older versions into 'lib/'.
Future-proof things by using lib$WM_COMPILER_LIB_ARCH for boost and
cgal build rules, and forcing these as build targets in the ThirdParty
makeCGAL as well.
--
STYLE: check for boost/version.hpp, CGAL/version.h instead their directories
- was incorrectly writing it as "startFace", which would be
immediately overwritten anyhow
STYLE: avoid noisy output when adding the boundary 'type' in mesh conversion.
Note: classes are prefixed with 'foamVtk' instead of 'vtk' to avoid potential
conflicts with VTK itself.
foamVtkCore
~~~~~~~~~~~
- General very low-level functionality.
foamVtkPTraits
~~~~~~~~~~~~~~
- Traits type of functionality for VTK
foamVtkOutputOptions
~~~~~~~~~~~~~~~~~~~~
- The various format output options as a class that can be passed to
formatters etc.
foamVtkCells
~~~~~~~~~~~~
- Intended for unifying vtkTopo and PV-Reader code in the future.
- Handles polyhedron decompose internally etc
foamVtkOutput, foamVtkFormatter
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Output helpers.
- Selector for individual formatters.
Currently write all scalar data a 'float' (not 'double'). Can
revisit this in the future.
Provide common face area/normal support in PrimitivePatch
For polyPatch, both the faceAreas() and faceCentres() are masked by their subField equivalents.
Since there is no polyPatch method for magFaceAreas(), the PrimitivePatch method will be seen.
See merge request !74
- In the corner case with few faces or points, the normal List I/O
results in a compact list representation.
This is less than desirable for external programs with simple
line-based parsers.
- Write exactly the following
*Faces*
// Patch: <word-Region> <word-Patch>
<int-nFaces>
(
<int-faceSize>(<int> .. <int>)
...
)
*Points*
// Patch: <word-Region> <word-Patch>
<int-nPoints>
(
(<float-x> <float-y> <float-z>)
...
)
STYLE: only use serial form of createExternalCoupledPatchGeometry in tutorial
- less confusing for the user, who wonders why it is being done twice.