BELFEM 0.9.3
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_EF_LINE3.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_CL_EF_LINE3_HPP
13#define BELFEM_CL_EF_LINE3_HPP
14
16#include "cl_FEM_Element.hpp"
17#include "fn_polyval.hpp"
18#include "fn_dot.hpp"
19#include "fn_norm.hpp"
20
21namespace belfem
22{
23 namespace fem
24 {
25 class Element;
26
30 class EF_LINE3 : public EdgeFunction
31 {
32 // coordinates of edge
35
36 // coordinates of edge dofs
38
39 // scaling parameters
42
43 // coefficients for edge function on dof 0
44 Vector< real > mC0 ;
45
46 // coefficients for edge function on dof 1
47 Vector< real > mC1 ;
48
49 // shape function of volume element
50 InterpolationFunction * mVolumeLagrange = nullptr ;
51 Cell< Matrix< real > > mVolumeNxi ;
52
53//------------------------------------------------------------------------------
54 public:
55//------------------------------------------------------------------------------
56
60 EF_LINE3();
61
62//------------------------------------------------------------------------------
63
67 ~EF_LINE3() override;
68
69//------------------------------------------------------------------------------
70
74 void
75 precompute( const Matrix< real > & aXi ) override ;
76
77//------------------------------------------------------------------------------
78
83 void
84 link( Element * aElement ) override;
85
86//------------------------------------------------------------------------------
87
91 const Matrix< real > &
92 E( const uint aIndex ) override;
93//------------------------------------------------------------------------------
94
98 const Matrix< real > &
99 C( const uint aIndex = 0 ) override;
100
101//------------------------------------------------------------------------------
102
108 const Matrix< real > &
109 G( const uint aIndex = 0 ) override ;
110
111//------------------------------------------------------------------------------
112 private:
113//------------------------------------------------------------------------------
114
115 real
116 compute_det_J( const uint aIndex );
117
118//------------------------------------------------------------------------------
119 };
120
121//------------------------------------------------------------------------------
122
123 inline const Matrix< real > &
124 EF_LINE3::E( const uint aIndex )
125 {
126 mAbsDetJ = this->compute_det_J( aIndex );
127 return mE( aIndex );
128 }
129
130//--------------------------------------------------------------------------
131 }
132}
133#endif //BELFEM_CL_EF_LINE3_HPP
A bounds-checked wrapper around std::vector.
Definition cl_Cell.hpp:45
const Matrix< real > & G(const uint aIndex=0) override
gradient operator for h-field ( hard-fail stub, real implementation pending Step C; layout contract i...
Definition cl_EF_LINE3.cpp:194
void link(Element *aElement) override
connect function with element ( here, we don't care about the switches )
Definition cl_EF_LINE3.cpp:153
void precompute(const Matrix< real > &aXi) override
Definition cl_EF_LINE3.cpp:48
const Matrix< real > & C(const uint aIndex=0) override
curl operator for h-field
Definition cl_EF_LINE3.cpp:185
EF_LINE3()
constructor
Definition cl_EF_LINE3.cpp:23
const Matrix< real > & E(const uint aIndex) override
interpolation operator for h-field
Definition cl_EF_LINE3.hpp:124
real mAbsDetJ
the absolute value determinant of the Geometry Jacobian
Definition cl_EF_EdgeFunction.hpp:54
EdgeFunction()=default
trivial constructor
Definition cl_FEM_Element.hpp:41
the shape function base class
Definition cl_IF_InterpolationFunction.hpp:31
Inner products of vectors and matrices.
Euclidean length of a vector.
Evaluates a polynomial.
Definition cl_IFB_LINE3.hpp:21
USER GUIDES:
Definition cl_Capacitor.cpp:16
unsigned int uint
Definition typedefs.hpp:30
double real
Definition typedefs.hpp:36