Commit Graph

3684 Commits

Author SHA1 Message Date
Kutalmis Bercin
7ce111809e TUT: compressible: clean up tutorials 2021-05-27 08:59:28 +00:00
Kutalmis Bercin
42bbd05992 TUT: SpalartAllmaras: add showcase for k/epsilon/omega estimation funcs
TUT: airfoil2D: clean up the tutorial case
2021-05-27 09:04:53 +01:00
Mattijs Janssens
4a87e2d0b4 INT: splineEdge: allowing usage in extrudeMesh. See #1983. 2021-05-26 12:22:24 +00:00
Kutalmis Bercin
f62a599eef TUT: heatTransfer: clean up tutorials 2021-05-26 11:35:49 +00:00
Mattijs Janssens
f44dbbc200 ENH: Support AMI for multi-world operation. Fixes #2099
Multi-world operation now supports AMI:

    // What to sample:
    sampleMode      nearestPatchFaceAMI;
2021-05-26 08:27:30 +00:00
Mark Olesen
ec81436cce TUT: generalize (parameterize) blockMeshDict for half-cylinder geometries
- profit from some of the recent modifications to parser expansion

TUT: adjust some #eval statements for less clutter
2021-05-19 17:33:25 +02:00
Mark Olesen
2dbabb242b ENH: namedDictionary for managing keyword/dictionary combinations
- reworked from the openfoam.org wordAndDictionary version.

Allows, for example, named entries in topoSet.
2021-05-19 17:13:24 +02:00
Mark Olesen
492d5cb645 ENH: support 'transform' specification for geometric decomposition
- can be used for block-like meshes that are not aligned with the global
  coordinate directions. Alternatively, for general testing purposes.

  Example,

    method  simple;
    coeffs
    {
        n       ( 2 2 2 );
        transform
        {
            origin  (-0.15 0.15 0);
            e1      (1 1 0);
            e3      (0 0 1);
        }
    }
2021-05-10 14:34:43 +02:00
Mark Olesen
56db12fca1 TUT: remove old metisCoeffs entries 2021-05-06 21:43:10 +02:00
Mark Olesen
399c21d76c ENH: adjustments for Function1/PatchFunction1
- additional debug information

- improve support for dictionary specification of constant, polynomial
  and table entries. These previously only worked properly for
  primitiveEntry, which causes confusion.

- extend table Function1 to include TableFile functionality.
  Simplifies switching and modifying content.
2021-04-26 17:09:39 +02:00
Kutalmis Bercin
2c74298891 TUT: DMD: update cylinder2D with new DMD functionalities 2021-04-26 09:20:25 +00:00
Kutalmis Bercin
881eeb0214 TUT: atmFlatTerrain: fix atmAmbientTurbSource value (#2031) 2021-04-26 09:20:25 +00:00
sergio
8878050ff9 BUG: Checking sum of multiComponent mixture species
Checking for the sum of species mass fraction in multiComponentMixture.
It can't be zero at the internal field or patches. A fatal error is thrown.

A warning was added if the mixture sum is different from one. In a
re-start the mass fraction can be slightly unbounded and new
normalization is required.
2021-04-22 11:22:58 -07:00
Mark Olesen
96a1b86fb9 ENH: consistency improvements for keyType and wordRe
- simplify compile/uncompile, reading, assignment

- implicit construct wordRe from keyType (was explicit) to simplify
  future API changes.

- make Foam::isspace consistent with std::isspace (C-locale)
  by including vertical tab and form feed

ENH: improve #ifeq float/label comparisons
2021-04-19 16:33:42 +00:00
mattijs
a9f8bc079f ENH: snappyHexMesh: block walk through other surfaces. 2021-04-19 09:22:28 +00:00
Andrew Heather
93befa4f63 ENH: surfaceNoise - added option to specify area-weighted|ensemble average 2021-04-01 13:04:01 +01:00
Kutalmis Bercin
16762e6d49 TUT: DNS, electromagnetics, financial, stressAnalysis: clean up tutorials 2021-03-31 10:14:42 +00:00
Kutalmis Bercin
82a24a39b0 ENH: solarLoad: enable time-dependent direct/diffuse irradiance
ENH: solarLoad, fvDOM: enable time-dependent spectralDistribution
DOC: solarLoad, fvDOM, solarCalculator: improve header documentation
TUT: solarLoadModel, solarDirectionModel: use new shorter entries
2021-03-31 10:13:08 +00:00
Kutalmis Bercin
2fa8e5fdf3 TUT: discreteMethods: cleanup tutorials 2021-03-24 13:16:45 +00:00
sergio
ad35fea763 ENH: new solvers: overCompressibleInterDyMFoam and overInterPhaseChangeDyMFoam
- overCompressibleInterDyMFoam: Overset solver for two compressible,
non-isothermal, immiscible fluids using a VOF (i.e. volume of fluid)
phase-fraction based interface capturing approach.
- overInterPhaseChangeDyMFoam: Overset solver for two incompressible,
isothermal, immiscible fluids with phase-change (e.g. cavitation) using
VoF (i.e. volume of fluid) phase-fraction based interface capturing approach.
- adds new tutorials:
  - multiphase/overCompressibleInterDyMFoam/compressibleTwoSimpleRotors
  - multiphase/overInterPhaseChangeDyMFoam/twoSimpleRotors

Signed-off-by: Kutalmis Bercin <kutalmis.bercin@esi-group.com>
2021-03-24 12:35:31 +00:00
mattijs
1c0714f9b8 STYLE: snappyHexMeshDict: indentation 2021-03-22 14:52:17 +00:00
sergio
2f4d864c85 ENH: Adding dynamic mesh functionality to icoReactingMultiphaseInterFoam 2021-03-18 11:47:18 -07:00
sergio
5c4d714b45 ENH: Update icoReactingMultiPhaseInterFoam tutorials 2021-03-18 11:47:17 -07:00
Mark Olesen
1ca99a2c94 ENH: improve dimensions handling for setExpr* utilities (#2014)
- new '-ascii' option to write in ASCII format instead of the
  controlDict setting. This can be useful when generating fields that
  should be parsed with other tools, or for visual inspection.

- correct mismatch of option names and lookups
2021-03-18 11:53:42 +01:00
Mark Olesen
cd1350a87f ENH: support preloading fields for setExpr* utilities (#2014)
- can use either command-line option "-load-fields" or dictionary
  entry "readFields" to specify field names to be preloaded.

  Essentially the same functionality as with a readFields function
  object but with a lot less typing.

- tutorial examples provided by Ryan Danks <ryan.danks@rwdi.com>
  illustrate using setExpr* utilities to calculate a quantity
  as a post-processing step.
2021-03-17 21:42:37 +01:00
sergio
ec609b90b8 STY: Clearing up code and updating tutrial 2021-03-17 09:07:26 +00:00
sergio
da1e6ea8d0 ENH: Improvement to overset that allows multiple motion solvers
to operate with overset

1) Adding zoneMotion to rigidBodyMotion
2) Introducing PID to prescribedRotation restraint
3) Making drivenLinearMotion read total displacement
4) When drivenLinearMotion is used sixDof and rigid-body solvers
   write total displacement
2021-03-17 09:07:26 +00:00
Mark Olesen
d15a396a6a TUT: add value entry for some uniformFixedValue bcs (#2014)
- generally OK to miss for easily evaluated functions, but highly
  misleading with expressions (where the evaluate may be invalid
  during construction).
2021-03-15 19:02:00 +01:00
mattijs
db343351f7 BUG: redistributePar: single-step. See #1211
- override casename, procesorCase flags to guarantee reconstructed
case to be written to the undecomposed directory
- alternative is to construct a Zero mesh on the undecomposed
runTime and add all other bits to that but that has not been
pursued
2021-03-15 08:31:10 +00:00
Kutalmis Bercin
86c1ecdf32 TUT: lagrangian: clean up tutorials 2021-03-12 11:40:02 +00:00
Mark Olesen
ce45a12918 TUT: improve parameterization of squareBend geometry
- orient blocks in global x/y/z.
  Provisioning for coarser/smaller geometries.
2021-03-08 17:31:18 +01:00
Mark Olesen
175d35de22 TUT: minor adjustments 2021-03-05 12:51:39 +01:00
Mark Olesen
1bb7afc7fe ENH: raw format with optional output for face area normals (#2003)
- the raw surface writer simply outputs x/y/z and field values.
  This additional flag allows recovery of some geometric information.

- optional user-specified output precision

Example,
```
formatOptions
{
    raw
    {
        normal      yes;
        precision   10;
    }
}
```
2021-02-17 13:36:16 +01:00
Mark Olesen
5f805b0592 TUT: add decomposeParDict for cavity
- useful for trivial tests
2021-01-15 15:06:06 +01:00
Andrew Heather
79e353b84e RELEASE: Updated version to v2012 2020-12-23 10:01:39 +01:00
Mark Olesen
c536c0fee5 TUT: use scale instead of convertToMeters 2020-12-23 09:21:14 +01:00
Andrew Heather
bdcc02cf64 TUT: added missing call to tutorial case 2020-12-22 12:15:06 +00:00
Mark Olesen
7bdb509494 TUT: adjust tutorials for test loop 2020-12-22 12:27:21 +01:00
Andrew Heather
48f8811896 ENH: Added new filmFlux function object
Calculates the mass flux for surface film models.

Example usage:

    filmFlux
    {
        type            filmFlux;
        writeControl    writeTime;
        result          myPhi; // optional
    }
2020-12-21 18:06:57 +00:00
Mark Olesen
bf3e9b442d TUT: additional sampling planes, iso-surfaces 2020-12-21 18:31:23 +01:00
sergio
73207dfcd7 BUG: Fixing cloud constructor for MPPICInterFoam 2020-12-20 19:24:12 -08:00
Mark Olesen
e9dcc59c4d STYLE: trim trailing space 2020-12-18 09:24:01 +01:00
Sergio Ferraris
06a0bf1868 TUT: Adding new MPPICDyMFoam and uncoupledKinematicParcelDyMFoam tutorials
STY: Style and header-content changes
2020-12-17 21:17:03 +00:00
Mark Olesen
7f17a71f9c ENH: make PDRsetField ground, outer patch names configurable
- previously hard-coded, now adjustable within PDRsetFieldsDict

    // Change some predefined patch names
    patchNames
    {
        ground      ground;
        outer       outer;
    }

ENH: additions to PDRutils, improve comments

- expose enumerated expansion names and gridControl (PDRblock).
  Not commonly needed, but useful to have access when defining
  other grid generators

TUT: update PDRsetFieldsDict and tutorials to use "ground"

- remove tutorial references to unused types and legacy obstacles

- use "ground" for the boundary conditions instead of "seaGround".
  Consistent with PDRblockMesh
2020-12-17 01:23:31 +01:00
Kutalmis Bercin
12efbd8965 TUT: airRecirculationRoom: add new reactingParcelFoam tutorial 2020-12-16 18:28:18 +00:00
Sergio Ferraris
3db12bbdef ENH: adding non-uniform rho to incompressible two-phase turbulent models
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.
2020-12-16 17:57:45 +00:00
Kutalmis Bercin
0d21f248a9 BUG: volFieldValue FO: parallel/empty output (#1853 #1849)
TUT: volFieldValue FO: adds usage example
TUT: multiply FO: adds usage example
2020-12-16 17:09:06 +00:00
Kutalmis Bercin
e82956a9dc TUT: counterFlowFlame2D: add BilgerMixtureFraction FO 2020-12-15 08:55:13 +00:00
Mark Olesen
4fdeb3be83 COMP: remove 64-bit label ambiguity
COMP: fix SP/DP inconsistency in fvGeometryScheme

STYLE: rename polyMesh::updateGeom to polyMesh::updateGeomPoints

- avoids compiler complaints and potential masking of
  primitiveMesh::updateGeom / fvMesh::updateGeom

- mark argument as movable, since that is what is happening inside.

GIT: remove merge cruft

TUT: better clean on MPPICInterFoam
2020-12-11 21:37:54 +01:00
Mark Olesen
cf3d983b80 ENH: add treatment for PDRblockMesh outer region expansions (#1906)
// Treatment of the outer region
   outer
   {
       type        sphere;
       onGround    true;
       expansion   relative;

       ratios      1.1;

       size        3;
       nCells      10;
   }
2020-12-11 20:24:25 +00:00
Vaggelis Papoutsis
f7e4b374d9 TUT: added a tutorial showcasing the transformBox option
for the definition of the morphing box in volumetric B-Splines.
2020-12-11 17:22:44 +00:00
Vaggelis Papoutsis
d0b59a4529 TUT: updated the da entries for the multi-point, turbulent optimisations 2020-12-11 17:22:44 +00:00
Kutalmis Bercin
bcae4b7a4f TUT: Alltest: minor corrections (#1956) 2020-12-11 14:33:04 +00:00
Mattijs Janssens
31ecf0d732 ENH: cyclicACMI: optional scaling with PatchFunction1.
Added 'scale' parameter to cyclicACMI. Scales the amount of 'coupledness' (= mask). Allows opening/closing without mesh motion.
2020-12-11 10:35:06 +00:00
Mattijs Janssens
46dbfabd9d ENH: primitiveMesh: make geometry calculation runtime selectable
This adds a 'geometry' scheme section to the system/fvSchemes:

geometry
{
    type            highAspectRatio;
}

These 'fvGeometryMethod's are used to calculate
- deltaCoeffs
- nonOrthoCoeffs
etc and can even modify the basic face/cellCentres calculation.
2020-12-11 10:31:34 +00:00
Andrew Heather
9d765adaf4 ENH: Lagrangian - added new PatchInteractionFields cloud function object
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;
    }
2020-12-10 17:25:40 +00:00
sergio
54ebe724ea ENH: Derivative of B in thermo.H (dKcdTbyKc) calculated from S and G instead of dGdT
Member function dKcdTbyKc in thermo.H is calculated from S and G at Pstd.
Thus dGdT was removed from the thermos.

- Add optional hRef, eRef and Tref as optional.

- Use new thermo to multiphase solver icoReactingMuliPhaseFoam

- Remove hRefConst and eRefConst thermos.

TUT: Updated tutorials
2020-12-10 13:40:13 +00:00
sergio
0dd91a9dc4 ENH: Adding tabulated transport and thermo.
TUT: multiphase/icoReactingMultiPhaseInterFoam/inertMultiphaseMultiComponent
2020-12-10 13:40:12 +00:00
sergio
97448c655d ENH: Using icoTabulated EoS and non-Newtonian laminar model 2020-12-10 13:40:12 +00:00
sergio
c3c4f30a55 ENH: adding generalizedNewtonian to laminar turbulence model
The generalizedNewtonian viscocity models were ported from
the org version and added to the laminar turbulence framework.

This allows use in compressible and incompressible solvers
through the turbulence dictionary under the laminar sub-dictionary.

The thermal laminar viscosity is taken from the thermo for solvers
that use thermo library or from the transportProperties dictionary
for incompressible solvers.

At the moment the option to include viscocity models through the
transportDict is still available.

The icoTabulated equation of state was ported from the org version.

STYLE: use 'model' instead of 'laminarModel' in tutorials
2020-12-10 13:40:12 +00:00
sergio
bc430ccdef ENH: New 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: `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`

Signed-off-by: Kutalmis Bercin <kutalmis.bercin@esi-group.com>
2020-12-10 13:36:12 +00:00
sergio
348c2a87ad ENH: Adding dynamic mesh to solidFoam and tutorial 2020-12-09 15:17:45 +00:00
mattijs
df777ce3c6 ENH: waterCooler: new tutorial. 2020-12-09 15:17:45 +00:00
Mark Olesen
8ad61f8e9d ENH: optional innerRadius for searchable disk
- can be used directly, or in special cases like a searchable plane
  with a gap of things in the centre that are not to be sampled.
2020-12-08 15:32:50 +01:00
Mark Olesen
61dd6aa701 ENH: code consistency in sampling
TUT: dictionary form of surfaces instead of list
2020-12-08 13:18:38 +01:00
Kutalmis Bercin
1bc2ffad99 BUG: atm wall functions: fix double "value" entry issue (#1900)
STYLE: atm wall functions: use auto and bool types wherever possible
  TUT: atmosphericModels: changes for style consistency
2020-12-08 09:33:44 +00:00
Andrew Heather
74ada2aa7f TUT: New recycleParticles tutorial case
Shows an example of the new recyclePatchInteraction model
- particles that escape from the outlet are recycled back into the
  domain via the second inlet

Signed-off-by: Kutalmis Bercin <kutalmis.bercin@esi-group.com>
2020-12-04 13:40:28 +00:00
Mark Olesen
ab692caf7c ENH: support multiple weights on some field function objects (#1930)
- weight fields are combined by multiplication

  - volFieldValue:
    * 0-N scalar fields

  - surfaceFieldValue:
    * 0-N scalar fields
    * 0-1 vector fields

  In some cases this can be used to avoid creating additional
  fields.

      weightFields  (rho U);
  vs.
      derivedFields (rhoU);
      weightField   rhoU;
2020-11-30 13:59:10 +01:00
Mark Olesen
f8d08a805b ENH: additional handling for out-of-range sampling (#1891)
- when sampling onto a meshed surface, the sampling surface may be
  outside of the mesh region, or simply too far away to be considered
  reasonable.

  Can now specify a max search distance and default values for samples
  that are too distant.
  If a default value is not specified, uses Type(Zero).

  Eg,

      maxDistance     0.005;
      defaultValue
      {
          "p.*"   1e5;
          T       273.15;
          U       (-100 -100 -100);
      }
2020-11-30 13:59:10 +01:00
Mark Olesen
a947e9ddcf ENH: new sampled faceZones (#1874) 2020-11-30 13:59:10 +01:00
Mark Olesen
6cf8151817 ENH: support surfaceFieldValue on multiple faceZones or patches (#1874)
- additional "names" entry to specify a word/regex list of selections
  For example,
  {
      type    patch;
      name    inlets;
      names   ("inlet_[0-9].*" inlet);
  }

- if "names" exists AND contains a literal (non-regex) that can be used
  as a suitable value for "name", the "name" entry becomes optional.
  For example,
  {
      type    patch;
      names   ("inlet_[0-9].*" inlet);

      // inferred name = inlet
  }

- reduce some overhead in surfaceFieldValue

TUT: surfaceFieldValue on patches : reactingParcelFoam/verticalChannel
2020-11-30 13:59:10 +01:00
Mark Olesen
fb7afd5f96 TUT: fix missing line ending and wrong blockMeshDict vertex location 2020-11-26 02:15:20 +01:00
Mark Olesen
8d2d894ae0 ENH: support frequency or period for Sine/Square Function1 (#1917)
- For slow oscillations it can be more intuitive to specify the
  period.

ENH: separate mark/space for Square

- makes it easier to tailor the desired intervals.

BUG: incorrect square wave fraction with negative phase shifts

ENH: additional cosine Function1

STYLE: avoid code duplication by inheriting Cosine/Square from Sine.
2020-11-19 16:57:45 +01:00
Kutalmis Bercin
2a64d98d02 ENH: PatchParticleHistogram: add a new cloud FO
Computes a histogram for the distribution of particle diameters
  and corresponding number of particles hitting on a given list of patches.

  A minimal example by using `constant/reactingCloud1Properties.cloudFunctions`:

  ```
  patchParticleHistogram1
  {
      // Mandatory entries (unmodifiable)
      type             patchParticleHistogram;
      patches          (<patch1> <patch2> ... <patchN>);
      nBins            10;
      min              0.1;
      max              10.0;
      maxStoredParcels 20;
  }
  ```
2020-11-13 09:22:46 +00:00
Kutalmis Bercin
83b432c9d2 TUT: cavity: add Allrun-parallel
The change helps to carry out and monitor
  parallelisation tests for FOs and topoSets.
2020-11-13 09:18:43 +00:00
Kutalmis Bercin
da65e02707 INT: planeToFaceZone: integrate a new topoSet from OpenFOAM.org 2020-11-13 09:18:43 +00:00
Mark Olesen
043419f30a TUT: add examples of general spheroid (#1901)
- for blockMesh meshing and as snappyHexMesh geometry
  (adjust the igloo aspect ratio)
2020-10-28 16:04:12 +01:00
Mark Olesen
4258f8059f ENH: adjustments to searchable surfaces
- code reduction, documentation, code stubs for spheroid (#1901)

- make searchableSurfaceCollection available as 'collection'
  for consistency with other objects
2020-10-28 16:04:12 +01:00
Mark Olesen
9eb73a92e2 TUT: fix use of "constant/triSurface" etc (#1887)
- use bracketed syntax (eg, "<constant>/triSurface") instead for
  implicit case resolution.
2020-10-28 16:04:12 +01:00
Mark Olesen
51b2490258 ENH: additional options for transformPoints and surfaceRefineRedGreen
- add -recentre option to shift points according to the bounding box
  centre before performing other operations

- add -auto-origin to use the bounding box centre as the origin for
  rotations. Has lower priority than the -origin option.

- surfaceTransformPoints now has distinct -read-scale, -write-scale
  options (as per surfaceMeshConvert). Silently accepts -scale as
  equivalent to -write-scale, for backwards compatibility and
  similarity with transformPoints

- add -steps option for surfaceRefineRedGreen for successive
  refinement
2020-10-22 14:59:12 +02:00
Mark Olesen
4f84aa5362 STYLE: adjustments for code integration
- adjust contributor names to include windows port

BUG: bash script marked as sh (fixes #1890)
2020-10-22 14:52:56 +02:00
Ivor Clifford
d8525f1746 INT: polyline: new extrusion model
Allows specification of extrusion path using blockMesh 'edges' syntax.
See tutorials/mesh/extrudeMesh/polyline

Contribution by Ivor Clifford/Paul Scherrer Institut
2020-10-22 10:13:15 +01:00
Mark Olesen
121c69ef2e TUT: use new 'arc' specification in several tutorials
- in most cases this eliminates manually calculation of circumferential
  points.

TUT: improve parameterization of sphere blockMeshDict

- allow separate parameterization of radius, ratio of inner to outer,
  and the number of divisions in x/y/z and radial directions
2020-10-05 15:45:39 +02:00
Mark Olesen
f8a8728f8f TUT: update movingCone blockMesh to merge points (#1862)
- wedge geometry, so topology merge results in zero-sized faces.
2020-09-28 11:08:32 +02:00
Mark Olesen
aca4f077ac ENH: fanPressure - use fanCurve entry if present
- only use implicit legacy handling if the "fanCurve" entry is missing
  and the "file" entry is present.
2020-09-28 11:08:32 +02:00
Mark Olesen
12b68e1151 ENH: replace finiteArea timeVaryingUniformFixedValue with Function1 version
- timeVaryingUniformFixedValue -> uniformFixedValue

- allows a variety of functions (eg, coded, expressions, tables, ...)

- more similarity to finiteVolume patch type

STYLE: remove unused timeVarying... from etc/controlDict
2020-09-28 11:08:30 +02:00
sergio
274bb0740e STY: Headers and code style 2020-09-22 16:35:53 +01:00
sergio
11d17fec5f ENH: Adding evaporation-condensation lagragian model for solution
1) Adding LiquidEvapFuchsKnudsen model for lagrangian evaporation.
   This models is based on a diffusion type of evaporation/
   condensation on particles composed of solution (liquid + solid).

2) Adding modes of calculating the particle rho and volume change.
   The new keyword in constantProperties is 'volumeUpdateMethod'
   which three options:
        a) constantRho
        b) constantVolume
        c) updateRhoAndVol

   The old keyword 'constantVolume' true/face is still valid

3) The entry rho0 is now optional for multicomponent parcels.
   If defined , it is used, but if it is not the actual mixture
   provided is used to calculate rho0 of the particle.
   T0 is still used as initial T and Cp0 is over-written in the
   multicomponent cloud but still required.

4) Adding tutorial for evaporation/condensation model
2020-09-22 16:35:53 +01:00
Mark Olesen
1c71c7cb23 Merge remote-tracking branch 'origin/master' into develop 2020-09-03 12:04:45 +02:00
Mark Olesen
fa364eda12 BUG: inconsistency between constructor and output (fixes #1816)
- slipped in with changes to csvTableReader (commit 59ed3ba18d) so
  only affects the 2006 version.

- adjust constructor to expect "componentColumns", but also accept
  "valueColumns" as 1912 and earlier-compatibility. This not only
  fixes the reported bug, but also ensure proper compatibility with
  older files.

ENH: use "refColumn" instead of "timeColumn" for csvTableReader

- consistent with the CSV Function1.
  Support 'timeColumn' as 1912 and earlier-compatibility.

TUT: remove unused table-reader entry
2020-08-31 15:17:32 +02:00
Mark Olesen
44052de594 TUT: skip some tutorials when dynamicCode is not available
- silence failed restoration of controlDict from controlDict.orig
  (idempotent?)
2020-08-06 19:34:20 +02:00
Mark Olesen
7051abc371 TUT: fix run/clean scripts syntax 2020-08-04 15:12:40 +02:00
Andrew Heather
dc6c3c8add TUT: Correction for Alltest 2020-07-20 10:19:54 +01:00
Andrew Heather
538d749220 REL: Updated headers to version v2006 2020-06-29 17:27:54 +01:00
Andrew Heather
b325cb86c0 TUT: added mixerVesselAMI2DRefined to show example of AMI with topology change 2020-06-29 11:07:09 +01:00
OpenFOAM bot
df7044845e GIT: remove whitespace, backslash escape angle brackets in comments
- fix older '> >' template parameters as '>>'
2020-06-26 12:28:49 +02:00
sergio
1bd5d03ea6 TUT: Adjusting settings for tutorials climbingRod and mixerVessel2D 2020-06-25 11:07:53 -07:00
Mark Olesen
5b6969fce3 TUT: fluxSummary surfaces as list (inadvertently changed in 5982a1aa) 2020-06-22 08:44:46 +02:00
Mark Olesen
7065593b3f BUG: regression in fluxSummary cellZoneAndDirection (fixes #1736)
- related to change c3571b7357 (does not affect 1912 or older).

  Remnant check for data() should have used valid() method instead.

TUT: add fluxSummary cellZoneAndDirection to angledDuct/implicit
2020-06-19 12:52:00 +02:00
Mark Olesen
a4864eb1a8 TUT: relocate flange.ans -> tutorials/resources/geometry
- makes it easier to copy/duplicate the case
2020-06-19 10:09:09 +02:00
Andrew Heather
7d4cdc4f8c TUT: Updated vortexShed case wrt latest Curle FO updates 2020-06-18 21:55:44 +01:00
Mark Olesen
7db868b509 TUT: bridge using external lumped point motion (#1341)
- see its accompanying README for additional setup instructions
2020-06-17 15:16:27 +02:00
Mark Olesen
b0136d835e ENH: lumped point motion using local linear basic functions (#1341)
- the earlier implementation of externally controlled lumped point
  motion (see merge request !120 and OpenFOAM-v1706 release notes) was
  conceived for the motion of simple structures such as buildings or
  simple beams. The motion controller was simply defined in terms of
  an orientation axis and divisions along that axis.

  To include complex structures, multiple motion controllers are
  defined in terms of support points and connectivity.

  The points can have additional node Ids associated with them, which
  makes it easier to map to/from FEA models.

  OLD system/lumpedPointMovement specification
  --------------------------------------------

      //- Reference axis for the locations
      axis            (0 0 1);

      //- Locations of the lumped points
      locations       (0 0.05 .. 0.5);

  NEW system/lumpedPointMovement specification
  --------------------------------------------

      // Locations of the lumped points
      points
      (
          (0  0  0.00)
          (0  0  0.05)
          ...
          (0  0  0.50)
      );

      //- Connectivity for motion controllers
      controllers
      {
          vertical
          {
              pointLabels (0 1 2 3 4 5 6 7 8 9 10);
          }
      }

  And the controller(s) must be associated with the given
  pointDisplacement patch. Eg,

     somePatch
     {
         type            lumpedPointDisplacement;
         value           uniform (0 0 0);
         controllers     ( vertical );   // <-- NEW
     }

TUT: adjust building motion tutorial

- use new controllor definitions
- replace building response file with executable
- add updateControl in dynamicMeshDict for slowly moving structure
2020-06-17 15:16:27 +02:00
Mark Olesen
17ea2c544d TUT: include geometricVoF library for interface sampling 2020-06-17 10:55:24 +02:00
OpenFOAM bot
01ec92fd35 GIT: remove leading/trailing blank lines, trailing whitespace 2020-06-17 10:46:26 +02:00
Mark Olesen
5982a1aab4 STYLE: update tutorials
- use simpler decomposeParDict in tutorials, several had old
  'boilerplate' decomposeParDict

- use simpler libs () format

- update surface sampling to use dictionary format
2020-06-17 10:11:33 +02:00
Kutalmis Bercin
5225697542 GIT: add missing function object examples for MachNo, log, pow 2020-06-17 08:54:05 +01:00
Kutalmis Bercin
4d295c84a0 DOC-STYLE: various release changes 2020-06-16 10:51:44 +01:00
Mark Olesen
458cec60b1 ENH: support time-varying Tref for externalCoupledTemperature (#1729) 2020-06-15 15:41:05 +02:00
Vaggelis Papoutsis
c344520474 TUT: updated/cleaned the optimisation tutorials
- Removed some unnecessary dynamicMeshDicts.
- Removed the writeActiveDesignVariables execution from the Allrun
  scripts, since it is no longer necessary to execute it before
  adjointOptimisationFoam.
- Updated the entries in dynamicMeshDict according to efbc9fc99.
2020-06-12 13:27:55 +01:00
Andrew Heather
01221babfc TUT: Corrected link in README - fixes #1698 2020-06-12 10:03:12 +01:00
sergio
ffa7bfb4f5 TUT: Setting up tutorials for change on planeImplicit function 2020-06-11 12:54:57 -07:00
mattijs
1666180271 STYLE: directionalMeshWave: input renaming. 2020-06-11 15:39:25 +01:00
Andrew Heather
ee94720594 ENH: Cloud function objects - added Weber number calcuation and output
Example usage:

    cloudFunctions
    {
        WeberNumber1
        {
            type    WeberNumber;
        }
    }

This will calculate and write the Weber number field as a 'standard'
cloud field, available for post-processing alongside other lagrangian
fields in the lagrangian/<cloudName> directory.
2020-06-11 14:56:46 +01:00
Kutalmis Bercin
60809c3f50 ENH: simplify turbulentDigitalFilterInlet BC 2020-06-11 13:30:30 +01:00
mattijs
5bf440956a ENH: timeVaryingMapped: abstract IFstream/regIOobject handling. See #1640.
This change abstracts out the reading of "boundaryData". It should
now support OpenFOAM headers and with that also binary input.
2020-06-11 12:00:51 +01:00
Mark Olesen
34ee7b0b95 STYLE: use .template instead of .temp for tutorial template files
- avoids possible confusion with temporary files
2020-06-10 15:29:08 +02:00
Mark Olesen
b89e1f025c ENH: portable scoping char for fieldCoordinateSystemTransform (fixes #1675)
- replace ':' scoping with IOobject::scopedName(), which automatically
  uses '_' for Windows compilations where the ':' is a meta-character
  (drive separator)

- apply similar local change for the momentum function object.

*** This topic will be revisited in the future ***
2020-06-10 15:29:07 +02:00
mattijs
6a8dab0011 STYLE: tutorials: load in additional models. See #1726. 2020-06-10 12:56:55 +01:00
Kutalmis Bercin
41e264f27d ENH: New atmospheric boundary layer (ABL) model suite (Part 1)
Please refer to the header file documentation for complete set of details.

  ENH: add new fvOptions for ABL modelling

    - atmAmbientTurbSource
    - atmBuoyancyTurbSource
    - atmCoriolisUSource
    - atmLengthScaleTurbSource
    - atmPlantCanopyTurbSource
    - atmPlantCanopyUSource
    - atmPlantCanopyTSource
    - atmNutSource

  ENH: add new boundary conditions for ABL modelling
       with PatchFunction1 and TimeFunction1 support

    - atmAlphatkWallFunction
    - atmEpsilonWallFunction
    - atmNutkWallFunction
    - atmNutUWallFunction
    - atmNutWallFunction
    - atmOmegaWallFunction
    - atmTurbulentHeatFluxTemperature

  STYLE: change names of nutkAtmRoughWallFunction -> atmNutkWallFunction by
         ensuring the bitwise backward compatibility

  ENH: add new variable-scaling force computation method to actuationDiskSource

  ENH: review actuationDiskSource and radialActuationDiskSource

  ENH: add new function object, ObukhovLength

  ENH: add new ABL tutorials/verifications

    - verificationAndValidation/atmosphericModels/atmFlatTerrain
      - verification with the Leipzig field experiment
      - illustration of precursor/successor field mapping
    - verificationAndValidation/atmosphericModels/atmForestStability
      - verification with the Sweden field experiment
    - update incompressible/simpleFoam/turbineSiting
2020-06-09 11:08:14 +01:00
HenningScheufler
3c131d8504 TUT: new/updated for compressibleInterIsoFoam 2020-06-09 08:11:04 +01:00
Mark Olesen
51db3c85a7 ENH: add canCompile test to RunFunctions
- allow conditional skipping of tutorials (for example) if wmake or
  the expected compiler is not available
2020-06-09 00:55:58 +02:00
Mark Olesen
b2467ff442 STYLE: minor code style changes 2020-06-09 00:55:01 +02:00
sergio
1397b59dc2 TUT: Adding CodeField example in tutorial 2020-06-08 12:22:24 -07:00
Kutalmis Bercin
3bf15d1b33 DOC: elaborate the usage of topoSet
TUT: add topoSet examples to pisoFoam/RAS/cavity tutorial
  BUG: fixes #1673
2020-06-08 15:46:18 +01:00
Kutalmis Bercin
a5c6516e23 DOC: elaborate the usage of function objects
ENH: update libs of etc/caseDicts/postProcess items
  ENH: ensure destructor=default
  ENH: ensure constness
  ENH: ensure no 'copy construct' and 'no copy assignment' exist
  TUT: add examples of function objects with full set
       of settings into a TUT if unavailable
  TUT: update pisoFoam/RAS/cavity tutorial in terms of usage
2020-06-08 15:43:47 +01:00
Sergio Ferraris
775fe1d596 ENH: Adding finalOnLastPimpleIterOnly to allow Final solver in PIMPLE
The PIMPLE option finalOnLastPimpleIterOnly allows the call the Final
solver only in the last PIMPLE loop. The default is false which is
the present behavior.
2020-06-08 15:42:52 +01:00
Andrew Heather
4032ab5e15 DOC: waveMaker - removed references to unused x0 input parameter 2020-06-08 13:59:46 +01:00
Mark Olesen
bcc1a49937 TUT: add parallel test for laplacianFoam
- one of the simplest test applications to run quickly and test
2020-06-05 17:54:42 +02:00
Kutalmis Bercin
336fb3bddf ENH: improve/verify atmBoundaryLayerInlet conditions
ENH: add generalised log-law type ground-normal inflow boundary conditions for
  wind velocity and turbulence quantities for homogeneous, two-dimensional,
  dry-air, equilibrium and neutral atmospheric boundary layer (ABL) modelling

  ENH: remove `zGround` entry, which is now automatically computed

  ENH: add `displacement height` entry, `d`

  ENH: add generalised atmBoundaryLayerInletOmega boundary condition

  ENH: add a verification case for atmBoundaryLayerInlet BCs

  DOC: improve atmBoundaryLayerInlet header documentation

  BUG: fix value-entry behaviour in atmBoundaryLayerInlet (fixes #1578)
  Without this change:
  - for serial-parallel computations, if `value` entry is available in
    an `atmBoundaryLayerInlet` BC, the theoretical ABL profile expressions
    are not computed, and the `value` entry content is used as a profile data
  - for parallel computations, if `value` entry is not available, `decomposePar`
    could not be executed.
  With this change:
  - assuming `value` entry is always be present, the use of `value` entry for
    the ABL profile specification is determined by a flag `initABL`
  - the default value of the optional flag `initABL` is `true`, but whenever
    `initABL=true` is executed, `initABL` is overwritten as `false` for the
    subsequent runs, so that `value` entry can be safely used.
  Thanks Per Jørgensen for the bug report.

  BUG: ensure atmBoundaryInlet conditions are Galilean-invariant (fixes #1692)

  Related references:

      The ground-normal profile expressions (tag:RH):
        Richards, P. J., & Hoxey, R. P. (1993).
        Appropriate boundary conditions for computational wind
        engineering models using the k-ε turbulence model.
        In Computational Wind Engineering 1 (pp. 145-153).
        DOI:10.1016/B978-0-444-81688-7.50018-8

    Modifications to preserve the profiles downstream (tag:HW):
        Hargreaves, D. M., & Wright, N. G. (2007).
        On the use of the k–ε model in commercial CFD software
        to model the neutral atmospheric boundary layer.
        Journal of wind engineering and
        industrial aerodynamics, 95(5), 355-369.
        DOI:10.1016/j.jweia.2006.08.002

    Expression generalisations to allow height
    variation for turbulence quantities (tag:YGCJ):
        Yang, Y., Gu, M., Chen, S., & Jin, X. (2009).
        New inflow boundary conditions for modelling the neutral equilibrium
        atmospheric boundary layer in computational wind engineering.
        J. of Wind Engineering and Industrial Aerodynamics, 97(2), 88-95.
        DOI:10.1016/j.jweia.2008.12.001

    The generalised ground-normal profile expression for omega (tag:YGJ):
        Yang, Y., Gu, M., & Jin, X., (2009).
        New inflow boundary conditions for modelling the
        neutral equilibrium atmospheric boundary layer in SST k-ω model.
        In: The Seventh Asia-Pacific Conference on Wind Engineering,
        November 8-12, Taipei, Taiwan.

  Reproduced benchmark:
      Rectangular prism shown in FIG 1 of
        Hargreaves, D. M., & Wright, N. G. (2007).
        On the use of the k–ε model in commercial CFD software
        to model the neutral atmospheric boundary layer.
        Journal of wind engineering and
        industrial aerodynamics, 95(5), 355-369.
        DOI:10.1016/j.jweia.2006.08.002
  Benchmark data:
      HW, 2007 FIG 6

  TUT: update simpleFoam/turbineSiting tutorial accordingly
2020-06-05 14:40:53 +01:00
Kutalmis Bercin
730233cd15 ENH: add new FO Streaming-Total Dynamic Mode Decomposition (STDMD)
STDMD (i.e. Streaming Total Dynamic Mode Decomposition) is a variant of
    a data-driven dimensionality reduction method.

    STDMD is being used as a mathematical post-processing tool to compute
    a set of dominant modes out of a given flow (or dataset) each of which is
    associated with a constant frequency and decay rate, so that dynamic
    features of a given flow may become interpretable, and tractable.
    Among other Dynamic Mode Decomposition (DMD) variants, STDMD is presumed
    to provide the general DMD method capabilities alongside economised and
    feasible memory and CPU usage.

    Please refer to the header file documentation for further details.

  ENH: add new STDMD tutorial, pimpleFoam/laminar/cylinder2D
2020-06-05 14:35:37 +01:00
mattijs
67b7b378db ENH: motorBike: change coarseLevel solver 2020-06-05 09:06:14 +01:00
sergio
95f7ed0342 COM: Separate htc FO from general FO and reactingEuler solvers (#1714)
The phase systems tables for multiphase solvers create conflict
between each other as they are defined in the same namespace and using
similar class names.

Therefore a special htc function object for reactingEulerSolver was
added (reactingEulerHtcModel), located under
src/phaseSystemModels/reactingEulerFoam/functionObjects/

This commit includes the following:

- Relocate solvers/reactingEulerFoam functionObjects to
  src/phaseSystemModels
- Remove links for fieldFunctionObject to multiphase libs to avoid
  conflicts
- New FO for htc for reactingEulerFoam called reactingEulerHtcModel
2020-06-03 20:58:02 +02:00
Mark Olesen
997c9a232c STYLE: use compact form for libs () entries 2020-05-23 18:42:47 +02:00
Mark Olesen
1a9f067df9 TUT: use expression and/or step function in a few places 2020-05-23 18:42:47 +02:00
OpenFOAM bot
dc04980d5c STYLE: remove trailing space, tabs 2020-05-21 15:21:23 +01:00
sergio
8218923b8c ENH: Adding support for two phases Euler solver to heatTransferModel FO 2020-05-21 15:21:23 +01:00
mattijs
3d746e8ac9 ENH: leak-detection. Fixes #1572.
The final leak can only be decided once all cells have been
deleted. So only exit on final invocation and give warning-only
beforehand. This avoids a lot of false positives.
The tutorial itself didn't actually produce a mesh with leakage
with the old settings. Upped the refinement level to force it
to go through the hole in the geometry.
2020-05-18 12:40:08 +01:00
Mark Olesen
44b225604d ENH: add blockMeshDict "mergeType" keyword (#1589)
- enumerated values are (points | topology) which can be optionally
  specified in the blockMeshDict. Default is 'topology'.

  If the command-line option `blockMesh -merge-points` is specified,
  this has absolute priority over any blockMeshDict entry.

STYLE: changed blockMesh "-blockTopology" option to "-write-obj"

- this is more specific to what it does. Potentially wish to add a
  "-write-vtk" option in the future.

TUT: adjust tutorials to use preferred or necessary merge strategies:

  * channel395DFSEM - topology
  * nozzleFlow2D - points
  * pipeCyclic - points
2020-05-13 20:59:03 +02:00
mattijs
1584f28e91 ENH: blockMesh: generate duplicate boundary faces. Fixes #1516 2020-05-13 11:59:47 +01:00
sergio
584ff5e0d0 TUT: Adjusting tutorial settings 2020-05-08 13:56:42 -07:00
Mark Olesen
8d29896fca TUT: illustrate inverse expansion ratio in a few places
- see commit 7da0b5bee1
2020-05-04 15:41:37 +02:00
Mark Olesen
a1ccd1b716 STYLE: use DebugInFunction macro 2020-05-01 16:11:18 +02:00
Kutalmis Bercin
ea16cb4b29 ENH: add directionalMeshWave functionality
For a given point within a given mesh, the existing `meshWave` method gives
  the orthogonal distance to a patch. In meshes with very steep terrain (e.g.
  a hill of 90 [deg], this might be problematic for the fields that require
  the distance to the patch associated with the terrain surface.

  `directionalMeshWave` is a variant of `meshWave` distance-to-patch method,
  which ignores the component in the specified direction. Can be used e.g. to
  calculate the distance in the z-direction only.

  TUT: add example of directionalMeshWave to mesh/moveDynamicMesh/SnakeCanyon

  Requirement by CENER
  Implementation by Mattijs Janssens
2020-04-29 19:54:00 +01:00
Mark Olesen
9cfa5fe454 Merge remote-tracking branch 'origin/master' into develop 2020-04-21 15:07:35 +02:00
Mark Olesen
aa2f932b75 CONFIG: additional packaging helpers, tutorial test helper
- bin/tools/create-mpi-config to query/write values for system openmpi.
  In some cases this can be used to avoid an mpicc requirement at runtime.

- adjust openfoam session to include -test-tutorial forwarding to the
  tutorials/AutoTest. This helps with writing installation tests.

- adjust foamConfigurePaths to latest version

- removal of gperftools default config, as per develop
2020-04-21 14:59:07 +02:00
Mark Olesen
a14a231f09 STYLE: spelling and misc code style for interfaceHeatResistance 2020-04-21 13:32:26 +02:00
Sergio Ferraris
b240f9f963 ENH: Adding interfaceHeatResistance mass transfer model
1) Add interfaceHeatResistance model to icoReactingMultiphaseInterFoam
   This model uses a spread source for the continuity Eq.
   It is recommended for cases with good mesh resolution.

2) Adding iso-surface type of calculation for the interface for
   the kineticGasEvaporation model

3) Add switch for option to take into account volume change

4) Add poolEvaporation tutorial
2020-04-20 20:58:32 +01:00
sergio
04fc529589 TUT: Adjusting Tsat in phase change model 2020-04-17 11:31:32 -07:00
Kutalmis Bercin
01514e4d43 TUT: clean up multiphase tutorials 2020-04-14 16:30:44 +01:00
sergio
5425de66e4 ENH: adding momemtumErro FO 2020-04-08 12:19:23 -07:00
sergio
0eed8fa829 ENH: Adding option to thermalBaffle to be used as external/internal baffle
Now the thermal baffle can be extrapolated from a patch which is
  coupled to the bottom patch of the solid region.

  The user can set the T bc on the 'top' patch of the solid.

  The new keyword is 'internal' and its default is true. Check new
  tutorial for an example:

  tutorials/heatTransfer/buoyantSimpleFoam/roomWithThickCeiling/
2020-04-06 15:29:07 -07:00
Mark Olesen
9b1c0786ce TUT: verificationAndValidation Allrun uses bash
STYLE: double-quote "$@" for isTest/notTest
2020-03-30 21:14:29 +02:00
Mark Olesen
2c3bfcc684 STYLE: incorrect file permissions (from commit 499933dbab) 2020-03-16 13:06:21 +01:00
Mark Olesen
06c4dc34ee ENH: adjust sampling onto meshed surfaces (#1600)
- base level surface container is now a meshedSurface instead of
  a triSurface. This avoid automatic triangulation of surfaces
  when they are read, and simplifies the internals.

- sampling types:
  * "meshedSurface" (compat: "sampledTriSurfaceMesh")
  * "meshedSurfaceNormal" (compat: "sampledTriSurfaceMeshNormal")
2020-03-12 16:20:57 +01:00
Mark Olesen
2c4b639e1f ENH: 'mag' postOperation for surfaceFieldValue (#1622)
- support postOperation for volFieldValue as well
2020-03-11 11:59:04 +01:00
Mark Olesen
083181cac4 ENH: handle entry alternatives outside of string expansion
- string expansions have supported "${var:-default}" syntax for
  several versions, but this did not apply plain dictionary expansions.

  Eg, the following did not parse

     massFlow  ${entry1:-100};

ENH: remove content and length restriction on '${..}' quoted variables

- allows this type of content:

     velocity2  ${velocity1:- ( 0 -100 10) };

- accept empty parameter strings for entries. This allows the
  following expansion to work as expected:

      hex (n1 n2..)  ${inletBlock:-} (10 10 10) simpleGrading (1 1 1)

  ie, optionally define the cellZone name for a given block

ENH: add single parameter dictionary writeEntry method.

- the dictionary knows its own name (dictName), which can be used
  when writing content
2020-02-21 14:37:11 +01:00
sergio
40e00fab01 STY: Updating multiphase tutorial settings 2020-02-20 09:04:11 -08:00
Mark Olesen
fbbf9064b9 STYLE: remove trailing space, shell quoting
- emit "constant " and "uniform " as separate word/space combination
2020-02-20 10:11:23 +01:00
sergio
514751dcf7 STY: General clean up 2020-02-19 10:40:56 -08:00
mattijs
1319144a72 STYLE: stefanProblem: cleanup. 2020-02-19 14:18:25 +00:00
mattijs
31eb7c61b5 ENH: interfaceHeight: avoid tracking to corner point 2020-02-19 14:18:25 +00:00
sergio
4abb2153a1 STY: Updating headers for tutorial 2020-02-19 14:18:25 +00:00
sergio
499933dbab ENH: Adding features for phase change solvers
1) Adding interfaceHeight FO
2) Adding interfaceHeatResistance mass transfer model to
   interCondensatingEvaporatingFoam with spread source approach
3) Reworking framework for icoReactingMultiphaseInterFoam
2020-02-19 14:18:25 +00:00
Mark Olesen
a97628121c ENH: overhaul ensight handling (#1579)
- includes restructuring and simplification of low-level ensight part
  handling and refactor of backends to improve code reuse.

foamToEnsight
-------------

  * new cellZone support.
    This was previously only possible via a separate foamToEnsightParts
    utility that was not parallelized.

  * support for point fields.

  * `-nearCellValue` option (as per foamToVTK)

  * data indexing now uses values from the time index.
    This is consistent with the ensightWrite function object and
    can help with restarts.

  * existing ensight directories are removed, unless the -no-overwrite
    option is supplied

foamToEnsightParts
------------------
  * now redundant and removed.

ensightOutputSurface (new class)
--------------------------------
  * a lightweight wrapper for point/face references that is tailored
    for the ensightSurfaceWriter. It uses compact face/point information
    and is serial only, since this is the format requirements from the
    surfaceWriter class.

ensightMesh (revised class)
---------------------------
  * now only holds a polyMesh reference, which removes its dependency
    on finiteVolume and allows it to be relocated under fileFormats
    instead of conversion.

Removed classes: ensightParts, ensighPartFaces, ensightPartCells

- these were used by foamToEnsightParts, but not needed anymore.
2020-02-18 11:09:43 +00:00
mattijs
09db19c3f0 Merge remote-tracking branch 'origin/master' into develop 2020-02-12 17:13:34 +00:00
Andrew Heather
49e63378f8 TUT: corrected link to online case. Fixes #1584 2020-02-10 11:44:20 +00:00
Mark Olesen
531f6d9ea2 TUT: add inner-region cellZone to simpleFoam/motorBike
- useful for post-processing and data conversion tests
2020-02-07 17:00:20 +01:00
Kutalmis Bercin
cee3dab140 TUT: cleanup compressible tutorials
- for all tutorial cases:
     - correct/uniformize dict-style
     - rm redundant dict entries

 - compressible.overRhoPimpleDyMFoam.twoSimpleRotors: rm redundant file: pointDisplacement
 - compressible.overRhoSimpleFoam.hotCylinder
 - compressible.rhoCentralDyMFoam.movingCone
 - compressible.rhoCentralFoam.forwardStep: activate purgeWrite=10
 - compressible.rhoCentralFoam.LadenburgJet60psi: rm redundant files: mapFieldsDict & sample
 - compressible.rhoCentralFoam.shockTube: rm redundant file: sample; command: cleanSample
 - compressible.rhoPimpleFoam.laminar.sineWaveDamping: rm redundant file: V; activate purgeWrite=10
 - compressible.rhoPimpleFoam.LES.pitzDaily: activate purgeWrite=10
 - compressible.rhoPimpleFoam.RAS.aerofoilNACA0012: activate purgeWrite=10
 - compressible.rhoPimpleFoam.RAS.angledDuct: add Allclean
 - compressible.rhoPimpleFoam.RAS.mixerVessel2D: add Allclean; rm makeMesh
 - compressible.rhoPimpleFoam.RAS.angledDuctLTS: add Allclean
 - compressible.rhoPimpleFoam.RAS.TJunctionAverage
 - compressible.rhoPorousSimpleFoam.angledDuct
 - compressible.rhoSimpleFoam.aerofoilNACA0012
 - compressible.rhoSimpleFoam.angledDuctExplicitFixedCoeff
 - compressible.rhoSimpleFoam.squareBend
 - compressible.rhoSimpleFoam.gasMixing.injectorPipe
 - compressible.sonicDyMFoam.movingCone: rm redundant file: cuttingPlane
 - compressible.sonicFoam.laminar.shockTube
 - compressible.sonicFoam.RAS.nacaAirfoil
 - compressible.sonicFoam.RAS.prism
2020-01-29 12:26:36 +00:00
Kutalmis Bercin
f55da4b690 ENH: allow datToFoam writing points dict directly
- refactors the corresponding tutorial by removing redundant files and items:
    compressible/rhoCentralFoam/biconic25-55Run35
2020-01-29 12:26:36 +00:00
Mark Olesen
669f3de327 TUT: file cleanup 2020-01-17 08:11:05 +01:00
OpenFOAM bot
596e4aef3f STYLE: remove trailing space, tabs 2020-01-22 10:00:03 +01:00
Mattijs Janssens
b8c2c0acf6 ENH: shm: support for automatic faceZones 2020-01-16 12:22:02 +00:00
Mark Olesen
b0072bfab8 ENH: regIOobject store() now also registers the object
- previously the store() method just set the ownedByRegistry flag.
  Now ensure that it is indeed registered first.

- support register/store of tmp<> items.
  The tmp parameter is not cleared, but changed from PTR to CREF
  to allow further use.

  The implicit registration allows code simplification using the
  GeometricField::New factory method, for example.

  Old Code
  ========
      volScalarField* ptr = new volScalarField
      (
          IOobject
          (
              fieldName,
              mesh.time().timeName(),
              mesh,
              IOobject::NO_READ,
              IOobject::NO_WRITE,
              true  // Register
          ),
          mesh,
          dimless,
          zeroGradientFvPatchField<scalar>::typeName
      );
      ptr->store();

  New Code
  ========
      auto tptr = volScalarField::New
      (
          fieldName,
          mesh,
          dimless,
          zeroGradientFvPatchField<scalar>::typeName
      );
      regIOobject::store(tptr);

  or even
      regIOobject::store
      (
          volScalarField::New
          (
              fieldName,
              mesh,
              dimless,
              zeroGradientFvPatchField<scalar>::typeName
          )
      );
2020-01-13 15:37:25 +00:00
Kutalmis Bercin
a68333d695 TUT: simplify basic/overPotentialFoam/cylinder
BAKW: ensures bitwise backward compatibility
2020-01-10 09:44:38 +00:00
Kutalmis Bercin
b81106f837 TUT: enable purgeWrite in driftFluxFoam tuts to avoid numerous write-outs 2020-01-10 09:44:38 +00:00
Kutalmis Bercin
8504c813d0 TUT: remove redundant white-spaces in interFoam/motorBike 2020-01-10 09:44:38 +00:00
Kutalmis Bercin
152890d288 TUT: change residuals FO remnants to solverInfo FO (#1290) 2020-01-10 09:44:38 +00:00
Kutalmis Bercin
bda695d97a TUT: simplify basic/overLaplacianDyMFoam/heatTransfer
BAKW: ensure bitwise backward compatibility
2020-01-10 09:44:33 +00:00
Kutalmis Bercin
c399a4b3fb TUT: simplify basic/laplacianFoam/flange
BAKW: ensure bitwise backward compatibility
2020-01-09 17:19:36 +00:00
Andrew Heather
be38f5fb11 Merge remote-tracking branch 'origin/master' into develop 2020-01-03 15:09:00 +00:00
Kutalmis Bercin
e34a6e7df0 TUT: change output tag 'hill' to more consistent 'bump' 2020-01-03 09:40:58 +00:00
Kutalmis Bercin
ab0dd1f1a8 DEFEATURE: deprecate v2f model in favour of kEpsilonPhitF
- kEpsilonPhitF is a kEpsilon-based model which originated
    from (Durbin, 1995)’s v2-f methodology. However, the majority of
    v2-f model variants proved to be numerically stiff for segregated
    solution algorithms due to the coupled formulations of v2 and f fields,
    particularly on wall boundaries.

    The v2-f variant (i.e. OpenFOAM’s v2f model) due to
    (Lien and Kalitzin, 2001) reformulated the original v2-f model to enable
    segregated computations; however, a number of shortcomings regarding
    the model fidelity were reported in the literature.

    To overcome the shortcomings of the v2-f methodology, the v2-f approach
    was re-evaluated by (Laurence et al., 2005) by transforming v2 scale into
    its equivalent non-dimensional form, i.e. phit, to reduce the numerical
    stiffness.
    This variant, i.e. kEpsilonPhitF, is believed to provide numerical
    robustness, and insensitivity to grid anomalies while retaining the
    theoretical model fidelity of the original v2-f model.

    Accordingly the v2f RANS model is deprecated in favour of the variant
    kEpsilonPhitF model.
2020-01-03 09:40:58 +00:00
Vaggelis Papoutsis
254d38d772 BUG: continuation of updateMethods with empty activeDesignVariables
When activeDesignVariables are not set explicitly, all design variables
are treated as active. These were allocated properly when starting from
0 but not when starting from an intermediate optimisation cycle
(e.g. running 5 optimisation cycles, stopping and restarting).

TUT: added a new tutorial including the restart of an optimisation run
to help identify future regression
2020-01-03 09:38:11 +00:00
Vaggelis Papoutsis
c413ec5009 BUG: writeMorpherCPs expects a controlBoxes entry
The controlBoxes wordList was removed from NURBS3DVolume in the
pre-release phase but writeMorpherCPs was not updated accordingly.

TUT: added the invocation of writeMorpherCPs in one of the tutotials to
help identify future regression
2020-01-03 09:36:51 +00:00
Andrew Heather
ae2ab06312 REL: Release preparations 2019-12-23 09:49:23 +00:00
mattijs
df5a056fd3 GIT: interfaceTracking: relocate library 2019-12-19 15:32:34 +00:00
Zeljko Tukovic
e5ede7e8c5 TUT: interTrack tutorials in incompressible pimpleFoam 2019-12-19 15:32:34 +00:00
mattijs
9ab75c5c3b STYLE: weightedFlux: adapt for word input 2019-12-19 09:21:32 +00:00
sergio
7d89b72e26 TUT: Using rPolynomial Eq of State for water 2019-12-18 12:08:22 -08:00
Kutalmis Bercin
a3b5299b09 BUG: fix no-U/P iteration issue in TUT/simpleFoam/turbineSiting (#1114) 2019-12-18 15:47:19 +00:00
Kutalmis Bercin
e6238a5c62 TUT: add kEpsilonPhitF RAS model example to bump2D
- STYLE: remove redundant whitespaces
2019-12-18 15:47:19 +00:00
Gabriel Barajas
634e5329d8 INT: Added tutorial cases showcasing new multi-paddle wave maker extensions 2019-12-18 13:57:41 +00:00
sergio
4818af3bef TUT: Changing combustion models for fireFoam tutorial cases.
Changing to Eddy Dissipation Model the combustion casese
for fireFoam
2019-12-17 16:02:24 -08:00
Mark Olesen
9d63a1e7c4 TUT: examples for PDRsetFields 2019-12-16 21:50:58 +01:00
Norbert Weber
3b6ba059c3 TUT: verificationAndValidation for weightedFlux scheme (#1388) 2019-10-10 12:59:39 +02:00
Mark Olesen
75ba4a07ef STYLE: consistent quoting for 'cd' 2019-12-14 13:34:48 +01:00
sergio
84095ef631 ENH: Adding solarBeamWithTrees tutorial 2019-12-13 16:40:32 -08:00
Mark Olesen
6ce3e0bd67 BUG: expression BCs missing their variables on output 2019-12-13 15:49:25 +01:00
Mark Olesen
7aa2bf832f STYLE: header format 2019-12-13 12:33:23 +01:00
Mark Olesen
373ad6df0e ENH: additional feedback about controlled mesh motion update type
- ensure that the updateControl is "non-sticky" on re-read,
  even if we do not support runtime-modifiable here

STYLE: add syntax example (wingMotion), but with updateInterval 1
2019-12-13 10:02:57 +01:00
Andrew Heather
042c529f9f Merge branch 'feature-adjoint-shapeOptimisation' into 'develop'
ENH: New adjont shape optimisation functionality

See merge request Development/openfoam!307
2019-12-12 14:18:20 +00:00
Vaggelis Papoutsis
b863254308 ENH: New adjont shape optimisation functionality
The adjoint library is enhanced with new functionality enabling
automated shape optimisation loops.  A parameterisation scheme based on
volumetric B-Splines is introduced, the control points of which act as
the design variables in the optimisation loop [1, 2].  The control
points of the volumetric B-Splines boxes can be defined in either
Cartesian or cylindrical coordinates.

The entire loop (solution of the flow and adjoint equations, computation
of sensitivity derivatives, update of the design variables and mesh) is
run within adjointOptimisationFoam. A number of methods to update the
design variables are implemented, including popular Quasi-Newton methods
like BFGS and methods capable of handling constraints like loop using
the SQP or constraint projection.

The software was developed by PCOpt/NTUA and FOSS GP, with contributions from

Dr. Evangelos Papoutsis-Kiachagias,
Konstantinos Gkaragounis,
Professor Kyriakos Giannakoglou,
Andy Heather

[1] E.M. Papoutsis-Kiachagias, N. Magoulas, J. Mueller, C. Othmer,
K.C.  Giannakoglou: 'Noise Reduction in Car Aerodynamics using a
Surrogate Objective Function and the Continuous  Adjoint Method with
Wall Functions', Computers & Fluids, 122:223-232, 2015

[2] E. M. Papoutsis-Kiachagias, V. G. Asouti, K. C. Giannakoglou,
K.  Gkagkas, S. Shimokawa, E. Itakura: ‘Multi-point aerodynamic shape
optimization of cars based on continuous adjoint’, Structural and
Multidisciplinary Optimization, 59(2):675–694, 2019
2019-12-12 14:17:29 +00:00
Kutalmis Bercin
f9e5392171 BUG: fix tut regression for potentialFoam (#1518) 2019-12-12 11:22:13 +00:00
Kutalmis Bercin
64242fc096 TUT: generalise planarPoiseuille for all laminar models (#1509) 2019-12-12 11:22:13 +00:00
Kutalmis Bercin
be235787cf DOC: add missing tags into Stokes.H (#1509)
STYLE: add missing comment dashes, DOI
  DOC: add DOI into WatersKing.C
2019-12-12 11:22:13 +00:00
Mark Olesen
1847bd16be TUT: use fast topological search for channel395DFSEM blockMesh
- same result, but approx 4x faster for this case
2019-12-11 09:45:54 +01:00
Andrew Heather
e1a7c0ed1d ENH: Particle PatchPostProcessing - enable users to filter particle property output
The optional 'fields' entry can be used to limit which particle fields are
written to file.  If empty/not specified, all properties are written to
maintain backwards compatibility.

    patchPostProcessing1
    {
        type            patchPostProcessing;
        maxStoredParcels 20;
        fields          (position "U.*" d T nParticle);
        patches
        (
            cycLeft_half0
            cycLeft_half1
        );
    }
2019-12-09 23:31:01 +00:00
Andrew Heather
deeb27896c ENH: Added option to write particle patch interactions to file
File writing is off by default; to activate, add to the patch interaction model
coeff dictionary

    writeToFile yes;
2019-12-09 22:31:09 +00:00
Mark Olesen
44304e07d6 TUT: simple tutorial with expression boundary conditions and setExprFields 2019-12-10 13:09:22 +01:00
Mark Olesen
c2123452b1 ENH: generalize string expression evaluation
- replace stringOps::toScalar with a more generic stringOps::evaluate
  method that handles scalars, vectors etc.

- improve #eval to handle various mathematical operations.
  Previously only handled scalars. Now produce vectors, tensors etc
  for the entries. These tokens are streamed directly into the entry.
2019-12-09 19:44:23 +01:00
Andrew Heather
9a7adf3606 Merge branch 'master' into develop-v1906 2019-12-06 12:05:32 +00:00
Mark Olesen
9e6683f7bc ENH: add conditionals to #eval (string to scalar)
Example,

     ($radius > 10) ? sin(degToRad(45)) : cos(degToRad(30))

- protect division and modulo against zero-divide.

- add scanner/parser debugging switches in the namespace,
  selectable as "stringToScalar". For example,

    debug parser:  foamDictionary -debug-switch stringToScalar=2
    debug scanner: foamDictionary -debug-switch stringToScalar=4
    debug both:    foamDictionary -debug-switch stringToScalar=6
2019-11-19 14:22:03 +01:00
Mark Olesen
a5a222f7cf ENH: support scalar tokens when testing #if, #ifeq
- this allows use of #eval results in the tests
2019-11-19 09:00:00 +01:00
Mark Olesen
53a617b829 TUT: use foamDictionary without runApplication wrapper
- avoids generating a log file, which is missing an "End" tag that
  allows the test loop to identify the completion status
2019-11-18 12:18:43 +01:00
Mark Olesen
b40d1d8e4f BUG: decomposePar fails with csv table in binary (fixes #1498) 2019-11-18 16:59:51 +01:00
Mark Olesen
98467036b3 STYLE: regularize quoting and exit on failed 'cd' 2019-11-13 13:19:16 +01:00
Kutalmis Bercin
f41b2db8c8 BUG: correct delta:turbulentDFSEMInlet from 2 to 1 (#1459) 2019-11-14 14:06:44 +00:00
Kutalmis Bercin
80681eeb2b TUT: reorganise the scripts and dicts in turbulentInflow 2019-11-14 10:09:36 +00:00
OpenFOAM bot
e9219558d7 GIT: Header file updates 2019-10-31 14:48:44 +00:00
Mark Olesen
60155bd90d TUT: add (disabled) surfaceFieldValue interpolate (#1488) 2019-11-09 16:51:31 +01:00
Mark Olesen
e230e9c5e6 TUT: add missing relax entry in reactingTwoPhaseEulerFoam/RAS/wallBoiling 2019-11-09 16:51:31 +01:00
Mark Olesen
0968408736 STYLE: correct executable permissions and shebang on tutorial files
- triggers rpmlint warnings
2019-10-01 15:47:29 +02:00
Mark Olesen
784d3ad5d4 BUG: sourced incorrect LogFunctions location
- cleanup the run script syntax
2019-11-08 13:14:14 +01:00
Mark Olesen
979a12e521 TUT: fix Allrun script for bump2D
- use sed instead of foamDictionary and avoid log file

- ensure consistent behaviour with plot script

GIT: added missing 0/k field : inlet values still need adjustment
2019-11-07 09:35:10 +01:00
Mark Olesen
46d7db79aa TUT: consistent calling of m4 2019-11-06 11:50:42 +01:00
Mark Olesen
e6dfb39c66 STYLE: remove unnecessary stdout, stderr /dev/null redirects
- no stderr redirect needed:
    * 'command -v'

- no stdout/stderr redirect needed:
    * 'rm -f'

STYLE: consistent spacing after redirects
2019-11-06 10:44:36 +01:00
Mark Olesen
ec7e3c88e4 ENH: test for WM_PROJECT_DIR being set/unset in scripts 2019-11-06 09:18:51 +01:00
Andrew Heather
fdf8d10ab4 Merge commit 'e9219558d7' into develop-v1906 2019-12-05 11:47:19 +00:00
Mark Olesen
ad5be0586b TUT: define slip boundaries in building motion tutorial
- define nut conditions explicitly, without fallback definition
2019-11-02 19:46:12 +01:00
Kutalmis Bercin
5577606997 ENH: generalise bump2D Allrun and plot scripts
STYLE: renamed periodicHill createPlots -> plot for consistency

TUT: use nutLowReWallFunction for bump2D

- required for the new nutWallFuncs hierarchy
2019-11-01 16:08:24 +00:00
sergio ferraris
9f11d892f5 ENH: Update of alphaBoiling BC, Bromley and tutorial 2019-10-28 12:30:53 -07:00
Mark Olesen
7b42931a7b TUT: use nutkWallFunction 2019-10-10 07:35:16 +02:00
Mark Olesen
6b5492e3bd ENH: code simplification, improvements for reading dictionary variables
- Now accept '/' when reading variables without requiring
  a surrounding '{}'

- fix some degenerate parsing cases when the first character is
  already bad.

  Eg, $"abc" would have previously parsed as a <$"> variable, even
  although a double quote is not a valid variable character.

  Now emits a warning and parses as a '$' token and a string token.
2019-10-08 18:43:38 +02:00
Kutalmis Bercin
5cbfe44d6b TUT: add Allclean script into bump2D 2019-10-02 18:32:13 +01:00
Mark Olesen
8f1844fff0 TUT: remove cr-nl endings
- use git show --ignore-space-change when examining
2019-10-01 12:39:10 +02:00
Mark Olesen
93422f1a72 TUT: use simpler syntax for motionSolverLibs entries 2019-10-01 10:58:53 +02:00
Mark Olesen
e7f380dcd5 TUT: use #eval instead of #calc where possible 2019-10-01 10:14:55 +02:00
Mark Olesen
02914539f7 TUT: consistent use of scale in blockMeshDict 2019-10-01 09:33:38 +02:00
Mark Olesen
3625d0ecd1 TUT: remove duplicate ;; in dictionaries 2019-10-01 10:39:40 +02:00
Mark Olesen
fc461a1cc6 TUT: use writeControl "adjustable" (alias for "adjustableRunTime") 2019-09-27 15:50:06 +02:00
sergio
356995bf07 TUT: Update radiation tutorials radiation BC's for transmissivity 2019-09-16 10:05:55 -07:00
Mark Olesen
8037b8d6a8 ENH: allow invariant surfaces for sampling (#1418)
- an advanced feature, for example when sampling on a static patch
  while some motion occurs elsewhere. [use with caution]

- If the sampled surface dictionary is modified during run-time, the
  ensight file indexing for the geometry will become out of sync.
  This is addressed in a subsequent commit.
2019-08-30 15:46:07 +02:00
OpenFOAM bot
880d81475b TUT: use simpler syntax for libs entries 2019-08-30 16:45:45 +02:00
sergio
785241178f BUG: Correct div(u*p) for Teqn in compressibleInterFoam .Gitlab 1400. 2019-08-21 11:34:18 -07:00
sergio
27a0a073e5 ENH: Adding div schemes for div(phi,p) 2019-08-22 09:11:27 -07:00
Mark Olesen
8d7b8043a4 ENH: add time ramping to surfaceNormalFixedValue (#1407)
- alternatively can use uniformNormalFixedValue with PatchFunction1
  specification and temporal ramping.

TUT: add ramped example for simpleCar
2019-08-22 12:28:30 +02:00
Mark Olesen
2ca4792734 TUT: add coded example for sampling cellZoneId (#1383) 2019-08-21 12:13:51 +02:00
sergio
771410e546 ENH: Adding tutorial for overset and multi motion solvers 2019-08-16 12:36:18 -07:00
sergio
f95b67b565 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2019-07-30 08:49:57 -07:00