Ice Sheet System Model  4.18
Code documentation
Functions
EdgesPartitioning.cpp File Reference

: partition elements and nodes and vertices More...

#include <string.h>
#include "../../classes/classes.h"
#include "../../shared/shared.h"
#include "./ModelProcessorx.h"

Go to the source code of this file.

Functions

void EdgesPartitioning (IoModel *iomodel)
 

Detailed Description

: partition elements and nodes and vertices

Definition in file EdgesPartitioning.cpp.

Function Documentation

◆ EdgesPartitioning()

void EdgesPartitioning ( IoModel iomodel)

Definition at line 10 of file EdgesPartitioning.cpp.

10  {
11 
12  /*If faces are already present, exit*/
13  if(iomodel->my_edges) return;
14 
15  /*Get edges and elements*/
16  CreateEdges(iomodel);
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
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::meshelementtype
int meshelementtype
Definition: IoModel.h:91
TriaEnum
@ TriaEnum
Definition: EnumDefinitions.h:1318
IoModel::numberofedges
int numberofedges
Definition: IoModel.h:93
IoModel::my_vedges
bool * my_vedges
Definition: IoModel.h:70