openfoam merge requestshttps://develop.openfoam.com/Development/openfoam/-/merge_requests2020-12-18T12:31:09Zhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/416INT: reactingParcelFoam: add dynamicMeshMotion capabilities2020-12-18T12:31:09ZKutalmış BerçinINT: reactingParcelFoam: add dynamicMeshMotion capabilities### Summary
With the commit, `reactingParcelFoam` and `dynamicMeshMotion` functionalities can operate in combination.
### Resolved bugs
N/A
### Details of new models
![Screenshot_from_2020-12-18_11-15-32](/uploads/8d3aa99fbbee61ea99...### Summary
With the commit, `reactingParcelFoam` and `dynamicMeshMotion` functionalities can operate in combination.
### Resolved bugs
N/A
### Details of new models
![Screenshot_from_2020-12-18_11-15-32](/uploads/8d3aa99fbbee61ea99b5e3e77cf0affe/Screenshot_from_2020-12-18_11-15-32.png)
![Screenshot_from_2020-12-18_11-15-26](/uploads/b47c7c2884ea1d7dec687cd1d2d9de06/Screenshot_from_2020-12-18_11-15-26.png)
![Screenshot_from_2020-12-18_11-15-21](/uploads/7a9f3e1f26ac93750fad4706c0dd7260/Screenshot_from_2020-12-18_11-15-21.png)
### Risks
The effect of the changes on some of the `reactingParcelFoam` tutorials:
[log.reactingParcelFoam.recycle.new.gz](/uploads/a10d56ee2250ca635e256bb71bebf14a/log.reactingParcelFoam.recycle.new.gz)
[log.reactingParcelFoam.recycle.old.gz](/uploads/e8116a3f47b039397674005cc9c08125/log.reactingParcelFoam.recycle.old.gz)
[log.reactingParcelFoam.filter.new.gz](/uploads/67036e0708a72eda8297ce321e5aa888/log.reactingParcelFoam.filter.new.gz)
[log.reactingParcelFoam.filter.old.gz](/uploads/b8b07b7d3dcedf644ab57c05216acc3e/log.reactingParcelFoam.filter.old.gz)
[log.reactingParcelFoam.verticalChannel.old.gz](/uploads/4eca9adb52b5ba89b72701be5ddba19a/log.reactingParcelFoam.verticalChannel.old.gz)
[log.reactingParcelFoam.verticalChannel.new.gz](/uploads/2c26d571b653dd67551292e5a607f252/log.reactingParcelFoam.verticalChannel.new.gz)Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/415Draft: Integration of PDRfitMesh2021-11-10T14:26:44ZMark OLESENDraft: Integration of PDRfitMeshhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/414Feature function1 limit range2020-12-16T17:13:16ZAndrew HeatherFeature function1 limit rangeFunction1 wrapper that limits the input range of another Function1
Example usage for limiting a polynomial:
limitedPolyTest limitRange;
limitedPolyTestCoeffs
{
min 0.4;
max 1.4...Function1 wrapper that limits the input range of another Function1
Example usage for limiting a polynomial:
limitedPolyTest limitRange;
limitedPolyTestCoeffs
{
min 0.4;
max 1.4;
value polynomial
(
(5 1)
(-2 2)
(-2 3)
(1 4)
);
}
Here the return value will be:
- poly(0.4) for x <= 0.4;
- poly(1.4) for x >= 1.4; and
- poly(x) for 0.4 < x < 1.4.v2012Mattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/413BUG: volFieldValue FO: parallel/empty output (#1853 #1849)2020-12-16T17:09:19ZKutalmış BerçinBUG: volFieldValue FO: parallel/empty output (#1853 #1849)- TUT: volFieldValue FO: adds usage example
- TUT: multiply FO: adds usage example- TUT: volFieldValue FO: adds usage example
- TUT: multiply FO: adds usage exampleAndrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/412TUT: Alltest: Corrections2020-12-11T14:34:58ZKutalmış BerçinTUT: Alltest: CorrectionsAndrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/411Feature runtime selection geometry2021-07-06T16:39:04ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comFeature runtime selection geometry### Summary
Have user selectable scheme for calculating the geometry factors (centres, volumes, correctionvectors etc)
### Resolved bugs (If applicable)
Better handling of high-aspect ratio cells. See e.g.
https://develop.openfoam.com...### Summary
Have user selectable scheme for calculating the geometry factors (centres, volumes, correctionvectors etc)
### Resolved bugs (If applicable)
Better handling of high-aspect ratio cells. See e.g.
https://develop.openfoam.com/Development/openfoam/-/issues/1519
More flexibility in specialised handling of mesh types.
### Details of new models (If applicable)
`system/fvSchemes` has a new optional entry `geometry` which selects the geometry scheme:
```
geometry
{
type highAspectRatio;
minAspect 10;
maxAspect 100;
}
```
The default (called `basic`) is the normal, `primitiveMesh` functionality. The additional set of geometry schemes are:
- highAspectRatio : for high-aspect ratio cells reverts to face-area weighted face-centre average. This avoids large truncation errors for extreme aspect ratio cells (at the cost of loosing 2nd order centroid calculation). It is useful for running e.g. tet-meshes with low-Re extrusion layers.
- averageNeighbour : version of `highAspectRatio` that assumes extruded cells and tries to align cell centres on either side of a face.
- stabilised : this is the Foundation's alternative method of calculating the face centre/area (area contributions weighted with the normal). Note that it only affects the mesh faces calculation, not that of the individual faces
Apart from the `basic` scheme the various alternatives are still under development.
### Risks
Default is identical behaviour. The run-time selection is performed at the fvSchemes level so e.g. application working on the polyMesh instead of fvMesh level (e.g. blockMesh) will not use the new structure.Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/410ENH: Function objects - added new 'multiply' function object2020-12-14T16:08:55ZAndrew HeatherENH: Function objects - added new 'multiply' function objectMultiplies a given list of (at least two or more) fields and outputs the result into a new field.
fieldResult = field1 * field2 * ... * fieldN
Minimal example by using `system/controlDict` functions:
multiply1
{
//...Multiplies a given list of (at least two or more) fields and outputs the result into a new field.
fieldResult = field1 * field2 * ... * fieldN
Minimal example by using `system/controlDict` functions:
multiply1
{
// Mandatory entries (unmodifiable)
type multiply;
libs (fieldFunctionObjects);
// Mandatory (inherited) entry (runtime modifiable)
fields (<field1> <field2> ... <fieldN>);
// Optional (inherited) entries
...
}
Serves as a precursor to a more general function object based on the `fieldExpression` toolchainv2012Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/409ENH: Lagrangian - added new PatchInteractionFields cloud function object2020-12-10T17:26:04ZAndrew HeatherENH: Lagrangian - added new PatchInteractionFields cloud function objectCreates volume fields whose boundaries are used to store patch interaction statistics.
Current field output per patch face:
- \<cloud\>\<model\>:count - cumulative particle hits
- \<cloud\>\<model\>:mass - cumuluative mass of hitting pa...Creates volume fields whose boundaries are used to store patch interaction statistics.
Current field output per patch face:
- \<cloud\>\<model\>:count - cumulative particle hits
- \<cloud\>\<model\>:mass - cumuluative mass of hitting particles
Fields can be reset according to:
- none: fields are not reset
- timeStep: reset at each time step
- writeTime: reset at each write time
Usage
patchInteractionFields1
{
type patchInteractionFields;
resetMode writeTime;
}
See test case `$FOAM_TUTORIALS/lagrangian/reactingParcelFoam/filter`v2012Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/408ENH: noise models - added A, B, C, and D weightings to SPL2020-12-11T20:22:09ZAndrew HeatherENH: noise models - added A, B, C, and D weightings to SPL### Summary
Added A, B, C and D weightings to the SPL predictions and code refactoring
### Resolved bugs (If applicable)
none
### Details of new models (If applicable)
Gains:
![noiseModelWeights](/uploads/cbc1c76a7f5e3e6c9ccbbd64...### Summary
Added A, B, C and D weightings to the SPL predictions and code refactoring
### Resolved bugs (If applicable)
none
### Details of new models (If applicable)
Gains:
![noiseModelWeights](/uploads/cbc1c76a7f5e3e6c9ccbbd646e20dc53/noiseModelWeights.png)
### Risks
(Possible regressions?)
code refactoring - point and surface noise functionality needs to be confirmed
(Changes to user inputs?)
nonev2012Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/407Feature iso distance surface2020-12-11T16:45:34ZMark OLESENFeature iso distance surface- Adds improved handling of distance surface edges (#1950)
- freshened some of the iso-surface and sampling surface infrastructure to eliminate duplicate code, support cellZones for all iso-surface types.
- support multiple offsets for c...- Adds improved handling of distance surface edges (#1950)
- freshened some of the iso-surface and sampling surface infrastructure to eliminate duplicate code, support cellZones for all iso-surface types.
- support multiple offsets for cutting planes and multiple iso-valuesAndrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/406ENH: MPPIC dynamic mesh2020-12-17T21:18:00ZSergio FerrarisENH: MPPIC dynamic meshMajor changes:
- `MPPICCloud` and `MPPIC` parcel are not longer used. The `MPPIC` sub-models were added to the kinematic cloud. (files were not yet deleted)
- `MPPICDyMFoam` and `DPMDyMFoam` are updated to use the kinematic cloud.
- Aff...Major changes:
- `MPPICCloud` and `MPPIC` parcel are not longer used. The `MPPIC` sub-models were added to the kinematic cloud. (files were not yet deleted)
- `MPPICDyMFoam` and `DPMDyMFoam` are updated to use the kinematic cloud.
- Affecting tracking and general functionality :
dc4deb024b4c21bf13d7d79fb85153f9dc9cf89a (org)
c68e10378b1efc6a82cf9bf845e43aef49bb7665 (org)
2045de687433674739b8fc399bdb34d4975a3b38 (org)
9b57bc1855f073cedd47e407692a0e9beefe35dd : affects tgtPointFace srcPointFace member functions
- The rest are specific for `MPPIC`-submodels into kinematic cloud, wall interaction and AMI.v2012Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/405Feature var rho turb vof2020-12-16T17:57:47ZSergio FerrarisFeature var rho turb vof1) PhaseIncompressibleTurbulenceModel class was changed to use
uniform alpha and non-uniform rho templates. This fits the need
of incompressible two phase turbulence models.
2) A new type DPMIncompressibleTurbulenceModel was creat...1) PhaseIncompressibleTurbulenceModel class was changed to use
uniform alpha and non-uniform rho templates. This fits the need
of incompressible two phase turbulence models.
2) A new type DPMIncompressibleTurbulenceModel was created for
non-uniform alpha and uniform rho. It is used in single phase flows
in DPM solvers where alpha represents the volumen occupancy.
3) A new type incompressibleRhoTurbulenceModel was created where
non-uniform rho is allowed.
4) A new base templated turbulent class for two-phase VOF named
VoFphaseTurbulentTransportModel was implemented which is created
templating on PhaseIncompressibleTurbulenceModel and
incompressibleRhoTurbulenceModel
5) In order to make the chnage to rho based VOF turbulence a help
class was added incompressibleInterPhaseTransportModel templated
on the mixing.v2012Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/404New vibro-acoustic model suite2020-12-10T13:38:38ZSergio FerrarisNew vibro-acoustic model suite - New solver: `acousticFoam`
- New base finite-area region class: `regionFaModel`
- New base shell model classes:
- `vibrationShellModel`
- `thermalShellModel`
- New shell models:
- A vibration-shell model: `Kirchhoff... - New solver: `acousticFoam`
- New base finite-area region class: `regionFaModel`
- New base shell model classes:
- `vibrationShellModel`
- `thermalShellModel`
- New shell models:
- A vibration-shell model: `KirchhoffShell`
- A thermal-shell model: `thermalShell`
- New finite-area/finite-volume boundary conditions:
- `clampedPlate`
- `timeVaryingFixedValue`
- `acousticWaveTransmissive`
- New base classes for `fvOption` of finite-area methods: `faOption`
- New `faOption`s:
- `contactHeatFluxSource`
- `externalFileSource`
- `externalHeatFluxSource`
- `jouleHeatingSource`
- New tutorial: `compressible/acousticFoam/obliqueAirJet`v2012Kutalmış BerçinKutalmış Berçinhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/403BUG: globalSum needed in the merit functions' directional derivative (fixes #...2020-12-11T17:39:02ZVaggelis PapoutsisBUG: globalSum needed in the merit functions' directional derivative (fixes #1949)Does not affect the current functionality of shape optimisation.Does not affect the current functionality of shape optimisation.v2012Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/402BUG: Wrong First extrapolated value of the merit function (fixes #1948)2020-12-11T17:37:36ZVaggelis PapoutsisBUG: Wrong First extrapolated value of the merit function (fixes #1948)Affected only the first optimisation cycle, if line search was enabled
If eta was not set explicitly, it was computed after evaluating the
directional derivative of the merit function, which was computed
wrongly, leading to an erroneous...Affected only the first optimisation cycle, if line search was enabled
If eta was not set explicitly, it was computed after evaluating the
directional derivative of the merit function, which was computed
wrongly, leading to an erroneous value of the extrapolated merit
function value.v2012Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/401BUG: collated format and writing of NURBS3DVolume CPs - see #19472020-12-14T18:07:05ZVaggelis PapoutsisBUG: collated format and writing of NURBS3DVolume CPs - see #1947The if(Pstream::master()) clause in NURBS3DVolume::writeCpsInDict() was
causing the fileName of the regIOobject not to be allocated in all
processors, giving problems when masterUncollatedFileOperation::masterOp
was called by collatedFil...The if(Pstream::master()) clause in NURBS3DVolume::writeCpsInDict() was
causing the fileName of the regIOobject not to be allocated in all
processors, giving problems when masterUncollatedFileOperation::masterOp
was called by collatedFileOperation::writeObject for the mkDirOp.v2012Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/400Adjoint: release candidate for v20122020-12-11T17:24:05ZVaggelis PapoutsisAdjoint: release candidate for v2012### Summary
Some code improvements and minor additions to the adjoint library prior v2012.
### Details of new models
- A new type for defining control points in volumetric B-Splines, allowing for the translation, rotation and scaling...### Summary
Some code improvements and minor additions to the adjoint library prior v2012.
### Details of new models
- A new type for defining control points in volumetric B-Splines, allowing for the translation, rotation and scaling of a morphing box. See tutorial under
$FOAM_TUTORIALS/incompressible/adjointOptimisationFoam/shapeOptimisation/sbend/laminar/opt/unconstrained/BFGS-transformBox
- A slightly different formulation/discretization pertaining to the E-SI approach for computing sensitivity maps.
### Risks
Changes to user inputs
- when running adjointOptimisationFoam, fvOptions for the primal equations are now read from the fvOptions dictionary in system, instead of an fvOptions sub-dictioanry within the primal solver's dictionary in the optimisationDict.
- when running adjointOptimisationFoam, fvOptions for the adjoint equations are now read from the fvOptions dictionary in system, instead of an fvOptions sub-dictioanry within the adjoint solver's dictionary in the optimisationDict.v2012Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/399ENH: outletMappedUniformInlet: add optional fraction and offset2020-12-16T18:28:32ZKutalmış BerçinENH: outletMappedUniformInlet: add optional fraction and offset### Summary
The new functionality optionally allows the patch-averaged
value to be scaled and/or offset by a pair of specified values.
Example of the boundary condition specification:
```
<patchName>
{
// Mandatory entries...### Summary
The new functionality optionally allows the patch-averaged
value to be scaled and/or offset by a pair of specified values.
Example of the boundary condition specification:
```
<patchName>
{
// Mandatory entries (unmodifiable)
type outletMappedFilterInlet;
outletPatch <outletPatchName>;
// Optional entries (unmodifiable)
fraction 0.1;
offset 10; // (1 0 0);
phi phi;
// Optional (inherited) entries
...
}
```
### Details of new models
**The tutorial `airRecirculationRoom` and related visualisations are exclusively prepared by _Alseny Diallo_**.
![Screenshot_from_2020-12-10_17-22-44](/uploads/0ca11fb914f02e7f7563d0df3e800b07/Screenshot_from_2020-12-10_17-22-44.png)
![Screenshot_from_2020-12-10_18-31-08](/uploads/10d4056dd7bdaed45d29b6e0aaddadc5/Screenshot_from_2020-12-10_18-31-08.png)
![Screenshot_from_2020-12-10_18-17-30](/uploads/83048e2a11c6ace6f8ac13cdf266fd5d/Screenshot_from_2020-12-10_18-17-30.png)
![Screenshot_from_2020-12-10_17-24-11](/uploads/cb9d2e00f334ee41f3ec8e7ff07d6902/Screenshot_from_2020-12-10_17-24-11.png)
![Screenshot_from_2020-12-10_17-24-20](/uploads/38cb29fa995ff837ed520b05c9ab37a6/Screenshot_from_2020-12-10_17-24-20.png)
![Screenshot_from_2020-12-10_17-23-19](/uploads/64a9c92d494ff19cd90e8df1a5b02bc7/Screenshot_from_2020-12-10_17-23-19.png)
![Screenshot_from_2020-12-10_18-09-54](/uploads/40806bc5b100b397998d6e5db55c3e4f/Screenshot_from_2020-12-10_18-09-54.png)
### Risks
- The bug fix may further need to be tested.
- No change to user input.Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/398Feature local world2020-12-09T23:42:45ZMattijs Janssens4-Mattijs@users.noreply.develop.openfoam.comFeature local world### Summary
Coupling (unadapted) different solvers using the 'mapped' boundary conditions. Each solver runs in its own 'world' and the boundary condition specifies the remote 'world' to communicate with. This is in addition to the remot...### Summary
Coupling (unadapted) different solvers using the 'mapped' boundary conditions. Each solver runs in its own 'world' and the boundary condition specifies the remote 'world' to communicate with. This is in addition to the remote region and patch.
### Resolved bugs (If applicable)
(Links to issues)
### Details of new models (If applicable)
All the solver take a new 'world' option to name the simulation. All the 'mapped' type boundary conditions take an additional 'sampleWorld' input to indicate which world to exchange data with. Default is direct exchange so every 'evaluate' needs to be replicated on the other world. Additional there is an indirect exchange which uses a functionObject to do the exchange once per time step. This add additional explicitness but allows running with e.g. different numbers of correctors.
### Risks
(Possible regressions?)
(Changes to user inputs?)
Only affects coupling boundary conditions ('mapped', 'mappedMixed', 'turbulentMappedXXX' etc) so should have no impact apart from that.v2012Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/397ENH: buoyantTurbSource: new fvOption2020-12-08T16:54:52ZKutalmış BerçinENH: buoyantTurbSource: new fvOptionAndrew HeatherAndrew Heather