moab
MBZoltan.hpp File Reference
#include <stdlib.h>
#include "moab_mpi.h"
#include "zoltan_cpp.h"
#include "moab/Range.hpp"
#include <vector>
#include "moab/Types.hpp"

Go to the source code of this file.

Classes

class  MBZoltan

Namespaces

namespace  moab
 

Class representing axis-aligned bounding box.


Functions

int mbGetNumberOfAssignedObjects (void *userDefinedData, int *err)
void mbGetObjectList (void *userDefinedData, int numGlobalIds, int numLids, ZOLTAN_ID_PTR gids, ZOLTAN_ID_PTR lids, int wgt_dim, float *obj_wgts, int *err)
int mbGetObjectSize (void *userDefinedData, int *err)
void mbGetObject (void *userDefinedData, int numGlobalIds, int numLids, int numObjs, ZOLTAN_ID_PTR gids, ZOLTAN_ID_PTR lids, int numDim, double *pts, int *err)
void mbGetNumberOfEdges (void *userDefinedData, int numGlobalIds, int numLids, int numObjs, ZOLTAN_ID_PTR gids, ZOLTAN_ID_PTR lids, int *numEdges, int *err)
void mbGetEdgeList (void *userDefinedData, int numGlobalIds, int numLids, int numObjs, ZOLTAN_ID_PTR gids, ZOLTAN_ID_PTR lids, int *numEdges, ZOLTAN_ID_PTR nborGlobalIds, int *nborProcs, int wgt_dim, float *edge_wgts, int *err)
void mbGetPart (void *userDefinedData, int numGlobalIds, int numLids, int numObjs, ZOLTAN_ID_PTR gids, ZOLTAN_ID_PTR lids, int *part, int *err)
void mbShowError (int val, const char *s, int me)
void mbPrintGlobalResult (const char *s, int begin, int import, int exp, int change)

Function Documentation

void mbGetEdgeList ( void *  userDefinedData,
int  numGlobalIds,
int  numLids,
int  numObjs,
ZOLTAN_ID_PTR  gids,
ZOLTAN_ID_PTR  lids,
int *  numEdges,
ZOLTAN_ID_PTR  nborGlobalIds,
int *  nborProcs,
int  wgt_dim,
float *  edge_wgts,
int *  err 
)

Definition at line 1951 of file MBZoltan.cpp.

{
  int i, id, idSum, j;
  int next = 0;

  for (i = 0; i < numObjs; i++) {
    id = lids[i];

    if ((id < 0) || (id >= NumPoints)) {
        *err = 1;
      return;
      }

    idSum = 0;

    for (j = 0; j < id; j++)
      idSum += NumEdges[j];

    for (j = 0; j < NumEdges[id]; j++) {
      nborGlobalIds[next] = NborGlobalId[idSum];
      nborProcs[next] = NborProcs[idSum];
      if (wgt_dim > 0) edge_wgts[next] = EdgeWeights[idSum];
        next++;
        idSum++;
    }
  }
}
int mbGetNumberOfAssignedObjects ( void *  userDefinedData,
int *  err 
)

MOAB, a Mesh-Oriented datABase, is a software component for creating, storing and accessing finite element mesh data.

Copyright 2004 Sandia Corporation. Under the terms of Contract DE-AC04-94AL85000 with Sandia Coroporation, the U.S. Government retains certain rights in this software.

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. Zoltan: class to get a mesh from MOAB and write a Zoltan partition set for that mesh back into MOAB and to a file

Definition at line 1878 of file MBZoltan.cpp.

{
  *err = 0;
  return NumPoints;
}
void mbGetNumberOfEdges ( void *  userDefinedData,
int  numGlobalIds,
int  numLids,
int  numObjs,
ZOLTAN_ID_PTR  gids,
ZOLTAN_ID_PTR  lids,
int *  numEdges,
int *  err 
)

Definition at line 1931 of file MBZoltan.cpp.

{
  int i, id;
  int next = 0;

  for (i = 0; i < numObjs; i++) {
    id = lids[i];

    if ((id < 0) || (id >= NumPoints)) {
      *err = 1;
      return;
    }

    numEdges[next++] = NumEdges[id];
  }
}
void mbGetObject ( void *  userDefinedData,
int  numGlobalIds,
int  numLids,
int  numObjs,
ZOLTAN_ID_PTR  gids,
ZOLTAN_ID_PTR  lids,
int  numDim,
double *  pts,
int *  err 
)

Definition at line 1904 of file MBZoltan.cpp.

{ 
  int i, id, id3;
  int next = 0;

  if (numDim != 3) {
    *err = 1;         
    return;
  }

  for (i = 0; i < numObjs; i++) {
    id = lids[i];

    if ((id < 0) || (id >= NumPoints)) {
      *err = 1;
      return;
    }

    id3 = lids[i] * 3;

    pts[next++] = Points[id3];
    pts[next++] = Points[id3 + 1];
    pts[next++] = Points[id3 + 2];
  }
} 
void mbGetObjectList ( void *  userDefinedData,
int  numGlobalIds,
int  numLids,
ZOLTAN_ID_PTR  gids,
ZOLTAN_ID_PTR  lids,
int  wgt_dim,
float *  obj_wgts,
int *  err 
)

Definition at line 1884 of file MBZoltan.cpp.

{
  for (int i = 0; i < NumPoints; i++) {
    gids[i] = GlobalIds[i];
    lids[i] = i;
    if (wgt_dim > 0)
      obj_wgts[i] = ObjWeights[i];
  }

  *err = 0;
}
int mbGetObjectSize ( void *  userDefinedData,
int *  err 
)

Definition at line 1898 of file MBZoltan.cpp.

{
  *err = 0; 
  return 3;
}
void mbGetPart ( void *  userDefinedData,
int  numGlobalIds,
int  numLids,
int  numObjs,
ZOLTAN_ID_PTR  gids,
ZOLTAN_ID_PTR  lids,
int *  part,
int *  err 
)

Definition at line 1983 of file MBZoltan.cpp.

{
  int i, id;
  int next = 0;

  for (i = 0; i < numObjs; i++) {
    id = lids[i];

    if ((id < 0) || (id >= NumPoints)) {
      *err = 1;
      return;
    }

    part[next++] = Parts[id];
  }
}
void mbPrintGlobalResult ( const char *  s,
int  begin,
int  import,
int  exp,
int  change 
)
void mbShowError ( int  val,
const char *  s,
int  me 
)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines