Commit Graph

25426 Commits

Author SHA1 Message Date
Nima Samkhaniani
583fc4fb0d ENH: atmPlantCanopyUSource: improve implicit behaviour (fixes #2343) 2022-04-29 19:55:44 +00:00
Tobias Holzmann
123fe09fda BUG: activePressureForceBaffleVelocity: fix calculated area (fixes #2360)
This patch provides the correct behavior of
the boundary condition and its opening values.
2022-04-29 19:55:44 +00:00
Ian Cowan
c323cbd35b TUT: verticalChannel: add limitTemperature to avoid negative temperatures (fixes #2391)
TUT: propeller: remove duplicate log entry (fixes #1967)

TUT: verticalChannelLTS: update input to avoid runtime errors (fixes #2426)

TUT: Keyword updates
2022-04-29 19:55:44 +00:00
Kutalmis Bercin
f118d9a2a2 BUG: humidityTemperature: fix dropwise condensation expression (fixes #2422) 2022-04-29 19:55:44 +00:00
Kutalmis Bercin
e28bed59e2 BUG: DEShybrid: store the factor field on the mesh (fixes #2425)
The blendingFactor function object overwrites the DEShybrid:Factor
field internally when blendedSchemeBase debug flag is active.
However, users are allowed to write out the original DEShybrid:Factor
field by executing the writeObjects function object before
any blendingFactor function object execution.
2022-04-29 19:55:44 +00:00
Kutalmis Bercin
a5f7fb6ad2 BUG: blendingFactor: fix DEShybrid blending-factor inconsistency (fixes #2419) 2022-04-29 19:55:44 +00:00
Andrew Heather
abc38e1cfc Merge branch 'feature-reorganise' into 'develop'
Code changes and reorganisation preliminary to redistributePar updates (#2436)

See merge request Development/openfoam!533
2022-04-29 19:46:08 +00:00
Mark Olesen
a4ef891594 COMP: missing linkage, unneeded linkage
- dynamicMesh, finiteVolume, regionFaModels, thermophysicalProperties
2022-04-29 13:26:36 +02:00
Mark Olesen
cf7dbf4d42 ENH: relocate/refactor fvMeshSubset
- direct construct and reset method for creating a zero-sized (dummy)
  subMesh. Has no exposed faces and no parallel synchronization
  required.

- core mapping (interpolate) functionality with direct handling
  of subsetting in fvMeshSubset (src/finiteVolume).
  Does not use dynamicMesh topology changes

- two-step subsetting as fvMeshSubsetter (src/dynamicMesh).
  Does use dynamicMesh topology changes.
  This is apparently only needed by the subsetMesh application itself.

DEFEATURE: remove deprecated setLargeCellSubset() method

- was deprecated JUL-2018, now removed (see issue #951)
2022-04-29 11:44:29 +02:00
Mark Olesen
6e21d6f78c ENH: refactor/centralize handling of direct and distributed mappers (#2436)
- added templating level to avoid code duplication and provide future
  extensibility
2022-04-29 11:44:29 +02:00
Mark Olesen
b68193088c ENH: add GeometricBoundaryField evaluateCoupled method (#2436)
- allows restricted evaluation to specific coupled patch types.
  Code relocated/refactored from redistributePar.

STYLE: ensure use of waitRequests() also corresponds to nonBlocking

ENH: additional copy/move construct GeometricField from DimensionedField

STYLE: processorPointPatch owner()/neighbour() as per processorPolyPatch

STYLE: orientedType with bool cast operator and noexcept
2022-04-29 11:44:29 +02:00
Mark Olesen
7bdd355ef7 ENH: additional controls for faMesh construction (#2436)
- move construct from components. Construct with optional IO control

- separate init() method (as per polyMesh) to delay evaluation of
  globalData and base geometry.

- faMesh removeFiles method

ENH: faBoundaryMeshEntries for reading faBoundary files without a mesh

ENH: adjust debug output for {fa,fae,fv,fvs}patchField::New

- add alternative constraint type selection for faePatchField.

- unify handling of "patchType" reading.
  Make less noisy when reporting dictionary defaults.
2022-04-29 11:44:28 +02:00
Mark Olesen
60b31fc8e2 ENH: add primitiveMeshTools support for face lists
- allows reuse by finiteArea, for example.
- simplify edge looping with face thisLabel/nextLabel method

ENH: additional storage checks for mesh weights (faMesh + fvMesh)

- allow finite-area field decomposition without edge weights.

STYLE: use tmp New in various places. Simpler updateGeom check
2022-04-29 11:44:28 +02:00
Mark Olesen
6a0ec18f26 DEFEATURE: remove old faMesh point/area calculations (#2233)
STYLE: remove spurious (no-op) processor boundary evaluations

- boundary fields for faceAreaCentres and edgeCentres had no-op
  initEvaluate/evaluate pair on processor boundaries.
  Now consistent with each other and with how finiteVolume is defined.

STYLE: add comments about which private methods trigger communication
2022-04-29 11:44:28 +02:00
Mark Olesen
94f201f956 ENH: add parallel sync checks for finite-area
- reduce the amount of communication when checking zones and patches
  by performing the synchonization check on the gathered strings
  (master only) and reduce or broadcast the result.

STYLE: simplify coupled() checks depending only on parRun
2022-04-29 11:44:28 +02:00
Mark Olesen
90ba706b06 ENH: make op names unambiguous
* lessEqOp    -> lessEqualOp
  * greaterEqOp -> greaterEqualOp

  to avoid ambiguitity with other forms such as 'plusEqOp' where the
  'Eq' implies an assigment. The name change also aligns better with
  C++ <functional> names such as std::less_equal, std::greater_equal

ENH: simple labelRange predicates gt0/ge0/lt0/le0

- mirrors scalarRange tests.
  Lower overhead than using labelMinMax::ge(0) etc since it does not
  create an intermediate (is stateless) and can be used as a constexpr
2022-04-29 11:44:28 +02:00
Mark Olesen
4cbe0a81ac ENH: consolidate read handling within various regIOobjects 2022-04-29 11:44:28 +02:00
Mark Olesen
35106b60c6 GIT: relocate uniformFixedValuePointPatchField to meshTools
- was in fvMotionSolver, but only requires PatchFunction1 capabilities
  (from within meshTools).

GIT: relocate IOmapDistributePolyMesh (from dynamicMesh to OpenFOAM)
2022-04-29 11:44:28 +02:00
Mark Olesen
430281bced ENH: align fileOperations/masterUncollatedFileOperation findInstance()
- adds handling of negative start times for masterUncollatedFileOperation
  as well (#1112).

- handle failures *after* restoring non-parRun mode.
  This ensures exit(FatalError) will exit MPI properly as well.

STYLE: replace "polyMesh" with polyMesh::meshSubDir

STYLE: adjust IOobject read/write enumerated values

- provision for possible bitwise handling
2022-04-29 11:44:28 +02:00
Mark Olesen
18e0d7e4d6 ENH: bundle broadcasts (#2371)
- additional Pstream::broadcasts() method to serialize/deserialize
  multiple items.

- revoke the broadcast specialisations for std::string and List(s) and
  use a generic broadcasting template. In most cases, the previous
  specialisations would have required two broadcasts:
    (1) for the size
    (2) for the contiguous content.

  Now favour reduced communication over potential local (intermediate)
  storage that would have only benefited a few select cases.

ENH: refine PstreamBuffers access methods

- replace 'bool hasRecvData(label)' with 'label recvDataCount(label)'
  to recover the number of unconsumed receive bytes from specified
  processor.  Can use 'labelList recvDataCounts()' to recover the
  number of unconsumed receive bytes from all processor.

- additional peekRecvData() method (for transcribing contiguous data)

ENH: globalIndex whichProcID - check for isLocal first

- reasonable to assume that local items are searched for more
  frequently, so do preliminary check for isLocal before performing
  a more costly binary search of globalIndex offsets

ENH: masterUncollatedFileOperation - bundled scatter of status
2022-04-29 11:44:28 +02:00
Mark Olesen
a27af5e369 ENH: add optional control to use clang lld linker (#2449)
Eg,
    export WM_COMPILER=Clang130
    export WM_COMPILE_CONTROL="version=13.0 +lld"

- also support the mold linker (+mold) for clang

STYLE: report as 'link' stage instead of 'ld' in short messages
2022-04-29 11:44:28 +02:00
Mark Olesen
442c309dca BUG: cut/paste error in searchableExtrudedCircle
- use vector::removeCollinear a few places

COMP: incorrect initialization order in edgeFaceCirculator

COMP: Silence boost bind deprecation warnings (before CGAL-5.2.1)
2022-04-29 11:43:58 +02:00
Mark Olesen
8e6f2ca5de ENH: additional Field normalise method (#2444)
- for most field types this is a no-op, but for a field of floatVector
  or doubleVector (eg, vector and solveVector) it will normalise each
  element with divide-by-zero protection.

  More reliable and efficient than dividing a field by the mag of itself
  (even with VSMALL protection).
  Applied to FieldField and GeometricField as well.

  Eg,
      fld.normalise();
  vs.
      fld /= mag(fld) + VSMALL;

ENH: support optional tolerance for vector::normalise

- for cases where tolerances larger than ROOTVSMALL are preferable.
  Not currently available for the field method (a templating question).

ENH: vector::removeCollinear method

- when working with geometries it is frequently necessary to have a
  normal vector without any collinear components. The removeCollinear
  method provides for clearer, compacter code.

  Eg,
      vector edgeNorm = ...;

      const vector edgeDirn = e.unitVec(points());

      edgeNorm.removeCollinear(edgeDirn);
      edgeNorm.normalise();

  vs.
      vector edgeNorm = ...;

      const vector edgeDirn = e.unitVec(points());

      edgeNorm -= edgeDirn*(edgeDirn & edgeNorm);
      edgeNorm /= mag(edgeNorm);
2022-04-28 15:31:44 +02:00
Mark Olesen
b59a5b1188 ENH: additional BitOps::toc, BitOps::sortedToc
- for obtaining set entries from a boolList

- BitOps::select to mirror bitSet constructor but returning a boolList

- BitOps::set/unset for boolList

ENH: construct bitSet from a labelRange

- useful, for example, when marking up patch slices

ENH: ListOps methods

- ListOps::count_if to mirror std::count_if but with list indexing.
- ListOps::find_if to mirror std::find_if but with list indexing.

ENH: UPtrList::test() method.

- includes bounds checks, which means it can be used in more places
  (eg, even if the storage is empty).
2022-04-28 15:29:21 +02:00
sergio
7399dbfee8 BUG: Fixing sign on the linear source term for C < 0 for Lee model KSp 2022-04-25 09:35:17 -07:00
sergio
539d9e83af BUG: Fixing kappaLayers on coupled T BC. Fixes #2398 2022-04-22 10:43:54 -07:00
sergio
21a9076441 ENH: Correcting mass rate output 2022-04-22 10:43:54 -07:00
sergio
4f7019edc3 ENH: Create output for Su VollerPrakash 2022-04-22 10:43:54 -07:00
mattijs
ecd27ad4a4 ENH: triSurfaceMesh: detect inconsistent orientation. Fixes #2447 2022-04-19 15:32:12 +01:00
sergio
8b50f8db25 BUG: Correct treatment of contactAngleForce near boundaries 2022-04-14 11:09:11 -07:00
mattijs
c78101a9ae ENH: chtMultiRegionFoam: support for -dry-run. Fixes #2446 2022-04-14 15:47:39 +01:00
mattijs
bc2299ed5f ENH: array: check input. See #2445. 2022-04-14 10:29:19 +01:00
mattijs
ab02e851cc STYLE: bcs: do not write default values 2022-04-14 09:17:49 +01:00
mattijs
2336e4a4e6 ENH: topoSet: added comment 2022-04-14 09:17:48 +01:00
sergio
02b8862de7 BUG: Making surfaceFilmProperties optional for postProcessing. Fixes #2372 2022-04-13 15:55:29 -07:00
sergio
6ff486e55b COMP: Adding missing header for tabulated thermo 2022-04-13 11:25:49 -07:00
sergio
6b02f5f4ea BUG: Reverting change made in commit d4cd87830d
Previous commit solved: "mixture rho to volume-based in rhoThermo."
This proved to work correctly for rho=constant EoS but not for
idealGas. Fixes #2304. The previous gitlab issue was #1812.
2022-04-12 14:37:45 -07:00
sergio
e5bf7d89d2 ENH: Adding thermo types to Lee model 2022-04-12 14:29:13 -07:00
Mark Olesen
d7c873902c COMP: Silence boost bind deprecation warnings (before CGAL-5.2.1) 2022-04-08 10:26:48 +02:00
mattijs
6dac06dd38 ENH: solidFoam: allow time-step control. Fixes #2415. 2022-04-07 13:57:21 +01:00
Mark Olesen
ecf8d260c4 DOC: fixed documented use of expression functions
- `functions<scalar>` and `functions<vector>` were erroneously
   documented in header as `lookup<scalar>` etc.

INT: handle fluent square brackets (fixes #2429)

- patch applied from openfoam.org
2022-03-31 18:53:04 +02:00
Mark Olesen
c7f4ba1969 ENH: memory/efficiency improvements: renumbering, bandCompression (#2430)
- support direct processing of CompactListList instead of requiring
  a conversion to labelListList for bandCompression and renumbering
  methods.

- manage FIFO with CircularBuffer instead of SLList (avoids
  allocations in inner loops). Invert logic to use a bitSet of
  unvisited cells, which improves looping as the matrix becomes more
  sparse.

- fix missed weighting in bandCompression (same as #1376).
  In polyTopoChange, handle removed cells immediately to simplify
  the logic and align more closely with bandCompression.

STYLE: enclose bandCompression within meshTools namespace

ENH: PrimitivePatch pointFaces with DynamicList instead of SLList
2022-03-31 16:01:41 +02:00
Mark Olesen
3721a61fe0 COMP: link twoPhaseProperties library (#2424) 2022-03-31 16:01:41 +02:00
Mark Olesen
6fa23bd7a6 ENH: extend globalIndex mpiGather to use scalar/label components
- MPI_Gatherv requires contiguous data, but a byte-wise transfer can
  quickly exceed the 'int' limits used for MPI sizes/offsets. Thus
  gather label/scalar components when possible to increase the
  effective size limit.

  For non-contiguous types (or large contiguous data) now also
  reverts to manual handling

ENH: handle contiguous data in GAMGAgglomeration gather values

- delegate to globalIndex::gatherValues static method (new)
2022-03-31 16:01:31 +02:00
Mark Olesen
87e3b196b0 ENH: extend wrapping of MPI calls to more data types
- supports gatherv of label and scalar types

- combine blocking and non-blocking interfaces in UPstreamWrapping
  (code reduction).

DEFEATURE: remove unused UPstream allToAllv wrapping

- backend interface preserved in UPstreamWrapping

COMP: add genericListBroadcast - simplifies code
2022-03-31 16:01:07 +02:00
Mark Olesen
d38de84d21 ENH: bundle Pstream:: AllGather methods
- bundles frequently used 'gather/scatter' patterns more consistently.

  - combineAllGather     -> combineGather + broadcast
  - listCombineAllGather -> listCombineGather + broadcast
  - mapCombineAllGather  -> mapCombineGather + broadcast
  - allGatherList        -> gatherList + scatterList
  - reduce               -> gather + broadcast (ie, allreduce)

- The allGatherList currently wraps gatherList/scatterList, but may be
  replaced with a different algorithm in the future.

STYLE: PstreamCombineReduceOps.H is mostly unneeded now
2022-03-31 15:56:04 +02:00
Mark Olesen
e98acdc4fc ENH: extend type aliases to include geometric boundary fields (#2348)
STYLE: LduInterfaceFieldPtrsList as alias instead of a class

STYLE: define patch lists typedefs when defining the base patch

- eg, polyPatchList typedef within polyPatch.H

INT: relocate GeometricField::Boundary -> GeometricBoundaryField

- was internal to GeometricField but moving it outside simplifies
  forward declarations etc. Code adapted from openfoam.org
2022-03-30 16:36:03 +02:00
mattijs
39064f65e9 ENH: snappyHexMesh: consistent trigger logic. See #2379 2022-03-30 14:56:55 +01:00
sergio
35fef5faa6 STY: Updating headers 2022-03-25 11:09:18 -07:00
Andrew Heather
7ad164d535 TUT: Keyword updates 2022-03-24 14:07:16 +00:00