Commit 2481aada authored by Thomas Witkowski's avatar Thomas Witkowski
Browse files

Fixed MPI problem with mesh structure codes on 32 bit systems.

parent e1ac36f7
...@@ -20,7 +20,7 @@ namespace AMDiS { ...@@ -20,7 +20,7 @@ namespace AMDiS {
MPI_Datatype StdMpiHelper<vector<std::set<int> > >::mpiDataType = MPI_INT; MPI_Datatype StdMpiHelper<vector<std::set<int> > >::mpiDataType = MPI_INT;
MPI_Datatype StdMpiHelper<vector<double> >::mpiDataType = MPI_DOUBLE; MPI_Datatype StdMpiHelper<vector<double> >::mpiDataType = MPI_DOUBLE;
MPI_Datatype StdMpiHelper<vector<vector<double> > >::mpiDataType = MPI_DOUBLE; MPI_Datatype StdMpiHelper<vector<vector<double> > >::mpiDataType = MPI_DOUBLE;
MPI_Datatype StdMpiHelper<vector<MeshStructure> >::mpiDataType = MPI_UNSIGNED_LONG; MPI_Datatype StdMpiHelper<vector<MeshStructure> >::mpiDataType = MPI_UNSIGNED_LONG_LONG;
MPI_Datatype StdMpiHelper<vector<AtomicBoundary> >::mpiDataType = MPI_INT; MPI_Datatype StdMpiHelper<vector<AtomicBoundary> >::mpiDataType = MPI_INT;
MPI_Datatype StdMpiHelper<map<BoundaryType, map<DegreeOfFreedom, DegreeOfFreedom> > >::mpiDataType = MPI_INT; MPI_Datatype StdMpiHelper<map<BoundaryType, map<DegreeOfFreedom, DegreeOfFreedom> > >::mpiDataType = MPI_INT;
MPI_Datatype StdMpiHelper<vector<std::pair<int, int> > >::mpiDataType = MPI_INT; MPI_Datatype StdMpiHelper<vector<std::pair<int, int> > >::mpiDataType = MPI_INT;
...@@ -123,7 +123,7 @@ namespace AMDiS { ...@@ -123,7 +123,7 @@ namespace AMDiS {
void StdMpiHelper<vector<std::set<int> > >::makeFromBuffer(vector<std::set<int> > &data, int *buf, int bufSize) void StdMpiHelper<vector<std::set<int> > >::makeFromBuffer(vector<std::set<int> > &data, int *buf, int bufSize)
{ {
FUNCNAME("StdMpiHelper<vector<set<int>>>::makeFromBuffer()"); FUNCNAME("StdMpiHelper<vector<set<int> > >::makeFromBuffer()");
int counter = 1; int counter = 1;
data.resize(buf[0]); data.resize(buf[0]);
...@@ -207,6 +207,8 @@ namespace AMDiS { ...@@ -207,6 +207,8 @@ namespace AMDiS {
int StdMpiHelper<vector<MeshStructure> >::getBufferSize(vector<MeshStructure> &data) int StdMpiHelper<vector<MeshStructure> >::getBufferSize(vector<MeshStructure> &data)
{ {
FUNCNAME("StdMpiHelper<vector<MeshStructure> >::getBufferSize()");
int size = 0; int size = 0;
for (unsigned int i = 0; i < data.size(); i++) for (unsigned int i = 0; i < data.size(); i++)
size += data[i].getCode().size() + 2; size += data[i].getCode().size() + 2;
...@@ -216,6 +218,8 @@ namespace AMDiS { ...@@ -216,6 +218,8 @@ namespace AMDiS {
void StdMpiHelper<vector<MeshStructure> >::createBuffer(vector<MeshStructure> &data, uint64_t *buf) void StdMpiHelper<vector<MeshStructure> >::createBuffer(vector<MeshStructure> &data, uint64_t *buf)
{ {
FUNCNAME("StdMpiHelper<vector<MeshStructure> >::createBuffer()");
int pos = 0; int pos = 0;
for (unsigned int i = 0; i < data.size(); i++) { for (unsigned int i = 0; i < data.size(); i++) {
buf[pos++] = data[i].getCode().size(); buf[pos++] = data[i].getCode().size();
...@@ -229,6 +233,8 @@ namespace AMDiS { ...@@ -229,6 +233,8 @@ namespace AMDiS {
void StdMpiHelper<vector<MeshStructure> >::makeFromBuffer(vector<MeshStructure> &data, void StdMpiHelper<vector<MeshStructure> >::makeFromBuffer(vector<MeshStructure> &data,
uint64_t *buf, int bufSize) uint64_t *buf, int bufSize)
{ {
FUNCNAME("StdMpiHelper<vector<MeshStructure> >::makeFromBuffer()");
int pos = 0; int pos = 0;
while (pos < bufSize) { while (pos < bufSize) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment