Ice Sheet System Model
4.18
Code documentation
src
c
modules
ModelProcessorx
EdgesPartitioning.cpp
Go to the documentation of this file.
1
5
#include <string.h>
6
#include "../../classes/classes.h"
7
#include "../../shared/shared.h"
8
#include "
./ModelProcessorx.h
"
9
10
void
EdgesPartitioning
(
IoModel
* iomodel){
11
12
/*If faces are already present, exit*/
13
if
(iomodel->
my_edges
)
return
;
14
15
/*Get edges and elements*/
16
CreateEdges
(iomodel);
17
_assert_
(iomodel->
elementtoedgeconnectivity
);
18
19
/*Mesh dependent variables*/
20
int
elementnbe;
21
switch
(iomodel->
meshelementtype
){
22
case
TriaEnum
: elementnbe = 3;
break
;
23
case
TetraEnum
: elementnbe = 6;
break
;
24
case
PentaEnum
: elementnbe = 9;
break
;
25
default
:
_error_
(
"mesh dimension not supported yet"
);
26
}
27
28
/*output: */
29
iomodel->
my_edges
= xNewZeroInit<bool>(iomodel->
numberofedges
);
30
31
for
(
int
i=0;i<iomodel->
numberofelements
;i++){
32
if
(iomodel->
my_elements
[i]){
33
for
(
int
j=0;j<elementnbe;j++){
34
iomodel->
my_edges
[iomodel->
elementtoedgeconnectivity
[i*elementnbe+j]] =
true
;
35
}
36
}
37
}
38
39
if
(iomodel->
meshelementtype
==
PentaEnum
){
40
iomodel->
my_vedges
= xNewZeroInit<bool>(iomodel->
numberofverticaledges
);
41
iomodel->
my_hedges
= xNewZeroInit<bool>(iomodel->
numberofhorizontaledges
);
42
for
(
int
i=0;i<iomodel->
numberofelements
;i++){
43
if
(iomodel->
my_elements
[i]){
44
for
(
int
j=0;j<3;j++) iomodel->
my_vedges
[iomodel->
elementtoverticaledgeconnectivity
[i*3+j]] =
true
;
45
for
(
int
j=0;j<6;j++) iomodel->
my_hedges
[iomodel->
elementtohorizontaledgeconnectivity
[i*6+j]] =
true
;
46
}
47
}
48
}
49
}
_assert_
#define _assert_(ignore)
Definition:
exceptions.h:37
TetraEnum
@ TetraEnum
Definition:
EnumDefinitions.h:1300
CreateEdges
void CreateEdges(IoModel *iomodel)
Definition:
CreateEdges.cpp:9
IoModel::elementtohorizontaledgeconnectivity
int * elementtohorizontaledgeconnectivity
Definition:
IoModel.h:85
IoModel::my_hedges
bool * my_hedges
Definition:
IoModel.h:71
EdgesPartitioning
void EdgesPartitioning(IoModel *iomodel)
Definition:
EdgesPartitioning.cpp:10
IoModel::my_elements
bool * my_elements
Definition:
IoModel.h:66
IoModel::numberofelements
int numberofelements
Definition:
IoModel.h:96
IoModel::elementtoverticaledgeconnectivity
int * elementtoverticaledgeconnectivity
Definition:
IoModel.h:84
IoModel::elementtoedgeconnectivity
int * elementtoedgeconnectivity
Definition:
IoModel.h:83
IoModel::my_edges
bool * my_edges
Definition:
IoModel.h:69
IoModel::numberofhorizontaledges
int numberofhorizontaledges
Definition:
IoModel.h:95
_error_
#define _error_(StreamArgs)
Definition:
exceptions.h:49
IoModel::numberofverticaledges
int numberofverticaledges
Definition:
IoModel.h:94
PentaEnum
@ PentaEnum
Definition:
EnumDefinitions.h:1231
IoModel
Definition:
IoModel.h:48
IoModel::meshelementtype
int meshelementtype
Definition:
IoModel.h:91
ModelProcessorx.h
TriaEnum
@ TriaEnum
Definition:
EnumDefinitions.h:1318
IoModel::numberofedges
int numberofedges
Definition:
IoModel.h:93
IoModel::my_vedges
bool * my_vedges
Definition:
IoModel.h:70
Generated on Thu Jul 2 2020 08:09:19 for Ice Sheet System Model by
1.8.19