GPUE  v1.0
GPU Gross-Pitaevskii Equation numerical solver for Bose-Einstein condensates
graphtest.cc File Reference
#include "../include/lattice.h"
#include "../include/node.h"
#include "../include/edge.h"
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
Include dependency graph for graphtest.cc:

Go to the source code of this file.

Macros

#define NUM_VORT   3
 

Functions

int main ()
 

Macro Definition Documentation

◆ NUM_VORT

#define NUM_VORT   3

Definition at line 5 of file graphtest.cc.

Referenced by main().

Function Documentation

◆ main()

int main ( )

Definition at line 20 of file graphtest.cc.

References a, mpi_vis::i, ii, l, mat, and NUM_VORT.

20  {
21  Lattice *l = new Lattice();
22 
23  std::shared_ptr<Node> n;//
24  std::shared_ptr<Edge> e;
25 
26  //shared_ptr<Node> n( new int );
27 
28  Vtx::Vortex *v = (Vtx::Vortex*) malloc(sizeof(Vtx::Vortex)*NUM_VORT);
29  for(int i=0; i < NUM_VORT; ++i) {
30  v[i].coords.x = (i + 1) * NUM_VORT;
31  v[i].coords.y = (i + 1) * NUM_VORT;
32  n.reset(new Node(v[i]));
33  l->Lattice::addVortex(n);
34  //std::cout << "UID=" << l->getElement(i).getUid() << std::endl;
35  }
36  n=NULL;
37 
38  std::sort(l->getVortices().begin(),l->getVortices().end());
39 
40  e.reset(new Edge(l->getVortexIdx(0),l->getVortexIdx(1),0,0 ));
41  l->addEdge(e);
42  //l->addEdge(e,l->getElement(0),l->getElement(1));
43 
44  e.reset(new Edge(l->getVortexIdx(0),l->getVortexIdx(2),0,0 ));
45  l->addEdge(e);
46 
47  e.reset( new Edge(l->getVortexIdx(1),l->getVortexIdx(2),0,0 ));
48  l->addEdge(e);
49 
50 
51  for (int ii=0; ii < 3; ++ii){
52  std::cout << l->getVortices().at(ii)<< " ";
53  std::cout << l->getVortices().at(ii)->getUid()<< std::endl;
54  }
55 
56  l->swapIdxUid(1,2);
57  //std::swap(l->getVortices().at(l->getVortexIdxUid(1)),l->getVortices().at(l->getVortexIdxUid(2)));
58  l->removeEdgeUid(1);
59  std::vector< std::shared_ptr<Node> > s3;
60 
61  //std::sort(l->getVortices().begin(),l->getVortices().end());
62 
63  //std::set_intersection(l->getVortices().begin(),l->getVortices().end(),l->getVortices().begin(),l->getVortices().end(),s3);
64  for (int ii=0; ii < 3; ++ii){
65  std::cout << l->getVortices().at(ii)<< " ";
66  std::cout << l->getVortices().at(ii)->getUid()<< std::endl;
67  }
68 
69  for(auto a : s3){
70  std::cout << a << std::endl;
71  }
72 
73 
74  //l->removeEdgeUid(2);
75  //l->removeVortexUid(2);
76  //l->removeVortexUid(2);
77 
78 
79  //l->removeEdge(l->getVortexUid(1),l->getVortexUid(2));
80  //l->removeVortexIdx(0);
81  //l->removeEdge(l->getVortexUid(1),l->getVortexUid(3));
82  //l->removeEdge(l->getElement(1),l->getElement(2));
83 
84  //l->createEdges(9);
85  //l->removeEdge(l->getElementUid(1),l->getElementUid(2));
86  //l->removeNode(0);
87  /*
88  e.reset( new Edge(l->getElement(0),l->getElement(4),0,0 ));
89  l->addEdge(e,l->getElement(0),l->getElement(4));
90 
91  e.reset( new Edge(l->getElement(0),l->getElement(5),0,0 ));
92  l->addEdge(e,l->getElement(0),l->getElement(5));
93 
94  e.reset( new Edge(l->getElement(0),l->getElement(6),0,0 ));
95  l->addEdge(e,l->getElement(0),l->getElement(6));
96 
97 
98 
99 
100  e.reset( new Edge(l->getElement(7),l->getElement(8),0,0 ));
101  l->addEdge(e,l->getElement(7),l->getElement(8));
102 
103  e.reset( new Edge(l->getElement(7),l->getElement(9),0,0 ));
104  l->addEdge(e,l->getElement(7),l->getElement(9));
105 
106  e.reset( new Edge(l->getElement(7),l->getElement(10),0,0 ));
107  l->addEdge(e,l->getElement(7),l->getElement(10));
108 
109  e.reset( new Edge(l->getElement(7),l->getElement(11),0,0 ));
110  l->addEdge(e,l->getElement(7),l->getElement(11));
111 
112  e.reset( new Edge(l->getElement(7),l->getElement(12),0,0 ));
113  l->addEdge(e,l->getElement(7),l->getElement(12));
114 
115  e.reset( new Edge(l->getElement(7),l->getElement(3),0,0 ));
116  l->addEdge(e,l->getElement(7),l->getElement(3));
117 
118 
119 
120 
121  e.reset( new Edge(l->getElement(1),l->getElement(2),0,0 ));
122  l->addEdge(e,l->getElement(1),l->getElement(2));
123 
124  e.reset( new Edge(l->getElement(2),l->getElement(3),0,0 ));
125  l->addEdge(e,l->getElement(2),l->getElement(3));
126 
127  e.reset( new Edge(l->getElement(3),l->getElement(4),0,0 ));
128  l->addEdge(e,l->getElement(3),l->getElement(4));
129 
130  e.reset( new Edge(l->getElement(4),l->getElement(5),0,0 ));
131  l->addEdge(e,l->getElement(4),l->getElement(5));
132 
133  e.reset( new Edge(l->getElement(5),l->getElement(6),0,0 ));
134  l->addEdge(e,l->getElement(5),l->getElement(6));
135 
136  e.reset( new Edge(l->getElement(6),l->getElement(1),0,0 ));
137  l->addEdge(e,l->getElement(6),l->getElement(1));
138 
139 
140 
141  e.reset( new Edge(l->getElement(3),l->getElement(8),0,0 ));
142  l->addEdge(e,l->getElement(3),l->getElement(8));
143 
144  e.reset( new Edge(l->getElement(3),l->getElement(12),0,0 ));
145  l->addEdge(e,l->getElement(3),l->getElement(12));
146 
147 
148  e.reset( new Edge(l->getElement(2),l->getElement(8),0,0 ));
149  l->addEdge(e,l->getElement(2),l->getElement(8));
150 
151  e.reset( new Edge(l->getElement(8),l->getElement(9),0,0 ));
152  l->addEdge(e,l->getElement(8),l->getElement(9));
153 
154  e.reset( new Edge(l->getElement(9),l->getElement(10),0,0 ));
155  l->addEdge(e,l->getElement(9),l->getElement(10));
156 
157  e.reset( new Edge(l->getElement(10),l->getElement(11),0,0 ));
158  l->addEdge(e,l->getElement(10),l->getElement(11));
159 
160  e.reset( new Edge(l->getElement(11),l->getElement(12),0,0 ));
161  l->addEdge(e,l->getElement(11),l->getElement(12));
162 
163  e.reset( new Edge(l->getElement(12),l->getElement(4),0,0 ));
164  l->addEdge(e,l->getElement(12),l->getElement(4));
165 
166 
167  */
168 
169  //l->removeEdge(l->getElementUid(12),l->getElementUid(4));
170 
171 /*
172  e1 = new Edge(l->getElement(0),l->getElement(1),0,0 );
173  l->addEdge(*e1,l->getElement(0),l->getElement(1));
174 
175  e2 = new Edge(l->getElement(0),l->getElement(2),0,0 );
176  l->addEdge(*e2,l->getElement(0),l->getElement(2));
177 
178  e3 = new Edge(l->getElement(1),l->getElement(2),0,0 );
179  l->addEdge(*e3,l->getElement(1),l->getElement(2));
180 */
181 
182  unsigned int* mat = (unsigned int*) calloc(l->getVortices().size()*l->getVortices().size(),sizeof(int));
183  l->genAdjMat(mat);
184  l->adjMatMtca(mat);
185 
186  //free(mat); free(n); free(e); free(v);
187 }
#define NUM_VORT
Definition: graphtest.cc:5
list i
Definition: mpi_vis.py:168
tic for a
Definition: GPE_2d.m:90
end end end % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % Phase winding l
Definition: GPE_2d.m:50
end % idx is for idx is for type for ii
% Prealloc may improve speed here end save Ek mat
Definition: kinSpec.m:21