openfoam issueshttps://develop.openfoam.com/Development/openfoam/-/issues2024-03-21T11:43:48Zhttps://develop.openfoam.com/Development/openfoam/-/issues/3111Support for Radial Basis Function (RBF) based mesh deformation2024-03-21T11:43:48ZAqeel AhmedSupport for Radial Basis Function (RBF) based mesh deformation### Functionality to add/problem to solve
Large mesh deformations on complex meshes require specilized methods to avoid mesh quality issues.
It becomes challenging to control the mesh quality with existing displacement based mesh motion...### Functionality to add/problem to solve
Large mesh deformations on complex meshes require specilized methods to avoid mesh quality issues.
It becomes challenging to control the mesh quality with existing displacement based mesh motion solvers for large deformations.
In the OpenFOAM journal article [2] it was also mentioned that for large deformations advanced techniques could help. An extract form figure 12 caption: "These results highlight the need for advanced mesh motion techniques in OpenFOAM".
### Target audience
All practical FSI cases with complex meshes.
Mesh deformations with fine boundary layers.
### Proposal
RBF morphing techniques have proven to be robust for large variety of problems among others [2].
One of the motion solver using RFB is available in an another library solids4Foam [3]. However, this implementation relies on external library and is not maintained anymore. If possible, would really benefit the community if this could be implemented in OpenFOAM directly.
### What does success look like, and how can we measure that?
Ability to deform complex meshes with large deformations.
A minimal example is provided here:[flapDeformation.zip](/uploads/fa8541188d3a1c22eab91f2cc257a952/flapDeformation.zip)
[meshAndDefInfo.pdf](/uploads/239c5b577c90be8e7a96e22df3f367e6/meshAndDefInfo.pdf)
### Links / references
[1] OpenFOAM-preCICE: Coupling OpenFOAM with External Solvers for Multi-Physics Simulations. https://journal.openfoam.com/index.php/ofj/article/view/88
[2] CFD Methodology for Wind Turbines Fluid-Structure Interaction. https://theses.hal.science/tel-01562675
[3] https://github.com/solids4foam/solids4foam/tree/master/src/RBFMeshMotionSolverhttps://develop.openfoam.com/Development/openfoam/-/issues/3083vtkUnstructuredToFoam add read patches/regions capability2024-01-17T11:50:48Zfranco otaolavtkUnstructuredToFoam add read patches/regions capability### Functionality to add/problem to solve
Adding the possibility to read the boundaries of a vtk mesh imported using vtkUnstructuredToFoam
### Target audience
everyone who needs to import meshes to FOAM. the legacy vtk format is quit...### Functionality to add/problem to solve
Adding the possibility to read the boundaries of a vtk mesh imported using vtkUnstructuredToFoam
### Target audience
everyone who needs to import meshes to FOAM. the legacy vtk format is quite old, true, nevertheless, it is still used by several libraries and programs, and it is a quite simple format.
### Proposal
vtk format has a classification of the elements types such as it is shown in the following .vtk example and it is consisted of the following information:
```
POINTS #(list of all the vertexes internal and external of the mesh)
x0,y0,z0
x1,y1,z1
....
CELLS #(list of "cells" that can be nodes, edges, faces, volumetric cells)
nPoints0 p0 p1 p2
nPoints1 p1 p2 p3
....
CELL_TYPES #(indicates the type of element of the previous list such as if a 4 1 2 3 4 (a 'cell' in CELLS with 4 elements using the points 1, 2, 3 and 4) can be classified as a quadrangle face or a pyramid)
type0
type1
....
CELL_DATA #(is used to classify the CELLS in different groups, boundaries, regions etc)
scalar0
scalar1
.....
```
right now, OF when using vtkUnstructuredToFoam, it does not 'read' the information of CELL_DATA, it imports the mesh but all the faces goes to a defaultPatch. The feature request would be to use the CELL_DATA to reconstruct the patches from this information, even if the name of the boundary is simply the str(scalar)... to make 'usable' this format.
### What does success look like, and how can we measure that?
importing the vtk mesh I post it in this issue and getting the boundaries
### Links / references
here is information about the vtk format:
https://www.princeton.edu/~efeibush/viscourse/vtk.pdf
here is an old importer of vtk to FOAM:
https://github.com/edwardsp/VTKToFoam/blob/master/VTKToFoam.py
and here is a mesh example:
[test.vtk](/uploads/934da4e0a81da4671919da16713d1401/test.vtk)
### Funding
no funding sadly.https://develop.openfoam.com/Development/openfoam/-/issues/2943importation of MED mesh files types2023-07-13T07:45:30Zfranco otaolaimportation of MED mesh files types### Functionality to add/problem to solve
Following my post about ideasunvToFoam ([](https://develop.openfoam.com/Development/openfoam/-/issues/2942)). This format does not allow the importation of meshes with pyramid elements. so if a ...### Functionality to add/problem to solve
Following my post about ideasunvToFoam ([](https://develop.openfoam.com/Development/openfoam/-/issues/2942)). This format does not allow the importation of meshes with pyramid elements. so if a mesh has even one single pyramid cell, it is not possible to import it from salome to OpenFOAM easily. Salome has its native format MED, which can save pyramid elements as any arbitrary polyhedral cell type. The need from these functionality is clear and has been there since long time [](https://www.cfd-online.com/Forums/openfoam-meshing/73971-mesh-conversion-salome-openfoam.html)
### Target audience
Salome has the capacity to combine structured & unstructured meshes in a conformal way. also to create meshes respecting the edges of a geometry. The audience is the common OpenFOAM user who wants to use other opensource meshers inside salome.
### Proposal
adding a medToFoam which would import directly the MED format files to OpenFOAM
### What does success look like, and how can we measure that?
being able to import meshes directly from salome output without intermediate formats.
### Links / references
some references that could help:
- first a foamToMed already exists (import of openfoam meshes to salome) could be helpful https://github.com/mortbauer/foamMeshToMED
- there exist also a python script to export meshes directly from salome to FOAM format (which I don't think could be useful for the development, as it does not passes thought MED format but in any case I post it) https://github.com/psicofil/salomeToOpenFOAM
- The MED format has been integrated to paraview, their reader could help the development? https://discourse.paraview.org/t/med-format-native-support-in-paraview/7028https://develop.openfoam.com/Development/openfoam/-/issues/2713searchbox in the overset is expected to move along the motion of the object, ...2023-02-24T08:35:34Zgrace wsearchbox in the overset is expected to move along the motion of the object, rather than fixed in the space### Functionality to add/problem to solve
(Brief scope)
In overset function, searchbox is set to narrow the search area and improve the hole-search efficiency. However, the searchbox is fixed in the mesh, other than moving along with t...### Functionality to add/problem to solve
(Brief scope)
In overset function, searchbox is set to narrow the search area and improve the hole-search efficiency. However, the searchbox is fixed in the mesh, other than moving along with the object.
### Target audience
(Who will benefit from the changes?)
(What type of cases?)
The efficiency of overset function can be benefited by setting the searchbox moving along the object.
### Proposal
(How are we going to solve the problem?)
1 extract the mesh motion from Mesh class, 2 add the mesh motion to searchbox, which reduces the size of the searchbox and improve the efficiency of the overset mesh.
I find the motion is calculated from transformation and transformPoints. I would like to isolate the displacement for searchbox motion.
### What does success look like, and how can we measure that?
(What are the success factors and acceptance criteria? e.g. test cases, error margins)
I think the tutorial case can be a test case.https://develop.openfoam.com/Development/openfoam/-/issues/2705dynamicRefineFVMesh support for Overset meshes2023-02-22T08:55:33ZMatt GuentherdynamicRefineFVMesh support for Overset meshes### Functionality to add/problem to solve
For ship simulations using overset mesh motion, the free surface interface is difficult to capture properly. If the background mesh is refined, the cell sizes are not matched well to the overset...### Functionality to add/problem to solve
For ship simulations using overset mesh motion, the free surface interface is difficult to capture properly. If the background mesh is refined, the cell sizes are not matched well to the overset mesh of the ship. By extending the existing capability of dynamicRefineFVMesh to be able to be applied to overset simulations, the free surface could be better defined.
### Target audience
For high speed vessels that have the most to gain from overset mesh due to their large mesh motions, the wave resistance is comparatively high, so good capture of the interface is important. This feature will increase interest in openfoam in a larger number of naval architecture companies.
High speed planing hulls with large displacement motion.
### Proposal
(How are we going to solve the problem?) Rework the dynamicMesh functionality to enable both dynamicRefineFVMesh and dynamicOversetFVMesh to be defined together.
### What does success look like, and how can we measure that?
(What are the success factors and acceptance criteria? e.g. test cases, error margins)
For a simple case, use the rigidbody test case found in overInterDYMFoam and extend it to have free surface refinement, as found in damBreakWithObstacle tutorial (multiphase/interfoam/laminar).
less than 10% error resistance in head seas, See figure 8 of reference below.
### Links / references
(Links to literature, supporting information)
Jeonghwa Seo, Hak-Kyu Choi, Uh-Cheul Jeong, Dong Kun Lee, Shin Hyung Rhee, Chul-Min Jung, Jaehoon Yoo,
Model tests on resistance and seakeeping performance of wave-piercing high-speed vessel with spray rails,
International Journal of Naval Architecture and Ocean Engineering,
Volume 8, Issue 5,
2016,
Pages 442-455,
ISSN 2092-6782,
https://doi.org/10.1016/j.ijnaoe.2016.05.010.https://develop.openfoam.com/Development/openfoam/-/issues/2601Visual Studio Code (IntelliSense) Integration2022-11-07T19:20:13ZDmitrii TuryginVisual Studio Code (IntelliSense) Integration### Functionality to add/problem to solve
There are no good instructions on how to use IntelliSense in VS Code to work properly with OpenFOAM source code. By "work properly" I mean code completion and suggestions. I was able to hack som...### Functionality to add/problem to solve
There are no good instructions on how to use IntelliSense in VS Code to work properly with OpenFOAM source code. By "work properly" I mean code completion and suggestions. I was able to hack something together for OpenFOAM 2.1.1 by simply adding the src directory into include path. I have failed to do the same for OpenFOAM v1706. I get a lot of "incomplete class type is not allowed" which signals that it is probably an include path issue. From my limited understanding I get that OpenFOAM has a complicated code base and IntelliSense needs a little help making sense of it.
### Target audience
Every researcher who develops code for OpenFOAM.
### Proposal
Could you please release the instructions on how to make IntelliSense in VS code to work with OpenFOAM (c_cpp_properties.json, settings.json, etc.) by adding it to your wiki? I do not think that OpenFOAM is being developed in notepad, meaning that there is definitely a way to make this work! :-)
Maybe you are using something other than VS Code internally. That would also work.
### What does success look like, and how can we measure that?
Should be self-explanatory.
### Links / references
There are many guides like [this one](https://github.com/Rvadrabade/Debugging-OpenFOAM-with-Visual-Studio-Code) which switch IntelliSense into Tag parsing mode, which defeats the whole purpose of using IntelliSense in the first place.
### Funding
Should be self-explanatory.https://develop.openfoam.com/Development/openfoam/-/issues/2557Be able to choose the order of eigenvalues2022-08-11T07:26:55Zt RockBe able to choose the order of eigenvaluesCurrently the eigenvalue calculation returns the values in ascending order.
For several applications it is not uncommon to use them in descending order, which will require an additional operation to reverse the order.
If possible, I ...Currently the eigenvalue calculation returns the values in ascending order.
For several applications it is not uncommon to use them in descending order, which will require an additional operation to reverse the order.
If possible, I would like to request the possibility of selecting the order of the output.
Something like:
```
#include <iostream>
#include <vector>
#include <algorithm>
enum sortType{ascending, descending};
template<sortType S=ascending>
void sort (std::vector<double>& v)
{
std::sort(v.begin(), v.end());
}
template <>
void sort<descending> (std::vector<double>& v)
{
std::sort(v.begin(), v.end(), std::greater<>());
}
template<sortType S=ascending>
void foo(const std::vector<double>& v)
{
std::vector<double> v2 (v);
sort<S>(v2);
for (int i = 0; i< v.size(); i++)
{
std::cout << v2[i] << std::endl;
}
}
int main()
{
std::vector<double> tst = {1,3,4,2,5};
foo(tst);
foo<descending>(tst);
return 0;
}
```
This will keep the current code running as is, but with the flexibility of letting the user choose the order of the output.
It would also be nice to have the eigen vectors come out as column vectors. Currently they are row vectors. This would bring more similarity to other libraries, e.g., numpy, matlab
Best RegardsKutalmış BerçinKutalmış Berçinhttps://develop.openfoam.com/Development/openfoam/-/issues/2227pimpleFoam and pisoFoam deltaT not respecting controlDict value when running ...2021-11-02T10:13:48ZAaronpimpleFoam and pisoFoam deltaT not respecting controlDict value when running SPDP (but does for DP)### Summary
deltaT is not being respected by pimpleFoam and pisoFoam when in SPDP. This is for a deltaT of 7.5e-05, so not an issue of being too small for single precision. When solving in DP, deltaT is as expected.
### Steps to reprodu...### Summary
deltaT is not being respected by pimpleFoam and pisoFoam when in SPDP. This is for a deltaT of 7.5e-05, so not an issue of being too small for single precision. When solving in DP, deltaT is as expected.
### Steps to reproduce
Simply run pimpleFoam, both in SPDP and DP to see how DP respects the deltaT prescribed in controlDict, while SPDP generates a random value. The random value is not even very close to the controlDict deltaT (it's off by ~20%), and it varies with each iteration. This prevents endTime writing on the last iteration, makes results processing difficult, etc.
### Example case
https://www.dropbox.com/s/bmfxslcx7lj3wec/issue2227_deltaT_SPDP.tar.xz?dl=0
I have a solved (steady state) 500k cell case which is about ~50Mb. I can send it through another channel if you prefer.
### What is the current *bug* behaviour?
Random deltaT - differing from controlDict value by up to 20% - being applied to each iteration when running SPDP
### What is the expected *correct* behavior?
deltaT per controlDict, as is the case when running DP
### Relevant logs and/or images
controlDict
```
startFrom startTime;
**startTime 400;**
stopAt endTime;
endTime 400.20025;
**deltaT 7.5e-05;**
writeControl timeStep;
writeInterval 267;
monStart 400.1002;
purgeWrite 100;
writeFormat ascii;
writeCompression on;
writePrecision 7;
timeFormat general;
timePrecision 11;
runTimeModifiable yes;
```
DP - expected behavior
```
Build : f4ccdec894-20210902 OPENFOAM=2012 patch=210618
Arch : "LSB;label=32;scalar=64"
Starting time loop
Courant Number mean: 0.007378641 max: 2.702994
**Time = 400.000075**
PIMPLE: iteration 1
velocityDampingConstraint damp damped 3 (0.000564893%) of cells
smoothSolver: Solving for Ux, Initial residual = 4.640301e-07, Final residual = 1.441689e-08, No Iterations 1
smoothSolver: Solving for Uy, Initial residual = 4.99919e-05, Final residual = 5.043536e-08, No Iterations 3
smoothSolver: Solving for Uz, Initial residual = 6.165809e-06, Final residual = 1.953994e-08, No Iterations 2
GAMG: Solving for p, Initial residual = 0.3755113, Final residual = 0.02669367, No Iterations 1
GAMG: Solving for p, Initial residual = 0.02671251, Final residual = 0.001826018, No Iterations 3
time step continuity errors : sum local = 1.271702e-09, global = 1.048906e-11, cumulative = 1.048906e-11
GAMG: Solving for p, Initial residual = 0.01341298, Final residual = 0.000939755, No Iterations 2
GAMG: Solving for p, Initial residual = 0.001842091, Final residual = 9.379453e-07, No Iterations 28
time step continuity errors : sum local = 6.500214e-13, global = 2.663773e-17, cumulative = 1.048909e-11
smoothSolver: Solving for omega, Initial residual = 2.509855e-07, Final residual = 1.21354e-08, No Iterations 1
bounding omega, min: -5721.012 max: 283395.7 average: 3373.21
smoothSolver: Solving for k, Initial residual = 7.494289e-06, Final residual = 1.253224e-08, No Iterations 2
bounding k, min: -36.23042 max: 384.4423 average: 11.56855
ExecutionTime = 2.98 s ClockTime = 3 s
Courant Number mean: 0.007378645 max: 2.242397
**Time = 400.00015**
```
SPDP - strange time step which is different from DP and controlDict specification
```
Build : 4245909efb-20210203 OPENFOAM=2012
Arch : "LSB;label=32;scalar=32;solveScalar=64"
Starting time loop
Courant Number mean: 0.007378641 max: 2.703078
**Time = 400.00006104**
PIMPLE: iteration 1
velocityDampingConstraint damp damped 3 (0.000564893%) of cells
smoothSolver: Solving for Ux, Initial residual = 5.07782e-07, Final residual = 1.456293e-08, No Iterations 1
smoothSolver: Solving for Uy, Initial residual = 4.999212e-05, Final residual = 5.043533e-08, No Iterations 3
smoothSolver: Solving for Uz, Initial residual = 6.165838e-06, Final residual = 1.953989e-08, No Iterations 2
GAMG: Solving for p, Initial residual = 0.3754919, Final residual = 0.02666569, No Iterations 1
GAMG: Solving for p, Initial residual = 0.02669024, Final residual = 0.00183339, No Iterations 3
time step continuity errors : sum local = 1.534634e-09, global = 7.045955e-12, cumulative = 7.045955e-12
GAMG: Solving for p, Initial residual = 0.01344812, Final residual = 0.0009438513, No Iterations 2
GAMG: Solving for p, Initial residual = 0.001842122, Final residual = 9.032984e-07, No Iterations 29
time step continuity errors : sum local = 3.146365e-10, global = 1.095093e-12, cumulative = 8.141048e-12
smoothSolver: Solving for omega, Initial residual = 2.511907e-07, Final residual = 1.21357e-08, No Iterations 1
bounding omega, min: -5721.12 max: 283415 average: 3373.219
smoothSolver: Solving for k, Initial residual = 7.494291e-06, Final residual = 1.253221e-08, No Iterations 2
bounding k, min: -36.23087 max: 384.4427 average: 11.56855
ExecutionTime = 2.36 s ClockTime = 3 s
Courant Number mean: 0.007378645 max: 2.242493
**Time = 400.00012207**
```
### Environment information
- OpenFOAM version : v2012 & v2106
- Operating system : ubuntu1804
- Hardware info : x86
- Compiler : gcchttps://develop.openfoam.com/Development/openfoam/-/issues/2180Feature: volume fraction2021-08-09T11:37:18ZPrashant SonakarFeature: volume fractionAs discussed, it would be nice to have a volume fraction of a specified species in the domain for multi-species cases.As discussed, it would be nice to have a volume fraction of a specified species in the domain for multi-species cases.Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/issues/2150Feature: CFL number2021-07-06T11:17:28ZPrashant SonakarFeature: CFL numberIt is useful to analyze CFL number for compressible cases which takes acoustic speed into account.
@andyIt is useful to analyze CFL number for compressible cases which takes acoustic speed into account.
@andyhttps://develop.openfoam.com/Development/openfoam/-/issues/2141Add support for user defined liquidProperties2021-12-10T13:12:14ZDanielAdd support for user defined liquidProperties### Functionality to add/problem to solve
Currently only hardcoded liquids can be used for modeling Lagrangian particles such as water and a few selected hydrocarbons.
This limits the possibility of modeling liquid injection for cases o...### Functionality to add/problem to solve
Currently only hardcoded liquids can be used for modeling Lagrangian particles such as water and a few selected hydrocarbons.
This limits the possibility of modeling liquid injection for cases other than liquid fuel combustion.
### Target audience
Users who want to model injecting ammonia for nitric oxide reduction.
### Proposal
Implement similar functionality to what is available through generic [liquid](https://github.com/OpenFOAM/OpenFOAM-dev/tree/master/src/thermophysicalModels/thermophysicalProperties/liquidProperties/liquid).
### Funding
I already have a working implementation and can provide the patch/merge reguest.Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/issues/2102BUG: force write into a separated file instead of overwriting2021-07-07T11:14:33ZJunting ChenBUG: force write into a separated file instead of overwriting<!--
*** 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
<!-- Summarize the bug encountered concisely -->
force write into a separated file named force_0.dat instead of overwriting the existing file when restarting from a time step that has started previously. Same behavior found when writing moment. This is quite annoying when the first time of running failed (due to CFL being too big or something), then restarted.
### Steps to reproduce
<!-- How one can reproduce the issue - this is very important -->
1. Start a transient simulation with force writer.
2. You can stop the simulation once the force writer writes something in postProcessing/0/force.dat
3. Restart from the same time step.
4. You will see a force.dat and force_0.dat in postProcessing/0/
5. This behavior can be replicated not necessarily at 0 time step.
### Example case
<!--
If possible, please create a SMALL example and attach it to your report
If you are using an older version of OpenFOAM this will also determine
whether the bug has been fixed in a more recent version
-->
### What is the current *bug* behaviour?
<!-- What actually happens -->
### What is the expected *correct* behavior?
<!-- What you should see instead -->
### Relevant logs and/or images
<!--
Paste any relevant logs - please use code blocks (```) to format console
output, logs, and code as it's very hard to read otherwise.
-->
### Environment information
<!--
Providing details of your set-up can help us identify any issues, e.g.
OpenFOAM version : v2012
Operating system : centos (i dont think it matters)
Hardware info : any info that may help?
Compiler : gcc
-->
- OpenFOAM version : v2012
- Operating system : centos (i dont think it matters)
- Hardware info : VM
- Compiler : gcc
### Possible fixes
<!--
If you can, link to the line of code that might be responsible for the
problem
The "/label ~bug" text is a gitlab flag that will add the "bug" label to this
issue
-->Kutalmış BerçinKutalmış Berçinhttps://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/1739residualControl for chtmultiregion cases2020-06-22T12:30:00Zchristoph irrenfriedresidualControl for chtmultiregion cases### Functionality to add/problem to solve
Adding the "residualControl" functionality for a specific region (or all) in chtmultiregion cases
### Proposal
In the fvSolution for the individual region the "residualControl" can be defined...### Functionality to add/problem to solve
Adding the "residualControl" functionality for a specific region (or all) in chtmultiregion cases
### Proposal
In the fvSolution for the individual region the "residualControl" can be defined and if all are met the case automatically terminateshttps://develop.openfoam.com/Development/openfoam/-/issues/1677Support rigidBodyMotionState object in writeObjects2021-07-07T08:16:22ZJaap StolkSupport rigidBodyMotionState object in writeObjects### Functionality to add/problem to solve
To reduce the number of fields files written by openFoam, the normal writes can be disabled with a very large write interval and a custom "writeObjects" can be used instead. This makes it possib...### Functionality to add/problem to solve
To reduce the number of fields files written by openFoam, the normal writes can be disabled with a very large write interval and a custom "writeObjects" can be used instead. This makes it possible to specify exactly which field(s) need to be written to disk. For users interested in the rigidBodyMotionState this does not work because it is not an "Available objects in database".
### Target audience
Anyone wanting more control over which fields are written to disk, and needing the rigidBodyMotionState.
Note that re-staring a case from a saved data point requires the rigidBodyMotionState file.
It can also be used for transformations in paraFoam, to invert or match the object motion.
(as workaround, a user could try to recreate the missing rigidBodyMotionState files from the orientation information in the log.interFoam file. And maybe there are other workarounds.)
### Proposal
If it is a database object but it is not listed for some reason, make sure rigidBodyMotionState is listed when available.
If rigidBodyMotionState is not a "real" database object, it may be possible to add an option to "writeObjects" to enable writing of non-real-databse-objects, similar to how the normal write writes these files, and probably similar to how the "time" file is not listed but is written automatically.
I don't know how complex this is to add. During a normal write they are written and in the rigidBodyMotionState files header claim to be a database object.
### What does success look like, and how can we measure that?
The rigidBodyMotionState(.gz) file appearing in the processor0/0.1/uniform folders.
### example case
Using the normal write:
- start with the multiphase/interFoam/RAS/DTCHullMoving example
- change endTime to 0.2 and writeInterval to 0.1 (to speed up the test)
- Allrun
- there now is a processor0/0.1/uniform/rigidBodyMotionState file.
Using a custom write with just "U" and "points":
- copy the attached controlDict in the multiphase/interFoam/RAS/DTCHullMoving example
- Allrun
- processor0/0.1 folder now only contains the selected (U) file.
Including "rigidBodyMotionState" results in warning and no file:
- copy the attached controlDict in the multiphase/interFoam/RAS/DTCHullMoving example
- uncomment the rigidBodyMotionState line in controlDict
- Allrun
- log.interFoam contains a warning for rigidBodyMotionState, and lists the 56 objects available in the database.
### Links / references
example [controlDict](/uploads/d5a3043780580a578e69e4fa655d64d2/controlDict)
resulting warning: [log.interFoam_snippet](/uploads/d01e48fe4aee07ebd258f57adfc593b2/log.interFoam_snippet)
typical result object file: [rigidBodyMotionState](/uploads/7551e066077c035de70b75d519199051/rigidBodyMotionState)https://develop.openfoam.com/Development/openfoam/-/issues/1674add rotatedBoxToCell vector order check and warning.2022-04-26T16:10:00ZJaap Stolkadd rotatedBoxToCell vector order check and warning.### Functionality to add/problem to solve
In the rotatedBoxToCell cell selection, the box is defined using an origin and 3 vectors.
if the vectors are not in the correct left/right-hand order, the selection box will be inside-out and no...### Functionality to add/problem to solve
In the rotatedBoxToCell cell selection, the box is defined using an origin and 3 vectors.
if the vectors are not in the correct left/right-hand order, the selection box will be inside-out and not select any cells.
This problem is not easy to spot since no errors or warnings are generated for this situation.
### Proposal
If possible, add a check to the code and produce a warning if this situation is encountered.
And make the importance of the vector order more clear in the rotatedBoxToCell documentation.
### Note
I have since switched to using an external .STL file with a surfaceToCell for more complex selections, but decided to at least share my experience with the rotatedBoxToCell.v2206Kutalmış BerçinKutalmış Berçinhttps://develop.openfoam.com/Development/openfoam/-/issues/1652adding porous media in rotatine zone2022-04-26T16:10:39ZRoshanakadding porous media in rotatine zoneAdding feature of "Relative velocity Resistance formulation" which exists in Ansys-fluent for better prediction of source term when rotating region and porous zone are located in one zone. in Ansys-Fluent, the results, when you choose th...Adding feature of "Relative velocity Resistance formulation" which exists in Ansys-fluent for better prediction of source term when rotating region and porous zone are located in one zone. in Ansys-Fluent, the results, when you choose this option or not selecting it, are quite different.
it seems that Openfoam can only calculate porous source term based on absolute velocity. when it is calculated Darcy-Forchimmier source term based on absolute velocity, it seems that porous zone is fixed in position and not rotating(see attachment files)![Screenshot_from_2020-03-30_10-42-16](/uploads/993db2537153c78ad9347af3ff8f75ad/Screenshot_from_2020-03-30_10-42-16.png)![Screenshot_from_2020-03-30_10-42-32](/uploads/39025939c059c1eb36d8aa33dcaec335/Screenshot_from_2020-03-30_10-42-32.png)v2206Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/issues/1601Feature request: sedFOAM submodule2023-11-24T16:26:48ZKutalmış BerçinFeature request: sedFOAM submodule### Functionality to add/problem to solve
http://servforge.legi.grenoble-inp.fr/pub/soft-sedfoam/
https://github.com/sedfoam/sedfoam
Following the short discussion in their repo: https://github.com/SedFoam/sedfoam/issues/15
the mainta...### Functionality to add/problem to solve
http://servforge.legi.grenoble-inp.fr/pub/soft-sedfoam/
https://github.com/sedfoam/sedfoam
Following the short discussion in their repo: https://github.com/SedFoam/sedfoam/issues/15
the maintainer of sedFOAM showed keen interest on OpenFOAM's submodule functionality.
sedFOAM is represented as a code suite for two-phase flow sediment flow applications.
### Target audience
Wave/free surface involved applications, e.g. masts erected in sea bed, tidal turbines, or in general, underwater structures close to sea bed (might misunderstand).
### Proposal
If the maintenance cost of adding and shipping a new submodule is very low for OpenFOAM, sedFOAM submodule would be a win-win.
### What does success look like, and how can we measure that?
The suite is based on a set of publications, and has its own user group (it seems). Also, reasonably well maintained by a group of people, compatible with recent OF versions.
### Funding
NA
@andy @mark @Mattijs @Sergio @Prashant @RogerKutalmış BerçinKutalmış Berçinhttps://develop.openfoam.com/Development/openfoam/-/issues/1542checkMesh aspect ratio2024-01-10T16:47:46ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comcheckMesh aspect ratio### Functionality to add/problem to solve
checkMesh calculates an aspect ratio in the global coordinate system. More relevant would probably using a cell-local coordinate system.
### Proposal
Use the cell-local coordinate system calc...### Functionality to add/problem to solve
checkMesh calculates an aspect ratio in the global coordinate system. More relevant would probably using a cell-local coordinate system.
### Proposal
Use the cell-local coordinate system calculation from e.g. the cellDeterminant check and determine the aspect ratio in that.
### What does success look like, and how can we measure that?
Make e.g. cavity with a lot of grading. See if the reported aspect ratio changes if the case is rotated (e.g. using `transformPoints -rotate`)https://develop.openfoam.com/Development/openfoam/-/issues/1532Local Time Stepping for High Aspect Ratio Cells2022-04-26T16:10:39ZLiamLocal Time Stepping for High Aspect Ratio CellsLocal Time stepping an extremely effective method to obtain steady state solutions to a variety of cases. However, in cases with high aspect ratio cells, the local time-step becomes extremely small. This occurs in a number of situations,...Local Time stepping an extremely effective method to obtain steady state solutions to a variety of cases. However, in cases with high aspect ratio cells, the local time-step becomes extremely small. This occurs in a number of situations, specifically in cases where a wall resolved simulation is required. As the mesh must be refined to Y+ < 1, the aspect ratio becomes very high and the simulation begins to converge very slowly.
It has been shown in literature, and in other CFD codes, that taking into account the aspect ratio of the cell can speed up the convergence of the computation significantly (by an order of magnitude). In my own experience, certain cases (airfoils/de Lave nozzles) with high Reynolds number and thus very small Y+ = 1 distance, had an acceleration of over 100 times making these simulations optimum for parametric studies or optimization.
Implementing this feature which takes into account the aspect ratio of the cell in computing the local time-step would alleviate the number of iterations required to converge the solution in these cases. Literature on this can be found:
https://arc.aiaa.org/doi/pdf/10.2514/6.2001-2557
Additionally, this has been implemented into ANSYS Fluent under the name of "Convergence Acceleration for Stretched Meshes (CASM)".
http://www.pmt.usp.br/ACADEMIC/martoran/NotasModelosGrad/ANSYS%20Fluent%20Theory%20Guide%2015.pdf (PDF Pg. 699)
https://support.ansys.com/staticassets/ANSYS/Conference/Dallas/downloads/fluid-dynamics-14.0-update.pdf (PDF Pg. 14)
http://www.pmt.usp.br/academic/martoran/notasmodelosgrad/ANSYS%20Fluent%20Users%20Guide.pdf (PDF Pg. 1499)
An appropriate test case, for example, would be: NACA0012 with a wall-resolved mesh and the appropriate turbulence model for a wall-resolved RAS simulation. Running this at a high Re number would help high-light the effectiveness. Run the simulation with and without this new feature. The results should be effectively identical however using this feature the simulation should required significantly fewer iterations.v2206