GooseFEM 1.4.1.dev2+g78f16df
Loading...
Searching...
No Matches
config.h
Go to the documentation of this file.
1
12#ifndef GOOSEFEM_CONFIG_H
13#define GOOSEFEM_CONFIG_H
14
18#define _USE_MATH_DEFINES // to use "M_PI" from "math.h"
23#include <algorithm>
24#include <array>
25#include <assert.h>
26#include <cstdlib>
27#include <iomanip>
28#include <iostream>
29#include <limits>
30#include <math.h>
31#include <memory>
32#include <numeric>
33#include <string>
34#include <vector>
35
36#include <xtensor/xadapt.hpp>
37#include <xtensor/xarray.hpp>
38#include <xtensor/xfixed.hpp>
39#include <xtensor/xinfo.hpp>
40#include <xtensor/xio.hpp>
41#include <xtensor/xlayout.hpp>
42#include <xtensor/xmath.hpp>
43#include <xtensor/xnoalias.hpp>
44#include <xtensor/xshape.hpp>
45#include <xtensor/xsort.hpp>
46#include <xtensor/xstrided_view.hpp>
47#include <xtensor/xtensor.hpp>
48#include <xtensor/xutils.hpp>
49#include <xtensor/xview.hpp>
50
54using namespace xt::placeholders;
55
56#define Q(x) #x
57#define QUOTE(x) Q(x)
58
59#define UNUSED(p) ((void)(p))
60
61#define GOOSEFEM_WARNING_IMPL(message, file, line, function) \
62 std::cout << std::string(file) + ":" + std::to_string(line) + " (" + std::string(function) + \
63 ")" + ": " message ") \n\t";
64
65#define GOOSEFEM_ASSERT_IMPL(expr, file, line, function) \
66 if (!(expr)) { \
67 throw std::runtime_error( \
68 std::string(file) + ":" + std::to_string(line) + " (" + std::string(function) + ")" + \
69 ": assertion failed (" #expr ") \n\t" \
70 ); \
71 }
72
94#ifdef GOOSEFEM_ENABLE_ASSERT
95#define GOOSEFEM_ASSERT(expr) GOOSEFEM_ASSERT_IMPL(expr, __FILE__, __LINE__, __FUNCTION__)
96#else
97#define GOOSEFEM_ASSERT(expr)
98#endif
99
107#define GOOSEFEM_CHECK(expr) GOOSEFEM_ASSERT_IMPL(expr, __FILE__, __LINE__, __FUNCTION__)
108
117#define GOOSEFEM_WIP_ASSERT(expr) GOOSEFEM_ASSERT_IMPL(expr, __FILE__, __LINE__, __FUNCTION__)
118
128#ifdef GOOSEFEM_DISABLE_WARNING
129#define GOOSEFEM_WARNING(message)
130#else
131#define GOOSEFEM_WARNING(message) GOOSEFEM_WARNING_IMPL(message, __FILE__, __LINE__, __FUNCTION__)
132#endif
133
143#ifdef GOOSEFEM_ENABLE_WARNING_PYTHON
144#define GOOSEFEM_WARNING_PYTHON(message) \
145 GOOSEFEM_WARNING_IMPL(message, __FILE__, __LINE__, __FUNCTION__)
146#else
147#define GOOSEFEM_WARNING_PYTHON(message)
148#endif
149
153namespace GooseFEM {
154
161namespace array_type {
162
163#ifdef GOOSEFEM_USE_XTENSOR_PYTHON
164
168template <typename T, size_t N>
169using tensor = xt::pytensor<T, N>;
170
171#else
172
176template <typename T, size_t N>
177using tensor = xt::xtensor<T, N>;
178
179#endif
180
181} // namespace array_type
182
183} // namespace GooseFEM
184
185#endif
xt::xtensor< T, N > tensor
Fixed (static) rank array.
Definition config.h:177
Toolbox to perform finite element computations.
Definition Allocate.h:14