MFEM
v3.2
Finite element discretization library
Main Page
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Pages
config
tconfig.hpp
Go to the documentation of this file.
1
// Copyright (c) 2010, Lawrence Livermore National Security, LLC. Produced at
2
// the Lawrence Livermore National Laboratory. LLNL-CODE-443211. All Rights
3
// reserved. See file COPYRIGHT for details.
4
//
5
// This file is part of the MFEM library. For more information and source code
6
// availability see http://mfem.org.
7
//
8
// MFEM is free software; you can redistribute it and/or modify it under the
9
// terms of the GNU Lesser General Public License (as published by the Free
10
// Software Foundation) version 2.1 dated February 1999.
11
12
#ifndef MFEM_TEMPLATE_CONFIG
13
#define MFEM_TEMPLATE_CONFIG
14
15
// the main MFEM config header
16
#include "config.hpp"
17
18
// --- MFEM_STATIC_ASSERT
19
#if (__cplusplus >= 201103L)
20
#define MFEM_STATIC_ASSERT(cond, msg) static_assert((cond), msg)
21
#else
22
#define MFEM_STATIC_ASSERT(cond, msg) if (cond) { }
23
#endif
24
25
// --- MFEM_ALWAYS_INLINE
26
#if !defined(MFEM_DEBUG) && (defined(__GNUC__) || defined(__clang__))
27
#define MFEM_ALWAYS_INLINE __attribute__((always_inline))
28
#else
29
#define MFEM_ALWAYS_INLINE
30
#endif
31
32
#define MFEM_TEMPLATE_BLOCK_SIZE 4
33
#define MFEM_SIMD_SIZE 32
34
#define MFEM_TEMPLATE_ENABLE_SERIALIZE
35
36
// #define MFEM_TEMPLATE_ELTRANS_HAS_NODE_DOFS
37
// #define MFEM_TEMPLATE_ELTRANS_RESULT_HAS_NODES
38
// #define MFEM_TEMPLATE_FIELD_EVAL_DATA_HAS_DOFS
39
#define MFEM_TEMPLATE_INTRULE_COEFF_PRECOMP
40
41
// derived macros
42
#define MFEM_ROUNDUP(val,base) ((((val)+(base)-1)/(base))*(base))
43
#define MFEM_ALIGN_SIZE(size,type) \
44
MFEM_ROUNDUP(size,(MFEM_SIMD_SIZE)/sizeof(type))
45
46
namespace
mfem
47
{
48
namespace
internal
49
{
50
long
long
flop_count;
51
}
52
}
53
54
#ifdef MFEM_COUNT_FLOPS
55
#define MFEM_FLOPS_RESET() (mfem::internal::flop_count = 0)
56
#define MFEM_FLOPS_ADD(cnt) (mfem::internal::flop_count += (cnt))
57
#define MFEM_FLOPS_GET() (mfem::internal::flop_count)
58
#else
59
#define MFEM_FLOPS_RESET()
60
#define MFEM_FLOPS_ADD(cnt)
61
#define MFEM_FLOPS_GET() (0)
62
#endif
63
64
#endif // MFEM_TEMPLATE_CONFIG
Generated on Fri Feb 18 2022 19:00:30 for MFEM by
1.8.5