- 20 May, 2022 1 commit
-
-
- 19 May, 2022 15 commits
-
-
Mattijs Janssens authored
New solid body motion mesh update optimisations See merge request !537
-
-
-
Geometry calculation scheme that performs geometry updates only in regions where the mesh has changed, identified by comparing current and old points. Example usage in fvSchemes: geometry { type solidBody; // Optional entries // If set to false, update the entire mesh partialUpdate yes; // Cache the motion addressing (changed points, faces, cells etc) cacheMotion yes; }
-
The cell volumes are no longer deleted if already present; instead, cells next to the patch are updated locally.
-
-
-
-
Added new functions: - updateFaceCentresAndAreas : update faces in faceIDs list - updateCellCentresAndVols : update cells in cellIDs list
-
-
-
-
mattijs authored
-
Andrew Heather authored
ENH: sixDoFRigidBodyMotion: add new softWall restraint See merge request !536
-
Kutalmis Bercin authored
-
- 18 May, 2022 11 commits
-
-
Andrew Heather authored
ENH: effectivenessHeatExchangerSource: add writeFile functionality See merge request !534
-
- removed redundant protected scope - removed undefined 'calculateTotalArea' function - reordered the constructor list DOC: effectivenessHeatExchangerSource: improve header documentation
-
-
-
Andrew Heather authored
ENH: Improve the handling of wall-function coefficients and blenders See merge request !486
-
Kutalmis Bercin authored
-
Kutalmis Bercin authored
The most frequent changes have been as follows. from: tmp<scalarField> tuTau(new scalarField(patch().size(), Zero)); scalarField& uTau = tuTau.ref(); to: auto tuTau = tmp<scalarField>::New(patch().size(), Zero); auto& uTau = tuTau.ref(); - Other changes involved the addition of - wherever approapriate -: const noexcept auto
-
Kutalmis Bercin authored
-
Kutalmis Bercin authored
-
Kutalmis Bercin authored
Previously, a nutWallFunctionFvPatchScalarField ref should be created in epsilon, k, and omega wall functions to fetch various common wall-function coefficients necessary to carry out and complete local operations inside these wall functions. However, this arrangement required the use of a nut wall function, even when unnecessary, when any of non-nut wall functions are being used. Therefore, some users had been redundantly restrained and obstructed with rather obscure casting-error messages. Also, the wall-function coefficients Cmu, kappa and E have been obtained from the specified nutWallFunction in order to ensure that each patch possesses the same set of values for these coefficients. Although the motivation sounds reasonable, it has also been putting redundant restraints on users and disregarding the specifics of each wall-function. For example, the variation of epsilon in near-wall regions is usually very steep and non-monotonic specific - an expert user may therefore want to use an epsilon-specific coefficient, and this was not allowed by the previous arrangement. This commit introduces a new class (i.e. wallFunctionCoefficients) comprising all common wall-function coefficients and yPlus calculations.
-
Kutalmis Bercin authored
Previously, a number of wall functions were not not writing their boundary-condition entries in the defacto order (i.e. from type to value) while writing a field. For example: <patchName> { lowReCorrection 1; blending stepwise; n 2; type epsilonWallFunction; <!-- expected to be the first entry value uniform 1; <!-- expected to be the last entry } Also, various wall functions have been writing out entries that have not been being used by the wall function. For example: <patchName> { type nutUSpaldingWallFunction; ... blending stepwise; <!-- no blending treatment in nutUSpaldingWF ... } Additionally, various derived wall functions (e.g. atmOmegaWallFunction) have been failing to write some of the inherited entries even though these entries have been being used in carrying out wall-function calculations. Taken these into consideration, wall functions have been reworked to obtain reliable and consistent way of writing their traits while writing out a field. - writeLocalEntries uses writeIfDifferent if constructed with getOrDefault.
-
- 17 May, 2022 11 commits
-
-
Mark Olesen authored
ENH: simple faMeshSubset (zero-sized meshes only) ENH: additional access methods for faMesh, primitive geometry mode - wrapped walking of boundary edgeLabels as list of list (similar to edgeFaces). - primitive finiteArea geometry mode with reduced communication: primarily interesting for decomposition/redistribution (#2436) ENH: extra vtk debug outputs for checkFaMesh - report per-processor sizes in the mesh summary
-
Mark Olesen authored
- similar functionality as newMesh etc. Relocated to finiteVolume since there are no dynamicMesh dependencies. - use simpler procAddressing (with updated mapDistributeBase). separated from redistributePar
-
Mark Olesen authored
-
Mark Olesen authored
- returns UPtrList view (read-only or read/write) of the objects - shorter names for IOobject checks: hasHeaderClass(), isHeaderClass() - remove unused IOobject::isHeaderClassName(const word&) method. The typed versions are preferable/recommended, but can still check directly if needed: (io.headerClassName() == "foo")
-
Mark Olesen authored
- previously used cdata() comparison but that tends to obscure what is going on
-
Mark Olesen authored
-
Mark Olesen authored
- additional distribute/reverseDistribute with specified commsType. Improves flexibility. - distribute with nullValue - support move construct mapDistribute from mapDistributeBase - refactor handling of schedules (as whichSchedule method) to simplify code. - renumberMap helper for working with compact sub maps and renumberVisit for handling walk-ordered compaction. COMP: make mapDistributeBase data private - accessor methods are available - direct access is unnecessary - mapDistribute : inherit mapDistributeBase constructors STYLE: use List<labelPair>::null() for schedule placeholders - clearer that they are doing nothing
-
Mark Olesen authored
-
Andrew Heather authored
-
Andrew Heather authored
-
Andrew Heather authored
-
- 12 May, 2022 2 commits
-
-
Mark Olesen authored
- for int64 compilations this disambiguates between '0' as int32 (size) or as bool 'false' for local processor validity Eg, IOList list(io, 0); <- With label-size 64: is this bool or label? IOList list(io, Zero); <- Size = 0 (int32/int64), not a bool
-
Mark Olesen authored
- for indirect lists we use element-wise output streaming and read back as a regular list. This approach cannot however work with non-blocking mode - the receive buffers will simply not be filled before attempting to read from them. For contiguous data, the lowest overhead solution is to locally flatten the indirect list and use the regular gather routines for non-blocking mode. For non-contiguous data, can continue to use the element-wise output, but cannot use non-blocking for it. STYLE: use non-blocking consistently as default for globalIndex gather(s) - most of the front-facing code was already using non-blocking, but there were a few low-level routines defaulting to scheduled (but never relied upon in the code).
-