Commit Graph

234 Commits

Author SHA1 Message Date
70208a7399 ENH: use returnReduceAnd(), returnReduceOr() functions
DOC: document which MPI send/recv are associated with commType
2022-11-08 16:48:08 +00:00
ea51c2c0e4 STYLE: return orientedType, Switch directly instead of const reference
- noexcept on some Time methods

ENH: pass through is_oriented() method for clearer coding

- use logical and/or/xor instead of bitwise versions (clearer intent)
2022-10-04 15:51:26 +02:00
7792501a01 RELEASE: Updated headers for v2206 2022-06-24 15:41:02 +01:00
39d8964851 BUG: distributed roots cause redistributePar failure (fixes #2523)
- zero-sized faMeshSubset and fvMeshSubset had READ_IF_PRESENT instead
  of simply copying the schemes/solution setting from the baseMesh
2022-06-24 13:18:41 +02:00
d2d976bda8 BUG: (un)refinement: combine topochange+motion. Fixes #2492
Explicitly unset the mesh.moving flag whilst doing the topo change.
2022-06-09 11:34:32 +01:00
f0f893c4b8 ENH: support multi-zone motion (#2484)
- select motion for the entire mesh, or restrict to a subset
  of points based on a specified cellSet or cellZone(s).

  Can now combine cellSet and cellZone specifications
  (uses an 'or' combination).

- move consistent use of keyType and wordRe to allow regex selection,
  possibly using zone groups

STYLE: remove duplicate code in solidBodyMotionSolver
2022-05-27 15:35:25 +02:00
ba10afea77 ENH: add 'filtered' polyMesh regionName() method
- in various situations with mesh regions it is also useful to
  filter out or remove the defaultRegion name (ie, "region0").

  Can now do that conveniently from the polyMesh itself or as a static
  function. Simply use this

      const word& regionDir = polyMesh::regionName(regionName);

  OR  mesh.regionName()

  instead of

      const word& regionDir =
      (
           regionName != polyMesh::defaultRegion
         ? regionName
         : word::null
      );

  Additionally, since the string '/' join operator filters out empty
  strings, the following will work correctly:

      (polyMesh::regionName(regionName)/polyMesh::meshSubDir)

      (mesh.regionName()/polyMesh::meshSubDir)
2022-05-27 14:10:31 +02:00
b6390c2b75 COMP: resolved compiler warning 2022-05-19 15:48:31 +00:00
5a1307f41a STYLE: Code clean-up 2022-05-19 15:48:31 +00:00
73d6fc9e91 ENH: Added profiling for dynamic mesh updates 2022-05-19 15:48:31 +00:00
0eb52766c0 BUG: dynamicRefineFvMesh: work without mesh motion. See #2395. 2022-03-08 12:36:11 +00:00
fcd5373a7f ENH: interFoam: added mesh motion. Fixes #2395. 2022-03-07 15:24:34 +00:00
83628e9298 STYLE: dictionary: optionalSubDict returns reference 2022-03-07 10:10:33 +00:00
6b99fea4e7 ENH: use nBoundaryFaces() in more places (less clutter, more clarity)
- noexcept for some methods
- add std:: qualifier to unique_ptr for additional clarity
2022-01-31 20:09:45 +01:00
a2014242cf RELEASE: Updated headers for v2112 2021-12-20 14:18:01 +00:00
ba8d6bddcc ENH: use singleton method for accessing runtime selection
STYLE: use alias to mark partialFaceAreaWeightAMI deprecation after v2012
2021-11-05 17:21:27 +01:00
b364a9e72c ENH: argList improvements
- argList::envExecutable() static method.
  This is identical to getEnv("FOAM_EXECUTABLE"), where the name of
  the executable has typically been set from the argList construction.

  Provides a singleton access to this value from locations that
  do not have knowledge of the originating command args (argList).
  This is a similar rationale as for the argList::envGlobalPath() static.

- additional argList::envRelativePath() static method.

- make -dry-run handling more central and easier to use by adding into
  argList itself.

STYLE: drop handling of -srcDoc (v1706 option)

- replaced with -doc-source for 1712 and never used much anyhow
2021-11-03 11:38:21 +01:00
e3796745ed CONFIG: Updated headers to v2106
Minor clean-up
2021-06-28 09:14:42 +01:00
f46c57951d STYLE: dynamicFvMesh: indentation, naming 2021-06-17 14:46:25 +01:00
2a438385a3 STYLE: make polyMesh constructor explicit
- use polyMesh::defaultRegion instead of fvMesh::defaultRegion and
  others via static inheritance. (92 vs ~25 occurrences)
2021-05-12 11:24:57 +02:00
36266a7e7d BUG: dynamicMotionSolverFvMeshAMI - correction for running in debug mode. See #2078 2021-05-10 13:24:26 +01:00
9a2a22a03a ENH: provide setter methods for IOobject read/write options etc.
- simplifies local toggling.

- centralize fileModification static variables into IOobject.
  They were previously scattered between IOobject and regIOobject
2021-03-17 15:10:00 +01:00
84a1452995 BUG: Fix dynamicRefineFvMesh mapping flux.
dynamicRefineFvMesh optionally can map fluxes derived from velocities
fields specified in dynamicMeshDict. The surface interpolation was
using old weights. This fix clear the old weights before mapping
the fluxes
2021-01-06 10:22:36 -08:00
79e353b84e RELEASE: Updated version to v2012 2020-12-23 10:01:39 +01:00
14a471f937 BUG: cyclicACMI: different construction order. See #1953.
This makes the initialisation order of dynamicMesh consistent
with plain ones using the virtual mechanism. It does not
solve the cyclicACMI construction order yet.
2020-12-21 14:54:59 +00:00
46dbfabd9d ENH: primitiveMesh: make geometry calculation runtime selectable
This adds a 'geometry' scheme section to the system/fvSchemes:

geometry
{
    type            highAspectRatio;
}

These 'fvGeometryMethod's are used to calculate
- deltaCoeffs
- nonOrthoCoeffs
etc and can even modify the basic face/cellCentres calculation.
2020-12-11 10:31:34 +00:00
1e7c6ea2f1 ENH: mutable libs() access in Time and other classes (#1737)
- This reflects the pre-existing coding situation where const_cast was
  used throughout to effect the same.

STYLE: fix private/protected access

- CodedField, codedMixedFvPatchField
2020-07-14 11:19:05 +02:00
538d749220 REL: Updated headers to version v2006 2020-06-29 17:27:54 +01:00
1e3cd399f2 WIP: dynamicMotionSolverFvMeshAMI - reset Uf 2020-06-24 22:10:19 +01:00
a13e00b5c4 ENH: AMI - multiple updates
- start of work to create a 1-to-1 face mapping across AMI patches
- faces are inserted according to the AMI addressing based on Horacio's method
- removed 'updated' flag and reworked some demand driven updates
- updated to handle 'walking' through baffles
- use bitSet instead of boolList
- moved update of meshPhi to movePoints() functions at fvPatch level
- moved scaling of areas to movePoints() functions at fvPatch level
- rehomed topology change code to own file
- added warning re: geometry construction

ACMI
- split srcMask into srcMask and srcAreaMask
  - former in range 0-1, and latter has bounding or tol to (1-tol) to avoid
    sigFpe's
2020-06-24 22:10:18 +01:00
3e43edf056 ENH: unify use of dictionary method names
- previously introduced `getOrDefault` as a dictionary _get_ method,
  now complete the transition and use it everywhere instead of
  `lookupOrDefault`. This avoids mixed usage of the two methods that
  are identical in behaviour, makes for shorter names, and promotes
  the distinction between "lookup" access (ie, return a token stream,
  locate and return an entry) and "get" access (ie, the above with
  conversion to concrete types such as scalar, label etc).
2020-06-02 17:26:03 +02:00
8cfb483054 STYLE: some general spelling fixes 2020-05-04 09:15:21 +02:00
42299dca22 ENH: use IOstreamOption for writeObject() calls.
- reduces the number of parameters that are being passed around
  and allows future additions into the IOstreamOption with mininal
  effort.
2020-02-19 09:25:33 +00:00
ae2ab06312 REL: Release preparations 2019-12-23 09:49:23 +00:00
370c8a39af ENH: additional feedback about controlled mesh motion update type
- ensure that the updateControl is "non-sticky" on re-read,
  even if we do not support runtime-modifiable here

STYLE: add syntax example (wingMotion), but with updateInterval 1
2019-12-13 10:53:56 +01:00
373ad6df0e ENH: additional feedback about controlled mesh motion update type
- ensure that the updateControl is "non-sticky" on re-read,
  even if we do not support runtime-modifiable here

STYLE: add syntax example (wingMotion), but with updateInterval 1
2019-12-13 10:02:57 +01:00
fa57b4e45e ENH: adjust dynamicFvMesh to support controllable mesh motion updates 2019-12-11 20:12:49 +00:00
fdf8d10ab4 Merge commit 'e9219558d7' into develop-v1906 2019-12-05 11:47:19 +00:00
e9219558d7 GIT: Header file updates 2019-10-31 14:48:44 +00:00
d96ad1cd09 ENH: Add components to allow overset with multiple motion solvers
1) Add softWall rigidBody restrain
2) Add linearSpringDamper sixDoF restrain to work as soft rope
3) dynamicMotionSolverListFvMesh changed to dictionary based input
4) Add Time reference access to sixDof restraints
5) Add drivenLinearMotion to solidBodyMotionFunctions.
2019-08-16 11:27:59 -07:00
fb09f56aba ENH: use FatalErrorInLookup macros (#1362) 2019-07-12 18:00:00 +02:00
be44dcaf1f RELEASE: Version clean-up for release 2019-06-25 11:51:19 +01:00
51bb4e0037 STYLE: remove trailing spaces 2019-06-26 11:36:49 +02:00
beefee48d4 COMP: adjust compilation order with updated interdependencies
- Eg, with surface writers now in surfMesh, there are fewer libraries
  depending on conversion and sampling.

COMP: regularize linkage ordering and avoid some implicit linkage (#1238)
2019-04-28 14:44:33 +02:00
f37942b388 ENH: potentialFoam: add region functionality. Fixes #1223.
Also implements combination of -region and -dry-run
2019-02-28 17:04:46 +00:00
45590671ac ENH: for-range, forAllIters() ... in dynamicMesh/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
154029ddd0 BOT: Cleaned up header files 2019-02-06 12:28:23 +00:00
d4b495131f COMP: avoid autoPtr automatic cast conversion in more places
- Can result in inadvertent conversions where the user should really
  know or check if the pointer is valid prior to using.

- Still have several places to fix that are using the deprecated copy
  construct and copy assignment
2019-01-25 12:45:22 +01:00
ed94a2714d STYLE: use HashTable iterator 'val()' method instead of 'object()' 2019-01-18 16:26:50 +01:00
1d85fecf4d ENH: use Zero when zero-initializing types
- makes the intent clearer and avoids the need for additional
  constructor casting. Eg,

      labelList(10, Zero)    vs.  labelList(10, 0)
      scalarField(10, Zero)  vs.  scalarField(10, scalar(0))
      vectorField(10, Zero)  vs.  vectorField(10, vector::zero)
2018-12-11 23:50:15 +01:00