Commit Graph

18953 Commits

Author SHA1 Message Date
789cef44fc Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-05 08:54:15 +00:00
94fd633243 thermalBaffle: ensure mappedPatchBase is updated following mesh topology changes
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2323
2016-12-05 08:44:43 +00:00
304af9fc5f reactingTwoPhaseEulerFoam: Added LTS support to the face-momentum algorithm 2016-12-04 10:14:43 +00:00
2b551d8751 metisDecomp: Corrected return from metisDecomp::decompose
Resolves bug-report http://bugs.openfoam.org/view.php?id=2370
2016-12-03 19:26:21 +00:00
2fa6436b6e setFields: Added '-dict' option
Resolves bug-report http://bugs.openfoam.org/view.php?id=2366
2016-12-03 11:45:36 +00:00
b57859269b tmp: Removed temporary global functions 2016-12-03 11:44:18 +00:00
f303f2a289 motionSolver: Removed unused member data 2016-12-02 12:44:09 +00:00
c300fd5ca8 dictionary: Handle the distinction between '.' as a keyword character and a scope operator
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2358
2016-12-02 12:23:17 +00:00
ab760b6cd1 tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling.*: Correct q entry
Patch contributed by Mattijs Janssens
2016-12-02 12:22:30 +00:00
6534b58784 processorMeshes::read destruct before de-register
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2368
2016-12-01 22:07:50 +00:00
64548a6283 meshToMesh0: fixed segmentation fault
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2363
2016-12-01 19:55:39 +00:00
0030d9ea35 etc/bashrc,cshrc: Added FJMPI and INTELMPI
Resolves request http://bugs.openfoam.org/view.php?id=2367
2016-12-01 19:53:08 +00:00
031c75374e ENH: Relocated injectedParticle class to lagrangian library 2016-12-01 17:04:37 +00:00
458357226a BUG: Removing code unintenionally committed 2016-12-01 16:59:47 +00:00
1d3782a8af ENH: improve IOobjectList functionality (issue #322)
- provide additional filtering methods on names(), sortedNames()
  For example,

      IOobjectList objects = ...;
      wordReList selection = ...;

      objects.sortedNames(VolFieldType::typeName, selection);
2016-12-01 17:59:38 +01:00
8602fd13f4 ENH: Initial commit of new particleDistribution FO - generates 'general' distribution for lagrangian particle clouds 2016-12-01 16:52:37 +00:00
6d8281e217 ENH: extractEulerianParticles FO updates 2016-12-01 16:51:11 +00:00
f666f54984 ENH: distributionModels - refactored binned and general models 2016-12-01 16:50:13 +00:00
c0f1a87d54 STYLE: Code clean-up 2016-12-01 16:49:34 +00:00
445513a1dc mixerVesselAMI2D/constant/dynamicMeshDict: Removed unused motionSolverLibs entry 2016-12-01 16:13:18 +00:00
1c687baa35 dynamicMotionSolverListFvMesh: New mesh-motion solver supporting multiple moving regions
e.g. the motion of two counter-rotating AMI regions could be defined:

dynamicFvMesh   dynamicMotionSolverListFvMesh;

solvers
(
    rotor1
    {
        solver solidBody;

        cellZone        rotor1;

        solidBodyMotionFunction  rotatingMotion;
        rotatingMotionCoeffs
        {
            origin        (0 0 0);
            axis          (0 0 1);
            omega         6.2832; // rad/s
        }
    }

    rotor2
    {
        solver solidBody;

        cellZone        rotor2;

        solidBodyMotionFunction  rotatingMotion;
        rotatingMotionCoeffs
        {
            origin        (0 0 0);
            axis          (0 0 1);
            omega         -6.2832; // rad/s
        }
    }
);

Any combination of motion solvers may be selected but there is no special
handling of motion interaction; the motions are applied sequentially and
potentially cumulatively.

To support this new general framework the solidBodyMotionFvMesh and
multiSolidBodyMotionFvMesh dynamicFvMeshes have been converted into the
corresponding motionSolvers solidBody and multiSolidBody and the tutorials
updated to reflect this change e.g. the motion in the mixerVesselAMI2D tutorial
is now defined thus:

dynamicFvMesh   dynamicMotionSolverFvMesh;

solver solidBody;

solidBodyCoeffs
{
    cellZone        rotor;

    solidBodyMotionFunction  rotatingMotion;
    rotatingMotionCoeffs
    {
        origin        (0 0 0);
        axis          (0 0 1);
        omega         6.2832; // rad/s
    }
}
2016-12-01 15:57:15 +00:00
85036f78ab orthogonalSnGrad, uncorrectedSnGrad: Improved documentation
Resolves request http://bugs.openfoam.org/view.php?id=2364
2016-12-01 15:17:14 +00:00
144e08e213 reactingEulerFoam: Updated to support zoneCombustion models 2016-12-01 15:16:19 +00:00
4427d9e49c Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-01 14:32:02 +00:00
450d84bd77 BUG: surfaceNormalFixedValue: do not use ptf.patch(). Fixes #319 2016-12-01 14:31:22 +00:00
d5e2b73500 STYLE: simplify logic statement 2016-12-01 14:25:38 +01:00
92fa5a1921 ENH: 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-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);

--
2016-12-01 13:04:07 +01:00
8628ddac43 ENH: add Test-objectRegistry (issue #322)
- test clearly shows failure to insert a sub-registry when it has
  the same name as one of the parent sub-registry.
2016-12-01 12:30:38 +01:00
9e910e6c14 Merge branch 'feature-extract-eulerian-particles' of develop.openfoam.com:Development/OpenFOAM-plus into feature-extract-eulerian-particles 2016-11-30 23:32:51 +00:00
78bb633dfc ENH: extractEulerianParticles FO - refactored to output a cloud of particles - distribution analysis to follow... 2016-11-30 23:32:33 +00:00
6486209aa2 ENH: Lagrangian - added functions to add particle data as fields on an object registry 2016-11-30 17:18:48 +00:00
99a1eee024 ENH: Lagrangian - added functions to add particle data as fields on an object registry 2016-11-30 17:18:48 +00:00
5d7f8f11d6 GIT: rearrange files for surface sampling sources
- isolate the surface source (plane, iso-surface etc), from sampling
2016-11-30 10:31:07 +01:00
8b75035f29 ENH: change UnsortedMeshedSurface -> meshedSurface for sampledTriSurfaceMesh
- all sampled surface types now consistently use the same storage,
  which allows some more simplifications in the future.

- before/after comparison of the sampledTriSurfaceMesh tested with
  motorbike passenger helmet (serial and parallel). Use the newly added
  'keepIds' functionality to retain the original ids, and can also
  compare them to the original obj file with "GenerateIds" in paraview.
2016-11-29 22:56:08 +01:00
3c41b80b38 ENH: change from triSurface to meshedSurface storage for iso-surfaces
- this makes it easier to reuse the code, and sampledSurface expect
  a face (not a labelledFace), so this also eliminates a translation
  level and simplifies memory management.

- before/after comparison of the sampled iso-surfaces tested with
  iso-surfaces from interFoam/RAS/angledDuct tutorial (serial and
  parallel)
2016-11-29 17:24:26 +01:00
690f58d2cb ENH: support retention of original surface ids when sampling (related to issue #104)
For example,
    surfaces
    (
        helmet
        {
            type        sampledTriSurfaceMesh;
            surface     motorBike-passenger-helmet.obj;
            source      cells;
            keepIds     true;  <<-- NEW
        }
    );

    This will create an additional "Ids" field that can be used to sort
    or as a faceMap to recover the original face order.
2016-11-29 17:14:56 +01:00
fbd4ff38b0 STYLE: correct the documented behaviour of 'none' for function objects
- cf. Line 224 of timeControl.C
2016-12-13 10:11:17 +01:00
6f2b2aff40 STYLE: reduce script verbosity 2016-12-13 08:15:00 +01:00
17bedf58d9 STYLE: consistent of enumerations between ensight components 2016-12-13 08:09:26 +01:00
9041c9083e BUG: incorrect addressing in ensight faces/cells (issue #334)
- was erroneously using global sizing for offsets instead the processor
  local sizing.

--

STYLE: adjust variable naming, indentation for consistency
2016-12-12 17:52:02 +01:00
271c8c8c6e ENH: Added new extractEulerianParticles function object
Generates discrete particle data from multiphase calculations by
interrogating the phase fraction field at a faceZone.

Data is written in raw form, i.e. per particle collected, with
as an optional binned distribution
2016-11-29 14:56:48 +00:00
47439e4917 ENH: pairPatchAgglomeration - multiple updates 2016-11-29 14:46:19 +00:00
86982f5eb7 ENH: writeFile - return bool on successful read 2016-11-29 14:45:45 +00:00
89b1b64414 ENH: distributionModels - added new binned model to add discrete binned sizes 2016-11-29 14:45:33 +00:00
c6acd68618 ENH: Added new regionSplit2D to split 2-D regions based on an indicator field 2016-11-29 14:41:02 +00:00
966b6e730e CONFIG: incorrect MPI_HOME for (unsupported) mpich 2016-11-29 13:06:03 +01:00
026ed13c10 ENH: warn user when using constant/polyMesh/blockMeshDict (issue #309)
- the user might otherwise be unaware of the changed location
2016-11-29 12:14:48 +01:00
75b30cfb2c STYLE: eliminate the last vestiges of unallocLabelList in favour of labelUList
- both are typedefs for UList<label>
2016-11-29 11:49:46 +01:00
4ab9806348 BUG: foamToEnsight -faceZones fails (issue #317)
- was using direct face ids instead of appropriate sub-lists
- also removed typo that wasn't helping much either
2016-11-29 11:45:01 +01:00
d45d5a9e0a STYLE: remove definition of unimplemented faceZone method 2016-11-29 11:08:31 +01:00