BELFEM
0.9.0
Berkeley Lab Finite Element Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
fn_TR_mat_to_ten.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
#ifndef BELFEM_FN_TR_MAT_TO_TEN_HPP
13
#define BELFEM_FN_TR_MAT_TO_TEN_HPP
14
15
#include "
cl_Matrix.hpp
"
16
namespace
belfem
17
{
18
namespace
tensor
19
{
20
//----------------------------------------------------------------------------
21
26
template
<
typename
T >
void
27
mat_to_ten
(
const
T * C, T * A )
28
{
29
A[ 0 ] = C[ 0 ];
30
A[ 1 ] = C[ 5 ];
31
A[ 2 ] = C[ 4 ];
32
A[ 3 ] = C[ 5 ];
33
A[ 4 ] = C[ 1 ];
34
A[ 5 ] = C[ 3 ];
35
A[ 6 ] = C[ 4 ];
36
A[ 7 ] = C[ 3 ];
37
A[ 8 ] = C[ 2 ];
38
A[ 9 ] = C[ 30 ];
39
A[ 10 ] = C[ 35 ];
40
A[ 11 ] = C[ 34 ];
41
A[ 12 ] = C[ 35 ];
42
A[ 13 ] = C[ 31 ];
43
A[ 14 ] = C[ 33 ];
44
A[ 15 ] = C[ 34 ];
45
A[ 16 ] = C[ 33 ];
46
A[ 17 ] = C[ 32 ];
47
A[ 18 ] = C[ 24 ];
48
A[ 19 ] = C[ 29 ];
49
A[ 20 ] = C[ 28 ];
50
A[ 21 ] = C[ 29 ];
51
A[ 22 ] = C[ 25 ];
52
A[ 23 ] = C[ 27 ];
53
A[ 24 ] = C[ 28 ];
54
A[ 25 ] = C[ 27 ];
55
A[ 26 ] = C[ 26 ];
56
A[ 27 ] = C[ 30 ];
57
A[ 28 ] = C[ 35 ];
58
A[ 29 ] = C[ 34 ];
59
A[ 30 ] = C[ 35 ];
60
A[ 31 ] = C[ 31 ];
61
A[ 32 ] = C[ 33 ];
62
A[ 33 ] = C[ 34 ];
63
A[ 34 ] = C[ 33 ];
64
A[ 35 ] = C[ 32 ];
65
A[ 36 ] = C[ 6 ];
66
A[ 37 ] = C[ 11 ];
67
A[ 38 ] = C[ 10 ];
68
A[ 39 ] = C[ 11 ];
69
A[ 40 ] = C[ 7 ];
70
A[ 41 ] = C[ 9 ];
71
A[ 42 ] = C[ 10 ];
72
A[ 43 ] = C[ 9 ];
73
A[ 44 ] = C[ 8 ];
74
A[ 45 ] = C[ 18 ];
75
A[ 46 ] = C[ 23 ];
76
A[ 47 ] = C[ 22 ];
77
A[ 48 ] = C[ 23 ];
78
A[ 49 ] = C[ 19 ];
79
A[ 50 ] = C[ 21 ];
80
A[ 51 ] = C[ 22 ];
81
A[ 52 ] = C[ 21 ];
82
A[ 53 ] = C[ 20 ];
83
A[ 54 ] = C[ 24 ];
84
A[ 55 ] = C[ 29 ];
85
A[ 56 ] = C[ 28 ];
86
A[ 57 ] = C[ 29 ];
87
A[ 58 ] = C[ 25 ];
88
A[ 59 ] = C[ 27 ];
89
A[ 60 ] = C[ 28 ];
90
A[ 61 ] = C[ 27 ];
91
A[ 62 ] = C[ 26 ];
92
A[ 63 ] = C[ 18 ];
93
A[ 64 ] = C[ 23 ];
94
A[ 65 ] = C[ 22 ];
95
A[ 66 ] = C[ 23 ];
96
A[ 67 ] = C[ 19 ];
97
A[ 68 ] = C[ 21 ];
98
A[ 69 ] = C[ 22 ];
99
A[ 70 ] = C[ 21 ];
100
A[ 71 ] = C[ 20 ];
101
A[ 72 ] = C[ 12 ];
102
A[ 73 ] = C[ 17 ];
103
A[ 74 ] = C[ 16 ];
104
A[ 75 ] = C[ 17 ];
105
A[ 76 ] = C[ 13 ];
106
A[ 77 ] = C[ 15 ];
107
A[ 78 ] = C[ 16 ];
108
A[ 79 ] = C[ 15 ];
109
A[ 80 ] = C[ 14 ];
110
}
111
112
//----------------------------------------------------------------------------
113
114
template
<
typename
T >
void
115
mat_to_ten
(
const
Matrix< T >
& C , T * A )
116
{
117
#ifdef BELFEM_ARMADILLO
118
mat_to_ten
( C.data(), A );
119
#else
120
A[ 0 ] = C( 0, 0 );
121
A[ 1 ] = C( 5, 0 );
122
A[ 2 ] = C( 4, 0 );
123
A[ 3 ] = C( 5, 0 );
124
A[ 4 ] = C( 1, 0 );
125
A[ 5 ] = C( 3, 0 );
126
A[ 6 ] = C( 4, 0 );
127
A[ 7 ] = C( 3, 0 );
128
A[ 8 ] = C( 2, 0 );
129
A[ 9 ] = C( 0, 5 );
130
A[ 10 ] = C( 5, 5 );
131
A[ 11 ] = C( 4, 5 );
132
A[ 12 ] = C( 5, 5 );
133
A[ 13 ] = C( 1, 5 );
134
A[ 14 ] = C( 3, 5 );
135
A[ 15 ] = C( 4, 5 );
136
A[ 16 ] = C( 3, 5 );
137
A[ 17 ] = C( 2, 5 );
138
A[ 18 ] = C( 0, 4 );
139
A[ 19 ] = C( 5, 4 );
140
A[ 20 ] = C( 4, 4 );
141
A[ 21 ] = C( 5, 4 );
142
A[ 22 ] = C( 1, 4 );
143
A[ 23 ] = C( 3, 4 );
144
A[ 24 ] = C( 4, 4 );
145
A[ 25 ] = C( 3, 4 );
146
A[ 26 ] = C( 2, 4 );
147
A[ 27 ] = C( 0, 5 );
148
A[ 28 ] = C( 5, 5 );
149
A[ 29 ] = C( 4, 5 );
150
A[ 30 ] = C( 5, 5 );
151
A[ 31 ] = C( 1, 5 );
152
A[ 32 ] = C( 3, 5 );
153
A[ 33 ] = C( 4, 5 );
154
A[ 34 ] = C( 3, 5 );
155
A[ 35 ] = C( 2, 5 );
156
A[ 36 ] = C( 0, 1 );
157
A[ 37 ] = C( 5, 1 );
158
A[ 38 ] = C( 4, 1 );
159
A[ 39 ] = C( 5, 1 );
160
A[ 40 ] = C( 1, 1 );
161
A[ 41 ] = C( 3, 1 );
162
A[ 42 ] = C( 4, 1 );
163
A[ 43 ] = C( 3, 1 );
164
A[ 44 ] = C( 2, 1 );
165
A[ 45 ] = C( 0, 3 );
166
A[ 46 ] = C( 5, 3 );
167
A[ 47 ] = C( 4, 3 );
168
A[ 48 ] = C( 5, 3 );
169
A[ 49 ] = C( 1, 3 );
170
A[ 50 ] = C( 3, 3 );
171
A[ 51 ] = C( 4, 3 );
172
A[ 52 ] = C( 3, 3 );
173
A[ 53 ] = C( 2, 3 );
174
A[ 54 ] = C( 0, 4 );
175
A[ 55 ] = C( 5, 4 );
176
A[ 56 ] = C( 4, 4 );
177
A[ 57 ] = C( 5, 4 );
178
A[ 58 ] = C( 1, 4 );
179
A[ 59 ] = C( 3, 4 );
180
A[ 60 ] = C( 4, 4 );
181
A[ 61 ] = C( 3, 4 );
182
A[ 62 ] = C( 2, 4 );
183
A[ 63 ] = C( 0, 3 );
184
A[ 64 ] = C( 5, 3 );
185
A[ 65 ] = C( 4, 3 );
186
A[ 66 ] = C( 5, 3 );
187
A[ 67 ] = C( 1, 3 );
188
A[ 68 ] = C( 3, 3 );
189
A[ 69 ] = C( 4, 3 );
190
A[ 70 ] = C( 3, 3 );
191
A[ 71 ] = C( 2, 3 );
192
A[ 72 ] = C( 0, 2 );
193
A[ 73 ] = C( 5, 2 );
194
A[ 74 ] = C( 4, 2 );
195
A[ 75 ] = C( 5, 2 );
196
A[ 76 ] = C( 1, 2 );
197
A[ 77 ] = C( 3, 2 );
198
A[ 78 ] = C( 4, 2 );
199
A[ 79 ] = C( 3, 2 );
200
A[ 80 ] = C( 2, 2 );
201
#endif
202
}
203
}
/* namespace tensor */
204
}
/* namespace belfem */
205
206
#endif
//BELFEM_FN_TR_MAT_TO_TEN_HPP
cl_Matrix.hpp
belfem::Matrix
Dense column-major matrix.
Definition
cl_BZ_Matrix.hpp:28
belfem::tensor
Definition
fn_TR_contract42_arma.hpp:21
belfem::tensor::mat_to_ten
void mat_to_ten(const T *C, T *A)
elasticity matrix conversion elasticity matrix C => tensor A
Definition
fn_TR_mat_to_ten.hpp:27
belfem
USER GUIDES:
Definition
cl_Capacitor.cpp:16
src
math
tensor
fn_TR_mat_to_ten.hpp
Generated by
1.18.0