Commit Graph

1355 Commits

Author SHA1 Message Date
e2c9cb4563 rigidBodyDynamics: Added dictionary-based IO of the rigidBodyModel, bodies and joints
Added support for composite joints including a specialized 6-DoF form for floating bodies.
2016-04-08 16:35:49 +01:00
b701ec9f3d rigidBodyDynamics/bodies: Complete set of clone functions to support copy construction and assignment 2016-04-07 23:04:17 +01:00
6d7eb1ac4d rigidBodyModel: Provide support for copy-construction and assignment 2016-04-07 22:28:52 +01:00
8ffd700ca6 rigidBodyDynamics: Added dictionary-based IO of the rigidBodyModel 2016-04-07 21:47:08 +01:00
9aaf17d45d List: Remove the inherited UList::shallowCopy to avoid accidental misuse 2016-04-07 21:05:26 +01:00
fda9aadb3a Specialized dotInterpolate for the efficient calculation of flux fields
e.g. (fvc::interpolate(HbyA) & mesh.Sf()) -> fvc::flux(HbyA)

This removes the need to create an intermediate face-vector field when
computing fluxes which is more efficient, reduces the peak storage and
improved cache coherency in addition to providing a simpler and cleaner
API.
2016-04-06 20:20:53 +01:00
d52546b3ce surfaceInterpolationScheme: Added dotInterpolate member-function
dotInterpolate interpolates the field and "dots" the resulting
face-values with the vector field provided which removes the need to
create a temporary field for the interpolate.  This reduces the peak
storage of OpenFOAM caused by the divergence of the gradient of vector
fields, improves memory management and under some conditions decreases
run-time.

This development is based on a patch contributed by Paul Edwards, Intel.
2016-04-06 14:23:18 +01:00
d4476c3946 VectorI: Added dummy innerProduct for scalar
to allow the construction of vtables for virtual member functions
involving the inner-products of fields for which a "NotImplemented"
specialization for scalar is provided.
2016-04-06 14:22:33 +01:00
569b915d5d Updated headers 2016-04-06 14:22:24 +01:00
1ae1b9f1d8 geometricOneField: Enhanced to provide better correspondence to GeometricField 2016-04-06 14:21:04 +01:00
e290c25361 src/Pstream/mpi/UPstream.C: Cast-away const-ness for backard-compatibility with OpenMPI versions < 1.7.4
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2044
2016-04-06 12:24:47 +01:00
255547dd33 src/rigidBodyDynamics/bodies: Added write 2016-04-04 22:10:34 +01:00
19a93cc696 applications/test/rigidBodyDynamics/pendulum: Simplified using sphere constructor and body lookup by name 2016-04-04 17:08:20 +01:00
1428f11b6e rigidBodyDynamics: Added sphere body to simply construction of articulated bodies containing spheres 2016-04-04 17:07:26 +01:00
947f04ac9e rigidBodyModel: Added support for body lookup by name 2016-04-04 17:06:48 +01:00
09ba40bf26 Updated header 2016-04-04 13:53:51 +01:00
3358c056e6 surfaceMeshConvert: Reinstated missing error messages 2016-04-04 13:53:20 +01:00
1c97ed7098 src/conversion/ensight: Specify std::isnan
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2041
2016-04-04 12:51:33 +01:00
736c47d4dc applications/test/rigidBodyDynamics/pendulum: Add a test for merging bodies 2016-04-04 09:26:37 +01:00
94e9b05edd applications/.*/Allwmake: Updated to support "stop on 1st error"
Patch contributed by Bruno Santos
Resolved bug-report http://www.openfoam.org/mantisbt/view.php?id=2042
2016-04-04 09:03:40 +01:00
1fbd362faa src/conversion/ensight: Specify std::isnan
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2041
2016-04-04 08:59:50 +01:00
9891a0ccf9 applications/test/rigidBodyDynamics/pendulum: Very simple test/demonstration of the rigidBodyDynamics library
Simple swinging pendulum simulation with 1-DoF.  The motion is integrated
    using a symplectic method for just over 2-periods.
2016-04-03 22:17:10 +01:00
866bdce5b9 src/Allwmake: added rigidBodyDynamics 2016-04-03 15:53:50 +01:00
8a1e27d2c7 rigidBodyDynamics: New library providing support for the dynamics of n-DoF articulated bodies
Based on the principles, algorithms, data structures and notation
presented in the book:

    Featherstone, R. (2008).
    Rigid body dynamics algorithms.
    Springer.

This development is sponsored by Carnegie Wave Energy Ltd.
2016-04-03 15:48:59 +01:00
fec34404a8 wmake/rules/linux64Clang/c++Opt: Removed temporary line 2016-04-03 14:46:45 +01:00
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
06f7682413 applications/test/Matrix/Test-Matrix.C: Corrected typo 2016-04-02 23:28:03 +01:00
56668b2406 Pstream: optimisation of data exchange
Contributed by Mattijs Janssens.

1. Any non-blocking data exchange needs to know in advance the sizes to
   receive so it can size the buffer.  For "halo" exchanges this is not
   a problem since the sizes are known in advance but or all other data
   exchanges these sizes need to be exchanged in advance.

   This was previously done by having all processors send the sizes of data to
   send to the master and send it back such that all processors
   - had the same information
   - all could work out who was sending what to where and hence what needed to
     be received.

   This is now changed such that we only send the size to the
   destination processor (instead of to all as previously). This means
   that
   - the list of sizes to send is now of size nProcs v.s. nProcs*nProcs before
   - we cut out the route to the master and back by using a native MPI
     call

   It causes a small change to the API of exchange and PstreamBuffers -
   they now return the sizes of the local buffers only (a labelList) and
   not the sizes of the buffers on all processors (labelListList)

2. Reversing the order of the way in which the sending is done when
   scattering information from the master processor to the other
   processors. This is done in a tree like fashion. Each processor has a
   set of processors to receive from/ send to. When receiving it will
   first receive from the processors with the least amount of
   sub-processors (i.e. the ones which return first). When sending it
   needs to do the opposite: start sending to the processor with the
   most amount of sub-tree since this is the critical path.
2016-04-02 18:32:11 +01:00
bb390f474f faceZoneToCell: Corrected cell selection logic
Patch contributed by Mattijs Janssens
Resolved bug-report http://www.openfoam.org/mantisbt/view.php?id=2038
2016-04-01 16:59:51 +01:00
3ae3d04bb3 wmake/rules/linux64Icc: avoid uninteresting warning messages and change to -O3 2016-04-01 14:53:43 +01:00
64c08b084e spatialTransformI.H: Corrected doc 2016-04-01 14:53:23 +01:00
c7179bd0d0 Updated handling of the ParaView installation path
Patch contributed by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2034
2016-03-30 19:26:01 +01:00
4ac67d6ade Field: Add block member function to return sub-sets of the field as VectorSpaces 2016-03-30 18:17:51 +01:00
84dad12014 spatialTransform: Include spatialTensor.H 2016-03-30 18:17:27 +01:00
c0a1646401 MatrixSpace: Add support for block conversion into VectorSpace 2016-03-30 18:16:47 +01:00
9e5013bcb5 MatrixSpace: Corrected typo 2016-03-30 18:16:20 +01:00
6a7d9a9d64 SubField: Removed temporary Info statement 2016-03-25 22:43:40 +00:00
2c2c6efe63 scotchDecomp, ptscotchDecomp: Updated documentation
Patch contributed by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2032
2016-03-25 22:36:13 +00:00
f2ad503680 RectangularMatrix: Removed the identity function (now in SquareMatrix) 2016-03-25 22:35:03 +00:00
5879080b38 sampledSet: Further improvements in robustness for midPoint and midPointAndFace 2016-03-24 23:06:10 +00:00
709526bc3a Identity: Make cast-to-primitive operators explicit
to avoid operator resolution ambiguities when compiling single-precision
2016-03-24 23:04:53 +00:00
b9522c8032 LLTMatrix: Updated docs 2016-03-24 23:04:40 +00:00
84bad0b2f1 Update header 2016-03-24 19:13:36 +00:00
ff8e666099 LLTMatrix, LUscalarMatrix, QRMatrix: Provided consistent 'solve' interface 2016-03-24 19:13:04 +00:00
95dda0efc0 LLTMatrix, LUscalarMatrix, QRMatrix: Provided consistent construction, decomposition and solution interface 2016-03-24 18:05:18 +00:00
523b01c1b2 QRMatrix: New class to provide QR-decomposition by Householder reflection
This development is sponsored by Carnegie Wave Energy Ltd.
2016-03-24 14:49:25 +00:00
21b5ffb6ee SquareMatrix: Add setSize and assignment to identity 2016-03-24 14:48:59 +00:00
121c4e3a28 Matrix: correct docs 2016-03-24 14:48:28 +00:00
495e09714a LLTMatrix: Add support for updating the decomposition from a new matrix 2016-03-24 14:47:41 +00:00
60c430b0ae src/OpenFOAM/matrices: Reformatted for-loops consistently 2016-03-23 18:27:04 +00:00