openfoam merge requestshttps://develop.openfoam.com/Development/openfoam/-/merge_requests2016-11-09T14:58:43Zhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/75Feature keep sampled pids2016-11-09T14:58:43ZMark OLESENFeature keep sampled pidsRebased version of merge request !58, following ticket closure for issue #104 .Rebased version of merge request !58, following ticket closure for issue #104 .Version v1612Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/77Surface declutter - issue #2942016-11-14T12:43:40ZMark OLESENSurface declutter - issue #294Removing various clutter from surfMesh and triSurface
- unused classes/files (backup copies on non-release repo)
- relocate some triSurface-related classes to where they make more sense, and where they can be reused.
- improve handlin...Removing various clutter from surfMesh and triSurface
- unused classes/files (backup copies on non-release repo)
- relocate some triSurface-related classes to where they make more sense, and where they can be reused.
- improve handling of various face types in MeshedSurface and UnsortedMeshedSurface (to bridge the gap to triSurface)
- improve transfer methods for reclaiming/reusing surface allocationsVersion v1612Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/80Feature noise multiple files2016-11-28T13:50:15ZAdminFeature noise multiple filesEnabled pointNoise and surfaceNoise models to operate on multiple input files
- For each model, the files should be specified by the `inputFiles` keyword
- When applied to pointNoise, the file is no longer required when specifying the CS...Enabled pointNoise and surfaceNoise models to operate on multiple input files
- For each model, the files should be specified by the `inputFiles` keyword
- When applied to pointNoise, the file is no longer required when specifying the CSV input data
- the singular `inputFile` entry is still available to the surfaceNoise model for backwards compatibiltyVersion v1612https://develop.openfoam.com/Development/openfoam/-/merge_requests/87Surf field sampling2016-12-15T17:34:46ZMark OLESENSurf field samplingVersion v1612AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/89ENH: runTimePostProcessing - added option to clear/remove objects after use2016-12-15T15:51:15ZAdminENH: runTimePostProcessing - added option to clear/remove objects after useWhen specifying line and surface function-object-based visualisation, use the optional `clearObjects` flag to indicate that source objects should be removed/cleared after use.
Test case: [cavity.tgz](/uploads/62cc2761d132f42456f2af08f14...When specifying line and surface function-object-based visualisation, use the optional `clearObjects` flag to indicate that source objects should be removed/cleared after use.
Test case: [cavity.tgz](/uploads/62cc2761d132f42456f2af08f1499eba/cavity.tgz)
Syntax:
```
surfaces
{
cuttingPlane1
{
type functionObject;
functionObject cuttingPlane;
clearObjects yes; // new option
...
```
Note: only files that have been used will be removed, e.g. if a function object has created multiple surface files, unused files will remain at the end of the run - in the attached case the p surface remains...Version v1612AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/62ENH: wallDist - added option to evaluate every XXX steps2016-10-04T07:58:05ZAdminENH: wallDist - added option to evaluate every XXX stepsAdded functionality to update the wall distance every XXX steps
Note: only applies to movePoints() - topology change bypasses the update interval and triggers a re-calculation
Syntax:
```
wallDist
{
method ...
u...Added functionality to update the wall distance every XXX steps
Note: only applies to movePoints() - topology change bypasses the update interval and triggers a re-calculation
Syntax:
```
wallDist
{
method ...
updateInterval 5; // optional - default is 1
}
```
Test case: [mixerVesselAMI2D.tgz](/uploads/c0bee1decc0337018272f3566b6a4416/mixerVesselAMI2D.tgz)Version v1612AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/83ENH: improve objectRegistry functionality (issue #322)2016-12-06T10:48:43ZMark OLESENENH: improve objectRegistry functionality (issue #322)- Recursive searching for objects within a registry is now optional
(previous it was always done).
A recursive search effectively blocks the construction of sub-sub-registries
if their names are 'masked' by some parent level sub-r...- Recursive searching for objects within a registry is now optional
(previous it was always done).
A recursive search effectively blocks the construction of sub-sub-registries
if their names are 'masked' by some parent level sub-registry with
the same name! (BUG)
- Recursive search is now turned OFF by default, which makes it consistent
with dictionary and probably causes the least number of surprises.
----
Various new convenience methods added:
lookupObjectRef()
- returns a non-const reference.
For example,
volScalarField& U = mesh().lookupObjectRef<volScalarField>("U");
Instead of
volScalarField& U = const_cast<volScalarField&>
(
mesh().lookupObject<volScalarField>("U")
);
--
lookupObjectPtr()
- returns a const pointer, and nullptr on failure.
For example,
const volScalarField* Uptr = mesh().lookupObjectPtr<volScalarField>("U");
if (Uptr)
{
const volScalarField& U = *Uptr;
...
}
Instead of
if (mesh().foundObject<volScalarField>("U"))
{
const volScalarField& U = mesh().lookupObject<volScalarField>("U");
...
}
--
lookupObjectRefPtr()
- returns a non-const pointer, and nullptr on failure.
For example,
volScalarField* Uptr = mesh().lookupObjectRefPtr<volScalarField>("U");
if (Uptr)
{
volScalarField& U = *Uptr; // use as reference
(*Uptr) = ...; // or use directly
}
Instead of
if (mesh().foundObject<volScalarField>("U"))
{
volScalarField& U = const_cast<volScalarField&>
(
mesh().lookupObject<volScalarField>("U")
);
}
--
sortedNames()
- now works with template parameters and with regular expression
matching as well.
For example,
wordList names = mesh().sortedNames();
wordList fields = mesh().sortedName<volScalarField>();
Instead of
wordList names = mesh().sortedNames();
wordList fields = mesh().names<volScalarField>();
Foam::sort(fields);
--Version v1612AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/81runTimePostProcessing FO camera update2016-12-06T09:24:24ZAdminrunTimePostProcessing FO camera update- Removed the camera 'mode'
- The (old) static camera was only appropriate when parallel
projection was inactive, and the view was centred at (0 0 0)
- Camera input now always requires 'position' and 'focalPoint'
- ...- Removed the camera 'mode'
- The (old) static camera was only appropriate when parallel
projection was inactive, and the view was centred at (0 0 0)
- Camera input now always requires 'position' and 'focalPoint'
- Clip box is now optional. Note that this is applied after the
camera
set-up and so will override the camera position
- View angle is only appropriate when not using parallel projection
- Zoom now required, applied after all other operations
- 1 = do nothing, >1 = zoom in, <1 = zoom out
Example input:
```
camera
{
// Total number of frames to generate
nFrameTotal 1;
// Parallel projection flag
parallelProjection no;
focalPoint (0 0 0);
up (0 1 0);
position (0 0 1);
// Optional entries
clipBox (-0.0206 -0.0254 -0.0005) (0.29 0.0254 0.0005);
viewAngle 20;
zoom 1.1;
}
```Version v1612AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/88Integration of ihcantabria wave models2017-05-23T15:12:23ZAdminIntegration of ihcantabria wave modelsIntegration of functionality produced by The Environmental Hydraulics Institute "IHCantabria" (http://www.ihcantabria.com/en/)
- Original code introduced in commit f5ae874b
- Restructured and updated by OpenCFD into a new `waveModels...Integration of functionality produced by The Environmental Hydraulics Institute "IHCantabria" (http://www.ihcantabria.com/en/)
- Original code introduced in commit f5ae874b
- Restructured and updated by OpenCFD into a new `waveModels` library available to the interFoam family of solvers
Main source:
`$FOAM_SRC/waveModels`
Tutorials:
`$FOAM_TUTORIALS/multiphase/interFoam/laminar/waveExample*`
Capabilities include:
- Wave generation
- Solitary wave using Boussinesq theory
- Cnoidal wave theory
- StokesI, StokesII, StokesV wave theory
- Active wave absorption at the inflow/outflow boundaries based on shallow water theory
IHCantabria Authors:
- Javier Lopez Lara (jav.lopez@unican.es)
- Gabriel Barajas (barajasg@unican.es)
- Inigo Losada (losadai@unican.es)
Based on the references
- [Higuera, P., Lara, J.L. and Losada, I.J. Three-Dimensional Interaction of Waves and Porous Coastal Structures using OpenFOAM. Part I: Formulation and Validation, Coastal Engineering, 83:243-258, 2014](http://dx.doi.org/10.1016/j.coastaleng.2013.08.010)
- [Higuera, P., Lara, J.L. and Losada, I.J. Three-Dimensional Interaction of Waves and Porous Coastal Structures using OpenFOAM. Part II: Application, Coastal Engineering, 83:259-270, 2014](http://dx.doi.org/10.1016/j.coastaleng.2013.09.002)
- [Higuera, P., Lara, J.L. and Losada, I.J. Simulating Coastal Engineering Processes with OpenFOAM. Coastal Engineering, 71:119-134, 2013](http://dx.doi.org/10.1016/j.coastaleng.2012.06.002)
- [Higuera, P., Lara, J.L. and Losada, I.J. Realistic Wave Generation and Active Wave Absorption for Navier-Stokes Models, Application to OpenFOAM. Coastal Engineering, 71:102-118, 2013](http://dx.doi.org/10.1016/j.coastaleng.2012.07.002)
Version v1612AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/76Improvements to the conversion utilities2016-11-10T14:34:33ZMark OLESENImprovements to the conversion utilitiesVarious changes associated with issue #204.
* Reduced code duplication for handling prostar conversion and IO
* Simple conversion to/from AVL/FIRE geometries
* New library basis for conversion to/from CCM geometries - handles multiple r...Various changes associated with issue #204.
* Reduced code duplication for handling prostar conversion and IO
* Simple conversion to/from AVL/FIRE geometries
* New library basis for conversion to/from CCM geometries - handles multiple regions, conformal interfaces etc. No support for film or 2d shell geometries
* Improved infrastructure for writing VTK content. Will propagate usage through other parts of the code in the future.Version v1612Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/107Updated random numbers2017-04-28T09:11:19ZAdminUpdated random numbersPreviously there were 2 random number generator classes - `Random` and `cachedRandom`. These have been consolidated by:
- removing/deprecating the `Random` class
- renaming the `cachedRandom` class to `Random`
The `Random` class no...Previously there were 2 random number generator classes - `Random` and `cachedRandom`. These have been consolidated by:
- removing/deprecating the `Random` class
- renaming the `cachedRandom` class to `Random`
The `Random` class now stores its own buffer and uses the re-entrant system random functions so that each instantiation is not affected by each call to (re-)initialise the random number seed. The caching of the random numbers is not required since the generator can be reset using the same initial seed.Version v1706https://develop.openfoam.com/Development/openfoam/-/merge_requests/104Initial attempt to track oriented surface fields2017-05-24T13:30:52ZAdminInitial attempt to track oriented surface fieldsThese changes are an attempt to cleanly identify oriented surface fields, i.e. those where the value is signed according to the owner->neighbour direction e.g. the face flux.
Still to do:
* [x] propagate through field mapping - read...These changes are an attempt to cleanly identify oriented surface fields, i.e. those where the value is signed according to the owner->neighbour direction e.g. the face flux.
Still to do:
* [x] propagate through field mapping - ready to test
* [x] simplify surfaceFieldValue function object - passed tests
* [x] check other uses, .e.g. AMI?
* [x] clean-up of dev statements
Checks
* [x] rhoCentral[DyM]Foam solvers
@MattijsVersion v1706AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/120Feature lumped point motion2020-06-17T13:17:51ZMark OLESENFeature lumped point motionVersion v1706Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/119INT: Integration of isoAdvector and supporting material2017-06-21T16:22:26ZAdminINT: Integration of isoAdvector and supporting materialCommunity contribution from Johan Roenby, DHI
IsoAdvector is a geometric Volume-of-Fluid method for advection of a
sharp interface between two incompressible fluids. It works on both
structured and unstructured meshes with no requir...Community contribution from Johan Roenby, DHI
IsoAdvector is a geometric Volume-of-Fluid method for advection of a
sharp interface between two incompressible fluids. It works on both
structured and unstructured meshes with no requirements on cell shapes.
IsoAdvector is as an alternative choice for the interface compression
treatment with the MULES limiter implemented in the interFoam family
of solvers.
The isoAdvector concept and code was developed at DHI and was funded
by a Sapere Aude postdoc grant to Johan Roenby from The Danish Council
for Independent Research | Technology and Production Sciences (Grant-ID:
DFF - 1337-00118B - FTP).
Co-funding is also provided by the GTS grant to DHI from the Danish
Agency for Science, Technology and Innovation.
The ideas behind and performance of the isoAdvector scheme is
documented in:
Roenby J, Bredmose H, Jasak H. 2016 A computational method for sharp
interface advection. R. Soc. open sci. 3: 160405.
[http://dx.doi.org/10.1098/rsos.160405](http://dx.doi.org/10.1098/rsos.160405)
Videos showing isoAdvector's performance with a number of standard
test cases can be found in this youtube channel:
https://www.youtube.com/channel/UCt6Idpv4C8TTgz1iUX0prAA
Project contributors:
* Johan Roenby <jro@dhigroup.com> (Inventor and main developer)
* Hrvoje Jasak <hrvoje.jasak@fsb.hr> (Consistent treatment of
boundary faces including processor boundaries, parallelisation,
code clean up
* Henrik Bredmose <hbre@dtu.dk> (Assisted in the conceptual
development)
* Vuko Vukcevic <vuko.vukcevic@fsb.hr> (Code review, profiling,
porting to foam-extend, bug fixing, testing)
* Tomislav Maric <tomislav@sourceflux.de> (Source file
rearrangement)
* Andy Heather <a.heather@opencfd.co.uk> (Integration into OpenFOAM
for v1706 release)
See the integration repository below for the full set of changes
undertaken as part of the integration into OpenFOAM v1706
https://develop.openfoam.com/Community/Integration-isoAdvectorVersion v1706https://develop.openfoam.com/Development/openfoam/-/merge_requests/108improved container classes2017-05-04T15:49:00ZMark OLESENimproved container classesVersion v1706AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/117Integration of ihc wavemodels2017-06-15T10:38:26ZAdminIntegration of ihc wavemodelsNew solitary wave models supplied by Gabriel Barajas, IH Cantabria:
- McCowan
- Grimshaw
Updated and integrated into OpenFOAM by OpenCFDNew solitary wave models supplied by Gabriel Barajas, IH Cantabria:
- McCowan
- Grimshaw
Updated and integrated into OpenFOAM by OpenCFDVersion v1706https://develop.openfoam.com/Development/openfoam/-/merge_requests/98ENH: Feature noise additions2017-03-16T05:16:22ZAdminENH: Feature noise additionsNoise model functionality updates
- optional writing for each output
- can now use relative or absolute paths for input/output data
- output data can be limited to lower and upper (user-selected) frequency bounds
- output paths updat...Noise model functionality updates
- optional writing for each output
- can now use relative or absolute paths for input/output data
- output data can be limited to lower and upper (user-selected) frequency bounds
- output paths updated to ensure not to overwrite output when processing multiple filesVersion v1706AdminAdminhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/165Feature field average windowing2017-11-13T08:59:37ZAdminFeature field average windowingExtended the fieldAverage FO to include an 'exact' windowing method.
In earlier versions the window option generated a pseudo/approximate window average. The type must now be specified by the `windowType` entry, e.g. for backwards compa...Extended the fieldAverage FO to include an 'exact' windowing method.
In earlier versions the window option generated a pseudo/approximate window average. The type must now be specified by the `windowType` entry, e.g. for backwards compatibility, use :
```
windowType approximate;
```
and for the new `exact` window average
```
windowType exact;
```
Note that the `exact` method requires all instances of the field to be cached within the windowing interval, leading to increased memory usage, and also need to be written to enable a clean restart. To suppress writing of all intermediate field files (disabling smooth restart) use the option
```
allowRestart yes;
```v1712https://develop.openfoam.com/Development/openfoam/-/merge_requests/145Feature paraview clouds2017-09-12T13:45:39ZMark OLESENFeature paraview cloudsHandle lagrangian fields for all clouds.Handle lagrangian fields for all clouds.v1712Mark OLESENMark OLESENhttps://develop.openfoam.com/Development/openfoam/-/merge_requests/134Feature robuster IOobjectList construction2017-08-09T09:58:20ZMark OLESENFeature robuster IOobjectList constructionImprove the robustness when loading file lists with contents that *almost* could look like OpenFOAM content (ie, start with `FoamFile`), but which in fact are not.
@petebachantImprove the robustness when loading file lists with contents that *almost* could look like OpenFOAM content (ie, start with `FoamFile`), but which in fact are not.
@petebachantv1712Mark OLESENMark OLESEN