Vlasiator ebf0dd394 on dev (v5.4.0 + 1054 commits)
Loading...
Searching...
No Matches
trans_test.cpp
Go to the documentation of this file.
1#include <iostream>
2#include <fstream>
3#include <vector>
4//#include "dccrg.hpp"
5#include "../../grid.h"
6#include "mpi.h"
7#include "../../definitions.h"
8#include "../../parameters.h"
9#include "../../vlasovsolver/cpu_trans_map.hpp"
10
11using namespace std;
12
13// struct grid_data {
14
15// int value = 0;
16
17// std::tuple<void*, int, MPI_Datatype> get_mpi_datatype()
18// {
19// return std::make_tuple(this, 0, MPI_BYTE);
20// }
21
22// };
23
24int main(int argc, char* argv[]) {
25
26 if (MPI_Init(&argc, &argv) != MPI_SUCCESS) {
27 // cerr << "Coudln't initialize MPI." << endl;
28 abort();
29 }
30
31 MPI_Comm comm = MPI_COMM_WORLD;
32
33 int rank = 0, comm_size = 0;
34 MPI_Comm_rank(comm, &rank);
35 MPI_Comm_size(comm, &comm_size);
36
37 const dccrg::Dccrg<spatial_cell::SpatialCell,dccrg::Cartesian_Geometry> grid;
38
39 const uint dimension = 0;
40 const uint xDim = 9;
41 const uint yDim = 9;
42 const uint zDim = 1;
43 const std::array<uint64_t, 3> grid_size = {{xDim,yDim,zDim}};
44
45 int argn;
46 char **argc;
47
48 initializeGrid(argn,argc,grid,sysBoundaries,project);
49 //grid.initialize(grid_size, comm, "RANDOM", 1);
50
51 grid.balance_load();
52
53 bool doRefine = false;
54 const std::array<uint,4> refinementIds = {{1,2,3,4}};
55 if(doRefine) {
56 for(uint i = 0; i < refinementIds.size(); i++) {
57 if(refinementIds[i] > 0) {
58 grid.refine_completely(refinementIds[i]);
59 grid.stop_refining();
60 }
61 }
62 }
63
64 grid.balance_load();
65
66 setOfPencils pencils;
67 vector<CellID> seedIds;
68 vector<CellID> localPropagatedCells;
69 vector<CellID> ids;
70 vector<uint> path;
71
72 for (CellID i = 0; i < xDim * yDim * zDim; i++) localPropagatedCells.push_back( i + 1 );
73 get_seed_ids(grid, localPropagatedCells, dimension, seedIds);
74 for (const auto seedId : seedIds) {
75 // Construct pencils from the seedIds into a set of pencils.
76 pencils = buildPencilsWithNeighbors(grid, pencils, seedId, ids, dimension, path);
77 }
78
79 uint ibeg = 0;
80 uint iend = 0;
81 std::cout << "I have created " << pencils.N << " pencils along dimension " << dimension << ":\n";
82 std::cout << "(x, y): indices " << std::endl;
83 std::cout << "-----------------------------------------------------------------" << std::endl;
84 for (uint i = 0; i < pencils.N; i++) {
85 iend += pencils.lengthOfPencils[i];
86 std::cout << "(" << pencils.x[i] << ", " << pencils.y[i] << "): ";
87 for (auto j = pencils.ids.begin() + ibeg; j != pencils.ids.begin() + iend; ++j) {
88 std::cout << *j << " ";
89 }
90 ibeg = iend;
91 std::cout << std::endl;
92 }
93
94}
for i
Definition Dispersion.m:24
uint64_t CellID
Definition definitions.h:54
const int j
setOfPencils buildPencilsWithNeighbors(dccrg::Dccrg< grid_data > &grid, setOfPencils &pencils, CellID startingId, vector< CellID > ids, uint dimension, vector< uint > path)
int main()