openfoam issueshttps://develop.openfoam.com/Development/openfoam/-/issues2024-01-10T19:58:42Zhttps://develop.openfoam.com/Development/openfoam/-/issues/1073change internal dictionary separator2024-01-10T19:58:42ZMark OLESENchange internal dictionary separatorPropose for **1906**, we could adjust the internal dictionary separator from a dot (.) to a comma (,) separator.
The change in output appearance would be minimal. Eg,
```
/path/dictionary/subdict1,subdict2,entry
```
But by using a comma,...Propose for **1906**, we could adjust the internal dictionary separator from a dot (.) to a comma (,) separator.
The change in output appearance would be minimal. Eg,
```
/path/dictionary/subdict1,subdict2,entry
```
But by using a comma, which is rarely if ever used within a keyword, we could have things like this
```
file.obj
{
type xxx;
}
```
And now be able to recover the keyword `file.obj` from the dictionary dictName() method. At the moment the dictName() parses based on dot and would return `obj` instead.
@Developmentv1906Mark OLESENMark OLESEN2019-02-01https://develop.openfoam.com/Development/openfoam/-/issues/2276extend dictionary directives2021-11-26T12:27:23ZMark OLESENextend dictionary directivesOn [an issue raised on cfd-online](https://www.cfd-online.com/Forums/openfoam-programming-development/239595-possible-use-info-inside-calc-print-string.html), the user was attempting to use `#calc` to report dictionary values. For exampl...On [an issue raised on cfd-online](https://www.cfd-online.com/Forums/openfoam-programming-development/239595-possible-use-info-inside-calc-print-string.html), the user was attempting to use `#calc` to report dictionary values. For example,
```
myVariable 42;
#calc "Info << $myVariable << endl";
```
which supposed works somehow, but I cannot figure out how.
In a somewhat similar vein (in EP1742), they were misusing `#calc` to perform string concatenation. For example,
```
_foName #calc #{ "some_prefix_solverInfo_${application}" #};
$_foName
{
type solverInfo;
libs (utilityFunctionObjects);
fields (".*");
}
#remove _foName;
```
As both cases illustrate, there must be a better way to solve this.v2112Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/2054Question about GAMG solver strategy (only V cycles currently)2023-07-19T16:41:29ZMINHAO XUQuestion about GAMG solver strategy (only V cycles currently)### Functionality to add/problem to solve
I checked the source code of GAMG solver and found that there is only V cycle for multi-grid. From some literature it said that F and W cycly may convergence faster thant normal V cycle. My quest...### Functionality to add/problem to solve
I checked the source code of GAMG solver and found that there is only V cycle for multi-grid. From some literature it said that F and W cycly may convergence faster thant normal V cycle. My question is: why not add F and W cycle as an alternative? What are your worries?
(Brief scope)
### Target audience
GAMG are mainly used in solving matrics of pressure field and as I know it is always hard to convergence and costs much time in the whole solving proccess. So everyone who uses GAMG solver may nenifit from the changes.
(Who will benefit from the changes?)
(What type of cases?)
### Proposal
Add W and F cycle of multi-grid series solver.
(How are we going to solve the problem?)
### What does success look like, and how can we measure that?
add alternative cycles and api to let user choose own cycles.
(What are the success factors and acceptance criteria? e.g. test cases, error margins)
### Links / references
https://en.wikipedia.org/wiki/Multigrid_method
(Links to literature, supporting information)
### Funding
(Does the functionality already exist/is sponsorship available?)https://develop.openfoam.com/Development/openfoam/-/issues/1917adjust Sine Function12020-12-22T07:59:46ZMark OLESENadjust Sine Function1The `sine` Function1 currently takes `frequency` as cycles per second, and thus multiplies by 2 PI. For some times cycles (eg, seasonal variations), this is quite unnatural.
- propose supporting `frequency` or `period`, where period is ...The `sine` Function1 currently takes `frequency` as cycles per second, and thus multiplies by 2 PI. For some times cycles (eg, seasonal variations), this is quite unnatural.
- propose supporting `frequency` or `period`, where period is in seconds.
- ~~potentially useful to add an optional phase shift, for cases where a time shift may be less appropriate.~~
- clip min/max limits. Eg ensures we maintain min levels
@orgogozov2012Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/1847REQUEST: snGrad field function object2020-09-21T07:59:30ZChiara PesciREQUEST: snGrad field function object### Functionality to add/problem to solve
It would be nice to have a field function object which computes the surface normal gradient (snGrad) at a boundary patch/patches, with patch name provided as input by the user.
### Proposal
Th...### Functionality to add/problem to solve
It would be nice to have a field function object which computes the surface normal gradient (snGrad) at a boundary patch/patches, with patch name provided as input by the user.
### Proposal
The field FO could look like the div or grad FOs.
Cheers,
ChiaraKutalmış BerçinKutalmış Berçinhttps://develop.openfoam.com/Development/openfoam/-/issues/1844REVIEW: laplacianFoam2021-07-07T09:56:34ZKutalmış BerçinREVIEW: laplacianFoamKutalmış BerçinKutalmış Berçinhttps://develop.openfoam.com/Development/openfoam/-/issues/986snappyHexMesh does not extrude (using medialAxis) in thin gaps2020-01-08T14:40:39ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comsnappyHexMesh does not extrude (using medialAxis) in thin gapsThe medialAxis shrinker by default used to disable edges with any point
on an extruded wall to contain the medial axis. Now this is a bit more
intelligent and it only checks the actual medial axis point to be away from
the wall.
```
// R...The medialAxis shrinker by default used to disable edges with any point
on an extruded wall to contain the medial axis. Now this is a bit more
intelligent and it only checks the actual medial axis point to be away from
the wall.
```
// Revert to <=1806 behaviour:
disableWallEdges true;
```
Below is a hacked version of the addLayersToFaceZones tutorials where the 'B' faceZone has been shifted to be one
cell to the right of the 'A' faceZone.
1806 (or with `disableWallEdges false`)
![disableWallEdges_on](/uploads/8807b57094525080c75ec7fcaed97a02/disableWallEdges_on.png)
develop:
![disableWallEdges_off](/uploads/f2f9659340c23c698ce8117e8f836850/disableWallEdges_off.png)Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/1122snappyHexMesh automatic gap level refinement : 'small feature' phase should i...2020-09-10T14:39:28ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comsnappyHexMesh automatic gap level refinement : 'small feature' phase should ignore min levelThe `Small surface feature refinement iteration` only works if minimum gap level is triggered. So if
- the specified min level is > 0
- and the geometry is inside a single cell
it will not do anything (since the initial cell level is zer...The `Small surface feature refinement iteration` only works if minimum gap level is triggered. So if
- the specified min level is > 0
- and the geometry is inside a single cell
it will not do anything (since the initial cell level is zero and never increases).
If we leave this behaviour the problem is that the behaviour depends on whether the geometry is fully inside a cell or does intersect. Which is illogical.
Or we fix and then ideally have a switch to bypass this behaviour (since it can be very slow on large cases). Maybe supply a 'maxIter' parameter for the snappyRefineDriver::smallFeatureRefine.
Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/1131'foamVersion' alias changes directory2018-12-19T09:22:18ZPrashant Sonakar'foamVersion' alias changes directoryThe alias helps identify current version or changes the version if requested.
- but it should not change the working directory.The alias helps identify current version or changes the version if requested.
- but it should not change the working directory.Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/595simplify/extend List, DynamicList2021-01-26T20:22:11ZMark OLESENsimplify/extend List, DynamicListInspired by some of Franjo's @Juretic work, I've started looking into how to incorporate the short list optimization into the standard DynamicList as well as other methods and possible optimizations. I'd like some feedback on some of the...Inspired by some of Franjo's @Juretic work, I've started looking into how to incorporate the short list optimization into the standard DynamicList as well as other methods and possible optimizations. I'd like some feedback on some of these ideas @andy @Mattijs
The static allocation size needs to be templated but the number of parameters for DynamicList is growing too much. My current thought is to remove the SizeInc,SizeMult,SizeDiv from templates and replace with a run-time sizing policy that we can combine with templated factory methods for some compile-time safety.
Eg,
template<class T, unsigned StaticSize = 16>
class DynamicList
{
...
//-
inline void setSizingPolicy(const sizingPolicy& policy);
};
In use this would mean something like this:
DynamicList<label> lst;
lst.setSizingPolicy(sizingPolicy::increment<10>());
lst.setSizingPolicy(sizingPolicy::factor<2>());
lst.setSizingPolicy(sizingPolicy::factor<3,2>());
lst.setSizingPolicy(sizingPolicy::general<10,3,2>());
This is still a long way from handling allocations with an allocator, but I think it is an improvement.
To accommodate some other routines, I've tentatively added in these methods:
UList
//- Find index of the first occurence of the value.
// Linear search.
// \return -1 if not found.
label find(const T& val, const label start=0) const;
//- True if the value if found in the list. Linear search.
inline bool found(const T& val, const label start=0) const;
//- Move element to the first position.
void moveFirst(const label i);
//- Move element to the last position.
void moveLast(const label i);
//- Swap with the first element. Fatal on an empty list.
void swapFirst(const label i);
//- Swap with the last element. Fatal on an empty list.
void swapLast(const label i);
DynamicList
//- Remove and return the last element. Fatal on an empty list.
inline T remove();
//- Remove and return the specified element. Fatal on an empty list.
// With fast=true (default), the removed element is replaced with
// the last one in the list.
// With fast=false, the elements are copied down in the list.
inline T remove(const label i, const bool fast=true);v1712Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/1089primitiveMesh::cells needed only from wall functions2018-11-21T15:38:46ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comprimitiveMesh::cells needed only from wall functionsin simpleFoam only fvMatrix<Type>::setValuesFromList gets the cellList. Could this be rewritten to use face-based addressing and save memory? (but more runtime?)
But postprocessing/tracking needs cells so probably little effect for real...in simpleFoam only fvMatrix<Type>::setValuesFromList gets the cellList. Could this be rewritten to use face-based addressing and save memory? (but more runtime?)
But postprocessing/tracking needs cells so probably little effect for real cases.https://develop.openfoam.com/Development/openfoam/-/issues/444use of FOAM_INST_DIR is outdated2018-12-21T18:08:49ZMark OLESENuse of FOAM_INST_DIR is outdatedFrom previous versions, had FOAM_INST_DIR to avoid a manual edit of the bashrc,cshrc files.
With the newer logic (`BASH_SOURCE`, `lsof`) this will now be largely ignored, except as a hard-coded fallback value within bashrc,cshrc.
Propos...From previous versions, had FOAM_INST_DIR to avoid a manual edit of the bashrc,cshrc files.
With the newer logic (`BASH_SOURCE`, `lsof`) this will now be largely ignored, except as a hard-coded fallback value within bashrc,cshrc.
Propose renaming it in bashrc,cshrc (perhaps back to foamInstall), and removing it from foamExec, foamJob, wmakeScheduler*
Opinions? @andy @PrashantMark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/771sampledSets output points, not lines2020-01-03T12:07:46ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comsampledSets output points, not linesFor some applications, some formats (e.g. vtk) it would be nice to see lines connecting the points instead of just the points.
Could be option, could be new set format ('vtkLines') or could be the default.For some applications, some formats (e.g. vtk) it would be nice to see lines connecting the points instead of just the points.
Could be option, could be new set format ('vtkLines') or could be the default.Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/905solid thermo (heSolidThermo) initialisation of psi, mu2020-01-08T14:41:37ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comsolid thermo (heSolidThermo) initialisation of psi, muheSolidThermo does not initialise or update the psi,mu of the base class (rhoThermo). This shows up when calculating turbulence for multi-phase systems (e.g. icoReactingMultiPhaseInterFoam) when accessing divDevRhoReff.
The underlying p...heSolidThermo does not initialise or update the psi,mu of the base class (rhoThermo). This shows up when calculating turbulence for multi-phase systems (e.g. icoReactingMultiPhaseInterFoam) when accessing divDevRhoReff.
The underlying problem is that the solid transportModels do not implement mu(), psi() functionality. See #856. The current solution is to explicitly set the mu, psi to 0 in the multi-phase system constructor.Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/issues/12Documentation/BUG: Volume point smoothing2023-08-19T21:13:19ZPrashant SonakarDocumentation/BUG: Volume point smoothingIs it possible to have nSmoothInternal > nSmoothPatch?
Documentation says it can't. But present version can allow this.
Please fix either of these! :)
@andy Is it possible to have nSmoothInternal > nSmoothPatch?
Documentation says it can't. But present version can allow this.
Please fix either of these! :)
@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/23Discussion: FO output : blendingFactor2015-12-15T07:07:16ZPrashant SonakarDiscussion: FO output : blendingFactorIs it OK to have two output statements per iteration?
blendingFactor blendingFactor1 output:
scheme 1 cells : 106634
scheme 2 cells : 0
blended cells : 0
blendingFactor blendingFactor1 output:
writing fi...Is it OK to have two output statements per iteration?
blendingFactor blendingFactor1 output:
scheme 1 cells : 106634
scheme 2 cells : 0
blended cells : 0
blendingFactor blendingFactor1 output:
writing field blendingFactor1:U
/home/alex2/prashant/QA/UNIT_TESTS/FO-tests/compressible/motorBike/log.rhoPimpleFoam.blendingFactor
@Mattijs 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/698checkMesh does not report on processor patches2023-06-26T13:01:00ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comcheckMesh does not report on processor patchesWe currently suppress info on processor patches. I would like to change this to only suppress -if running parallel- so we can use
checkMesh -case processorXXX
to find out number of points/edges on the processor patches.We currently suppress info on processor patches. I would like to change this to only suppress -if running parallel- so we can use
checkMesh -case processorXXX
to find out number of points/edges on the processor patches.Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/issues/860foamLog extract min, max, avg2021-07-06T12:57:16ZMark OLESENfoamLog extract min, max, avg- can currently only extract min value (EP 690), and foamLog is not sophisticated enough to handle arbitrary parsing.
- adjust AMI reporting as `min = ... max = ...` instead of `min/max/average = ...` for easier parsing.
@Prashant- can currently only extract min value (EP 690), and foamLog is not sophisticated enough to handle arbitrary parsing.
- adjust AMI reporting as `min = ... max = ...` instead of `min/max/average = ...` for easier parsing.
@Prashantv1806Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/84timeVaryingMappedFixedValue uses linear extrapolation if outside triangulation2019-12-11T16:52:37ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comtimeVaryingMappedFixedValue uses linear extrapolation if outside triangulationtimevaryingMappedFixedValue creates a triangulation 'under the hood'. It then uses bilinear interpolation for all sample points inside a triangle. For sample points outside all triangles it uses a bilinear interpolation using the nearest...timevaryingMappedFixedValue creates a triangulation 'under the hood'. It then uses bilinear interpolation for all sample points inside a triangle. For sample points outside all triangles it uses a bilinear interpolation using the nearest triangle. This is generally not ideal and especially very high aspect ratio triangles it gives problems (e.g. interpolation weights (23937.3 -48293 24356.7)
I think we should use zero-gradient outside triangles.
https://develop.openfoam.com/Development/openfoam/-/issues/915paraFoam starts up with 'Skip 0/ time' enabled2020-03-13T14:42:41ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comparaFoam starts up with 'Skip 0/ time' enabled1) Do we still need this?
2) Why do we only select p,U,T and not all fields?1) Do we still need this?
2) Why do we only select p,U,T and not all fields?