openfoam issueshttps://develop.openfoam.com/Development/openfoam/-/issues2018-06-07T05:57:54Zhttps://develop.openfoam.com/Development/openfoam/-/issues/837PackedBoolList/bitSet has no ::set(const labelUList&)2018-06-07T05:57:54ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comPackedBoolList/bitSet has no ::set(const labelUList&)This has been renamed to 'setMany'. Is there a problem with ::set? Is there a clear distinction with single element setting?This has been renamed to 'setMany'. Is there a problem with ::set? Is there a clear distinction with single element setting?Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/655UOPstream does not zero padding (placeholder)2021-07-06T11:31:22ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comUOPstream does not zero padding (placeholder)UOPstream enforces alignment of individual blocks. It does not fill the added padding with zero. This shows up when running e.g. valgrind.
- Not a bug since we also don't read the padded data.
- Avoid by using setSize(xxx, 0) instead of...UOPstream enforces alignment of individual blocks. It does not fill the added padding with zero. This shows up when running e.g. valgrind.
- Not a bug since we also don't read the padded data.
- Avoid by using setSize(xxx, 0) instead of setSize(xxx)Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/822Function1 could use faster searching in input is sorted2020-01-06T10:30:33ZPrashant SonakarFunction1 could use faster searching in input is sortedIf the table is sorted in increasing order we could use a binary search (e.g. ListOps::findLower) to speed up interpolation.If the table is sorted in increasing order we could use a binary search (e.g. ListOps::findLower) to speed up interpolation.https://develop.openfoam.com/Development/openfoam/-/issues/322objectRegistry functionality2018-10-17T15:39:55ZMark OLESENobjectRegistry functionalityWhile attempting to use the subRegistry functionality to add extra information onto the mesh obr, I noticed some odd behaviour.
Delving into the code, it seems to be related to how the lookupObject works. It implicitly includes a upwards...While attempting to use the subRegistry functionality to add extra information onto the mesh obr, I noticed some odd behaviour.
Delving into the code, it seems to be related to how the lookupObject works. It implicitly includes a upwards recursion into the parent registry, only stopping when it hits Time. This means that adding subRegistry2("name=abc") to subRegistry1 will fail if the _parent_ of subRegistry1 already contained an objectRegistry with the name "abc". [Test-objectRegistry.C](/uploads/a900bca5989288cf211d5cefd70cefef/Test-objectRegistry.C)
I think we need to make this recursion an optional parameter (default = true for compatibility) to at least a few methods. It would also be a nice time to add this, for symmetry with dictionary lookupEntryPtr:
//- Lookup and return pointer to the object of the given Type,
// return nullptr if the object was not found or had the incorrect type
template<class Type>
const Type* lookupObjectPtr(const word& name, bool recursive=true) const;
//- Lookup and return the object of the given Type,
// return nullptr if the object was not found or had the incorrect type
template<class Type>
Type* lookupObjectPtr(const word& name, bool recursive=true) const;
Then use like this:
volScalarField* fieldPtr = mesh().lookupObjectPtr<volScalarField>("foo");
if (fieldPtr)
{
volScalarField& fld = *fieldPtr;
...
}
Instead of
if (mesh().foundObject<volScalarField>("foo"))
{
volScalarField& fld = const_cast<volScalarField&>(mesh().lookupObject<volScalarField>("foo"));
...
}
@andyVersion v1612Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/784wmkdep runs out of open file descriptors2023-12-07T19:03:27ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comwmkdep runs out of open file descriptorswmkdep.l runs out of open file descriptors, especially when using the -q option on wmake.wmkdep.l runs out of open file descriptors, especially when using the -q option on wmake.Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/1191flattenMesh has to have flattish starting mesh2019-02-04T18:02:39ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comflattenMesh has to have flattish starting meshIt would be nice to be able to supply the plane normal instead of having twoDPointCorrector try to find it. This quite often fails due to the tight tolerance. Also maybe use the patch information?It would be nice to be able to supply the plane normal instead of having twoDPointCorrector try to find it. This quite often fails due to the tight tolerance. Also maybe use the patch information?https://develop.openfoam.com/Development/openfoam/-/issues/22Discussion: patchProbes compatibility with fixedLocations2016-11-07T14:27:03ZPrashant SonakarDiscussion: patchProbes compatibility with fixedLocationsStandard probes FO has additional entry
// Optional: do not recalculate cells if mesh moves
fixedLocations false;
Is this also applicable for patchProbes?
@andy Standard probes FO has additional entry
// Optional: do not recalculate cells if mesh moves
fixedLocations false;
Is this also applicable for patchProbes?
@andy Functionality migration from internal development lineMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/1065dictionary error message for missing entry2018-11-10T12:02:27ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comdictionary error message for missing entryerror misses "keyword" string:
currently:
```
startTime missing in system/controlDict
```
I'd prefer a bit more verbosity:
```
Keyword startTime missing in system/controlDict
```error misses "keyword" string:
currently:
```
startTime missing in system/controlDict
```
I'd prefer a bit more verbosity:
```
Keyword startTime missing in system/controlDict
```Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/893Need stderr or equivalent alternative to Info2020-05-23T11:04:36ZMark OLESENNeed stderr or equivalent alternative to InfoIn some situations informative output gets in the way of desired output (eg, foamDictionary output - EP702).
We can avoid some of this output with `argList::noBanner()`. In the .org version they have replace this with a dedicated InfoHe...In some situations informative output gets in the way of desired output (eg, foamDictionary output - EP702).
We can avoid some of this output with `argList::noBanner()`. In the .org version they have replace this with a dedicated InfoHeader message stream, which handles the same problem. However, we may also to have a more general solution (cf. #881).
In similar cases it could also be helpful to have a Serr that only outputs on the master.
With dynamic code generation (eg `#calc`) the process generated copious quantities of output, all of which land on stdout.
Perhaps we need a version of `system()` with a `dup2()` to redirect.
@Mattijsv1812Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/997dynamicMultiMotionSolverFvMesh discussion2018-09-06T09:16:17ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comdynamicMultiMotionSolverFvMesh discussion1. only provision is for motion on cellZone, not on cellSet
2. cellZone specification might easily be inconsistent with sub-motion solver (e.g. solidBodyMotionSolver) which looks for a cellZone or cellSet specification itself. (as long a...1. only provision is for motion on cellZone, not on cellSet
2. cellZone specification might easily be inconsistent with sub-motion solver (e.g. solidBodyMotionSolver) which looks for a cellZone or cellSet specification itself. (as long as this selection includes the multimotion cell selection it is ok)
3. output of solidBodyMotion might be confusing: e.g. `applying solid body motion to entire mesh` which then gets truncated by the dynamicMultiMotionSolverhttps://develop.openfoam.com/Development/openfoam/-/issues/870distanceSurface is very picky2018-07-02T09:34:41ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comdistanceSurface is very pickyIf
- the surface is open
- and the nearest point on the surface is on one of the open edges
the distanceSurface seems to pick up the 'wrong' normal. What is the normal on an open edge?
Workaround is to always make sure your surface is ...If
- the surface is open
- and the nearest point on the surface is on one of the open edges
the distanceSurface seems to pick up the 'wrong' normal. What is the normal on an open edge?
Workaround is to always make sure your surface is big enough so all mesh points project onto its interior.Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/352cleanup noFunctionObjects vs withFunctionObjects etc2018-08-09T10:21:58ZMark OLESENcleanup noFunctionObjects vs withFunctionObjects etcpotentialFoam is the only solver or application to use `-withFunctionObjects`, all others have an implicit `-noFunctionObjects`. This exception does make sense, but opens questions about the general handling of function-objects. There ar...potentialFoam is the only solver or application to use `-withFunctionObjects`, all others have an implicit `-noFunctionObjects`. This exception does make sense, but opens questions about the general handling of function-objects. There are a number of utilities (conversion, blockMesh, etc) without a time-loop and thus it doesn't make much sense to even provide a `-noFunctionObjects` option for them.
Propose adding a argList::noFunctionObjects() method - similar to the argList::noParallel() method - to remove the availability of the `-noFunctionObjects` option and adjust Time accordingly.
Currently:
functionObjects_
(
*this,
argList::validOptions.found("withFunctionObjects")
? args.optionFound("withFunctionObjects")
: !args.optionFound("noFunctionObjects")
)
Proposed:
functionObjects_
(
*this,
argList::validOptions.found("withFunctionObjects")
? args.optionFound("withFunctionObjects")
: argList::validOptions.found("noFunctionObjects")
? !args.optionFound("noFunctionObjects")
: false
)
For potentialFoam it also doesn't make sense to provide the `-noFunctionObjects` option at all. It adds clutter and will always be ignored anyhow.
@andy @Mattijs @PrashantVersion v1706Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/755faceSet and cellSet also in topoSet, setSet2020-06-18T21:27:38ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comfaceSet and cellSet also in topoSet, setSetIntegrate the checkMesh -writeSets functionality into topoSet, setSet. Especially the parallel reconstruction is very useful. (or have parallel set handling inside paraFoam)Integrate the checkMesh -writeSets functionality into topoSet, setSet. Especially the parallel reconstruction is very useful. (or have parallel set handling inside paraFoam)https://develop.openfoam.com/Development/openfoam/-/issues/770sampledSets do not operate if there are no fields2020-01-03T12:06:04ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comsampledSets do not operate if there are no fieldsThey specifically test for no applicable fields and write
```No fields to sample```
For some sets it might be nice though to still have an output.They specifically test for no applicable fields and write
```No fields to sample```
For some sets it might be nice though to still have an output.Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/429Support dictionary scoping as lvalue2017-12-18T23:19:00ZMark OLESENSupport dictionary scoping as lvalueCurrently can use `${:subdict.name}` as rvalue substitution - using the `:` to denote an absolute location, but it is not possible to use this type of notation as a lvalue. For example `:subdict.name` as a name, since `:` is a punctuatio...Currently can use `${:subdict.name}` as rvalue substitution - using the `:` to denote an absolute location, but it is not possible to use this type of notation as a lvalue. For example `:subdict.name` as a name, since `:` is a punctuation token. It might be possible to add additional quoting etc, but could also make sense just to allow another character for denoting an absolute location. I would propose allowing `^` as an absolute position anchor. This is a one-line change in dictionary::lookupScopedEntryPtr()
if (keyword[0] == ':' || keyword[0] == '^')
Once this is in place, I could rework the `removeEntry` function entry to handle scoped names and eliminate the current restriction:
> The removal only occurs in the current context.
> Removing sub-entries or parent entries is not supported.
@andy @Mattijsv1712Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/925pimpleFoam uses non-native collectives2024-01-08T10:49:00ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.compimpleFoam uses non-native collectivesIn e.g. pimpleFoam it still uses the following non-native collectives:
- Pstream::scatter inside fileMonitor::updateStates (only if `runTimeModifiable`)
- Foam::gMax<double> (from Foam::reduce) in CourantNo determination
- bound() from ...In e.g. pimpleFoam it still uses the following non-native collectives:
- Pstream::scatter inside fileMonitor::updateStates (only if `runTimeModifiable`)
- Foam::gMax<double> (from Foam::reduce) in CourantNo determination
- bound() from RASModels::kEpsilon
- reduce<bool, Foam::andOp<bool> > from p.needReference()
(done by adding a `error::printStack(Pout)` to `UIPstream::read`)
These could optionally be converted to native MPI calls.https://develop.openfoam.com/Development/openfoam/-/issues/1100Possible Deprecation of turbulentInlet Boundary Condition2019-12-18T16:20:29ZKutalmış BerçinPossible Deprecation of turbulentInlet Boundary ConditionHi,
**turbulentInlet** boundary condition generates fluctuating velocity fields by superimposing (pseudo-)random number sets (scaled by a given turbulence intensity) onto a reference (mean) velocity field.
https://www.openfoam.com/docu...Hi,
**turbulentInlet** boundary condition generates fluctuating velocity fields by superimposing (pseudo-)random number sets (scaled by a given turbulence intensity) onto a reference (mean) velocity field.
https://www.openfoam.com/documentation/cpp-guide/html/classFoam_1_1turbulentInletFvPatchField.html
Although this approach was proposed in the literature as the first turbulence inflow method, numerous studies quantified its ineffectiveness (refs can be provided if need be). Unfortunately, turbulence is fully deterministic and involving various spatial/temporal coherent structures, yet is random in a sense that its stochastic development cannot be predicted, again due to its acute sensitivity to initial/boundary conditions.
For example, in detail, for turbulentInlet the energy of generated time-series is equally distributed over the whole wavenumber range, that means the spectrum is approximately a horizontal line. Therefore, due to a lack of energy in the low wave number range, the pseudo turbulence is immediately damped to zero when enters into a CFD domain, and the result is virtually identical with a laminar inflow.
For these reasons, I kindly suggest a discussion as to this module's deprecation since customers/developers/users could be misled by its name and offerings.Kutalmış BerçinKutalmış Berçinhttps://develop.openfoam.com/Development/openfoam/-/issues/1471Potentially redundant set of computations for G object within eddy-viscosity ...2022-04-26T16:10:39ZKutalmış BerçinPotentially redundant set of computations for G object within eddy-viscosity turbulence modelsSome of the eddy-viscosity-based turbulence models compute G (the turbulent kinetic energy production rate due to the anisotropic part of the stress tensor). For example, in kEpsilon:
```
volScalarField::Internal G
(
thi...Some of the eddy-viscosity-based turbulence models compute G (the turbulent kinetic energy production rate due to the anisotropic part of the stress tensor). For example, in kEpsilon:
```
volScalarField::Internal G
(
this->GName(),
nut.v()*(dev(twoSymm(tgradU().v())) && tgradU().v())
);
tgradU.clear();
```
Here, we compute a deviatoric-symmetric tensor (`(dev(twoSymm(tgradU().v()))`) with a full tensor `tgradU().v()`.
**Any tensor** can be divided into its symmetric and anti-symmetric parts. And any double-inner product of a symmetric tensor and an anti-symmetric tensor is zero.
Therefore, the above double-inner product can be reduced between two symmetric tensors without losing any level of accuracy in the final outcome.
Such reduction seems to be carried out in the more recently implemented turbulence models, e.g. v2f.
The simpler, cheaper-to-run alternative can be:
```
tmp<volTensorField> tgradU = fvc::grad(U);
const volScalarField::Internal G
(
this->GName(),
nut.v()*2*magSqr(dev(symm(tgradU.cref().v())))
);
tgradU.clear();
```
PS: Asked the question in CFD-Online: [here](https://www.cfd-online.com/Forums/openfoam-solving/229596-potentially-redundant-set-computations-g-object-within-turbulence-models.html).v2206Kutalmış BerçinKutalmış Berçinhttps://develop.openfoam.com/Development/openfoam/-/issues/841mergeMeshes with overset issue2018-05-24T10:43:43ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.commergeMeshes with overset issue- mergeMeshes uses built-in topology changes
- which uses geometric matching for processor faces
- which can go wrong if multiple faces have exactly the same face centre
- which can happen for overset cases (if e.g. same cell sizes used ...- mergeMeshes uses built-in topology changes
- which uses geometric matching for processor faces
- which can go wrong if multiple faces have exactly the same face centre
- which can happen for overset cases (if e.g. same cell sizes used in background and foreground meshes)
workaround: slightly perturb one of the meshes, e.g. `mpirun -np 12 transformPoints -scale 1.000171`https://develop.openfoam.com/Development/openfoam/-/issues/73No repository for Dockerfile2020-10-20T15:23:29ZAdminNo repository for DockerfileThere should be one, that's linked to Docker Hub. I would like to make some improvements to the Docker ecosystem.There should be one, that's linked to Docker Hub. I would like to make some improvements to the Docker ecosystem.Pawan GhildiyalPawan Ghildiyal