Commit Graph

43 Commits

Author SHA1 Message Date
009203188f blockMesh: New experimental support for projecting block face point to geometric surfaces
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.
2016-10-13 15:05:24 +01:00
50b549f368 blockMesh: rationalizing class and member names 2016-10-08 19:48:39 +01:00
58f905ff70 C++11: Replaced the C NULL with the safer C++11 nullptr
Requires gcc version 4.7 or higher
2016-08-05 17:19:38 +01:00
dea6a3c6e8 wmake/Allwmake: Completed support for targetType 'objects'
Patch contributed by Mattijs Janssens
2016-06-24 15:25:11 +01:00
67de20df25 Further standardization of loop index naming: pointI -> pointi, patchI -> patchi 2016-05-18 21:20:42 +01:00
a9b8bb13e0 applications/.*/Allwmake: Updated to support "stop on 1st error"
Patch contributed by Bruno Santos
Resolved bug-report http://www.openfoam.org/mantisbt/view.php?id=2042
2016-04-04 09:03:40 +01:00
350d03246e scripts: Reformat with consistent section separators 2016-02-15 18:30:24 +00:00
e2ef006b91 applications: Update ...ErrorIn -> ...ErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-10 17:53:31 +00:00
19dcf83b6a paraFoam: add support for system/blockMeshDict with the -block option
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1803
2015-08-01 18:36:00 +01:00
8628ef2fea Corrected capitalization of Doxygen documentation comments 2015-02-14 13:10:15 +00:00
ae019fccfa Removed spurious file
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1374
2015-01-01 16:27:58 +00:00
325b003b6e Added and verified support for 64bit labels
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.
2014-12-31 19:02:52 +00:00
844b283030 New version of wmake supporting out-of-tree object and dependency files 2014-12-14 21:42:18 +00:00
ee4e19ef85 Renamed folder -> directory for consistency with POSIX and the rest of OpenFOAM 2014-01-30 13:01:04 +00:00
e7b5594f1d COMP: ParaFoam: moved include directory setting to paraview.*sh 2013-01-03 16:13:53 +00:00
100a25ee25 STYLE: defineDebug: move into Foam namespace 2012-12-17 17:35:42 +00:00
b702a7178b PV3Readers: Added -I path to OSspecific 2012-06-25 12:32:28 +01:00
c2dd153a14 Copyright transfered to the OpenFOAM Foundation 2011-08-14 12:17:30 +01:00
3c30eca1cc STYLE: drop check for paraview versions
- we don't support paraview < 3.x anymore
2011-03-28 11:07:10 +02:00
c3cb632c24 Documentation: converted javadoc @ to LaTeX style \ in Doxygen code docs 2011-02-08 18:22:00 +00:00
5e12506f8e ENH: improve separation of OpenFOAM and ThirdParty mpi-libraries
- 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
2011-01-05 07:53:54 +01:00
46a5865894 ENH: relocate paraview plugins -> FOAM_EXT_LIBBIN 2010-12-30 16:35:52 +01:00
0efa54821a ENH: support regions for PV3blockMeshReader 2010-11-25 13:03:11 +01:00
3eefd6de73 ENH: blockMesh : initial blockMesh was created with region 'blockMesh' 2010-11-24 16:55:30 +00:00
012494fdb5 STYLE: Fixing code style requirements for all apps.
Exception: applyWallFunctionBoundaryConditions.C cannot split #include
directives.
2010-07-27 15:27:05 +01:00
c51a2b0f63 ENH: have MUST_READ_IF_MODIFIED on IOdictionary construction 2010-06-02 09:48:07 +01:00
5087125424 STYLE: remove erroneous section-label on doxygen @endcond 2010-05-07 15:30:27 +02:00
4ea1f8f98a ENH: enable vtkPolyhedron support when detected 2010-04-30 12:36:49 +02:00
5debfe4cdf ENH: Remove vtk(Cxx|Type)RevisionMacro, vtkTypeRevisionMacro -> vtkTypeMacro
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.
2010-04-26 09:24:03 +02:00
42807ddd7e STYLE: fix worst spacing violations for 'os <<' constructions
- accept some violations of the coding guidelines though
- perhaps adding a style exception would be simpler.
2010-04-13 17:45:49 +02:00
b6f3bd4c23 STYLE: follow coding guide recommendation for '//- Destructor' 2010-04-12 11:55:52 +02:00
6adf0cbca8 Merge remote branch 'OpenCFD/master' into olesenm 2010-03-30 11:42:19 +02:00
9d216d5280 STYLE: Remove unused debug code 2010-03-30 08:20:22 +01:00
d29c438657 STYLE: use url for FSF license instead of postal address, switch to GPL v3 2010-03-29 14:07:56 +02:00
10524cb8a1 STYLE: eliminate ParaView_INST_DIR variable and simplify plugin Make/options
- the 'make install' target from ParaView now installs all of the
  includes necessary for compiling plugins.
2010-03-05 13:04:30 +01:00
99c22976ea added git option 2009-12-09 10:06:00 +00:00
37c4f2f375 remove empty 'Description' from various .C files 2009-12-04 14:11:33 +01:00
6bdb7fb7b5 fixup copyright dates on new code 2009-11-30 08:21:44 +01:00
81891675ea Commit Paraview enhancements - quit working on sets/zones frills
- 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.
2009-11-24 00:09:07 +01:00
b54f89ac05 PV3Reader - render after toggling show point/patch names 2009-11-03 22:13:48 +01:00
83cee1cb68 First useful Qt modifications to the PV3blockMeshReader, PV3FoamReader
- 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
2009-10-23 00:33:42 +02:00
1ef88a2aef blockMesh reader fix, start refactoring of PV3Readers
- 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
2009-10-18 17:50:41 +02:00
c57262c2a0 Cleanup/fixup paraview readers
- remove patch/point text labels upon deletion

- combined client/server plugin instead of separate .so files
  first experiment with adding panel decorations

- directory reorganization
2009-10-18 16:23:41 +02:00