BELFEM
0.9.3
Berkeley Lab Finite Element Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
cl_BeltedTree.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
#include "
cl_SimplicialComplex.hpp
"
13
#include "
cl_Chain.hpp
"
14
#include "
cl_Cochain.hpp
"
15
#include "
cl_Edge.hpp
"
16
#include "
cl_Element.hpp
"
17
18
#ifndef BELFEM_CL_BELTEDTREE_HPP
19
#define BELFEM_CL_BELTEDTREE_HPP
20
21
namespace
belfem
22
{
23
namespace
mesh
24
{
25
//-----------------------------------------------------------------------------
26
class
BeltedTree
27
{
28
Cell< Chain * >
m1HomologyGenerators ;
29
30
Cell< Cochain * >
m1CohomologyGenerators ;
31
32
Cell < Edge * > mBeltFasteners ;
33
34
Cell < index_t > mTree ;
35
36
SimplicialComplex
* mSimplicialComplex ;
37
38
Mesh
* mMesh ;
39
40
//-----------------------------------------------------------------------------
41
public
:
42
//-----------------------------------------------------------------------------
43
44
BeltedTree
(
Mesh
* aMesh,
45
SimplicialComplex
* aSimplicialComplex,
46
Cell< Chain * >
a1HomologyGenerators) ;
47
48
//-----------------------------------------------------------------------------
49
50
~BeltedTree
();
51
52
//-----------------------------------------------------------------------------
53
54
void
55
select_belt_fasteners
() ;
56
57
//-----------------------------------------------------------------------------
58
59
void
60
create_tree
() ;
61
62
//-----------------------------------------------------------------------------
63
64
void
65
compute_cohomology
() ;
66
67
//-----------------------------------------------------------------------------
68
69
void
70
create_tree_field
(
Mesh
* aEdgeMesh ,
const
string
aFieldName ) ;
71
72
//-----------------------------------------------------------------------------
73
74
void
75
create_cohomology_field
(
Mesh
* aEdgeMesh ) ;
76
77
//-----------------------------------------------------------------------------
78
79
Cell< Cochain * >
&
80
get_cohomology
();
81
82
//-----------------------------------------------------------------------------
83
};
84
}
85
}
86
87
#endif
//BELFEM_CL_BELTEDTREE_HPP
cl_Chain.hpp
cl_Cochain.hpp
cl_Edge.hpp
cl_Element.hpp
cl_SimplicialComplex.hpp
belfem::Cell
A bounds-checked wrapper around std::vector.
Definition
cl_Cell.hpp:45
belfem::Mesh
Top-level container for all mesh entities.
Definition
cl_Mesh.hpp:60
belfem::mesh::BeltedTree::create_tree
void create_tree()
Definition
cl_BeltedTree.cpp:74
belfem::mesh::BeltedTree::compute_cohomology
void compute_cohomology()
Definition
cl_BeltedTree.cpp:165
belfem::mesh::BeltedTree::BeltedTree
BeltedTree(Mesh *aMesh, SimplicialComplex *aSimplicialComplex, Cell< Chain * > a1HomologyGenerators)
Definition
cl_BeltedTree.cpp:24
belfem::mesh::BeltedTree::select_belt_fasteners
void select_belt_fasteners()
Definition
cl_BeltedTree.cpp:54
belfem::mesh::BeltedTree::get_cohomology
Cell< Cochain * > & get_cohomology()
Definition
cl_BeltedTree.cpp:340
belfem::mesh::BeltedTree::create_tree_field
void create_tree_field(Mesh *aEdgeMesh, const string aFieldName)
Definition
cl_BeltedTree.cpp:307
belfem::mesh::BeltedTree::create_cohomology_field
void create_cohomology_field(Mesh *aEdgeMesh)
Definition
cl_BeltedTree.cpp:320
belfem::mesh::SimplicialComplex
Simplicial complex reduction engine underlying the homology and cohomology computation.
Definition
cl_SimplicialComplex.hpp:37
belfem::mesh
Definition
cl_EF_EdgeFunction.hpp:24
belfem
USER GUIDES:
Definition
cl_Capacitor.cpp:16
src
homology
cl_BeltedTree.hpp
Generated by
1.18.0