Commit Graph

96 Commits

Author SHA1 Message Date
c1ca2f4a38 BUG: missing chdir in Allwclean for wallFunctionTable
STYLE: improve consistency in Allwclean scripts
2017-02-23 01:07:10 +01:00
957635200a ENH: build into build/ directory instead of platforms/ (issue #312)
- makes it slightly easier when packaging various binaries, or when
  building packages for installation via modules etc.
2017-02-10 20:30:15 +01:00
3d02c8a530 ENH: improve isolation of shell variables in wmake scripts
- reduces unexpected interactions between various make elements
2017-02-10 16:13:54 +01:00
608bb5d83b COMP: update lnInclude directories when building (issue #364)
- Could be related to interrupted builds.
  So if there are any parts of the build that rely on an explicit
  'wmakeLnInclude', make sure that the contents are properly updated.

--

ENH: improved feedback from top-level Allwmake

- Report which section (libraries, applications) is being built.

- Provide final summary of date, version, etc, which can be helpful
  for later diagnosis or record keeping.

- The -log=XXX option for Allwmake now accepts a directory name
  and automatically appends an appropriate log name.
  Eg,
      ./Allwmake -log=logs/  ->> logs/log.linux64GccDPInt32Opt

  The default name is built from the value of WM_OPTIONS.

--

BUG: shell not exiting properly in combination with -log option

- the use of 'tee' causes the shell to hang around.
  Added an explicit exit to catch this.

--

- Detecting the '-k' (-non-stop) option at the top-level Allwmake, which
  may improve robustness.

- Explicit continue-on-error for foamyMesh (as optional component)

- unify format of script messages for better readability

COMP: reduce warnings when building Pstream (old-style casts in openmpi)
2016-12-22 11:26:29 +01:00
a3ef5cd137 Merge branch 'feature-chunkingComms' into 'develop'
Pstream: added maxCommsSize setting to do (unstructured) parallel transfers in blocks.

Tested:
- with maxCommsSize 0 produces exactly same result as plus.develop
- compiles with label64
- with maxCommsSize e.g. 3 produces exactly same result as plus.develop
- with maxCommsSize=0 exactly the same messages (with Pstream::debug = 1) as plus.develop

See merge request !85
2016-12-14 15:18:42 +00:00
e453f0bf02 ENH: Pstream: added maxCommsSize setting to do (unstructured) parallel transfers in blocks.
This is controlled by the setting maxCommsSize in etc/controlDict which
specifies the max number of bytes per exchange. If set to <= 0 it
is ignored. This max size of messages is important when doing e.g.
load balancing which can send over whole meshes.
2016-12-12 17:32:24 +00:00
c0f44ac4f3 MRG: Integrated foundation code 2016-12-12 12:10:29 +00:00
80db302666 Allwmake: Remove 'set -x' which generates a lot of noise
'set -x' should be used for debugging.

Added command printing into wmake and Allwmake as a replacement for
'set -x' to log current target.
2016-11-13 18:08:22 +00:00
b048cacc7b ENH: robuster handling of system or central installation (issue #290)
- Follow similar pattern as per boost/CGAL with the '*-none' to disable,
  and '*-system' for system installations.

  Also support central non-ThirdParty installations by specifying the
  version as "*-system", but also providing the fully qualified
  *_ARCH_PATH too.

--
ENH: Verify label and scalar sizes used in the metis header.

- ensure they match with expected values, which can be obtained via
  the OpenFOAM definitions for WM_LABEL_SIZE and WM_PRECISION_OPTION
2016-11-09 11:10:53 +01:00
74e1352cc2 src/Pstream: Added Allwclean consistent with the Allwmake
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2218
2016-08-25 08:25:12 +01:00
dea6a3c6e8 wmake/Allwmake: Completed support for targetType 'objects'
Patch contributed by Mattijs Janssens
2016-06-24 15:25:11 +01:00
2986757793 src/Pstream/mpi/UPstream.C: Updated for Int64
Patch contributed by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2055
2016-04-16 13:26:41 +01:00
fea0dc5203 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
6e573ad7e8 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
88bd912374 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
95d146ecdf Rationalized the indentation of C-preprocessor directives 2016-02-29 15:42:03 +00:00
350d03246e scripts: Reformat with consistent section separators 2016-02-15 18:30:24 +00:00
c4d5f65a10 Completed update ...ErrorIn -> ...ErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-11 09:03:39 +00:00
42fb1b9e8e Updated notImplemented -> NotImplemented
The new NotImplemented macro uses __PRETTY_FUNCTION__ for GNU compatible
compilers otherwise __func__ to provide the function name string.
2015-11-01 10:26:37 +00:00
91e04d69c1 Resolve various unimportant warning messages from Gcc, Clang and Icpc 2015-07-19 11:31:49 +01:00
94401af010 Resolved issues with virtual function inheritance and warning from clang
Also removed __GNUC__ conditional compilation statements which are no
longer needed.
2015-07-17 12:11:37 +01:00
34c3b2f656 Pstream/mpi: Move mpi.h include to after the OpenFOAM includes
Resolves additional report http://www.openfoam.org/mantisbt/view.php?id=1474
2015-06-28 22:55:22 +01:00
1240c4d308 Update header 2015-03-26 17:22:10 +00:00
fafdbf4c57 mpi/UPstream:: Correct debug
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1637
2015-03-26 17:21:12 +00:00
ad7053d560 MPI configuration: Added support for SYSTEMMPI
Provided by Bruno Santos
Also some general cleaning and update of comment.
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1167
2015-03-08 21:04:38 +00:00
ded2f25726 Updated headers 2014-12-31 19:08:15 +00:00
325b003b6e Added and verified support for 64bit labels
To compile with 64bit labels set

WM_LABEL_SIZE=64

in ~/OpenFOAM/dev/prefs.sh

source ~/.bashrc

then Allwmake in OpenFOAM-dev.

This will build into for example OpenFOAM-dev/platforms/linux64ClangDPInt64Opt

If WM_LABEL_SIZE is unset or set to 32:

WM_LABEL_SIZE=32

the build would be placed into OpenFOAM-dev/platforms/linux64ClangDPInt32Opt

Thus both 32bit and 64bit label builds can coexist without problem.
2014-12-31 19:02:52 +00:00
844b283030 New version of wmake supporting out-of-tree object and dependency files 2014-12-14 21:42:18 +00:00
b4d14558d3 BUG: UPstream: missing closing bracket 2014-07-10 08:55:27 +01:00
8f255e0ef6 Update headers 2014-01-08 16:48:57 +00:00
3422564872 Pstream: Corrected MPI datatype for binary block transfers 2014-01-08 16:47:49 +00:00
c4a4611b0f Merge remote-tracking branch 'origin/feature/procAgglom'
Conflicts:
	src/OpenFOAM/meshes/lduMesh/lduMesh.H
2013-05-02 14:44:59 +01:00
7927435a4b ENH: GAMG: cleanup 2013-04-17 10:26:55 +01:00
f3b8d9de6f ENH: UPstream: extra checking for already clear comms 2013-04-03 16:30:44 +01:00
62930bb4bf BUG: lduPrimitiveMesh: multi-agglomeration failing to create interfaces; memory leaks 2013-03-04 18:32:59 +00:00
6b22ab906f ENH: GAMGInterface: simplify stored data. Do not store processor-local data 2013-02-15 10:19:09 +00:00
4e6c258321 ENH: communicators: more communicators through 2013-02-08 17:13:00 +00:00
bd1230eb87 ENH: GAMGInterface: added communicator to arguments.
Extended UIPstream,UOPstream for user defined communicators
2013-02-06 16:44:22 +00:00
33d6ea3e62 ENH: comunicators: have solver with user-defined communicator
(originating from polyMesh::comm() and processorPolyPatch::comm())
2013-02-06 14:26:31 +00:00
ea8d290191 ENH: communicators: initial version - extended Pstream API 2013-02-04 10:17:37 +00:00
09141f30d7 ENH: Corrected spelling mistakes 2012-12-03 11:04:54 +00:00
1945632da9 ENH: dictionary: allow transfer of empty dictionary 2012-07-30 15:57:15 +01:00
927fc0a313 ENH: mpi/Pstream: encapsulate mpi_reduce calls 2012-06-07 17:27:02 +01:00
302c5ae759 ENH: Removed unused variable 2012-06-07 09:23:05 +01:00
15911a90c0 ENH: UPstream.C: use 2 scalars instead of user-defined data type 2012-04-10 12:26:36 +01:00
7605c01260 ENH: gAverage: (used in normFactor) : use single reduction 2012-03-22 12:39:59 +00:00
3febf2314b ENH: non-blocking reduce with sumOp<scalar> 2012-02-22 12:34:01 +00:00
9420dd7bfe ENH: reduce: specialisation for reduce of vector2D (used in gamg) 2012-02-14 18:23:12 +00:00
2516d984b4 ENH: fvPatchField: support for polling. Support for zero-copy transfer. 2012-01-16 15:59:03 +00:00
8558af2cdf COMP: 64bit label changes 2011-11-28 11:10:46 +00:00