For example, to mesh a sphere with a single block the geometry is defined in the
blockMeshDict as a searchableSurface:
geometry
{
sphere
{
type searchableSphere;
centre (0 0 0);
radius 1;
}
}
The vertices, block topology and curved edges are defined in the usual
way, for example
v 0.5773502;
mv -0.5773502;
a 0.7071067;
ma -0.7071067;
vertices
(
($mv $mv $mv)
( $v $mv $mv)
( $v $v $mv)
($mv $v $mv)
($mv $mv $v)
( $v $mv $v)
( $v $v $v)
($mv $v $v)
);
blocks
(
hex (0 1 2 3 4 5 6 7) (10 10 10) simpleGrading (1 1 1)
);
edges
(
arc 0 1 (0 $ma $ma)
arc 2 3 (0 $a $ma)
arc 6 7 (0 $a $a)
arc 4 5 (0 $ma $a)
arc 0 3 ($ma 0 $ma)
arc 1 2 ($a 0 $ma)
arc 5 6 ($a 0 $a)
arc 4 7 ($ma 0 $a)
arc 0 4 ($ma $ma 0)
arc 1 5 ($a $ma 0)
arc 2 6 ($a $a 0)
arc 3 7 ($ma $a 0)
);
which will produce a mesh in which the block edges conform to the sphere
but the faces of the block lie somewhere between the original cube and
the spherical surface which is a consequence of the edge-based
transfinite interpolation.
Now the projection of the block faces to the geometry specified above
can also be specified:
faces
(
project (0 4 7 3) sphere
project (2 6 5 1) sphere
project (1 5 4 0) sphere
project (3 7 6 2) sphere
project (0 3 2 1) sphere
project (4 5 6 7) sphere
);
which produces a mesh that actually conforms to the sphere.
See OpenFOAM-dev/tutorials/mesh/blockMesh/sphere
This functionality is experimental and will undergo further development
and generalization in the future to support more complex surfaces,
feature edge specification and extraction etc. Please get involved if
you would like to see blockMesh become a more flexible block-structured
mesher.
Henry G. Weller, CFD Direct.
To compile with 64bit labels set
WM_LABEL_SIZE=64
in ~/OpenFOAM/dev/prefs.sh
source ~/.bashrc
then Allwmake in OpenFOAM-dev.
This will build into for example OpenFOAM-dev/platforms/linux64ClangDPInt64Opt
If WM_LABEL_SIZE is unset or set to 32:
WM_LABEL_SIZE=32
the build would be placed into OpenFOAM-dev/platforms/linux64ClangDPInt32Opt
Thus both 32bit and 64bit label builds can coexist without problem.
- drop FOAM_MPI_LIBBIN variable in favour of FOAM_MPI from which
two different locations can be determined.
Previously there was something like this:
FOAM_MPI_LIBBIN = $FOAM_LIBBIN/openmpi-1.5.1
We now instead determine the locations from the FOAM_MPI directly:
FOAM_MPI=openmpi-1.5.1
$FOAM_LIBBIN/$FOAM_MPI -> OpenFOAM mpi-related
$FOAM_EXT_LIBBIN/$FOAM_MPI -> ThirdPary mpi-related
ENH: relocate ParaView libraries and plugins back under FOAM_LIBBIN
- as discussed with Mattijs
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.
- 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.
- 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