Development issueshttps://develop.openfoam.com/groups/Development/-/issues2022-12-23T14:58:19Zhttps://develop.openfoam.com/Development/openfoam/-/issues/2403ENH: automatic leak closure2022-12-23T14:58:19ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comENH: automatic leak closure### Functionality to add/problem to solve
snappyHexMesh has provision for specifying external, i.e. non-meshed locations. If any part of the resulting mesh connects an inside location to an outside one the meshing stops. It would be nic...### Functionality to add/problem to solve
snappyHexMesh has provision for specifying external, i.e. non-meshed locations. If any part of the resulting mesh connects an inside location to an outside one the meshing stops. It would be nice to automatically close 'small' gaps and continue instead.
### Proposal
A topological hole detection algorithm might be good enough. These walk on the initial mesh and attempt to close any 'leaks' in it. Another approach would be to actually 'correct' the input geometry but that would be much more problematic.
### What does success look like, and how can we measure that?
Initially just create a castellated, closed mesh. See how it behaves during snapping and layer generation.
### Links / references
"A 3D-Hole Closing Algorithm", Zouina Aktouf et alMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/2401'faceToCell' duplicated 'etc/caseDicts/annotated/topoSetSourcesDict'2022-03-13T21:58:46ZBruno Santos'faceToCell' duplicated 'etc/caseDicts/annotated/topoSetSourcesDict'In the file `etc/caseDicts/annotated/topoSetSourcesDict`, within `faceSet_doc`:
```
//- Select based on cellSet
{
source cellToFace;
source faceToCell;
sets (c0 c1);
// or
set c0; ...In the file `etc/caseDicts/annotated/topoSetSourcesDict`, within `faceSet_doc`:
```
//- Select based on cellSet
{
source cellToFace;
source faceToCell;
sets (c0 c1);
// or
set c0; // Name of cellSet
option all; // All faces of cells
//option both; // Only faces with owner+neighbour in cellSet
}
```
The line with `faceToCell` should not be here.https://develop.openfoam.com/Development/openfoam/-/issues/2399Construct faMesh without data fails2022-03-16T18:05:29ZMark OLESENConstruct faMesh without data failsInteresting one while trying to apply the seeming simple idea (@Tobermory #2374) of enabling finite-area conversion by default.
The current try/catch approach seemed to work, but it is only slightly fault tolerant. It actually fails mis...Interesting one while trying to apply the seeming simple idea (@Tobermory #2374) of enabling finite-area conversion by default.
The current try/catch approach seemed to work, but it is only slightly fault tolerant. It actually fails miserably when there is no finiteArea. With the try/catch (currently incorrect, should also handle FatalIOError) it will block forever. Discarding the try/catch block reveals at least the first problem.
Construction of the faSchemes, faSolution uses an IOdictionary. Since these are global files, they are only read on the master. If missing, the read fails on the master. In the normal case, this signals a FatalError or FatalIOError and exit. The exit in this case is actually a Pstream exit, which shuts down the other processes and everything stop. However, with the try/catch block, the master throws an exception. The non-master processes are still waiting for input and everything blocks!Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/2398chtMultiRegionSimpleFoam - of2112 does not catch analitical results where of2...2022-11-02T09:08:59ZMatteo QuirinochtMultiRegionSimpleFoam - of2112 does not catch analitical results where of2106 does<!--
*** Please read this first! ***
Before opening a new issue, make sure to search for keywords in the issues
filtered by the "bug" label and check to see if it has already been reported
You can see how your report will be re...<!--
*** Please read this first! ***
Before opening a new issue, make sure to search for keywords in the issues
filtered by the "bug" label and check to see if it has already been reported
You can see how your report will be rendered on the platform by using the
"preview" tab above
-->
<!--
All text between these markers are comments and will not be present in the
report
-->
### Summary
The same test case if it is run with of2106 the analytical solution is obtained, if it is run with of2112 the analytical solution is not catched.
### Steps to reproduce
The case is shared in [this](https://github.com/matteoquirino/of2112-cht-possibleBug) repo. The test case is taken from [this](https://arc.aiaa.org/doi/10.2514/1.T6165) article. Just run "Allrun-serial" to launch the simulation. Try to run the simulation loading of2106 environment and then using of2112 environment. The solution given by of2016 is correct the one computed using of2112 is wrong by some degrees in temperature.
### Example case
The test case is taken from [this](https://arc.aiaa.org/doi/10.2514/1.T6165) article.
![Schermata_da_2022-03-08_09-48-15](/uploads/8f97013b290987e70dcf147faa7e6e0c/Schermata_da_2022-03-08_09-48-15.png)
h is the convective coefficient on the far right of the system, it is so low as it must represent vacuum. Lc and kc are set to 1e-6 m and 1e-4 W/m/K.
The case is very simple and fast.
### What is the current *bug* behaviour?
Analitical solution not catched by of2112 but catched by of2106. The one computed by of2112 is 330 K and 335 K whilst the correct one is 327 K 338 K.
### What is the expected *correct* behavior?
To catch the analytical solution.
### Relevant logs and/or images
Please see section above.
### Environment information
<!--
Providing details of your set-up can help us identify any issues, e.g.
OpenFOAM version : v2112|v2106|v2012|v2006|v1912|v1906 etc
Operating system : ubuntu|openSUSE|centos etc
Hardware info : any info that may help?
Compiler : gcc|intel|clang etc
-->
- OpenFOAM version : v2112 | v2106
- Operating system : ubuntu
- Hardware info :
- Compiler : precompiled versions of v2112 and v2106
### Possible fixesSergio FerrarisSergio Ferrarishttps://develop.openfoam.com/Development/openfoam/-/issues/2397setConstraintTypes not working for FA fields2022-03-16T18:01:24ZMark OLESENsetConstraintTypes not working for FA fieldsmentioned in EP1825 - the grouping functionality of polyPatches is missing from finiteArea
Failure looks like this:
```
Reading pa
[3]
[3]
[3] --> FOAM FATAL IO ERROR: (openfoam-2106)
[3] Cannot find patchField entry for procBoundary3...mentioned in EP1825 - the grouping functionality of polyPatches is missing from finiteArea
Failure looks like this:
```
Reading pa
[3]
[3]
[3] --> FOAM FATAL IO ERROR: (openfoam-2106)
[3] Cannot find patchField entry for procBoundary3to0
[3]
[3] file: xxx/obliqueAirJet/main/processor3/0/ws_vibrationShell.boundaryField at line 11 to 19.
[3]
[3] From void Foam::GeometricField<Type, PatchField, GeoMesh>::Boundary::readField(const Foam::DimensionedField<TypeR, GeoMesh>&, const Foam::dictionary&) [with Type = double; PatchField = Foam::faPatchField; GeoMesh = Foam::areaMesh]
[3] in file .../src/OpenFOAM/lnInclude/GeometricBoundaryField.C at line 172.
[3]
FOAM parallel run exiting
[3]
Abort(1) on node 3 (rank 3 in comm 0): application called MPI_Abort(MPI_COMM_WORLD, 1) - process 3
```Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/2396Handle manifold cell connections for conversion2022-03-31T04:50:50ZMark OLESENHandle manifold cell connections for conversionReported in EP1653 by @Chiara
As @andy and @Mattijs noted and provided the basic "repair", the problem arises from how additional faces are added into the mesh for AMI. Neither VTK nor Ensight can assemble polyhedral where the faces are...Reported in EP1653 by @Chiara
As @andy and @Mattijs noted and provided the basic "repair", the problem arises from how additional faces are added into the mesh for AMI. Neither VTK nor Ensight can assemble polyhedral where the faces are essentially duplicates of other ones.
The first course of action is filtering the mesh cells (for VTK and Ensight) to have unique connectivity.
However, even still exhibits problems with volPointInterpolation.Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/2395dynamic mesh (un)refinement: compatible with mesh motion2022-12-23T14:58:39ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comdynamic mesh (un)refinement: compatible with mesh motion### Functionality to add/problem to solve
Add mesh-motion to dynamic mesh refinement/unrefinement
### Target audience
Moving mesh cases where dynamic mesh refinement/unrefinement limits the amount of mesh. E.g. interFoam cases.
### ...### Functionality to add/problem to solve
Add mesh-motion to dynamic mesh refinement/unrefinement
### Target audience
Moving mesh cases where dynamic mesh refinement/unrefinement limits the amount of mesh. E.g. interFoam cases.
### Proposal
Splice motion logic into dynamic mesh refinement/unrefinement
### What does success look like, and how can we measure that?
Have moving mesh case with e.g. interFoamMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/2394Simulation With cyclicACMI Scale factors crash with mesh motion2022-12-23T14:59:31ZAmod KhardekarSimulation With cyclicACMI Scale factors crash with mesh motionOpenFOAM Version : 2012
OS : Ubuntu 20.04
GCC : gcc v6.3
Test case has been attached herewith to reproduce the error.
There are total 4 domains
1. Long rectangular volume with mesh motion
2. 1st Cube interfac...OpenFOAM Version : 2012
OS : Ubuntu 20.04
GCC : gcc v6.3
Test case has been attached herewith to reproduce the error.
There are total 4 domains
1. Long rectangular volume with mesh motion
2. 1st Cube interfacing with Domain 1
3. 2nd Cube interfacing Domain 2 and 4
4. 3rd Cube interfacing with Domain 3 and with outlet BC
cyclicACMI interfaces are used between Domain 1-2, 2-3 and 3-4.
Scale factors are used for cyclicACMI interface between 3-4.
Even for small change in scalefactor from 1 leads to divergence.
It has been tested with ideal gas, tabulatedEOS, SSTkW, KE models, small timesteps etc.
(TabulatedEOS from https://github.com/Yuusha0/tabulatedThermophysicalProperties)
Pressure goes outside of the bounds. If dynamicmeshDict is removed from constant folder case runs well.
I suspect there is some bug in scale factor module introduced in the v2012. I wanted to ask if this observation is expected as I dont know complete limitations of this new capability and if not is there any quick fix to this issue ?
[TestCase.zip](/uploads/07acdd5a07fe45c6dd48402a0ab5e77e/TestCase.zip)
Thanks
Amod KhardekarMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/2393vtkWrite creates artifacts in parallel2022-03-07T22:10:14ZThorsten ZirwesvtkWrite creates artifacts in parallel### Summary
I find the ability of writing a single VTK file during the simulation in parallel very convenient. However, VTK files written in parallel by the function object `vtkWrite` contain artifacts at process boundaries. This makes ...### Summary
I find the ability of writing a single VTK file during the simulation in parallel very convenient. However, VTK files written in parallel by the function object `vtkWrite` contain artifacts at process boundaries. This makes further post-processing of the VTK files difficult.
### Steps to reproduce
In v2112, copy, run and decompose the cavity tutorial case:
```
cp -r $FOAM_TUTORIALS/incompressible/icoFoam/cavity .
cd cavity/cavity
blockMesh
icoFoam
decomposePar -latestTime
```
Create a new file in `system/` called `writeVTK` with the following content:
```
type vtkWrite;
libs (utilityFunctionObjects);
writeControl writeTime;
writeInterval 1;
format binary;
legacy false;
decompose false;
fields (U p);
```
Create VTK file in parallel:
`mpirun -np 9 postProcess -func writeVTK -parallel`
Load `postProcessing/VTK/cavity.vtm.series` in paraview
Apply the `Cell Data to Point Data` filter and look at the interpolated point data velocity field. The process boundaries of the nine sub domains are clearly visible. This is a problem when e.g. computing derivatives as a post-processing step.
### Example case
The following figure compares the results from `foamToVTK` (serial and parallel) and the `writeVTK` function object (serial and parallel). Only for the parallel `writeVTK` case (bottom right in the figure), the process boundaries in the velocity field become visible.
![vtkResults](/uploads/576f38f6a237bf571a840d121d5eaa43/vtkResults.png)
Figure: Velocity magnitude (interpolated point data) at `t=0.5 s` of the standard cavity tutorial case.
### Environment information
- OpenFOAM version : v2112
- Operating system : ubuntu, RedHat
- Compiler : gccMark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/2392ScalarCodedSource broke for energy equations2022-03-07T15:07:51ZEthan GunnellScalarCodedSource broke for energy equations
### Summary
ScalarCodedSource is broke for energy equations.
### Steps to reproduce
Take any case with an energy equation (e or h) and implement fvOptions scalarCodedSource (just take the example from the source code) and set the co...
### Summary
ScalarCodedSource is broke for energy equations.
### Steps to reproduce
Take any case with an energy equation (e or h) and implement fvOptions scalarCodedSource (just take the example from the source code) and set the correct field (e for sensibleInternalEnergy, h for sensibleEnthalpy) and it will crash with a similar log to what is given below.
### What is the current *bug* behaviour?
scalarCodedSource in fvOptions, placed in the system folder, gives a "Not implemented" despite the correct field being used.
### What is the expected *correct* behavior?
The correct behavior (in previous versions) is that the error "Not Implemented" would arise when the field being referenced is not actually there. In this case, the field is there but the errors are mismatched to block the correct field.
### Relevant logs and/or images
```
--> FOAM FATAL ERROR: (openfoam-2112)
Not implemented
From virtual void Foam::fv::sourceTimeFvOptionscalarSource::addSup(const volScalarField&, Foam::fvMatrix<double>&, Foam::label)
in file /home/ethan/OpenFOAM/ethan-v2112/MSR_1D_PK_newmesh/steadyState/system/fluidRegion/fvOptions.heatExchangeSource at line 84.
FOAM aborting
#0 Foam::error::printStack(Foam::Ostream&) at ??:?
#1 Foam::error::simpleExit(int, bool) at ??:?
#2 Foam::fv::option::addSup(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::fvMatrix<double>&, int) at ??:?
#3 Foam::tmp<Foam::fvMatrix<double> > Foam::fv::optionList::operator()<double>(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::word const&) at ??:?
#4 Foam::thermalHydraulicsModels::onePhase::correctEnergy(double&) at ??:?
#5 ? in ~/OpenFOAM/ethan-v2112/platforms/linux64GccDPInt32Opt/bin/GeN-Foam
#6 ? in /lib/x86_64-linux-gnu/libc.so.6
#7 __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6
#8 ? in ~/OpenFOAM/ethan-v2112/platforms/linux64GccDPInt32Opt/bin/GeN-Foam
Aborted (core dumped)
```
### Environment information
Providing details of your set-up can help us identify any issues, e.g.
OpenFOAM version : v2112
Operating system : ubuntu 20.04 and 22.04 (source)
Hardware info :
Compiler : gcc
### Possible fixes
Revert back to previous version and it works.https://develop.openfoam.com/Development/openfoam/-/issues/2391tutorial case for simpleReactingParcelFoam crashes2022-05-06T10:04:43ZIan Cowantutorial case for simpleReactingParcelFoam crashes### Summary
Running the tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel case out-of-the-box, the simulation crashes after 41 iterations, complaining of a negative temperature:
> --> FOAM FATAL ERROR: (openfoam-2112)
> ...### Summary
Running the tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel case out-of-the-box, the simulation crashes after 41 iterations, complaining of a negative temperature:
> --> FOAM FATAL ERROR: (openfoam-2112)
> Negative initial temperature T0: -3.334796867
### Steps to reproduce
Run the tutorial case.
### Environment information
OpenFOAM version : v2112
Operating system : ubuntu
Hardware info : n/a
Compiler : n/a
### Possible fixes
A simple fix is to include a temperature limiter, using the following constant/fvOptions file (the header has been omitted for the sake of brevity):
limitT
{
type limitTemperature;
min 101;
max 600;
selectionMode all;
}
This helps the solution get over the initial low-T spike, and once past this the temperature limiter has no impact (i.e. it is not constraining the final solution).Kutalmış BerçinKutalmış Berçinhttps://develop.openfoam.com/Development/openfoam/-/issues/2390add selection mechanism for cloudInfo function object2022-06-22T09:21:11ZMark OLESENadd selection mechanism for cloudInfo function objectAs mentioned in EP1594 it can be useful to restrict calculation of D32 and other spray properties to a subset of parcels.
- add a predicate selection mechanism similar to vtkCloud etc.As mentioned in EP1594 it can be useful to restrict calculation of D32 and other spray properties to a subset of parcels.
- add a predicate selection mechanism similar to vtkCloud etc.Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/2389handle ensemble "probe-style" writing for sampled sets2022-03-12T09:16:57ZMark OLESENhandle ensemble "probe-style" writing for sampled setsSlight misunderstanding of the scope/requirements of EP1772. One of the desired outputs is to have raw writer that behaves like 'probes' in that it continually appends to a single _raw_ output file.
@THOSlight misunderstanding of the scope/requirements of EP1772. One of the desired outputs is to have raw writer that behaves like 'probes' in that it continually appends to a single _raw_ output file.
@THOMark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/2388sampleSets - ensemble results2022-03-12T09:17:34ZMark OLESENsampleSets - ensemble resultsAs noted by @THO during testing of !524, there has been a change in behaviour and/or syntax of the sampledSets results.
Previously would have accessed the results with something like `average(p)`. However, this perhaps was not actually ...As noted by @THO during testing of !524, there has been a change in behaviour and/or syntax of the sampledSets results.
Previously would have accessed the results with something like `average(p)`. However, this perhaps was not actually delivering what the user thought it was. For a single set it is no problem. However, with multiple sets it was simply overwriting each time. This means that results field was actually just from the last set in the list.
Adjust the results output to include ensemble values as well, but also support individual values.
Eg,
```
average(lines,p) // Average for 'lines' set
average(p) // Ensemble average
```Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/2386createPatch : do multi-region matching2022-12-23T14:59:42ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comcreatePatch : do multi-region matching### Functionality to add/problem to solve
Have automatic detection of overlapping patches and re-patch these faces.
### Target audience
cases with multiple regions
### Proposal
Use AMI methods to detect overlapping faces, create pat...### Functionality to add/problem to solve
Have automatic detection of overlapping patches and re-patch these faces.
### Target audience
cases with multiple regions
### Proposal
Use AMI methods to detect overlapping faces, create patches for these and move the faces across.Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/2385minor cleanup (declutter) of List, DynamicList header2022-03-14T16:18:00ZMark OLESENminor cleanup (declutter) of List, DynamicList header- do not need move from SortableList methods
- the return value on append() is not used anywhere. A bit of an original design mistake with the idea that we would wish to chain together multiple class (like Java). Should just be \c void.- do not need move from SortableList methods
- the return value on append() is not used anywhere. A bit of an original design mistake with the idea that we would wish to chain together multiple class (like Java). Should just be \c void.Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/2382fieldScaling : missing for sampling in ensight format2022-03-02T14:25:16ZPrashant SonakarfieldScaling : missing for sampling in ensight format### Functionality to add/problem to solve
With commit https://develop.openfoam.com/Development/openfoam/-/commit/f8ffee8135d242d352531cbb9dc6b80c5bf4e62a field scaling was extended, however it is still missing for ensight format.### Functionality to add/problem to solve
With commit https://develop.openfoam.com/Development/openfoam/-/commit/f8ffee8135d242d352531cbb9dc6b80c5bf4e62a field scaling was extended, however it is still missing for ensight format.Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/2379snappyHexMesh2022-12-23T14:59:55ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comsnappyHexMesh### Functionality to add/problem to solve
snappyHexMesh : express 'small' regions to be deleted in absolute cell count v.s. currently as a fraction of overall cell count.
### Target audience
snappyHexMesh creating e.g. faceZones with...### Functionality to add/problem to solve
snappyHexMesh : express 'small' regions to be deleted in absolute cell count v.s. currently as a fraction of overall cell count.
### Target audience
snappyHexMesh creating e.g. faceZones with inbetween small areas of cells.
### Proposal
Additional keyword. Extra check in deletion routine.Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/2378ENH: cyclicACMI have optional search distance2022-12-23T15:00:20ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comENH: cyclicACMI have optional search distance### Functionality to add/problem to solve
nearestFaceAMI has an optional parameter `maxDistance2` to limit the distance to search for overlapping faces. This is useful when doing e.g. ACMI type matching and the meshing is imperfect.
It...### Functionality to add/problem to solve
nearestFaceAMI has an optional parameter `maxDistance2` to limit the distance to search for overlapping faces. This is useful when doing e.g. ACMI type matching and the meshing is imperfect.
It would be nice to have similar filtering in `faceAreaWeight`/`faceAreaWeight2D`.
### Target audience
Using cyclicACMI on sloppy matching meshes.Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/2377BUG: timeActivatedFileUpdate check on non-master2022-02-24T16:31:22ZMark OLESENBUG: timeActivatedFileUpdate check on non-masterduring startup it checks the file existence on all processes, but the source is usually normally only present on the master.
In the best case, this faulty logic causes excessive filesystem queries. In the worst case, it will abort due to...during startup it checks the file existence on all processes, but the source is usually normally only present on the master.
In the best case, this faulty logic causes excessive filesystem queries. In the worst case, it will abort due to missing file on the non-master processes.
cross-ref: EP1839Mark OLESENMark OLESEN