FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
base.hpp
Go to the documentation of this file.
1// FEAT3: Finite Element Analysis Toolbox, Version 3
2// Copyright (C) 2010 by Stefan Turek & the FEAT group
3// FEAT3 is released under the GNU General Public License version 3,
4// see the file 'copyright.txt' in the top level directory for details.
5
6#pragma once
7
16// includes, FEAT
18
19namespace FEAT
20{
24 namespace LAFEM
25 {
29 enum class FileMode
30 {
31 fm_exp = 0,
32 fm_dv,
33 fm_mtx,
34 fm_ell,
35 fm_csr,
36 fm_coo,
37 fm_bm,
38 fm_dm,
39 fm_sv,
40 fm_svb,
41 fm_dvb,
42 fm_bcsr,
43 fm_cscr,
45 };
46
50 enum class CloneMode
51 {
52 Shallow = 0,
53 Layout,
54 Weak,
55 Deep,
56 Allocate,
57 };
58
62 enum class SparseLayoutId
63 {
64 lt_csr = 0,
65 lt_cscr,
66 lt_coo,
67 lt_ell,
69 };
70
84 enum class Perspective
85 {
86 native = 0,
87 pod
88 };
89
94 enum class CompressionModes : uint64_t
95 {
96 None = 0x0000000000000000,
97 elements_mask = 0x00000000000000F0,
98 indices_mask = 0x000000000000000F,
100 compression_off = 0x0000000000000011,
102 elements_off = 0x0000000000000010,
103 elements_zlib = 0x0000000000000040,
104 elements_zfp = 0x0000000000000080,
106 indices_off = 0x0000000000000001,
107 indices_zlib = 0x0000000000000004,
108 }; //enum class type
109
112 {
113 return (CompressionModes)(((uint64_t)a) & ((uint64_t)b));
114 }
115
118 {
119 return (CompressionModes)(((uint64_t)a) | ((uint64_t)b));
120 }
121
122 // Has to be a multiple of 4096 due to clang restrains
124 constexpr std::size_t FileOutStreamBufferSize = 16777216u;
125 } // namespace LAFEM
126} // namespace FEAT
FEAT Kernel base header.
CompressionModes
Definition: base.hpp:95
constexpr std::size_t FileOutStreamBufferSize
OutStreamBufferSize.
Definition: base.hpp:124
SparseLayoutId
Definition: base.hpp:63
CompressionModes operator&(CompressionModes a, CompressionModes b)
bit-wise AND operator for CompressionModes
Definition: base.hpp:111
CompressionModes operator|(CompressionModes a, CompressionModes b)
bit-wise OR operator for Pack::Type
Definition: base.hpp:117
FEAT namespace.
Definition: adjactor.hpp:12