openfoam issueshttps://develop.openfoam.com/Development/openfoam/-/issues2022-04-26T16:10:39Zhttps://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/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/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/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/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/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/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?https://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/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/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/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`