BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_CutProcessorManual.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 CL_CUTPROCESSORMANUAL_HPP
13#define CL_CUTPROCESSORMANUAL_HPP
14
15#include "typedefs.hpp"
16#include "cl_Cell.hpp"
17#include "cl_Vector.hpp"
18#include "cl_Map.hpp"
19#include "cl_Mesh.hpp"
20
21namespace belfem
22{
23 namespace mesh
24 {
25
27 {
28 Mesh * mMesh ;
29 Vector< id_t > mAirBlocks ;
30 Vector< id_t > mCutSideSets ;
31 Vector< id_t > mCutMasterVolumes ;
32 Cell< Node * > mAbstractNodes ;
33 Cell< Node * > mOriginalNodes ;
34 Cell< Node * > mDuplicateNodes ;
35 Cell< Node * > mOrphanNodes ;
36 Matrix< real > mIncidentMatrix ;
37
38 struct ManualSet
39 {
40 Node * mAbstractNode = nullptr ;
41 Cell< Node * > mOriginalNodes ;
42 Cell< Node * > mDuplicateNodes ;
43 Cell< Element * > mElements ;
44
45 };
47
48//-----------------------------------------------------------------------------
49 public:
50//-----------------------------------------------------------------------------
51 CutProcessorManual( Mesh * aMesh,
52 const Vector< id_t > & aAirBlocks,
53 const Vector< id_t > & aCutSideSets,
54 const Vector< id_t > & aCutMasterVolumes );
55
57
60
63
66
69
70 const Vector< id_t > &
71 air_blocks() const ;
72
73 const Matrix< real > &
74 incident_matrix() const ;
75
76 private:
77
78 ManualSet *
79 create_set( const index_t aIndex, id_t & aMaxNodeID );
80
81
82 };
83
84 inline Cell< Node * > &
86 {
87 return mAbstractNodes;
88 }
89
90 inline Cell< Node * > &
92 {
93 return mOrphanNodes;
94 }
95
97 {
98 return mAirBlocks;
99 }
100
101 inline const Matrix< real > &
103 {
104 return mIncidentMatrix;
105 }
106
107 }
108}
109#endif //CL_CUTPROCESSORMANUAL_HPP
Cell is a wrapper around the standard vector.
Definition cl_Cell.hpp:42
Top-level container for all mesh entities.
Definition cl_Mesh.hpp:60
Cell< Node * > & orphaned_nodes()
Definition cl_CutProcessorManual.hpp:91
const Matrix< real > & incident_matrix() const
Definition cl_CutProcessorManual.hpp:102
Cell< Node * > & interface_duplicates()
CutProcessorManual(Mesh *aMesh, const Vector< id_t > &aAirBlocks, const Vector< id_t > &aCutSideSets, const Vector< id_t > &aCutMasterVolumes)
Definition cl_CutProcessorManual.cpp:21
const Vector< id_t > & air_blocks() const
Definition cl_CutProcessorManual.hpp:96
Cell< Node * > & abstract_nodes()
Definition cl_CutProcessorManual.hpp:85
Cell< Node * > & interface_originals()
Definition cl_Node.hpp:30
Definition cl_EF_EdgeFunction.hpp:17
USER GUIDES:
Definition cl_Capacitor.cpp:16
unsigned int id_t
Definition typedefs.hpp:41
uint32_t index_t
Definition typedefs.hpp:52