MOAB: Mesh Oriented datABase
(version 5.4.1)
|
#include <iostream>
#include <cassert>
#include <sstream>
#include <algorithm>
#include "moab/ZoltanPartitioner.hpp"
#include "moab/Interface.hpp"
#include "Internals.hpp"
#include "moab/Range.hpp"
#include "moab/WriteUtilIface.hpp"
#include "moab/MeshTopoUtil.hpp"
#include "MBTagConventions.hpp"
#include "moab/CN.hpp"
#include "moab/IntxMesh/IntxUtils.hpp"
Go to the source code of this file.
Defines | |
#define | RR if( MB_SUCCESS != result ) return result |
Functions | |
int | mbGetNumberOfAssignedObjects (void *, int *err) |
void | mbGetObjectList (void *, int, int, ZOLTAN_ID_PTR gids, ZOLTAN_ID_PTR lids, int wgt_dim, float *obj_wgts, int *err) |
int | mbGetObjectSize (void *, int *err) |
void | mbGetObject (void *, int, int, int numObjs, ZOLTAN_ID_PTR, ZOLTAN_ID_PTR lids, int numDim, double *pts, int *err) |
void | mbGetNumberOfEdges (void *, int, int, int numObjs, ZOLTAN_ID_PTR, ZOLTAN_ID_PTR lids, int *numEdges, int *err) |
void | mbGetEdgeList (void *, int, int, int numObjs, ZOLTAN_ID_PTR, ZOLTAN_ID_PTR lids, int *, ZOLTAN_ID_PTR nborGlobalIds, int *nborProcs, int wgt_dim, float *edge_wgts, int *err) |
void | mbGetPart (void *, int, int, int numObjs, ZOLTAN_ID_PTR, ZOLTAN_ID_PTR lids, int *part, int *err) |
Variables | |
static double * | Points = NULL |
static int * | GlobalIds = NULL |
static int | NumPoints = 0 |
static int * | NumEdges = NULL |
static int * | NborGlobalId = NULL |
static int * | NborProcs = NULL |
static double * | ObjWeights = NULL |
static double * | EdgeWeights = NULL |
static int * | Parts = NULL |
const bool | debug = false |
#define RR if( MB_SUCCESS != result ) return result |
Definition at line 56 of file ZoltanPartitioner.cpp.
Referenced by ZoltanPartitioner::assemble_graph(), ZoltanPartitioner::balance_mesh(), ZoltanPartitioner::include_closure(), ZoltanPartitioner::partition_inferred_mesh(), ZoltanPartitioner::partition_mesh_and_geometry(), and ZoltanPartitioner::write_partition().
void mbGetEdgeList | ( | void * | , |
int | , | ||
int | , | ||
int | numObjs, | ||
ZOLTAN_ID_PTR | , | ||
ZOLTAN_ID_PTR | lids, | ||
int * | , | ||
ZOLTAN_ID_PTR | nborGlobalIds, | ||
int * | nborProcs, | ||
int | wgt_dim, | ||
float * | edge_wgts, | ||
int * | err | ||
) |
Definition at line 2204 of file ZoltanPartitioner.cpp.
References EdgeWeights, NborGlobalId, NborProcs, NumEdges, and NumPoints.
Referenced by ZoltanPartitioner::balance_mesh(), ZoltanPartitioner::partition_mesh_and_geometry(), ZoltanPartitioner::partition_owned_cells(), and ZoltanPartitioner::repartition().
{ 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 Corporation, 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 2110 of file ZoltanPartitioner.cpp.
References NumPoints.
Referenced by ZoltanPartitioner::balance_mesh(), ZoltanPartitioner::partition_mesh_and_geometry(), ZoltanPartitioner::partition_owned_cells(), and ZoltanPartitioner::repartition().
{ *err = 0; return NumPoints; }
void mbGetNumberOfEdges | ( | void * | , |
int | , | ||
int | , | ||
int | numObjs, | ||
ZOLTAN_ID_PTR | , | ||
ZOLTAN_ID_PTR | lids, | ||
int * | numEdges, | ||
int * | err | ||
) |
Definition at line 2178 of file ZoltanPartitioner.cpp.
References NumEdges, and NumPoints.
Referenced by ZoltanPartitioner::balance_mesh(), ZoltanPartitioner::partition_mesh_and_geometry(), ZoltanPartitioner::partition_owned_cells(), and ZoltanPartitioner::repartition().
void mbGetObject | ( | void * | , |
int | , | ||
int | , | ||
int | numObjs, | ||
ZOLTAN_ID_PTR | , | ||
ZOLTAN_ID_PTR | lids, | ||
int | numDim, | ||
double * | pts, | ||
int * | err | ||
) |
Definition at line 2141 of file ZoltanPartitioner.cpp.
References NumPoints, and Points.
Referenced by ZoltanPartitioner::balance_mesh(), ZoltanPartitioner::partition_mesh_and_geometry(), ZoltanPartitioner::partition_owned_cells(), and ZoltanPartitioner::repartition().
void mbGetObjectList | ( | void * | , |
int | , | ||
int | , | ||
ZOLTAN_ID_PTR | gids, | ||
ZOLTAN_ID_PTR | lids, | ||
int | wgt_dim, | ||
float * | obj_wgts, | ||
int * | err | ||
) |
Definition at line 2116 of file ZoltanPartitioner.cpp.
References GlobalIds, NumPoints, and ObjWeights.
Referenced by ZoltanPartitioner::balance_mesh(), ZoltanPartitioner::partition_mesh_and_geometry(), ZoltanPartitioner::partition_owned_cells(), and ZoltanPartitioner::repartition().
{ 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 * | , |
int * | err | ||
) |
Definition at line 2135 of file ZoltanPartitioner.cpp.
Referenced by ZoltanPartitioner::balance_mesh(), ZoltanPartitioner::partition_mesh_and_geometry(), ZoltanPartitioner::partition_owned_cells(), and ZoltanPartitioner::repartition().
{
*err = 0;
return 3;
}
void mbGetPart | ( | void * | , |
int | , | ||
int | , | ||
int | numObjs, | ||
ZOLTAN_ID_PTR | , | ||
ZOLTAN_ID_PTR | lids, | ||
int * | part, | ||
int * | err | ||
) |
Definition at line 2246 of file ZoltanPartitioner.cpp.
References NumPoints, and Parts.
Referenced by ZoltanPartitioner::partition_mesh_and_geometry().
const bool debug = false |
Definition at line 69 of file ZoltanPartitioner.cpp.
double* EdgeWeights = NULL [static] |
Definition at line 66 of file ZoltanPartitioner.cpp.
Referenced by mbGetEdgeList(), ZoltanPartitioner::mbInitializePoints(), ZoltanPartitioner::partition_owned_cells(), and ZoltanPartitioner::repartition().
int* GlobalIds = NULL [static] |
Definition at line 60 of file ZoltanPartitioner.cpp.
Referenced by mbGetObjectList(), ZoltanPartitioner::mbInitializePoints(), ZoltanPartitioner::partition_owned_cells(), and ZoltanPartitioner::repartition().
int* NborGlobalId = NULL [static] |
Definition at line 63 of file ZoltanPartitioner.cpp.
Referenced by mbGetEdgeList(), ZoltanPartitioner::mbInitializePoints(), ZoltanPartitioner::partition_owned_cells(), and ZoltanPartitioner::repartition().
int* NborProcs = NULL [static] |
Definition at line 64 of file ZoltanPartitioner.cpp.
Referenced by mbGetEdgeList(), ZoltanPartitioner::mbInitializePoints(), ZoltanPartitioner::partition_owned_cells(), and ZoltanPartitioner::repartition().
int* NumEdges = NULL [static] |
Definition at line 62 of file ZoltanPartitioner.cpp.
Referenced by mbGetEdgeList(), mbGetNumberOfEdges(), ZoltanPartitioner::mbInitializePoints(), ZoltanPartitioner::partition_owned_cells(), and ZoltanPartitioner::repartition().
int NumPoints = 0 [static] |
Definition at line 61 of file ZoltanPartitioner.cpp.
Referenced by ZoltanPartitioner::mbFinalizePoints(), mbGetEdgeList(), mbGetNumberOfAssignedObjects(), mbGetNumberOfEdges(), mbGetObject(), mbGetObjectList(), mbGetPart(), ZoltanPartitioner::mbInitializePoints(), ZoltanPartitioner::partition_owned_cells(), and ZoltanPartitioner::repartition().
double* ObjWeights = NULL [static] |
Definition at line 65 of file ZoltanPartitioner.cpp.
Referenced by mbGetObjectList(), ZoltanPartitioner::mbInitializePoints(), ZoltanPartitioner::partition_owned_cells(), and ZoltanPartitioner::repartition().
int* Parts = NULL [static] |
Definition at line 67 of file ZoltanPartitioner.cpp.
Referenced by mbGetPart(), ZoltanPartitioner::mbInitializePoints(), ZoltanPartitioner::partition_owned_cells(), and ZoltanPartitioner::repartition().
double* Points = NULL [static] |
Definition at line 59 of file ZoltanPartitioner.cpp.
Referenced by mbGetObject(), ZoltanPartitioner::mbInitializePoints(), moab::element_utility::Element_parametrizer< Element_map >::operator()(), moab::element_utility::Parametrizer::operator()(), ZoltanPartitioner::partition_owned_cells(), and ZoltanPartitioner::repartition().