Commit Graph

149 Commits

Author SHA1 Message Date
c0f44ac4f3 MRG: Integrated foundation code 2016-12-12 12:10:29 +00:00
f281f77e4a Updated member type comments
Resolves bug-report http://bugs.openfoam.org/view.php?id=2356
2016-11-28 21:23:00 +00:00
da78cba7da BUG: surfMesh.write() not working with AUTO_WRITE off
- add writeObject method
2016-12-01 15:15:50 +01:00
46e396af49 ENH: surfMesh::setWriteOption to adjust the write option of all components
- otherwise difficult to avoid auto-write etc.

- propagate similar changes to MeshedSurfaceAllocator, where is makes
  the most sense.
2016-12-01 15:07:16 +01:00
7b450a2915 BUG: update points reference in surfMesh fails (issue #320)
- Should be updating references (shallow copy), but triggers a deep copy
  instead. Likely introduced by 6e573ad7e8.
2016-11-30 14:13:01 +01:00
e112eb503b ENH: provide ModifiableMeshedSurface class
- A special purpose MeshedSurface that exposes the stored values
  for direct modification.

- Its usage should be restricted to special cases where the surface
  needs modifications as an atomic operation.
2016-11-14 00:45:41 +01:00
52b6c49b4f ENH: provide xfer methods for the meshed surface components.
- the surfMesh classes where originally designed with limited
  (protected) access to the underlying components. This is to
  avoid unintentional direct changes, since these can quickly
  lead to inconsistencies with the topology addressing etc.

  However, if we wish to efficiently adjust surfaces, it is useful
  to modify the components directly.
  The compromise is to provide 'xfer' methods:
    - xferFaces()
    - xferPoints()
    - xferZones()
  These transfer the contents to an Xfer container for reuse, while
  also resetting the topology addressing.  To apply the changes,
  the reset() method is used.
2016-11-12 23:42:17 +01:00
d2b4284271 BUG: all addressing not being cleared when transfer/resetting surfMesh 2016-11-14 00:42:52 +01:00
c56edc262c ENH: add read/write for labelledTri surfaces (issue #294)
- extends existing surfaceFormats to include surfaces with
  labelledTri as their face representation.
2016-11-12 12:05:45 +01:00
d026f90827 ENH: support writing of unsorted surface for AC3D format (issue #294)
- needed for triSurface output (when it comes)
2016-11-13 23:05:43 +01:00
b799b5d65d ENH: surfMesh support for reading compressed binary stl files (issue #294)
- increases coverage.

STYLE: relocate some core pieces into fileFormats
2016-11-13 23:04:38 +01:00
88876e46c1 ENH: better handling of various face types in MeshedSurface (issue #294)
- ensure that MeshedSurface and UnsortedMeshedSurface can also work
  with labelledTri faces.

- nTriangles() convenience method for meshed surfaces

- MeshedSurface::addZonesToFaces() method to copy zone information
  into the labelledTri per-face region storage.
  The goal is to replace the triSurface reading routines with
  run-time selectable ones from surfMesh.
2016-11-12 23:42:00 +01:00
4fbb59de5d STYLE: rename MeshedSurfaceProxyCore -> MeshedSurfaceProxys for consistency
- it doesn't actually contain 'core' code, but rather various
  instances of MeshedSurfaceProxy.
2016-11-12 20:54:50 +01:00
48762a8c58 STLpoint: declare operator point() for double-precision only
The base-class provides the point for single-precision.
2016-11-12 09:02:51 +00:00
d1d453f065 STYLE: relocate surfZoneIdentifier into OpenFOAM/meshes/Identifiers (issue #294)
Note that since these actually act more like 'patches'
(ie, contiguous addressing) it might be reasonable to rename as

    surfPatchIdentifier / surfacePatchIdentifier
2016-08-11 21:44:14 +02:00
eeedf4a35d DEFEATURE: remove VRML/97 output - superseded long ago by x3d (issue #294) 2016-11-12 23:30:44 +01:00
bd9626f95c DEFEATURE: remove broken OFS surfaceFormat (issue #296, #294)
- 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.
2016-11-12 23:22:47 +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
d8abc128f9 ENH: provide conversion to/from AVL/FIRE meshes (issue #204) 2016-08-05 13:22:22 +02:00
74f2d7f0a3 ENH: cleanup starcd (prostar) mesh conversion (issue #204)
- Reduce code duplication by moving out common functionality
  into STARCDCore.
2016-08-05 10:35:55 +02:00
c79544b197 ENH: mergedSurf helper class (fixes #104)
- For merging meshedSurf content from parallel sources.
  Ensures zoneIds are properly preserved for sampling in parallel.

Current state
~~~~~~~~~~~~~

Current producers of the region information:
 * sampledTriSurfaceMesh

Current consumers of the region information:
 * nastran writer. The zone ids passed through as PSHELL Ids (with offset 1).

Limitations

  The per-face region association is preserved, but the face/element
  sort order gets lost in reconstruction. Would need to attach
  additional information to the sampled surface and use that for
  sorting, but this would also imply that sampled values be written
  indirectly (or resorted) too to match the order. Zone ids are passed
  through, but not their names. After reconstruction, zone ids are no
  longer contiguous. Re-sorting (as mentioned above) would solve this
  too, but again at the cost of more complexity when writing.
2016-08-11 13:25:51 +02:00
eee0dd02c5 ENH: meshedSurf API for passing around points/faces (issue #104) 2016-08-10 14:09:09 +02:00
3dffee8a6a STYLE: change MeshedSurface 'faces' access to 'surfFaces' (related to issue #104)
- use surfFaces() to return the templated list of faces.
  This frees up the method 'faces()' to be used as a virtual method,
  which will be needed at a later stage.
2016-08-10 10:03:51 +02:00
fb9f93dd7c ENH: propogate face area support into surface-type meshes (issue #266)
* MeshedSurface / surfMesh / triSurface

- use shorter method names similar to those from volume meshes:

      Sf(), magSf(), Cf()

  instead of the longer ones from PrimitivePatch:

      faceAreas(), magFaceAreas(), faceCentres()

- similar names throughout to ease switching between triSurface and
  MeshedSurface storage.
2016-10-20 08:36:02 +02:00
9fbd612672 GIT: Initial state after latest Foundation merge 2016-09-20 14:49:08 +01:00
29d5a10f97 ENH: add stream operators for MeshedSurface, UnsortedMeshedSurface
- add corrsponding testing into surfaceMeshConvertTesting too
2016-09-06 14:45:44 +02:00
ba413e1f9a ENH: minor adjustments to surfZoneIdentifier
- gearing to make it more reusable in triSurface
2016-08-12 10:05:01 +02:00
b16756115a Remove/replace deprecated functions and classes 2016-06-20 09:39:02 +01:00
6a53ed41ba Doxygen documentation: Standardized the 'See also' heading 2016-06-17 17:31:34 +01:00
a4f8f589de Added forward declaration of friend functions 2016-05-29 22:28:37 +01:00
67de20df25 Further standardization of loop index naming: pointI -> pointi, patchI -> patchi 2016-05-18 21:20:42 +01:00
450728ea84 Standardized cell, patch, face and processor loop index names 2016-04-25 12:00:53 +01:00
43beb06018 Standardized cell, patch and face loop index names 2016-04-25 10:28:32 +01:00
6e573ad7e8 UList: Rationalize assignment (shallow-copy vs deep-copy)
//- Disallow default shallow-copy assignment
    //
    //  Assignment of UList<T> may need to be either shallow (copy pointer)
    //  or deep (copy elements) depending on context or the particular type
    //  of list derived from UList and it is confusing and prone to error
    //  for the default assignment to be either.  The solution is to
    //  disallow default assignment and provide separate 'shallowCopy' and
    //  'deepCopy' member functions.
    void operator=(const UList<T>&) = delete;

    //- Copy the pointer held by the given UList.
    inline void shallowCopy(const UList<T>&);

    //- Copy elements of the given UList.
    void deepCopy(const UList<T>&);
2016-04-03 10:26:05 +01:00
730f89dc9d Use Zero rather than pTraits<Type>::zero unless a static typed '0' is required 2016-03-22 17:46:52 +00:00
95d146ecdf Rationalized the indentation of C-preprocessor directives 2016-02-29 15:42:03 +00:00
cd852be3da OpenFOAM: Updated all libraries, solvers and utilities to use the new const-safe tmp
The deprecated non-const tmp functionality is now on the compiler switch
NON_CONST_TMP which can be enabled by adding -DNON_CONST_TMP to EXE_INC
in the Make/options file.  However, it is recommended to upgrade all
code to the new safer tmp by using the '.ref()' member function rather
than the non-const '()' dereference operator when non-const access to
the temporary object is required.

Please report any problems on Mantis.

Henry G. Weller
CFD Direct.
2016-02-26 17:31:28 +00:00
f4ba71ddd0 OpenFOAM libraries: Updated to use the new const-safe tmp 2016-02-26 08:13:59 +00:00
aa38e25c92 Info -> InfoInFunction and updated comments 2016-01-20 17:51:15 +00:00
5779e4fd16 Info -> InfoInFunction and updated comments 2016-01-20 16:21:37 +00:00
68e86f97fe Info -> InfoInFunction and updated comments 2016-01-20 10:18:13 +00:00
1896599d8b Add support for flex-2.6
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1974
2016-01-18 19:44:38 +00:00
392310db22 Update headers 2016-01-11 13:02:52 +00:00
f19f48132e Consistently indent continuation backslashes in macro definitions 2016-01-11 13:00:56 +00:00
56fa7c0906 Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
4eba393fe1 Update code to use the simpler C++11 template syntax 2016-01-10 19:20:16 +00:00
c4d5f65a10 Completed update ...ErrorIn -> ...ErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-11 09:03:39 +00:00
42fb1b9e8e Updated notImplemented -> NotImplemented
The new NotImplemented macro uses __PRETTY_FUNCTION__ for GNU compatible
compilers otherwise __func__ to provide the function name string.
2015-11-01 10:26:37 +00:00
94401af010 Resolved issues with virtual function inheritance and warning from clang
Also removed __GNUC__ conditional compilation statements which are no
longer needed.
2015-07-17 12:11:37 +01:00
72300041df Removed use of the deprecated "register" keyword
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4340.html
2015-06-30 10:26:44 +01:00