6 #include <sys/resource.h>
9 #include <gsl/gsl_math.h>
10 #include <gsl/gsl_errno.h>
24 void gsl_handler (
const char * reason,
const char * file,
int line,
int gsl_errno)
26 endrun(2001,
"GSL_ERROR in file: %s, line %d, errno:%d, error: %s\n",file, line, gsl_errno, reason);
39 int main(
int argc,
char **argv)
43 MPI_Init_thread(&argc, &argv, MPI_THREAD_FUNNELED, &thread_provided);
44 MPI_Comm_size(MPI_COMM_WORLD, &
NTask);
45 if(thread_provided != MPI_THREAD_FUNNELED)
46 message(1,
"MPI_Init_thread returned %d != MPI_THREAD_FUNNELED\n", thread_provided);
50 message(0,
"Parameters are missing.\n");
51 message(0,
"Call with <ParameterFile> [<RestartFlag>] [<RestartSnapNum>]\n\n");
52 message(0,
" RestartFlag Action\n");
53 message(0,
" 1 Restart from last snapshot (LastSnapNum.txt) and continue simulation\n");
54 message(0,
" 2 Restart from specified snapshot (-1 for Initial Condition) and continue simulation\n");
55 message(0,
" 3 Run FOF if enabled\n");
56 message(0,
" 4 Generate a power spectrum and exit\n");
57 message(0,
" 99 Run Tests. \n\n");
64 message(0,
" %d OpenMP Threads.\n", omp_get_max_threads());
65 message(0,
"Code was compiled with settings:\n"
75 MPI_Comm_rank(MPI_COMM_WORLD, &
ThisTask);
77 struct rlimit rlim = {0};
78 setrlimit(RLIMIT_CORE, &rlim);
83 double MaxMemSizePerNode;
86 int RestartFlag, RestartSnapNum;
89 RestartFlag = atoi(argv[2]);
94 RestartSnapNum = atoi(argv[3]);
98 if(RestartFlag == 0) {
99 message(0,
"Restart flag of 0 is deprecated. Use 2.\n");
102 if(RestartFlag == 1) {
105 if(RestartFlag == 3 && RestartSnapNum < 0) {
106 endrun(0,
"Need to give the snapshot number if FOF is selected for output\n");
117 MPI_Barrier(MPI_COMM_WORLD);
124 switch(RestartFlag) {
126 runfof(RestartSnapNum, ti_init, &head);
132 runtests(RestartSnapNum, ti_init, &head);
135 run(RestartSnapNum, ti_init, &head);
const char * GADGET_VERSION
const char * GADGET_COMPILER_SETTINGS
void message(int where, const char *fmt,...)
void init_endrun(int backtrace)
void endrun(int where, const char *fmt,...)
void gsl_handler(const char *reason, const char *file, int line, int gsl_errno)
int main(int argc, char **argv)
void read_parameter_file(char *fname, int *ShowBacktrace, double *MaxMemSizePerNode)
void mymalloc_init(double MaxMemSizePerNode)
void runfof(const int RestartSnapNum, const inttime_t Ti_Current, const struct header_data *header)
int find_last_snapshot(void)
void run(const int RestartSnapNum, const inttime_t ti_init, const struct header_data *header)
void runtests(const int RestartSnapNum, const inttime_t Ti_Current, const struct header_data *header)
inttime_t begrun(const int RestartSnapNum, struct header_data *head)
void runpower(const struct header_data *header)