BELFEM
0.9.0
Berkeley Lab Finite Element Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
blaze_config.hpp
Go to the documentation of this file.
1
/*
2
* BELFEM -- The Berkeley Lab Finite Element Framework
3
* Copyright (c) 2026, The Regents of the University of California,
4
* through Lawrence Berkeley National Laboratory (subject to receipt of any required
5
* approvals from the U.S. Dept. of Energy). All rights reserved.
6
*
7
* Developers: Christian Messe, Gregory Giard
8
*
9
* See the top-level LICENSE file for the complete license and disclaimer.
10
*/
11
12
13
#ifndef BELFEM_BLAZE_CONFIG_HPP
14
#define BELFEM_BLAZE_CONFIG_HPP
15
16
//------------------------------------------------------------------------------
17
// DEBUG SETTINGS
18
//------------------------------------------------------------------------------
19
20
#if !defined( NDEBUG ) || defined( DEBUG )
21
#ifndef BLAZE_USER_ASSERTION
22
#define BLAZE_USER_ASSERTION 1
23
#endif
24
#ifndef BLAZE_USE_DEBUG_MODE
25
#define BLAZE_USE_DEBUG_MODE 1
26
#endif
27
#ifndef BLAZE_USE_FUNCTION_TRACES
28
#define BLAZE_USE_FUNCTION_TRACES 0
29
#endif
30
#else
31
#ifndef BLAZE_USER_ASSERTION
32
#define BLAZE_USER_ASSERTION 0
33
#endif
34
#ifndef BLAZE_USE_DEBUG_MODE
35
#define BLAZE_USE_DEBUG_MODE 0
36
#endif
37
#ifndef BLAZE_USE_FUNCTION_TRACES
38
#define BLAZE_USE_FUNCTION_TRACES 0
39
#endif
40
#endif
41
42
//------------------------------------------------------------------------------
43
// PARALLEL MODE
44
//------------------------------------------------------------------------------
45
46
#ifdef BELFEM_MPI
47
#define BLAZE_MPI_PARALLEL_MODE 1
48
#else
49
#define BLAZE_MPI_PARALLEL_MODE 0
50
#endif
51
52
//------------------------------------------------------------------------------
53
// STORAGE ORDER
54
//------------------------------------------------------------------------------
55
#define BLAZE_DEFAULT_STORAGE_ORDER blaze::columnMajor
56
57
//------------------------------------------------------------------------------
58
// BLAS
59
//------------------------------------------------------------------------------
60
61
#ifdef BELFEM_NETLIB
62
#define BLAZE_BLAS_MODE 0
63
#elif BELFEM_ACCELLERATE
64
#define BLAZE_BLAS_MODE 1
65
#define BLAZE_BLAS_INCLUDE_FILE <vecLib/cblas.h>
66
#elif BELFEM_MKL
67
#define BLAZE_BLAS_MODE 1
68
#define BLAZE_BLAS_INCLUDE_FILE <mkl_cblas.h>
69
#endif
70
71
#if !defined( BLAZE_BLAS_MODE )
72
#define BLAZE_BLAS_MODE 1
73
#endif
74
75
// keep Blaze's BLAS integer in sync with belfem::int_t ( SCLS builds all
76
// third party libraries with one consistent integer width ); without this,
77
// blaze::blas_int_t stays 32 bit under an ILP64 build and the static_assert
78
// in lapacktools.hpp fires
79
#ifdef BELFEM_INT64
80
#define BLAZE_BLAS_IS_64BIT 1
81
#endif
82
83
//------------------------------------------------------------------------------
84
// COMPILER
85
//------------------------------------------------------------------------------
86
87
#ifdef BELFEM_CLANG
88
#define _BLAZE_SYSTEM_COMPILER_H_
89
#define BLAZE_GNU_COMPILER 0
90
#define BLAZE_CLANG_COMPILER 1
91
#define BLAZE_MSC_COMPILER 0
92
#define BLAZE_INTEL_COMPILER 0
93
#elif BELFEM_GCC
94
#define _BLAZE_SYSTEM_COMPILER_H_
95
#define BLAZE_GNU_COMPILER 1
96
#define BLAZE_CLANG_COMPILER 0
97
#define BLAZE_MSC_COMPILER 0
98
#define BLAZE_INTEL_COMPILER 0
99
#elif BELFEM_INTEL
100
#define _BLAZE_SYSTEM_COMPILER_H_
101
#define BLAZE_GNU_COMPILER 0
102
#define BLAZE_CLANG_COMPILER 0
103
#define BLAZE_MSC_COMPILER 0
104
#define BLAZE_INTEL_COMPILER 1
105
#endif
106
#include <blaze/util/typetraits/HasSize.h>
107
//------------------------------------------------------------------------------
108
109
#endif
//BELFEM_BLAZE_CONFIG_HPP
src
linalg
blaze
blaze_config.hpp
Generated by
1.18.0