openfoam merge requestshttps://develop.openfoam.com/Development/openfoam/-/merge_requests2019-10-02T17:36:02Zhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/261BUG: resolve issue #1313 | stabilise SVDinv2019-10-02T17:36:02ZKutalmış BerçinBUG: resolve issue #1313 | stabilise SVDinvAdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/262STYLE: consistent Main Program horizontal line across Test*.C2019-10-07T16:30:51ZKutalmış BerçinSTYLE: consistent Main Program horizontal line across Test*.CMark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/263ENH: improved handling of regIOobject deletion (#1276)2019-06-04T19:18:03ZMark OLESENENH: improved handling of regIOobject deletion (#1276)- remove registration and ownership before deleting a regIOobject
from within objectRegistry to avoid possible recursion.
- regIOobject destructor now removes any registered object from
registry regardless if ownedByRegistry...- remove registration and ownership before deleting a regIOobject
from within objectRegistry to avoid possible recursion.
- regIOobject destructor now removes any registered object from
registry regardless if ownedByRegistry or not. It also removes
always removes the ownership flag to avoid possible recursion.
- the regIOobject::checkOut() now unconditionally clears file watches.
These will only be there if the object is registered (a no-op for an
unregistered object), but this additional safety is needed to manage
case where the registration has been modified elsewhere (eg, by the
objectRegistry).
AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/264Feature complex cleanup2019-06-04T10:35:36ZKutalmış BerçinFeature complex cleanupMark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/265ENH: add PDRsetFields utility2019-12-17T10:07:43ZMark OLESENENH: add PDRsetFields utility- the PDRsetFields utility processes a set of geometrical obstructions
to determine the equivalent blockage effects.
These fields are necessary inputs for PDRFoam calculations.
![simple-cage](/uploads/6782621d04c86e360314258cc...- the PDRsetFields utility processes a set of geometrical obstructions
to determine the equivalent blockage effects.
These fields are necessary inputs for PDRFoam calculations.
![simple-cage](/uploads/6782621d04c86e360314258cc96f3bc0/simple-cage.png)v1912Sergio FerrarisSergio Ferrarishttps://develop.openfoam.com/Development/openfoam/-/merge_requests/266Feature vof update solvers2019-06-07T08:38:37ZSergio FerrarisFeature vof update solversNew chtMultiRegionTwoPhaseEulerFoam solver, plus corresponding BC's. Integrated MULES and CMULES new interfaces and the corresponding multiphase solvers and tutorials. All multiphase Euler tutorials are updated.
Inter type of tutorials h...New chtMultiRegionTwoPhaseEulerFoam solver, plus corresponding BC's. Integrated MULES and CMULES new interfaces and the corresponding multiphase solvers and tutorials. All multiphase Euler tutorials are updated.
Inter type of tutorials have been tested (to confirm the correct modification of new MULESinterfaces)
New library src/phaseSystemModels for the phases systems, sub-models, BC's, turbulence of the solver twoPhaseReactingEulerFoam and multiphaseReactingEulerFoam. This lib was taken out of the Euler solvers and located on /srcv1906AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/267TUT: pimpleFoam/channelDFSEM395 - added example use of Lamb vector2019-06-13T20:21:39ZKutalmış BerçinTUT: pimpleFoam/channelDFSEM395 - added example use of Lamb vectorTested settingsTested settingsAdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/268New QRMatrix, HessenbergMatrix and EigenMatrix2019-11-12T20:35:38ZKutalmış BerçinNew QRMatrix, HessenbergMatrix and EigenMatrixAdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/269Integration adjoint2019-06-19T21:07:00ZAdminIntegration adjoint## New adjoint optimisation and tools
A set of libraries and executables creating a workflow for performing
gradient-based optimisation loops. The main executable (adjointOptimisationFoam)
solves the flow (primal) equations, followe...## New adjoint optimisation and tools
A set of libraries and executables creating a workflow for performing
gradient-based optimisation loops. The main executable (adjointOptimisationFoam)
solves the flow (primal) equations, followed by the adjoint equations and,
eventually, the computation of sensitivity derivatives.
Current functionality supports the solution of the adjoint equations for
incompressible turbulent flows, including the adjoint to the Spalart-Allmaras
turbulence model and the adjoint to the nutUSpaldingWallFunction, [1], [2].
Sensitivity derivatives are computed with respect to the normal displacement of
boundary wall nodes/faces (the so-called sensitivity maps) following the
Enhanced Surface Integrals (E-SI) formulation, [3].
The software was developed by PCOpt/NTUA and FOSS GP, with contributions from
- Dr. Evangelos Papoutsis-Kiachagias,
- Konstantinos Gkaragounis,
- Professor Kyriakos Giannakoglou,
- Andy Heather
and contributions in earlier version from
- Dr. Ioannis Kavvadias,
- Dr. Alexandros Zymaris,
- Dr. Dimitrios Papadimitriou
[1] A.S. Zymaris, D.I. Papadimitriou, K.C. Giannakoglou, and C. Othmer.
Continuous adjoint approach to the Spalart-Allmaras turbulence model for
incompressible flows. Computers & Fluids, 38(8):1528–1538, 2009.
[2] E.M. Papoutsis-Kiachagias and K.C. Giannakoglou. Continuous adjoint methods
for turbulent flows, applied to shape and topology optimization: Industrial
applications. 23(2):255–299, 2016.
[3] I.S. Kavvadias, E.M. Papoutsis-Kiachagias, and K.C. Giannakoglou. On the
proper treatment of grid sensitivities in continuous adjoint methods for shape
optimization. Journal of Computational Physics, 301:1–18, 2015.
## Integration
Integration into the official OpenFOAM release by OpenCFDv1906AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/270Feature simplify fatal error2019-07-17T19:34:00ZMark OLESENFeature simplify fatal errorUses the newly introduced `FatalErrorInLookup` and `FatalIOErrorInLookip` (issue #1362) for cleaner and more consistent handling of lookup errors (especially for the runTime selectable mechanism).Uses the newly introduced `FatalErrorInLookup` and `FatalIOErrorInLookip` (issue #1362) for cleaner and more consistent handling of lookup errors (especially for the runTime selectable mechanism).AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/271lumped point motion using local linear basic functions (#1341)2020-06-17T14:15:52ZMark OLESENlumped point motion using local linear basic functions (#1341)Extends lumped point motion to support multiple connectivity.
Examples include structures such as bridges.Extends lumped point motion to support multiple connectivity.
Examples include structures such as bridges.v2006Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/272Feature mixed precision2019-08-13T11:07:08ZMark OLESENFeature mixed precisionThis set of changes makes it easier to identify and manage binary reading from different representations. For example, a binary file written from an OpenFOAM installation with WM_SP, WM_LABEL_SIZE=32 can be read back as WM_DP and/or WM_L...This set of changes makes it easier to identify and manage binary reading from different representations. For example, a binary file written from an OpenFOAM installation with WM_SP, WM_LABEL_SIZE=32 can be read back as WM_DP and/or WM_LABEL_SIZE=64. This is managed internally by using the "arch" information that is included in the binary output files. For example,
```
FoamFile
{
version 2.0;
format binary;
class vectorField;
arch "LSB;label=32;scalar=64";
location "constant/polyMesh";
object points;
}
```
On reading, the size information is used to determine if the label/scalar sizes in the file correspond to the *native* version of the currently active OpenFOAM installation. If the values are identical, the binary file reading is as always. If, however, there is a discrepancy between the label/scalar sizes in the file and the current OpenFOAM sizes, the values will be read in the raw format and converted on-the-fly. This adds no additional memory overhead, but can potentially result in somewhat lower reading speeds. There are some additional operations when narrowing the representation (eg, reading in double but saving as float) to avoid underflow and overflow, but it cannot work magic. If your input file has 1e10 faces, the addressing will not fit into a signed or unsigned 32-bit integer.
To manage the reading, the new trait structures `is_contiguous`, `is_contiguous_label`, `is_contiguous_scalar` are used. For data payloads that comprise homogenous base types (ie, the lowest level component is entirely scalar or label) the Detail::readContiguous is used for managing the reading in a uniform manner. For heterogeneous data types, the author of the class must address this individually. This is typically in the following form:
```
if (is.format() == IOstream::ASCII)
{
is >> start_ >> end_ >> level_ >> i_ >> j_ >> k_;
}
else if (!is.checkLabelSize<>() || !is.checkScalarSize<>())
{
// Non-native label or scalar size
is.beginRawRead();
readRawScalar(is, start_.data(), vector::nComponents);
readRawScalar(is, end_.data(), vector::nComponents);
readRawLabel(is, &level_);
readRawLabel(is, &i_);
readRawLabel(is, &j_);
readRawLabel(is, &k_);
is.endRawRead();
}
else
{
is.read
(
reinterpret_cast<char*>(&start_),
sizeofFields_
);
}
```
### Limitation
Changes in the endian type are not handled.v1912AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/273Feature cloud improvements2019-08-06T13:32:03ZMark OLESENFeature cloud improvementsThe main impact of the changes are the addition of nParcels() as a base-level virtual in cloud, which enables quick querying of any derived cloud without the hassle of attempting to cast the regIOobject into any particular `Cloud<Particl...The main impact of the changes are the addition of nParcels() as a base-level virtual in cloud, which enables quick querying of any derived cloud without the hassle of attempting to cast the regIOobject into any particular `Cloud<ParticleType>` type. Similarly, the zero-initialized constructors make it much easier to generate any particle type before filling out with more details and adding to a cloud.v1912AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/274BUG: add a warning in star4ToFoam for .cel files containing only shell entrie...2019-09-05T08:21:19ZKutalmış BerçinBUG: add a warning in star4ToFoam for .cel files containing only shell entries (#1425)AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/275TUT: add static surface pressure coefficient sampling and plotting (#1438)2019-10-02T17:35:40ZKutalmış BerçinTUT: add static surface pressure coefficient sampling and plotting (#1438)AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/276BUG: Add writeDivider to foamDictionary (#1444)2019-09-23T14:47:27ZKutalmış BerçinBUG: Add writeDivider to foamDictionary (#1444)Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/277add stringOps::toScalar and '#eval' dictionary directive2019-09-30T19:54:46ZMark OLESENadd stringOps::toScalar and '#eval' dictionary directiveThe #eval directive is similar to the #calc directive, but for evaluating string expressions into scalar values using an internal parser for the evaluationThe #eval directive is similar to the #calc directive, but for evaluating string expressions into scalar values using an internal parser for the evaluationAdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/278Integration of OpenFOAM.org | Wall functions2019-10-03T10:34:11ZKutalmış BerçinIntegration of OpenFOAM.org | Wall functionsAdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/279TUT: add Allclean script into bump2D2019-10-03T11:00:07ZKutalmış BerçinTUT: add Allclean script into bump2DAdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/280improvements to stringOps::expand operations2019-10-08T12:38:29ZMark OLESENimprovements to stringOps::expand operations- added numerical evaluation in string expansion
- refactored expansion code to use common multi-parameter backend- added numerical evaluation in string expansion
- refactored expansion code to use common multi-parameter backendAdminAdmin