Commit Graph

3880 Commits

Author SHA1 Message Date
a1091a254a nutkRoughWallFunction: Re-derived and implemented to improve stability and range of applicability
This wall function is now stable even if the near-wall cell centre distance is
less than the roughness height although it is unlikely to be very accurate if
used in this way.

The sudden change limit stabilisation has been re-implemented to avoid the
near-wall viscosity being lower limited to half the laminar viscosity which has
no physical meaning.
2019-06-07 23:24:55 +01:00
f8f083841e rigidBodyMeshMotion, rigidBodyMeshMotionSolver, rigidBodyMeshMotionSolver: ensure state dictionary is written ASCII
Resolves bug-report https://bugs.openfoam.org/view.php?id=3288
2019-06-06 12:43:36 +01:00
00ae415b71 Added copy constructors to classes with copy assignment operator defined
and copy assignment operator for classes with a copy constructor

This is often described as the rule of 3 (or rule of 5 in C++11 if move
constructors and assignment operators are also defined) and makes good sense in
ensuring consistency.  For classes in which the default bitwise copy constructor
or assignment operator are appropriate these are now specified explicitly using
the "= default" keyword if the other is explicitly defined fulfilling the rule
of 3 without the need to define the body of the function.
2019-06-05 23:32:22 +01:00
74d45a1313 rotorDiskSource: Use the scalar sign function 2019-06-04 15:56:19 +01:00
77f441344e Scalar: Changed the return type of sign, pos, pos0, neg and neg0 to int 2019-06-04 15:55:45 +01:00
fcbebe9eb3 rotorDiskSource: Enable opposite spin in rotorDisk, for fixed thrust direction
Patch contributed by Robert Lee
Resolves patch request https://bugs.openfoam.org/view.php?id=3285
2019-06-04 10:33:48 +01:00
68e9c8eac2 Lagrangian: Removed more instances of random-number-based perpendicular vector calculations
Perpendicular vectors should be generated using the global
"perpendicular" function, which guarantees a non-zero result without a
random number generator and without looping.
2019-06-03 08:31:33 +01:00
aaed26965f nutWallFunction: Added a nutw static function to return the nutWallFunction patchField for a given patch 2019-06-02 13:10:34 +01:00
1e2550b6cd Rationalised wall function implementation to avoid complex and inconsistent coefficients
All wall functions now operate collaboratively, obtaining the Cmu, kappa and E
coefficients and yPlusLam from the nutWallFunction base class.  Now these
optional inputs need only be specified in the nut boundary condition with the k,
epsilon, omega, v2 and f wall functions obtaining these values from there.  This
is much simpler to specify and avoids inconsistencies in the operation of the
wall functions for the different turbulence fields.

The code has also been rationalised and simplified avoiding unnecessary code
and duplication.
2019-05-31 19:40:32 +01:00
fc4d7b92c3 Corrected documentation comment for disabled copy constructors 2019-05-29 15:58:42 +01:00
f7ea836c65 src/OpenFOAM: Moved the deleted bitwise copy and assignment declarations into public section of the class 2019-05-29 15:48:49 +01:00
a7f4147887 HookFunctions: Ensure the checkHeaderIfndefNames is applied only if the "_H" is at the end of the line 2019-05-28 15:32:52 +01:00
9140984cf4 Added "= delete" to disabled bitwise copy constructors and assignment operators
Currently these deleted function declarations are still in the private section
of the class declarations but will be moved by hand to the public section over
time as this is too complex to automate reliably.
2019-05-28 15:26:45 +01:00
11780ffae9 decompositionMethods: Removed temporary debug build option 2019-05-27 22:35:13 +01:00
3ecef91e72 Standardised copy constructor documentation comment 2019-05-27 22:34:32 +01:00
dfe7b86e70 rotorDiskSource: Added output of rotor power
Patch contributed by Robert Lee
Resolves patch request https://bugs.openfoam.org/view.php?id=3262
2019-05-26 12:11:33 +01:00
47d2e03ae3 cuttingPlane: Corrected handling of intersection between a plane and a cellZone in parallel
Patch contributed by Federico Piscaglia
Resolves bug-report https://bugs.openfoam.org/view.php?id=3283
2019-05-26 12:01:41 +01:00
0a3b7a7932 Comment spelling corrections from codespell 2019-05-26 10:56:36 +01:00
30bea84fac C++11 conformance and consistency: Added "move" constructors and assignment operators to OpenFOAM containers
Replaced all uses of complex Xfer class with C++11 "move" constructors and
assignment operators.  Removed the now redundant Xfer class.

This substantial changes improves consistency between OpenFOAM and the C++11 STL
containers and algorithms, reduces memory allocation and copy overhead when
returning containers from functions and simplifies maintenance of the core
libraries significantly.
20190525
2019-05-25 17:40:39 +01:00
0889ff91c7 graphField: Moved graphs directory into postProcessing 2019-05-20 10:43:36 +01:00
deb279aa83 foamMonitor: for log plots, use exponential (%e) format for ytics 2019-05-17 17:20:31 +01:00
5ed7aa35fb blockMeshMerge: Increased merge tolerance
Resolves bug-report https://bugs.openfoam.org/view.php?id=3233
2019-05-17 11:24:12 +01:00
11bb91ded4 sixDoFRigidBodyMotionSolver: Updated the write function which stores the motion state for restart 2019-05-16 22:23:21 +01:00
ce9bc2a2ea Non-linear turbulence models: Updated link to document describing the models 2019-05-16 22:22:36 +01:00
e4d89daf5d coupledFvPatches: Prevent crashes when operating on processor cases 20190515 2019-05-10 16:06:43 +01:00
4163d53eec lagrangian: integrationScheme: Fixed typo in documentation 2019-05-10 16:05:22 +01:00
4f7f488f22 directFieldMapper, setSizeFieldMapper: new specialised field mappers for decomposition and reconstruction
Using the new field mapper framework it is now possible to create specialised
mappers rather than creating a fatter and fatter interface in the base mapper.
This approach is far more extensible, comprehensible and maintainable.
2019-05-09 22:12:44 +01:00
cad82260d8 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-05-07 15:59:20 +01:00
69eccc7742 fieldMapper: Moved distributed functionality to distributedWeightedFvPatchFieldMapper 2019-05-07 15:58:23 +01:00
8803a89407 fvOptions: Added volumeFractionSource and solidEquilibriumEnergySource
The volumeFractionSource represents the effect of a reduction in the
volume of the domain due to the presence of a stationary phase, most
likely a solid porous media. It only represents the dynamic effects
associated with the reduction in volume; it does not does not model
loss, drag or heat transfer. Separate models (e.g., the existing
porosity models) will be necessary to represent these effects. An
example usage, in system/fvOptions, is as follows:

    volumeFraction
    {
        type            volumeFractionSource;
        phase           solid;
        phi             phi;
        rho             rho;
        U               U;
        fields          (rho U e);
    }

The volume fraction will be read from constant/alpha.<phase>, and must
be generated in advance using setFields or a function object. Note that
the names of the flux, density (if compressible) and velocity must all
be specified. Every field for which a transport equation is solved
should also be specified in the "fields" entry.

The solidEquilibriumEnergySource adds the thermal inertia and diffusive
characteristics of a stationary solid phase to the energy equation of
the fluid, assuming that the two phases are in thermal equilibrium. An
example usage is as follows:

    solidEqulibriumEnergy
    {
        type            solidEqulibriumEnergySource;
        phase           solid;
        field           e;
    }

This will read the volume fraction in the same way as the
volumeFractionSource option. In addition, thermal properties of the
solid will be constructed from settings in
system/thermophysicalProperties.<phase>.

Two tutorials have been added, demonstrating use of these options in
both incompressible and compressible simulations. These are
incompressible/pimpleFoam/laminar/blockedChannel and
compressible/rhoPimpleFoam/laminar/blockedChannel.
2019-05-07 08:52:57 +01:00
5203a84a0f PatchFields: Improved documentation of the autoMap and rmap functions 2019-05-03 21:53:13 +01:00
84e71a419a rigidBodyMeshMotion, sixDoFRigidBodyMotion: lookup g from the mesh rather than time
It would be more logical if g were registered to time but less flexible.
2019-05-03 17:15:14 +01:00
b8e15e24b1 fvPatchField: Rationalised autoMap 2019-05-03 13:06:45 +01:00
722e2f5673 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-05-03 08:59:25 +01:00
4b57ee554e Renamed FieldMapper -> fieldMapper: it is an abstract base class for field mapping, not templated 2019-05-03 08:58:13 +01:00
76a8f398aa Field: Replaced autoMap with support in the map functions for mapping to self
Avoids clutter in the interface and code duplication.
2019-05-02 19:05:42 +01:00
687d56fbf1 Field: Moved FieldMapper mapping functions to FieldMapper and made virtual
This allows easier extension and specialisation of field mapping.
2019-05-02 15:43:32 +01:00
562040f572 waveSuperposition: Fixed name clash and memory leak
Resolves bug report https://bugs.openfoam.org/view.php?id=3229
2019-04-30 16:59:57 +01:00
6afe1b4632 Field: Remove "applyFlip" from the low-level field mapping
This functionality should be implemented and applied at a higher level so that
it can be controlled more easily and applied only to flux fields.
2019-04-29 19:27:47 +01:00
784244790f DTCHull tutorials: rename fields to .orig
to avoid them being overwritten during renumbering
2019-04-29 19:26:50 +01:00
3395a5ba35 decomposePar: Apply face-flipping to surfaceScalarFields only
Flux fields (surfaceScalarFields) are flipped as before but this process is no
longer applied to surfaceVectorFields (Uf etc.) for which it is not appropriate.
decomposePar is now consistent with reconstructPar with respect to
surfaceVectorFields.

Patch contributed by Mattijs Janssens.
2019-04-29 12:23:07 +01:00
af45bd636d regIOobject: changed the "valid" argument name to "read" for read function and "write" for write functions
This clarifies the purpose which is to indicate that the object should be read
or written on this particular processor rather than it is or is not valid.
2019-04-27 10:46:57 +01:00
5420c5001b snappyLayerDriver: Partially revert added support for patch manipulation of pointFields
commit 3cbb932be8
Pending further work on field mapping.

Patch contributed by Mattijs Janssens
20190427
2019-04-26 16:29:48 +01:00
911a106592 fvMesh: Ensure V0 is written if V00 exists for restart of backward differencing 2019-04-26 16:28:07 +01:00
3eb9635cde Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-04-26 10:55:49 +01:00
66c81f2e3d IATEsources::randomCoalescence: Protect source from unboundedness in kappai 2019-04-26 10:43:58 +01:00
6d3f5cdd6a reconstructPar: Prevent moving flag from being set
Setting the moving flag as a result of a reconstruction of the mesh at a
new time was causing lagrangian reconstruction to fail, as the necessary
moving mesh data had not been cached.
2019-04-26 08:45:48 +01:00
4cb2466f28 reactingEulerFoam: Reorganised continuity error update to avoid fluid properties being recalculated unnecessarily
in particular avoiding IATE being solved a second time after the energy
solution.
2019-04-25 19:49:53 +01:00
54cb927cee Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-04-24 16:49:20 +01:00
51d4c0d974 dynamicMotionSolverFvMesh, motionSolver: added support to write the motion state when the mesh is written 2019-04-24 16:47:35 +01:00