https://mooseframework.inl.gov
MooseInit.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #include "MooseInit.h"
11 #include "ParallelUniqueId.h"
12 #include "Factory.h"
13 #include "ActionFactory.h"
14 #include "Executioner.h"
15 #include "MooseRandom.h"
16 
17 #include "libmesh/petsc_solver_exception.h"
18 
19 // PETSc
20 #include "petscsys.h"
21 
22 #ifdef LIBMESH_HAVE_OPENMP
23 #include <omp.h>
24 #endif
25 
26 #include <unistd.h>
27 #include <signal.h>
28 
29 void
30 SigHandler(int signum)
31 {
33  return;
34 }
35 
36 void
38 {
39  signal(SIGUSR1, SigHandler);
40 }
41 
42 MooseInit::MooseInit(int argc, char * argv[], MPI_Comm COMM_WORLD_IN)
43  : LibMeshInit(argc, argv, COMM_WORLD_IN)
44 {
45  LibmeshPetscCallA(COMM_WORLD_IN, PetscPopSignalHandler()); // get rid of PETSc error handler
46 
47 // Set the number of OpenMP threads to the same as the number of threads libMesh is going to use
48 #ifdef LIBMESH_HAVE_OPENMP
49  omp_set_num_threads(libMesh::n_threads());
50 #endif
51 
53 
54  // Make sure that any calls to the global random number generator are consistent among processes
56 
58 }
static void initialize()
Must be called by main thread before any threaded computation! Do NOT call in a worker thread! ...
unsigned int n_threads()
void RegisterSigHandler()
Definition: MooseInit.C:37
MooseInit(int argc, char *argv[], MPI_Comm COMM_WORLD_IN=MPI_COMM_WORLD)
Definition: MooseInit.C:42
static void seed(unsigned int seed)
The method seeds the random number generator.
Definition: MooseRandom.h:44
int interrupt_signal_number
Used by the signal handler to determine if we should write a checkpoint file out at any point during ...
Definition: Moose.C:764
void SigHandler(int signum)
Definition: MooseInit.C:30