Commit graph

71 commits

Author SHA1 Message Date
Henry Weller
1e6c9a0a54 Updated UPstream::commsTypes to use the C++11 enum class 2017-03-10 19:54:55 +00:00
Henry Weller
9943327215 NamedEnum: Updated to support C++11 scoped enumerations 2017-02-02 17:02:59 +00:00
Henry Weller
0f91f62cef Removed trailing blank lines
Resolves bug-report https://bugs.openfoam.org/view.php?id=2438
2017-01-19 20:17:47 +00:00
Henry Weller
2eac40eac6 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
Henry Weller
ea67173330 Updated member type comments
Resolves bug-report http://bugs.openfoam.org/view.php?id=2356
2016-11-28 21:23:00 +00:00
Henry Weller
298003f333 Map, SortableList: Added constructors from and assignment to initializer list
Patch based on contribution from Mattijs Janssens
Resolves http://bugs.openfoam.org/view.php?id=2276
2016-09-30 18:49:38 +01:00
Henry Weller
5dea077008 ILList: Added doc for assignment 2016-08-12 13:28:56 +01:00
Henry Weller
8e9a8373dd OpenFOAM/containers/LinkedLists: Replaced partially specialized template classes with C++11 template aliases
This feature of C++11 avoids complex code duplication simplifies code maintenance
2016-08-12 13:21:05 +01:00
Henry Weller
8060826b2a LList, SLList: Added construction from and assignment to initializer_list
SLList: now a C++11 template alias rather than a wrapper-class.
2016-08-12 10:01:41 +01:00
Henry Weller
3d742e78a9 OpenFOAM/containers: Standardized assignment docs 2016-08-12 10:00:48 +01:00
Henry Weller
c4f844a68b FixedList: Added void operator=(std::initializer_list<T>) 2016-08-11 22:02:05 +01:00
Henry Weller
275a59af66 HashTable: Added void operator=(std::initializer_list<Tuple2<Key, T>>) 2016-08-11 21:41:55 +01:00
Henry Weller
5602c48426 List: Added void operator=(std::initializer_list<T>) 2016-08-09 20:36:32 +01:00
Henry Weller
126813acae Corrected nullptr collateral damage
Resolves bug-report http://bugs.openfoam.org/view.php?id=2181
2016-08-08 15:38:53 +01:00
Henry Weller
65207e29ea HashTable: Added C++11 initializer_list constructor
e.g.
    HashTable<label, string> table1
    {
        {"kjhk", 10},
        {"kjhk2", 12}
    };

    HashTable<label, label, Hash<label>> table2
    {
        {3, 10},
        {5, 12},
        {7, 16}
    };
2016-08-05 22:30:26 +01:00
Henry Weller
7656c076c8 C++11: Replaced the C NULL with the safer C++11 nullptr
Requires gcc version 4.7 or higher
2016-08-05 17:19:38 +01:00
Henry Weller
42e6cf574d FixedList: Add constructors from iterators and C++11 initializer_list using C++11 constructor delegation 2016-08-05 16:25:18 +01:00
Henry Weller
232a2a092c FixedList: Corrected checkSize
Resolves bug-report http://bugs.openfoam.org/view.php?id=2178
2016-08-03 19:45:31 +01:00
Henry Weller
22574e7133 List: Reinstated construction from two iterators and added construction from an initializer list
Until C++ supports 'concepts' the only way to support construction from
two iterators is to provide a constructor of the form:

        template<class InputIterator>
        List(InputIterator first, InputIterator last);

which for some types conflicts with

        //- Construct with given size and value for all elements
        List(const label, const T&);

e.g. to construct a list of 5 scalars initialized to 0:

    List<scalar> sl(5, 0);

causes a conflict because the initialization type is 'int' rather than
'scalar'.  This conflict may be resolved by specifying the type of the
initialization value:

    List<scalar> sl(5, scalar(0));

The new initializer list contructor provides a convenient and efficient alternative
to using 'IStringStream' to provide an initial list of values:

    List<vector> list4(IStringStream("((0 1 2) (3 4 5) (6 7 8))")());

or

    List<vector> list4
    {
        vector(0, 1, 2),
        vector(3, 4, 5),
        vector(6, 7, 8)
    };
2016-08-02 09:31:41 +01:00
Henry Weller
cd58a79a44 checkGeometry, moveDynamicMesh: Convert processor IDs to 'List<label>'
Resolves bug-report http://bugs.openfoam.org/view.php?id=2140
2016-07-09 20:47:06 +01:00
Henry Weller
8a5304edf6 Doxygen documentation: Standardized the 'See also' heading 2016-06-17 17:31:34 +01:00
Henry Weller
a495f4d738 foamDebugSwitches -> foamList -debug 2016-06-10 13:34:58 +01:00
Henry Weller
ca45cf1614 DynamicList: minor cleanup 2016-06-04 17:45:11 +01:00
Henry Weller
f823a0ceee HashTable: Correct error messages
Resolves bug-report http://bugs.openfoam.org/view.php?id=2106
2016-05-31 17:18:23 +01:00
Henry Weller
4500971827 Further standardization of loop index naming: pointI -> pointi, patchI -> patchi 2016-05-18 21:20:42 +01:00
Henry Weller
085f011369 PtrList: Now derived from UPtrList to avoid unnecessary code duplication
consistency with UList/List and so that functions which take a UPtrList
argument can also be called for PtrList.
2016-05-06 14:08:12 +01:00
Henry Weller
064d3046b9 List: Removed unused constructor from iterators
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2074
2016-04-29 17:17:45 +01:00
Henry Weller
cb9732204d Replaced StaticAssert with the C++11 equivalent static_assert 2016-04-26 20:44:55 +01:00
Henry Weller
6fd4ce6cc3 Revert "src/postProcessing/functionObjects/field/Make/files: Corrected"
This reverts commit 73fe45cd27.
2016-04-26 20:33:45 +01:00
Henry Weller
73fe45cd27 src/postProcessing/functionObjects/field/Make/files: Corrected 2016-04-26 20:31:58 +01:00
Henry Weller
a8bf4be58a Standardized cell, patch, face and processor loop index names 2016-04-25 12:00:53 +01:00
Henry Weller
bac78ef989 PtrListIO: Indent list elements on output.
Particularly useful for lists of dictionaries.
2016-04-17 15:45:29 +01:00
Henry Weller
9aaf17d45d List: Remove the inherited UList::shallowCopy to avoid accidental misuse 2016-04-07 21:05:26 +01:00
Henry Weller
ac71f86574 UList: Rationalize assignment (shallow-copy vs deep-copy)
//- Disallow default shallow-copy assignment
    //
    //  Assignment of UList<T> may need to be either shallow (copy pointer)
    //  or deep (copy elements) depending on context or the particular type
    //  of list derived from UList and it is confusing and prone to error
    //  for the default assignment to be either.  The solution is to
    //  disallow default assignment and provide separate 'shallowCopy' and
    //  'deepCopy' member functions.
    void operator=(const UList<T>&) = delete;

    //- Copy the pointer held by the given UList.
    inline void shallowCopy(const UList<T>&);

    //- Copy elements of the given UList.
    void deepCopy(const UList<T>&);
2016-04-03 10:26:05 +01:00
Henry Weller
019bf94006 Matrices: Rename private member 'nRows_' -> 'mRows_' for consistency with access member function 'm()' 2016-03-23 12:49:03 +00:00
Henry Weller
ffe2c2ac46 src/OpenFOAM: Use Zero rather than pTraits<Type> 2016-03-22 10:38:30 +00:00
Henry Weller
042a9d96fd Updated header 2016-03-22 08:27:11 +00:00
Henry Weller
d880a76409 List: Added construction from and assignment to zero 2016-03-22 08:26:50 +00:00
Henry Weller
248d6065eb Updated header 2016-03-19 21:20:18 +00:00
Henry Weller
9dc14af017 SubList, SubField: Added assignment to UList 2016-03-19 21:19:14 +00:00
Henry Weller
1df60791d8 DynamicList: Added initialized constructor and STL erase function 2016-03-04 11:28:35 +00:00
Henry Weller
f572fdcf9a src/OpenFOAM/containers: Updated formatting and comments 2016-02-28 18:21:58 +00:00
Henry Weller
7d192447f0 Boundary conditions: Added extrapolatedCalculatedFvPatchField
To be used instead of zeroGradientFvPatchField for temporary fields for
which zero-gradient extrapolation is use to evaluate the boundary field
but avoiding fields derived from temporary field using field algebra
inheriting the zeroGradient boundary condition by the reuse of the
temporary field storage.

zeroGradientFvPatchField should not be used as the default patch field
for any temporary fields and should be avoided for non-temporary fields
except where it is clearly appropriate;
extrapolatedCalculatedFvPatchField and calculatedFvPatchField are
generally more suitable defaults depending on the manner in which the
boundary values are specified or evaluated.

The entire OpenFOAM-dev code-base has been updated following the above
recommendations.

Henry G. Weller
CFD Direct
2016-02-20 22:44:37 +00:00
Henry Weller
4426006d69 Info -> InfoInFunction and updated comments 2016-01-20 10:18:13 +00:00
Henry Weller
665b1f821e Provide consistency in assignment operators
Always return void to avoid various bugs associated with automatic
type conversion.

Resolves request http://openfoam.org/mantisbt/view.php?id=1973
2016-01-17 18:56:28 +00:00
Henry Weller
e029c7c1a3 Update headers 2016-01-11 13:02:52 +00:00
Henry Weller
a56ab5f863 Consistently indent continuation backslashes in macro definitions 2016-01-11 13:00:56 +00:00
Henry Weller
94c05a1e6c Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
Henry Weller
36f2d69888 Update code to use the simpler C++11 template syntax 2016-01-10 19:20:16 +00:00
Henry Weller
b28fc21a3e Update headers 2016-01-10 12:50:32 +00:00