Commit Graph

1069 Commits

Author SHA1 Message Date
71e6e10458 ENH: use cellPoint interpolation directly for surfaceFieldValue (#1212)
- prior to sampledSurface supporting different interpolation schemes a
  workaround means was used to simulate cellPoint -> face
  interpolation, with averaging of vertex interpolation.

  We instead now use cellPoint interpolation directly for the face
  values when 'interpolate=true'.
2019-02-25 18:40:35 +01:00
6301866a9c STYLE: use 'statusDone' keyword for coupling (#1243) 2019-03-22 08:00:01 +01:00
ac646d48b7 ENH: make external file coupling status= configurable (#1243) 2019-03-21 17:26:16 +01:00
8bd6568d05 ENH: added areaWrite function object (#1237)
- write finiteArea meshes and fields to standard surface output
  formats (Ensight, VTK, etc).
2019-03-13 19:44:51 +01:00
47b0de6d68 STYLE: fix doxygen comment for vtkWrite 2019-03-13 12:54:44 +01:00
7a5e72978a COMP: runTimePostProcessing build with VTP+MPI fails (#1231)
- incorrectly uses paraview include dirs instead of the more universal
  vtk include dirs for the MPI test.
2019-03-11 11:04:18 +01:00
5d445f4ed6 ENH: suppress cell/patch/proc ids for foamToVTK (#1230)
- reduces output size, consistent with vtkWrite function object

STYLE: mark some foamToVTK options as advanced (ie, visible with -help-full)
2019-03-11 11:02:58 +01:00
e322894476 STYLE: pass points, faces instead of meshedSurfRef in surfaceFieldValue
- removes a layer of opacity and may help with future restructuring
2019-02-22 11:08:07 +01:00
42fbf6d38c ENH: extended runTimePostProcessing (#1206)
- Extended runTimePostProcessing to include access to "live"
  simulation objects such a geometry patches and sampled surfaces
  stored on the "functionObjectObjects" registry.

- Add 'live' runTimePostProcessing of cloud data.
  Extracts position and fields from the cloud via its objectRegistry writer

- For the "live" simulation objects, there are two new volume filters
  that work directly with the OpenFOAM volume fields:
      * iso-surface
      * cutting planes
  Both use the VTK algorithms directly and support multiple values.
  Eg, can make multiple iso-levels or multiple planes parallel to each
  other.

- When VTK has been compiled with MPI-support, parallel rendering will
  be used.

- Additional title text properties (shadow, italic etc)

- Simplified handling of scalar-bar and visibility switches

- Support multiple text positions. Eg, for adding watermark text.
2019-02-13 11:22:46 +01:00
03e6aa1a6d ENH: replace surfMesh/fields support with polySurface/fields support (#1206)
- fits better into the general sampling framework, improves flexibilty
  and allows code reduction.

ENH: include surface fields on sampledSurfaces that support it
2019-02-12 13:54:02 +01:00
181c974b11 ENH: improved sample surfaces and surface writers (#1206)
- The writers have changed from being a generic state-less set of
  routines to more properly conforming to the normal notion of a writer.
  These changes allow us to combine output fields (eg, in a single
  VTK/vtp file for each timestep).

  Parallel data reduction and any associated bookkeeping is now part
  of the surface writers.
  This improves their re-usability and avoids unnecessary
  and premature data reduction at the sampling stage.

  It is now possible to have different output formats on a per-surface
  basis.

- A new feature of the surface sampling is the ability to "store" the
  sampled surfaces and fields onto a registry for reuse by other
  function objects.

  Additionally, the "store" can be triggered at the execution phase
  as well
2019-02-07 18:11:34 +01:00
27973d7ab5 COMP: Updated for 64 bit labels 2019-02-18 11:20:40 +00:00
c4242efde4 COMP: Added randomProcesses-based function objects to build 2019-02-18 11:20:18 +00:00
24861f5158 ENH: for-range, forAllIters() ... in functionObjects/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
60234ab007 STYLE: reduced nesting on return branching 2019-02-13 08:06:36 +01:00
4bc3b2b9cb STYLE: minor adjustments for code formatting and comments 2019-02-12 20:18:06 +01:00
4e7ba1800a ENH: delay evaluation of surfaces for fluxSummary (issue #1202)
- complete any pending initialisation on write().
  Allows lazier evaluation until when surfaces are actually available.
2019-02-12 12:39:49 +01:00
bfb0693bbe ENH: delay evaluation of surfaces for surfaceFieldValue (issue #1202)
- complete any pending initialisation on write().
  Allows lazier evaluation until when the surfaces are actually needed.
2019-02-12 12:39:49 +01:00
de673f3bcf STYLE: consolidate 'clear' when initialising surfaceFieldValue 2019-02-11 15:59:14 +01:00
c137d3f823 ENH: derivedFields functionObject to create some predefined, calculated fields
- currently supports pTotal, rhoU.
2019-02-08 17:47:45 +01:00
e2754962cc ENH: add remove objects handling in timeFunctionObject and regionFunctionObject
- makes it easier to implement functionObject or field object removal
2019-02-08 17:47:45 +01:00
8f92fa016f ENH: write/clear on all components (issue #1199)
- use registry checkOut for removeRegisteredObject function object
2019-02-11 10:12:17 +01:00
96b0bce80a ENH: forces function object - made user selection clearer when running 2019-02-11 09:22:26 +00:00
1b9576df0a ENH: support objectRegistry::checkOut(const word& name)
- similar to what erase() does, but as a mutable operation (#1180)

- replace basicThermo lookupAndCheckout (commit 880c98757d) with
  the new objectRegistry::checkOut() method.
2019-02-06 12:01:29 +01:00
154029ddd0 BOT: Cleaned up header files 2019-02-06 12:28:23 +00:00
8f572a5e71 ENH: improve volRegion handling of moving meshes (#1194)
- implemented as lazy evaluation with an additional update() method.
  This avoids unnecessary changes until the values are actually
  required.

- apply mesh motion changes for momentum, volFieldValue,
  specieReactionRates function objects
2019-02-06 10:25:47 +01:00
b7fb6116c3 ENH: restructuring of ensight output files
- changed ensightOutput from a class solely comprising static methods to
  a namespace and added in sub-namespaces Detail and Serial.

  This makes it easier to "mix-in" functions at different levels.
  Refactored and combined some serial/parallel code where possible.

  The general ensightOutput namespace has now shifted to be in the
  fileFormats lib, while leaving volField outputs in the conversion lib
  and cloud outputs in the lagrangian-intermediate lib.

  The ensightCloud namespace is now simply folded into the new
  ensightOutput namespace.

  These changes clean up some code, reduce fragmentation and
  duplication and removes the previous libconversion dependency for
  sampling.

- use int for ensight nTypes constexpr

Note: issue #1176 is unaffected except for the change in file name:

   ensightOutputTemplates.C -> ensightOutputVolFieldTemplates.C
2019-01-29 15:18:17 +01:00
8d12e080f6 ENH: new continuityError function object
Example usage:

    continuityError1
    {
        type        continuityError;
        libs        ("libfieldFunctionObjects.so");
        ...
        writeToFile yes;
        log         yes;
        phi         phi;
    }
2019-01-29 13:53:56 +00:00
94070f5ee7 STYLE: Renamed residuals FO -> solverInfo to reflect capabilities 2019-01-29 13:52:37 +00:00
96bb43ae00 DOC: Updated cloudName -> cloud 2019-01-29 09:53:58 +00:00
f34acb5679 COMP: add debug flag for repeating runTimePostProcessing rebuilds
- avoids removal of files and the dummy fallback
2019-01-28 19:06:07 +01:00
e05a62d329 COMP: Allwmake: work with -q 2019-01-28 11:56:57 +00:00
3b91160027 STYLE: centralize example dictionaries under etc/ (issue #1074)
- as well as being more convenient to find, this is necessary when the
  OpenFOAM installation is without sources or tutorials
2019-01-26 17:46:08 +01:00
c4aebc3c8e ENH: avoid double write triggering in writeObjects functionObject
- in the previous version, a specification such as (U "U.*")
  would have selected the field name twice for writing
2019-01-25 12:04:23 +01:00
ad7f29466a ENH: added timeFunctionObject virtual class in inheritance hierarchy
- simply a functionObject with an additional Time reference, which is
  a combination frequently used by concrete functionObjects
2019-01-25 08:56:21 +01:00
f9eb16db2a STYLE: remove shadow variable name 2019-01-25 01:09:45 +01:00
1910ebc0ad STYLE: used guarded read in runTimeControl 2019-01-24 10:03:33 +01:00
722ce91ae0 STYLE: combine if (log) ... Log statements 2019-01-23 22:55:50 +01:00
812fa22dff Merge remote-tracking branch 'origin/develop' into develop 2019-01-23 21:22:10 +01:00
34ca554f15 Merge branch 'feature-run-time-control-triggers' into 'develop'
Feature run time control triggers

See merge request Development/OpenFOAM-plus!228
2019-01-23 14:59:18 +00:00
f33061cc2a ENH: user-specified ref temperature for externalCoupled mixed T BC (#1072)
- Uses the user-specified value for the HTC calculation

  {
      type  externalCoupledTemperature;

      outputTemperture    fluid;  // or wall;
      htcRefTemperature   user;   // or cell (default)

      Tref    293.15;
  }
2019-01-23 13:24:01 +01:00
fafe1e564b BUG: nearWallFields: particles located outside mesh. See #947. 2019-01-23 12:11:30 +00:00
c604adc0d1 ENH: runTimeControl - deactivate for -postProcess operation 2019-01-21 13:52:34 +00:00
452a281a00 ENH: fieldSelection - added checks for when fields are not found 2019-01-21 12:16:13 +00:00
ed94a2714d STYLE: use HashTable iterator 'val()' method instead of 'object()' 2019-01-18 16:26:50 +01:00
0abae185b7 STYLE: Updated output message 2019-01-15 15:05:56 +00:00
bc12ce2ac9 ENH: Updated fieldSelection dependent code 2019-01-21 11:56:53 +00:00
d11a5091a4 ENH: Extended equationInitialResidualCondition to use field components 2019-01-21 11:42:49 +00:00
f498d09dbf ENH: add simplified gather methods for globalIndex with default communicator
- when combining lists in processor order this simplifies code and
  reduces memory overhead.

  Write this:
    ----
    labelList collected;

    const globalIndex sizing(input.size());
    sizing.gather(input, collected);
    ----

  OR

    ----
    labelList collected;
    globalIndex::gatherOp(input, collected);
    ----

  Instead of this:

    ----
    labelList collected;

    List<labelList> scratch(Pstream::nProcs());
    scratch[Pstream::myProcNo()] = input;
    Pstream::gatherList(scratch);

    if (Pstream::master())
    {
        collected = ListListOps::combine<labelList>
        (
            scratch,
            accessOp<labelList>()
        );
    }
    scratch.clear();
    ----
2019-01-16 21:33:06 +01:00
abf6d57ae8 ENH: include the selection volume in momentum output 2019-01-15 16:58:27 +01:00