openfoam issueshttps://develop.openfoam.com/Development/openfoam/-/issues2024-01-31T13:13:24Zhttps://develop.openfoam.com/Development/openfoam/-/issues/3090mapped boundary conditions in combination with partial mesh motion2024-01-31T13:13:24ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.commapped boundary conditions in combination with partial mesh motion### Functionality to add/problem to solve
When there is any mesh motion (even if the points are kept the same) all the inter-region mapping information is thrown away. Instead keep the mapping information if the actual coupling location...### Functionality to add/problem to solve
When there is any mesh motion (even if the points are kept the same) all the inter-region mapping information is thrown away. Instead keep the mapping information if the actual coupling locations stay the same.
### Target audience
moving mesh cases with mapping where the mapping is inside a static portion of the mesh.
### Proposal
Check actual locations
### What does success look like, and how can we measure that?
Speed up.Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/3085pointConstraints assume all pointPatches are facePointPatch2024-01-19T16:19:51ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.compointConstraints assume all pointPatches are facePointPatch### Functionality to add/problem to solve
pointConstraints (handling of points on multiple polyPatches) assumes all pointPatches are facePointPatch so have a corresponding polyPatch.
### Proposal
check for facePointPatch before acces...### Functionality to add/problem to solve
pointConstraints (handling of points on multiple polyPatches) assumes all pointPatches are facePointPatch so have a corresponding polyPatch.
### Proposal
check for facePointPatch before accessing the polyPatchMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/3049snappyHexMesh bit more printing2023-12-21T11:54:41ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comsnappyHexMesh bit more printing### Functionality to add/problem to solve
Have more information about the layer generation outer iterations
### What does success look like, and how can we measure that?
Include the wanted number of layers to the printed information:...### Functionality to add/problem to solve
Have more information about the layer generation outer iterations
### What does success look like, and how can we measure that?
Include the wanted number of layers to the printed information:
```
patch faces layers overall thickness
target mesh [m] [%]
----- ----- ----- ---- --- ---
maxY 20 3 3 0.00061 87.1
minY 20 3 3 0.00061 87.1
A 12 3 3 0.000479 68.5
A_slave 12 3 3 0.000479 68.5
```Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/3047mapDistribute does not support non-blocking2023-12-09T18:13:44ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.commapDistribute does not support non-blocking### Functionality to add/problem to solve
mapDistributeBase supports non-blocking / two-stage communication + consumption. This is not mapped through to mapDistribute. This is currently not used (e.g. non-blocking cyclicAMIFvPatchField ...### Functionality to add/problem to solve
mapDistributeBase supports non-blocking / two-stage communication + consumption. This is not mapped through to mapDistribute. This is currently not used (e.g. non-blocking cyclicAMIFvPatchField applies its own transformation). It might be useful if we want to extend e.g. wall distance calculation to use this two-stage process.
### Proposal
Add an send/receive equivalent to mapDistribute to replace the single mapDistributeBase::distribute.https://develop.openfoam.com/Development/openfoam/-/issues/3034snappyHexMesh : have more parallel balancing output2023-12-07T16:49:07ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comsnappyHexMesh : have more parallel balancing output### Functionality to add/problem to solve
Have shm output more information about the (un)balancedness of the mesh. Especially during layer addition the cell count can explode which might lead to out-of-memory problems. This request is t...### Functionality to add/problem to solve
Have shm output more information about the (un)balancedness of the mesh. Especially during layer addition the cell count can explode which might lead to out-of-memory problems. This request is to add a bit more printing of the current / expected state of balancing.
### Target audience
snappyHexMesh in parallelMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/3004face class have 'find(const edge&)' which returns the index of the edge on th...2023-11-01T13:15:36ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comface class have 'find(const edge&)' which returns the index of the edge on the face### Functionality to add/problem to solve
Extend face class with searching for an edge. Is basically already in the edgeDirection routine.### Functionality to add/problem to solve
Extend face class with searching for an edge. Is basically already in the edgeDirection routine.Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/2997pisoFoam does not handle dictionary updates2023-10-12T10:39:45ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.compisoFoam does not handle dictionary updates### Functionality to add/problem to solve
pisoFoam does not handle dictionary updates; pimpleFoam does.
### Target audience
pisoFoam users with `runTimeModifiable yes`.
### Proposal
Splice in minimum to make dictionary re-reading wo...### Functionality to add/problem to solve
pisoFoam does not handle dictionary updates; pimpleFoam does.
### Target audience
pisoFoam users with `runTimeModifiable yes`.
### Proposal
Splice in minimum to make dictionary re-reading work.
### What does success look like, and how can we measure that?
Attached case is a cavity tutorial with a `timeActivatedFileUpdate` to switch nCorrectors from 3 to 1.
[cavity.tgz](/uploads/411264053d6c34a7d56adbc0135e6499/cavity.tgz)
@PrashantMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/2993processor agglomeration does not support non-processor coupled patches2023-12-09T18:01:19ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comprocessor agglomeration does not support non-processor coupled patches### Functionality to add/problem to solve
processor agglomeration does not support non-processor coupled patches e.g. `cyclicAMI`
### Target audience
Parallel runs that
- benefit from processor agglomeration
- use cyclicAMI/cyclicACM...### Functionality to add/problem to solve
processor agglomeration does not support non-processor coupled patches e.g. `cyclicAMI`
### Target audience
Parallel runs that
- benefit from processor agglomeration
- use cyclicAMI/cyclicACMI
### Proposal
Add general I/O for sending/receiving GAMG interfaces & fields.
### What does success look like, and how can we measure that?
Use `processorAgglomerator masterCoarsest` on cases with cyclicAMI.Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/2990dictionary error message missing line number2023-10-28T11:08:25ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comdictionary error message missing line number### Functionality to add/problem to solve
dictionary parsing error message not printing line number/file name
With incorrect topoSetDict dictionary:
```
{
name f0;
source boxToFace
box (0.499 -100 -1...### Functionality to add/problem to solve
dictionary parsing error message not printing line number/file name
With incorrect topoSetDict dictionary:
```
{
name f0;
source boxToFace
box (0.499 -100 -100)(0.501 100 100);
}
```
it gives error message without printing file/line number. filename is not valid ('source') but line number is correct however does not get printed.
### Proposal
either
- fix filename to be fed through or
- output linenumber (even though filename is not correct)Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/2981snappyHexMesh : extend to allow multiple insidePoints per cellZone surface2023-12-21T17:27:34ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comsnappyHexMesh : extend to allow multiple insidePoints per cellZone surface### Functionality to add/problem to solve
Being able to have multiple regions in the same cellZone by specifying multiple 'insidePoints'
### Target audience
shm users with multiple cellZones
### Proposal
Have optional `insidePoints...### Functionality to add/problem to solve
Being able to have multiple regions in the same cellZone by specifying multiple 'insidePoints'
### Target audience
shm users with multiple cellZones
### Proposal
Have optional `insidePoints` specification instead of just single `insidePoint`Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/2977solidBodyFvGeometryScheme caches moved state2023-09-13T08:04:46ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comsolidBodyFvGeometryScheme caches moved state### Functionality to add/problem to solve
solidBody fvGeometryScheme caches the 'moved' state by default. This upsets e.g. `snappyHexMesh`.
### Target audience
Using solidBody for non-motion applications.
### Proposal
The current s...### Functionality to add/problem to solve
solidBody fvGeometryScheme caches the 'moved' state by default. This upsets e.g. `snappyHexMesh`.
### Target audience
Using solidBody for non-motion applications.
### Proposal
The current set-up assumes that the points that move are always the same (e.g. solid-body rotation). Thus we can eliminate the marking of the changed points. This can be disabled in the fvSchemes setting:
```
geometry
{
type solidBody;
cacheMotion false;
}
```
The marking of the changed points is very fast - it is the marking of affected faces/cells which is the slower one. Maybe this can be optimised.Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/issues/2969attachDetach has problems2023-08-28T15:17:53ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comattachDetach has problems### Functionality to add/problem to solve
1) attachDetach performs checking on local patch sizes instead of global sizes.
2) e.g. pimpleFoam does not recalculate Uf/Uf.oldTime()
### Target audience
Topo changes.[TJunctionTopoSwitchin...### Functionality to add/problem to solve
1) attachDetach performs checking on local patch sizes instead of global sizes.
2) e.g. pimpleFoam does not recalculate Uf/Uf.oldTime()
### Target audience
Topo changes.[TJunctionTopoSwitching.tgz](/uploads/5e03c41ec9a86f11ae2fcfd3b689521c/TJunctionTopoSwitching.tgz)
potential fix (but recalculates whole flux):
[pimpleFoam.C](/uploads/88cdf41fc969f071247ef705434efb09/pimpleFoam.C)Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/issues/2947subsetMesh -patches with wildcard also selects e.g. processor patches2023-08-03T06:47:40ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comsubsetMesh -patches with wildcard also selects e.g. processor patches### Functionality to add/problem to solve
subsetMesh accepts wildcard to select patches for exposed faces. This also selects e.g. processor patches. This is generally not the expected behaviour. Can probably be worked around by using
- ...### Functionality to add/problem to solve
subsetMesh accepts wildcard to select patches for exposed faces. This also selects e.g. processor patches. This is generally not the expected behaviour. Can probably be worked around by using
- patchGroups, e.g. `wall`
- anti-patterns to deselect any "processor.*"
### Target audience
Users of subsetMesh
### Proposal
Deselect all processor patches. Guess no need to deselect all constraint patches since we might still want to select e.g. `symmetry`.
@Prashant
cross-ref: EP1904Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/2934COMP: missing hostUncollatedFileOperation2023-09-01T10:39:30ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comCOMP: missing hostUncollatedFileOperation### Functionality to add/problem to solve
hostUncollated fileOperation not included in Make/files in v2306.### Functionality to add/problem to solve
hostUncollated fileOperation not included in Make/files in v2306.Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/2811Excessive 'cacheAgglomeration no;' for moving mesh cases in tutorials2023-06-21T08:50:10ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comExcessive 'cacheAgglomeration no;' for moving mesh cases in tutorials### Functionality to add/problem to solve
The GAMGAgglomeration automatically is deleted at every mesh movement/topo change so there is no need for disabling the `cacheAgglomeration` if
- agglomeration based on geometry only (= default,...### Functionality to add/problem to solve
The GAMGAgglomeration automatically is deleted at every mesh movement/topo change so there is no need for disabling the `cacheAgglomeration` if
- agglomeration based on geometry only (= default, `faceAreaWeight`)
E.g. run `incompressible/pimpleFoam/laminar/mixerVesselAMI2D` case with/without cacheAgglomeration:
```
mpirun -np 4 pimpleFoam -parallel -debug-switch GAMGAgglomeration=1
```
and you'll see that even with caching it still gets recalculated. With caching off it will re-agglomerate for every pressure solution. Note that it is different for matrix based agglomeration - there even multiple invocations of the GAMG might want to use different agglomerations.Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/issues/2797"data" from faMesh same registration as fvMesh2023-12-21T16:00:42ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.com"data" from faMesh same registration as fvMesh### Functionality to add/problem to solve
faSolution constructs 'data' database. This is the same name as that from fvSolution.
Run e.g. `liquidFilmFoam/cylinder` with
```
DebugSwitches
{
regIOobject 2;
objectRegistry 1;
...### Functionality to add/problem to solve
faSolution constructs 'data' database. This is the same name as that from fvSolution.
Run e.g. `liquidFilmFoam/cylinder` with
```
DebugSwitches
{
regIOobject 2;
objectRegistry 1;
}
```
and you'll see
```
--> FOAM FATAL ERROR: (openfoam-2302 patch=230110)
failed to register object ".../tutorials/finiteArea/liquidFilmFoam/cylinder/system/data" the name already exists in the objectRegistry
```
### Proposal
Not sure if it is a problem. Does mean that items registered on data need to have different names.
@kutiv2406Kutalmış BerçinKutalmış Berçinhttps://develop.openfoam.com/Development/openfoam/-/issues/2792snappyHexMesh spends excessive time balancing during refinement2023-06-26T10:30:45ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comsnappyHexMesh spends excessive time balancing during refinement### Functionality to add/problem to solve
snappyHexMesh balances mesh before or after each refinement step. For large numbers of cores (e.g. 8000) balancing can be expensive.
### Target audience
snappyHexMesh on large numbers of cores...### Functionality to add/problem to solve
snappyHexMesh balances mesh before or after each refinement step. For large numbers of cores (e.g. 8000) balancing can be expensive.
### Target audience
snappyHexMesh on large numbers of cores.
### Proposal
Not do balancing until a reasonable number of cells per processor has been reached.
### What does success look like, and how can we measure that?
Speedup.Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/2739multiLevel at the scotch level2023-05-09T13:04:47ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.commultiLevel at the scotch level### Functionality to add/problem to solve
multiLevel decomposition can be used to minimise 'expensive' cuts. scotch can support this natively using SCOTCH_archTleaf.
### Target audience
multi-node runs
### Proposal
E.g. start from ...### Functionality to add/problem to solve
multiLevel decomposition can be used to minimise 'expensive' cuts. scotch can support this natively using SCOTCH_archTleaf.
### Target audience
multi-node runs
### Proposal
E.g. start from the extended multiLevel input:
```
numberOfSubdomains 1024;
method multiLevel;
multiLevelCoeffs
{
method scotch
domains (2 8); //< inferred as domains (64 2 8);
}
```
Just needs additional spec of the individual cut weights.
### What does success look like, and how can we measure that?
Would be nice to have stats about cuts*weights on the individual levels...
@mark @andyhttps://develop.openfoam.com/Development/openfoam/-/issues/2737parProfling for large core counts2023-06-13T11:40:06ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comparProfling for large core counts### Functionality to add/problem to solve
`parProfiling`
Setup:
- have a large number of cores
- have a large number of masters in `masterCoarsest`
Questions:
- where is the bottleneck
- is it due to 'coarsest level' solution
- is it...### Functionality to add/problem to solve
`parProfiling`
Setup:
- have a large number of cores
- have a large number of masters in `masterCoarsest`
Questions:
- where is the bottleneck
- is it due to 'coarsest level' solution
- is it due to reductions or halo-swaps
Ideas on how to get this information out of `parProfiling` FO
- have a per-processor output (or only min/max processor?)
- split off all-to-all from wait times
- add number of invocations. Why? Number of reductions is synchronised - only difference is between master and non-master processors. 2) halo swaps are determined by the number of processor boundaries which can be obtained from the boundary file. 3) Interesting is the number of linear-solver sweeps though.
### Target audience
### Proposal
### What does success look like, and how can we measure that?
### Links / references
### FundingMark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/2702UPtrList iterator does not skip empty entries2023-03-09T10:20:27ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comUPtrList iterator does not skip empty entries### Functionality to add/problem to solve
Looping over an UPtrList:
```
const lduInterfacePtrsList patches(lMesh.interfaces());
for (const auto& pp : patches)
{
Pout<< "Patch:" << pp.type() << endl;
}
```
it do...### Functionality to add/problem to solve
Looping over an UPtrList:
```
const lduInterfacePtrsList patches(lMesh.interfaces());
for (const auto& pp : patches)
{
Pout<< "Patch:" << pp.type() << endl;
}
```
it does not skip the empty entries (from uncoupled patches).
### Target audience
Coders.
### Proposal
Q: what if we want to set the entries so require walking over all.
Attached a little test app.
[Test-lduMeshInterfacesCompilationError.C](/uploads/be94f8ada6f3b72724e44fe3a9106799/Test-lduMeshInterfacesCompilationError.C)Mark OLESENMark OLESEN