source: issm/trunk/src/c/modules/ModelProcessorx/EdgesPartitioning.cpp@ 16137

Last change on this file since 16137 was 16137, checked in by Mathieu Morlighem, 12 years ago

merged trunk-jpl and trunk for revision 16135

File size: 927 bytes
Line 
1/*!\file: EdgesPartitioning.cpp
2 * \brief: partition elements and nodes and vertices
3 */
4
5#include <string.h>
6#include "../../classes/classes.h"
7#include "../../shared/shared.h"
8#include "./ModelProcessorx.h"
9
10void EdgesPartitioning(bool** pmy_edges,IoModel* iomodel){
11
12 /*Intermediaries*/
13 int elementnbe;
14
15 /*Get edges and elements*/
16 CreateEdges(iomodel);
17 _assert_(iomodel->elementtoedgeconnectivity);
18
19 /*Mesh dependent variables*/
20 if(iomodel->dim==2){
21 elementnbe = 3;
22 }
23 else if(iomodel->dim==3){
24 elementnbe = 9;
25 }
26 else{
27 _error_("mesh dimension not supported yet");
28 }
29 /*output: */
30 bool* my_edges=xNewZeroInit<bool>(iomodel->numberofedges);
31
32 for(int i=0;i<iomodel->numberofelements;i++){
33 if(iomodel->my_elements[i]){
34 for(int j=0;j<elementnbe;j++){
35 my_edges[iomodel->elementtoedgeconnectivity[i*elementnbe+j]] = true;
36 }
37 }
38 }
39
40 /*Free data and assign output pointers */
41 *pmy_edges=my_edges;
42}
Note: See TracBrowser for help on using the repository browser.