BELFEM
0.9.0
Berkeley Lab Finite Element Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
cl_EF_LINE3.hpp
Go to the documentation of this file.
1
//
2
// Created by christian on 8/11/22.
3
//
4
5
#ifndef BELFEM_CL_EF_LINE3_HPP
6
#define BELFEM_CL_EF_LINE3_HPP
7
8
#include "
nedelec/cl_EF_EdgeFunction.hpp
"
9
#include "
cl_FEM_Element.hpp
"
10
#include "
fn_polyval.hpp
"
11
#include "
fn_dot.hpp
"
12
#include "
fn_norm.hpp
"
13
14
namespace
belfem
15
{
16
namespace
fem
17
{
18
class
Element
;
19
23
class
EF_LINE3
:
public
EdgeFunction
24
{
25
// coordinates of edge
26
Vector< real >
mX ;
27
Vector< real >
mY ;
28
29
// coordinates of edge dofs
30
Vector< real >
mXi;
31
32
// scaling parameters
33
Cell< Vector< real >
> mNxi ;
34
Cell< Matrix< real >
> mE ;
35
36
// coefficients for edge function on dof 0
37
Vector< real >
mC0 ;
38
39
// coefficients for edge function on dof 1
40
Vector< real >
mC1 ;
41
42
// shape function of volume element
43
InterpolationFunction
* mVolumeLagrange = nullptr ;
44
Cell< Matrix< real >
> mVolumeNxi ;
45
46
//------------------------------------------------------------------------------
47
public
:
48
//------------------------------------------------------------------------------
49
53
EF_LINE3
();
54
55
//------------------------------------------------------------------------------
56
60
~EF_LINE3
()
override
;
61
62
//------------------------------------------------------------------------------
63
67
void
68
precompute
(
const
Matrix< real >
& aXi )
override
;
69
70
//------------------------------------------------------------------------------
71
76
void
77
link
(
Element
* aElement )
override
;
78
79
//------------------------------------------------------------------------------
80
84
const
Matrix< real >
&
85
E
(
const
uint
aIndex )
override
;
86
//------------------------------------------------------------------------------
87
91
const
Matrix< real >
&
92
C
(
const
uint
aIndex = 0 )
override
;
93
94
//------------------------------------------------------------------------------
95
101
const
Matrix< real >
&
102
G
(
const
uint
aIndex = 0 )
override
;
103
104
//------------------------------------------------------------------------------
105
private
:
106
//------------------------------------------------------------------------------
107
108
real
109
compute_det_J(
const
uint
aIndex );
110
111
//------------------------------------------------------------------------------
112
};
113
114
//------------------------------------------------------------------------------
115
116
inline
const
Matrix< real >
&
117
EF_LINE3::E
(
const
uint
aIndex )
118
{
119
mAbsDetJ
= this->compute_det_J( aIndex );
120
return
mE( aIndex );
121
}
122
123
//--------------------------------------------------------------------------
124
}
125
}
126
#endif
//BELFEM_CL_EF_LINE3_HPP
cl_EF_EdgeFunction.hpp
cl_FEM_Element.hpp
belfem::Cell
Cell is a wrapper around the standard vector.
Definition
cl_Cell.hpp:42
belfem::Matrix< real >
belfem::Vector< real >
belfem::fem::EF_LINE3::G
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:187
belfem::fem::EF_LINE3::link
void link(Element *aElement) override
connect function with element ( here, we don't care about the switches )
Definition
cl_EF_LINE3.cpp:146
belfem::fem::EF_LINE3::precompute
void precompute(const Matrix< real > &aXi) override
Definition
cl_EF_LINE3.cpp:41
belfem::fem::EF_LINE3::C
const Matrix< real > & C(const uint aIndex=0) override
curl operator for h-field
Definition
cl_EF_LINE3.cpp:178
belfem::fem::EF_LINE3::EF_LINE3
EF_LINE3()
constructor
Definition
cl_EF_LINE3.cpp:16
belfem::fem::EF_LINE3::E
const Matrix< real > & E(const uint aIndex) override
interpolation operator for h-field
Definition
cl_EF_LINE3.hpp:117
belfem::fem::EdgeFunction::mAbsDetJ
real mAbsDetJ
the absolute value determinant of the Geometry Jacobian
Definition
cl_EF_EdgeFunction.hpp:47
belfem::fem::EdgeFunction::EdgeFunction
EdgeFunction()=default
trivial constructor
belfem::fem::Element
Definition
cl_FEM_Element.hpp:41
belfem::fem::InterpolationFunction
the shape function base class
Definition
cl_IF_InterpolationFunction.hpp:24
fn_dot.hpp
Inner products of vectors and matrices.
fn_norm.hpp
Euclidean length of a vector.
fn_polyval.hpp
Evaluates a polynomial.
belfem::fem
Definition
cl_IFB_LINE3.hpp:21
belfem
USER GUIDES:
Definition
cl_Capacitor.cpp:16
belfem::uint
unsigned int uint
Definition
typedefs.hpp:30
belfem::real
double real
Definition
typedefs.hpp:36
src
fem
interpolation
nedelec
cl_EF_LINE3.hpp
Generated by
1.18.0