MAIA bb96820c
Multiphysics at AIA
Loading...
Searching...
No Matches
config.h
Go to the documentation of this file.
1// Copyright (C) 2024 The m-AIA AUTHORS
2//
3// This file is part of m-AIA (https://git.rwth-aachen.de/aia/m-AIA/m-AIA)
4//
5// SPDX-License-Identifier: LGPL-3.0-only
6
7#ifndef MAIA_CONFIG_H_
8#define MAIA_CONFIG_H_
24
26// #define IBM_BLUE_GENE
27
29#define MAIA_SCRATCH_ALIGNMENT_BOUNDARY 64
30
33
36
38#if(defined(MAIA_EXTRA_DEBUG) || !defined(NDEBUG)) && !defined(MAIA_ASSERTS)
39#define MAIA_ASSERTS
40#endif
41
43#if defined(MAIA_EXTRA_DEBUG) && !defined(MAIA_ASSERT_ACCESSORS)
44#define MAIA_ASSERT_ACCESSORS
45#endif
46
48//#define MAIA_ASSERT_ALLOC
49
51#if defined(MAIA_EXTRA_DEBUG) && !defined(MAIA_ASSERT_ALLOC)
52#define MAIA_ASSERT_ALLOC
53#endif
54
56//#define MAIA_DEBUG_ALLOC
57
59#if !defined(NDEBUG) && !defined(MAIA_DEBUG_ALLOC)
60#define MAIA_DEBUG_ALLOC
61#endif
62
64//#define MAIA_GRID_SANITY_CHECKS
65
67#if !defined(NDEBUG) && !defined(MAIA_GRID_SANITY_CHECKS)
68#define MAIA_GRID_SANITY_CHECKS
69#endif
70
72// #define MAIA_DEBUG_DLB_TIMER
73
75// #define MAIA_PROFILING
76
78// #define MAIA_DEBUG_FUNCTION
79
80// \brief define to write massive parallel debug information to the m_log
81//#define MP_DEBUG_LOG
82
83// \brief define to enable use of access_properties file
84//#define MAIA_WRITE_ACCESS_PROPERTIES_FILE
85
86// \brief define to enable print out of properties; WARNING: will slow down the simulation
87//#define MAIA_PRINT_PROPERTIES
88
90#define MAIA_TIMER_FUNCTION
91
93// #define MAIA_TIMER_DEBUG
94
96//#define MAIA_ASSERT_TIMER_CHECKS
97
100//#define MAIA_TIMER_CHECKS
101#if(defined(MAIA_TIMER_DEBUG) || defined(MAIA_ASSERT_TIMER_CHECKS)) && !defined(MAIA_TIMER_CHECKS)
102#define MAIA_TIMER_CHECKS
103#endif
104
106//#define MAIA_SYNCHRONIZE_TIMERS
107
109#define MAIA_MPI_TIMER
110
113
118
120#define MAIA_INFOOUT_PROJECT_NAME "n/a"
121
122/* Choose the file type you want to use:
123 * 0: Use a single file that is used by all processors, and that is written to using MPI I/O
124 * 1: Use a physical file for each processor (as before, but with formatted output)
125 *
126 * This basically corresponds to the namespace MAIA_INFOOUT_FILETYPES in infoout.h
127 */
128#define MAIA_INFOOUT_FILE_TYPE 1
129
130/* Set to 'true' if you want only the root domain (i.e. rank 0) to write to the log file,
131 * otherwise to 'false'. This has different
132 * meanings for the different file types:
133 * 0: While all processors CAN write to the file, only rank 0 will do so.
134 * 1: Only one file is created, and only rank 0 will write to it.
135 */
136#define MAIA_INFOOUT_ROOT_ONLY true
137
138/* Set the minimum buffer size of the log file before output is written. Before
139 * your log messages reach this size (in bytes), nothing is written to the file
140 * (true for both file types). Especially for MPI files this can improve the
141 * performance dramatically. Please note that of course the internal buffer will
142 * be increased by at least this amount of bytes as well, resulting in a larger
143 * memory footprint.
144 *
145 * If you set this to zero, each message (i.e. after each "endl") the buffer is
146 * written to the file.
147 * A good starting value is 256 kB (256*1024 = 262144).
148 */
149#define MAIA_INFOOUT_MIN_FLUSH_SIZE 0
150
152// The following options control optimizations that use compiler intrinsics
153
155// #define USE_RESTRICT
156
158// #define COMPILER_ATTRIBUTES
159
165// #define USE_ALIGNMENT
166
168
170// The following options enable/disable certain features from FV solver:
171
173// #define DISABLE_FV_MG
174
176// #define FV_FREE_SURFACE_BC
177
181//#define FV_MARKER
182
185#define MAIA_FV_LOG_ACCESS_TO_UNAVAILABLE_TIME_STEP
186
188
190// The following options enable/disable certain features in the DG solver
191
192// Set how to handle the exchange of MPI surface data
193//
194// You need to specify one method of how to facilitate the exchange of MPI
195// surface data. If 'DG_USE_MPI_BUFFERS' is enabled, data that needs to be
196// exchanged is explicitly copied to contiguous buffers in memory for each
197// domain. If 'DG_USE_MPI_DERIVED_TYPES' is enabled, individual MPI derived
198// datatypes are created for each domain, and the (optional) buffering is left
199// to the MPI implementation.
200// Rationale: This switch is left in here until one method has been proven to
201// be superior. Afterwards, the inferior method should be removed.
202// Note: If neither or both methods are enabled, the code will not compiler.
203#define DG_USE_MPI_BUFFERS
204// #define DG_USE_MPI_DERIVED_TYPES
205
206// If enabled, the DG solver will use MPI_Waitsome to mix receiving and memory
207// copying in finishMpiExchange(). Will not compile if DG_USE_MPI_DERIVED_TYPES
208// is enabled.
209// #define DG_USE_MPI_WAITSOME
211
213// The following options control certain I/O aspects
214
219#define MAIA_NCMPI_FILE_TYPE NC_64BIT_DATA
220
225#define MAIA_NCMPI_FILL_VARIABLES false
226
228// #define MAIA_NCMPI_PRINT_FILE_HINTS
229
231#define MPI_IO_OPT
232
234#define MPI_IO_PRINT_INFO
235
239#if defined(_WIN64)
240#define PARALLELIO_DEFAULT_BACKEND ParallelIoHdf5
241#endif
242#if !defined(PARALLELIO_DEFAULT_BACKEND)
243#define PARALLELIO_DEFAULT_BACKEND ParallelIoPNetcdf
244#endif
246
247#endif