openfoam merge requestshttps://develop.openfoam.com/Development/openfoam/-/merge_requests2020-12-21T18:06:59Zhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/417ENH: Added new filmFlux function object2020-12-21T18:06:59ZAndrew HeatherENH: Added new filmFlux function objectCalculates the mass flux for surface film models.
Example usage:
filmFlux
{
type filmFlux;
writeControl writeTime;
result myPhi; // optional
}Calculates the mass flux for surface film models.
Example usage:
filmFlux
{
type filmFlux;
writeControl writeTime;
result myPhi; // optional
}v2012Kutalmış BerçinKutalmış Berçinhttps://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/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/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/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/396Feature recycle particles2020-12-07T09:37:33ZAndrew HeatherFeature recycle particles### Summary
Added a new `recycleInteraction` lagrangian `patchInteractionModel`. This can be used to recycle/re-inject particles that would otherwise exit the domain.
### Details of new models (If applicable)
Example input in the `<...### Summary
Added a new `recycleInteraction` lagrangian `patchInteractionModel`. This can be used to recycle/re-inject particles that would otherwise exit the domain.
### Details of new models (If applicable)
Example input in the `<constant>/reactingCloud1Properties` file:
```
multiInteractionCoeffs
{
oneInteractionOnly no;
model2
{
patchInteractionModel recycleInteraction;
recycleInteractionCoeffs
{
recyclePatches ((outlet inlet2));
recycleFraction 0.8;
}
}
model1
{
patchInteractionModel standardWallInteraction;
standardWallInteractionCoeffs
{
type rebound;
}
writeToFile yes;
}
}
```
Here the `multiInteraction` model serves as a wrapper, whereby the a `standardWallInteraction` model is used for particle/wall interactions and the new `recycleInteraction` model to reinject particles that exit via the `outlet` patch back into the domain via `inlet2`.
When recycling the particles, the `recycleFraction` entry can be used to retain a certain amount of mass. In the example above, 80% of the mass of particles is reintroduced.
Example case: `$FOAM_SRC/lagrangian/reactingParcelFoam/recycleParticles`
### Risks
Low risk - modular extensionv2012Kutalmış BerçinKutalmış Berçinhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/394Updated surface handling2020-12-15T20:46:22ZMark OLESENUpdated surface handlingAdds more handling for abaqus formats, sampling on multiple patches/faceZone, handling of multiple weight fields.Adds more handling for abaqus formats, sampling on multiple patches/faceZone, handling of multiple weight fields.v2012Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/393ENH: BilgerMixtureFraction: New function object2020-12-15T08:55:31ZKutalmış BerçinENH: BilgerMixtureFraction: New function object### Summary
A contribution by a community member, @g3.
See https://develop.openfoam.com/Development/openfoam/-/issues/1915
### Details of new models (If applicable)
See https://develop.openfoam.com/Development/openfoam/-/issues/1915...### Summary
A contribution by a community member, @g3.
See https://develop.openfoam.com/Development/openfoam/-/issues/1915
### Details of new models (If applicable)
See https://develop.openfoam.com/Development/openfoam/-/issues/1915#note_49598
### Risks
N/A
### ~~WIP issues~~
- ~~The FO needs info from `specieComposition()`: see [the line](https://develop.openfoam.com/Development/openfoam/-/blob/feature-Bilger-mixture-fraction-fo/src/thermophysicalModels/reactionThermo/functionObjects/BilgerMixtureFraction/BilgerMixtureFraction.C#L278)~~
- ~~The function can be called through `ThermoType` (i.e. `thermoPhysicsTypes.H`), but there are too many template-template classes thereat. This would create a very long and thus annoyingly redundant piece of repeating code.~~
- ~~Instead, `ReactionThermo` could be used. But `ReactionThermo` does not have access to the info. Even in `TDACChemistryModel`, `specieComposition` was fetched through `ThermoType`.~~
- ~~Note that if `ReactionThermo` is used, some solvers may not run the FO.~~
[Bat-signal](https://en.wikipedia.org/wiki/Bat-Signal): @andy @Sergiov2012Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/391corrections and improvements for Function12020-11-20T15:18:27ZMark OLESENcorrections and improvements for Function1- easier support for non-mandatory functions.
- support for compatibility lookups
- support frequency or period for Sine/Cosine/Square Function1- easier support for non-mandatory functions.
- support for compatibility lookups
- support frequency or period for Sine/Cosine/Square Function1v2012Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/389Feature rationalize mpi configs2020-11-12T17:25:09ZMark OLESENFeature rationalize mpi configsThe configuration files, user preferences and wmake rules for MPI had become rather confusing and cumbersome. This is especially noticeable when trying to add in minor differences for handling system-level openmpi2 vs openmpit4 etc. Usin...The configuration files, user preferences and wmake rules for MPI had become rather confusing and cumbersome. This is especially noticeable when trying to add in minor differences for handling system-level openmpi2 vs openmpit4 etc. Using a single directory name 'openmpi-system' makes it difficult (impossible) to properly handle different major openmpi versions on the same system.
And additional problem was posed by the choice of preference names. An 'etc/config.sh/mpi' handles all MPI-related dispatch, whereas `etc/config.sh/openmpi` handles ThirdParty adjustments only. Thus make preferences clearly marked with a "prefs." prefix.
Reorganized MPI make rules for more commonality.
Incompatibility name change for advanced user:
- "openmpi-system" -> prefs.sys-openmpi
- "openmpi" -> prefs.openmpi
Prefix system-related mpi with `sys-`, for sorting and consistency.v2012Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/388add outer region to PDRblockMesh.2020-12-11T20:24:48ZMark OLESENadd outer region to PDRblockMesh.- adds treatment for outer expansions- adds treatment for outer expansionsv2012Andrew HeatherAndrew Heatherhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/385Issue 1871 ref ptr adjoint turbulence2020-12-04T07:33:42ZMark OLESENIssue 1871 ref ptr adjoint turbulence- reduces some code complexity.- reduces some code complexity.v2012Mark OLESENMark OLESEN