BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
fn_TR_fill.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, through
4 * 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_FILL_HPP
13#define BELFEM_FN_TR_FILL_HPP
14
15
16namespace belfem
17{
18 namespace tensor
19 {
20//---------------------------------------------------------------------------
21
22 /*
23 * fills a tensor in the fashion of
24 *
25 * A_ijkl = a * δ_ij * δ_kl + b * (δ_ik * δ_jl + δ_il * δ_jk - 2/3 * δ_ij * δ_kl )
26 */
27 template < typename T >
28 void
29 fill( T * A, const T a, const T b )
30 {
31 T z = ( T ) 0 ;
32 T c = a + b*4.0/3.0;
33 T d = a - b*2.0/3.0 ;
34
35 A[ 0 ] = c;
36 A[ 1 ] = z;
37 A[ 2 ] = z;
38 A[ 3 ] = z;
39 A[ 4 ] = d;
40 A[ 5 ] = z;
41 A[ 6 ] = z;
42 A[ 7 ] = z;
43 A[ 8 ] = d;
44 A[ 9 ] = z;
45 A[ 10 ] = b;
46 A[ 11 ] = z;
47 A[ 12 ] = b;
48 A[ 13 ] = z;
49 A[ 14 ] = z;
50 A[ 15 ] = z;
51 A[ 16 ] = z;
52 A[ 17 ] = z;
53 A[ 18 ] = z;
54 A[ 19 ] = z;
55 A[ 20 ] = b;
56 A[ 21 ] = z;
57 A[ 22 ] = z;
58 A[ 23 ] = z;
59 A[ 24 ] = b;
60 A[ 25 ] = z;
61 A[ 26 ] = z;
62 A[ 27 ] = z;
63 A[ 28 ] = b;
64 A[ 29 ] = z;
65 A[ 30 ] = b;
66 A[ 31 ] = z;
67 A[ 32 ] = z;
68 A[ 33 ] = z;
69 A[ 34 ] = z;
70 A[ 35 ] = z;
71 A[ 36 ] = d;
72 A[ 37 ] = z;
73 A[ 38 ] = z;
74 A[ 39 ] = z;
75 A[ 40 ] = c;
76 A[ 41 ] = z;
77 A[ 42 ] = z;
78 A[ 43 ] = z;
79 A[ 44 ] = d;
80 A[ 45 ] = z;
81 A[ 46 ] = z;
82 A[ 47 ] = z;
83 A[ 48 ] = z;
84 A[ 49 ] = z;
85 A[ 50 ] = b;
86 A[ 51 ] = z;
87 A[ 52 ] = b;
88 A[ 53 ] = z;
89 A[ 54 ] = z;
90 A[ 55 ] = z;
91 A[ 56 ] = b;
92 A[ 57 ] = z;
93 A[ 58 ] = z;
94 A[ 59 ] = z;
95 A[ 60 ] = b;
96 A[ 61 ] = z;
97 A[ 62 ] = z;
98 A[ 63 ] = z;
99 A[ 64 ] = z;
100 A[ 65 ] = z;
101 A[ 66 ] = z;
102 A[ 67 ] = z;
103 A[ 68 ] = b;
104 A[ 69 ] = z;
105 A[ 70 ] = b;
106 A[ 71 ] = z;
107 A[ 72 ] = d;
108 A[ 73 ] = z;
109 A[ 74 ] = z;
110 A[ 75 ] = z;
111 A[ 76 ] = d;
112 A[ 77 ] = z;
113 A[ 78 ] = z;
114 A[ 79 ] = z;
115 A[ 80 ] = c;
116
117 }
118 }
119}
120#endif //BELFEM_FN_TR_FILL_HPP
Definition fn_TR_contract42_arma.hpp:21
void fill(T *A, const T a, const T b)
Definition fn_TR_fill.hpp:29
USER GUIDES:
Definition cl_Capacitor.cpp:16