globals.C
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ========= |
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4 \\ / O peration |
5 \\ / A nd | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2011 OpenFOAM Foundation
9 Copyright (C) 2018-2020 OpenCFD Ltd.
10-------------------------------------------------------------------------------
11License
12 This file is part of OpenFOAM.
13
14 OpenFOAM is free software: you can redistribute it and/or modify it
15 under the terms of the GNU General Public License as published by
16 the Free Software Foundation, either version 3 of the License, or
17 (at your option) any later version.
18
19 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22 for more details.
23
24 You should have received a copy of the GNU General Public License
25 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26
27Description
28 Define the globals used in the OpenFOAM library.
29 It is important that these are constructed in the appropriate order to
30 avoid the use of unconstructed data in the global namespace.
31
32\*---------------------------------------------------------------------------*/
33
34#include <new>
35#include <iostream>
36#include <cstdlib>
37
38// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
39// Setup an error handler for the global new operator
40
41namespace Foam
42{
43
45{
46 std::cerr<<
47 "new cannot satisfy memory request.\n"
48 "This does not necessarily mean you have run out of virtual memory.\n"
49 "It could be due to a stack violation caused "
50 "by e.g. bad use of pointers or an out-of-date shared library"
51 << std::endl;
52
53 std::abort();
54}
55
56void (*old_new_handler)() = std::set_new_handler(newError);
57
58} // End namespace Foam
59
60
61// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
62// The nullObject singleton and a dummy zero singleton
63
64#include "nullObject.C"
65#include "zero.C"
66
67// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
68// Global IO streams
69
70#include "IOstreams.C"
71
72// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
73
74#include "JobInfo.H"
76
77// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
78// Global error definitions (initialised by construction)
79
80#include "messageStream.C"
81#include "error.C"
82#include "IOerror.C"
83#include "token.C"
84
85// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
86// Read the debug and info switches
87
88#include "debug.C"
89
90// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
91// Read file modification checking switches
92
93#include "regIOobject.C"
94
95// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
96// Read parallel communication switches
97
98#include "UPstream.C"
99
100// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
101// Read constants
102
103#include "constants.C"
104#include "dimensionedConstants.C"
105
106// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
107// Create the jobInfo file in the $FOAM_JOB_DIR/runningJobs directory
108
109#include "JobInfo.C"
110
111// ************************************************************************* //
static bool constructed
Global value for constructed job info.
Definition: JobInfo.H:101
Class for handling debugging switches.
Namespace for OpenFOAM.
void newError()
Definition: globals.C:44
void(* old_new_handler)()
Definition: globals.C:56