ParaView is an open source, multi-platform data analysis and visualization application. It has a client-server architecture to facilitate remote visualization of datasets
It is an application built on top of the Visualization Tool Kit (VTK) libraries.
The ParaView code base is designed in such a way that all of its components can be reused to quickly develop vertical applications. This flexibility allows ParaView developers to quickly develop applications.
Input/Output and File Format
- Supports a variety of file formats including: VTK (new and legacy, all types including parallel, ascii and binary, can read and written).
- Various polygonal file formats including STL and BYU (by default, read only, other VTK writers can be added by writing XML description).
- Many other file formats are supported. See ParaView Readers and ParaView Writers for a full list.
CMake is a family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice. ParaView utilizes CMake for the software compilation process.
ParaView is used as the visualization platform for the Modeling software OpenFOAM (Open Field Operation and Manipulation).It is primarily a C++ toolbox for the customisation and extension of numerical solvers for continuum mechanics problems, including computational fluid dynamics (CFD). It comes with a growing collection of pre-written solvers applicable to a wide range of problems.
First major general-purpose CFD package to use polyhedral cells. This functionality is a natural consequence of the hierarchical description of simulation objects.
OpenFOAM compares favourably with the capabilities of most leading general-purpose commercial closed-source CFD packages. It relies on the user’s choice of third party pre- and post-processing utilities, and ships with:
- a plugin (paraFoam) for visualisation of solution data and meshes in ParaView.
- a wide range of mesh converters allowing import from a number of leading commercial packages
- an automatic hexahedral mesher to mesh engineering configurations
OpenFOAM was conceived as a continuum mechanics platform but is ideal for building multi-physics simulations.
OpenCFD develop OpenFOAM in the Linux/UNIX operating system because: we believe it is the best platform for this kind of high end simulation code development and operation; Linux is efficient, robust, reliable and flexible and undergoes rapid development and improvement; Linux is open source, like OpenFOAM; Linux is very effective for parallel operation on Beowulf clusters.
OpenFOAM is open source software so people can freely compile it on any operating system they choose. Most OpenFOAM users are running Linux, so this site offers the download of binaries for selected Linux systems.
As the present time we are unaware of any binary distributions for Windows or MacOSX. However, ports to these operating systems have been the subject of debate on the OpenFOAM discussion site, which may provide the best source of information on the matter.
OpenFOAM uses finite volume numerics to solve systems of partial differential equations ascribed on any 3D unstructured mesh of polyhedral cells.
OpenFOAM applications handle unstructured meshes of mixed polyhedra with any number of faces: hexahedra, tetrahedra, degenerate cells, basically anything.
Mesh generation is made simple by the fact that a cell is simply represented as a list of faces and a face as a list of vertices: this makes mesh handling very easy even for complex meshes with, say, embedded refinement or complex shapes near the boundary.
OpenFOAM is supplied with the following mesh generator tools that run in parallel.
Mesh generation tools
|blockMesh||A multi-block mesh generator|
|extrude2DMesh||Takes 2D mesh (all faces 2 points only, no front and back faces) and creates a 3D mesh by extruding with specified thickness|
|extrudeMesh||Extrude mesh from existing patch (by default outwards facing normals; optional flips faces) or from patch read from file|
|snappyHexMesh||Automatic split hex mesher. Refines and snaps to surface|
The main mesh generators cover two extremes: snappyHexMesh, that can mesh to complex CAD surfaces; blockMesh a simple file-driven block mesh generator.
OpenFOAM is supplied with several utilties that perform mesh checking and manipulation. The full list of utilties is given below
|attachMesh||Attach topologically detached mesh using prescribed mesh modifiers|
|autoPatch||Divides external faces into patches based on (user supplied) feature angle|
|cellSet||Selects a cell set through a dictionary|
|checkMesh||Checks validity of a mesh|
|createBaffles||Makes internal faces into boundary faces. Does not duplicate points, unlike mergeOrSplitBaffles|
|createPatch||Utility to create patches out of selected boundary faces. Faces come either from existing patches or from a faceSet|
|deformedGeom||Deforms a polyMesh using a displacement field U and a scaling factor supplied as an argument|
|faceSet||Selects a face set through a dictionary|
|flattenMesh||Flattens the front and back planes of a 2D cartesian mesh|
|insideCells||Picks up cells with cell centre ’inside’ of surface. Requires surface to be closed and singly connected|
|mergeMeshes||Merge two meshes|
|mergeOrSplitBaffles||Detects faces that share points (baffles). Either merge them or duplicate the points|
|mirrorMesh||Mirrors a mesh around a given plane|
|moveDynamicMesh||Mesh motion and topological mesh changes utility|
|moveEngineMesh||Solver for moving meshes for engine calculations.|
|moveMesh||Solver for moving meshes|
|objToVTK||Read obj line (not surface!) file and convert into vtk|
|pointSet||Selects a point set through a dictionary|
|refineMesh||Utility to refine cells in multiple directions|
|renumberMesh||Renumbers the cell list in order to reduce the bandwidth, reading and renumbering all fields from all the time directories|
|rotateMesh||Rotates the mesh and fields from the direcion to the direction|
|setSet||Manipulate a cell/face/point set interactively|
|setsToZones||Add pointZones/faceZones/cellZones to the mesh from similar named pointSets/faceSets/cellSets|
|splitMesh||Splits mesh by making internal faces external. Uses attachDetach|
|splitMeshRegions||Splits mesh into multiple regions|
|stitchMesh||’Stitches’ a mesh|
|subsetMesh||Selects a section of mesh based on a cellSet|
|transformPoints||Transforms the mesh points in the polyMesh directory according to the translate, rotate and scale options|
|zipUpMesh||Reads in a mesh with hanging vertices and zips up the cells to guarantee that all polyhedral cells of valid shape are closed|
OpenFOAM adopts a novel approach to mesh motion by defining it in terms of the boundary motion which is extremely robust.
The solver need only define the the motion of the boundary and everything else will be done automatically. The open architecture of OpenFOAM solver codes allows quick and efficient implementation: mesh motion can be based on any solution variable, either local or integrated and by dynamically adjusted during the run.
Mesh motion is also transparently integrated with top-level models: the model writer does not see the additional complexity, which is conveniently packaged within the discretisation operators.
For examples of automated mesh motion in OpenFOAM, see Solutions
OpenFOAM accepts meshes generated by any of the major mesh generators and CAD systems. Listed below are converter utlities for the major commercial mesh generators. Note that it is also possible to import the meshes from most general purpose mesh generators since they will export in a format read by one of the converters.
|ansysToFoam||Converts an ANSYS input mesh file, exported from I-DEAS, to OPENFOAM®format|
|cfx4ToFoam||Converts a CFX 4 mesh to OPENFOAM®format|
|fluent3DMeshToFoam||Converts a Fluent mesh to OPENFOAM®format|
|fluentMeshToFoam||Converts a Fluent mesh to OPENFOAM®format including multiple region and region boundary handling|
|foamMeshToFluent||Writes out the OPENFOAM®mesh in Fluent mesh format|
|foamToStarMesh||Reads an OPENFOAM®mesh and writes a PROSTAR (v4) bnd/cel/vrt format|
|gambitToFoam||Converts a GAMBIT mesh to OPENFOAM®format|
|gmshToFoam||Reads .msh file as written by Gmsh|
|ideasUnvToFoam||I-Deas unv format mesh conversion|
|kivaToFoam||Converts a KIVA grid to OPENFOAM®format|
|mshToFoam||Converts .msh file generated by the Adventure system|
|netgenNeutralToFoam||Converts neutral file format as written by Netgen v4.4|
|plot3dToFoam||Plot3d mesh (ascii/formatted format) converter|
|polyDualMesh||Calculate the dual of a polyMesh. Adheres to all the feature and patch edges|
|sammToFoam||Converts a STAR-CD SAMM mesh to OPENFOAM®format|
|star4ToFoam||Converts a STAR-CD (v4) PROSTAR mesh into OPENFOAM®format|
|starToFoam||Converts a STAR-CD PROSTAR mesh into OPENFOAM®format|
|tetgenToFoam||Converts .ele and .node and .face files, written by tetgen|
|writeMeshObj||For mesh debugging: writes mesh as three separate OBJ files which can be viewed with e.g. javaview|