BELFEM 0.9.3
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
fn_Mesh_compute_surface_normals.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 "typedefs.hpp"
13#include "cl_Cell.hpp"
14#include "cl_Vector.hpp"
15#include "cl_Mesh.hpp"
16#include "Mesh_Enums.hpp"
17
18#ifndef BELFEM_FN_MESH_COMPUTE_SURFACE_NORMALS_HPP
19#define BELFEM_FN_MESH_COMPUTE_SURFACE_NORMALS_HPP
20
21namespace belfem
22{
23 namespace mesh
24 {
25//------------------------------------------------------------------------------
26
27 void
29 Mesh * aMesh,
30 const Vector< id_t > & aGroupIDs,
31 const GroupType aGroupType=GroupType::SIDESET,
32 const bool aComputeInParallel=true
33 );
34
35//------------------------------------------------------------------------------
36
37 namespace normals
38 {
39//------------------------------------------------------------------------------
40
41 void
43 Mesh * aMesh,
44 const Vector< id_t > & aGroupIDs,
45 const GroupType aGroupType
46 );
47
48//------------------------------------------------------------------------------
49 void
51 Mesh * aMesh,
52 const Vector< id_t > & aGroupIDs,
53 const GroupType aGroupType
54 );
55
56//------------------------------------------------------------------------------
57
58 void
59 create_normal_fields( Mesh * aMesh );
60
61//------------------------------------------------------------------------------
62
63 void
65 Mesh * aMesh,
66 const id_t aGroupID,
67 const GroupType aGroupType,
68 Cell< Element * > & aElements );
69
70//------------------------------------------------------------------------------
71
72 void
73 send_surface_normals_2d( Mesh * aMesh ) ;
74
75//------------------------------------------------------------------------------
76
77 void
78 send_surface_normals_3d( Mesh * aMesh ) ;
79
80//------------------------------------------------------------------------------
81
82 void
83 receive_surface_normals_2d( Mesh * aMesh,
84 const Vector< id_t > & aGroupIDs,
85 const GroupType aGroupType ) ;
86
87//------------------------------------------------------------------------------
88
89 void
90 receive_surface_normals_3d( Mesh * aMesh,
91 const Vector< id_t > & aGroupIDs,
92 const GroupType aGroupType ) ;
93
94//------------------------------------------------------------------------------
95
96 void
97 get_node_ids( Mesh * aMesh,
98 const Vector< id_t > & aGroupIDs,
99 const GroupType aGroupType,
100 Vector< id_t > & aNodeIDs);
101
102//------------------------------------------------------------------------------
103 }
104
105//------------------------------------------------------------------------------
106 }
107}
108#endif //BELFEM_FN_MESH_COMPUTE_SURFACE_NORMALS_HPP
Definition fn_Mesh_compute_surface_normals.cpp:105
void get_node_ids(Mesh *aMesh, const Vector< id_t > &aGroupIDs, const GroupType aGroupType, Vector< id_t > &aNodeIDs)
Definition fn_Mesh_compute_surface_normals.cpp:701
void compute_surface_normals_3d(Mesh *aMesh, const Vector< id_t > &aGroupIDs, const GroupType aGroupType)
Definition fn_Mesh_compute_surface_normals.cpp:298
void receive_surface_normals_2d(Mesh *aMesh, const Vector< id_t > &aGroupIDs, const GroupType aGroupType)
Definition fn_Mesh_compute_surface_normals.cpp:608
void send_surface_normals_2d(Mesh *aMesh)
Definition fn_Mesh_compute_surface_normals.cpp:497
void receive_surface_normals_3d(Mesh *aMesh, const Vector< id_t > &aGroupIDs, const GroupType aGroupType)
Definition fn_Mesh_compute_surface_normals.cpp:651
void collect_elements(Mesh *aMesh, const id_t aGroupID, const GroupType aGroupType, Cell< Element * > &aElements)
Definition fn_Mesh_compute_surface_normals.cpp:435
void compute_surface_normals_2d(Mesh *aMesh, const Vector< id_t > &aGroupIDs, const GroupType aGroupType)
Definition fn_Mesh_compute_surface_normals.cpp:109
void create_normal_fields(Mesh *aMesh)
Definition fn_Mesh_compute_surface_normals.cpp:416
void send_surface_normals_3d(Mesh *aMesh)
Definition fn_Mesh_compute_surface_normals.cpp:545
Definition cl_EF_EdgeFunction.hpp:24
void compute_surface_normals(Mesh *aMesh, const Vector< id_t > &aGroupIDs, const GroupType aGroupType, const bool aComputeInParallel)
Definition fn_Mesh_compute_surface_normals.cpp:32
USER GUIDES:
Definition cl_Capacitor.cpp:16
unsigned int id_t
Definition typedefs.hpp:41
GroupType
Definition Mesh_Enums.hpp:130
@ SIDESET
Definition Mesh_Enums.hpp:132