[MOAB-dev] commit/MOAB: 11 new changesets
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Mon May 6 23:50:40 CDT 2013
11 new commits in MOAB:
https://bitbucket.org/fathomteam/moab/commits/1188a3e778d8/
Changeset: 1188a3e778d8
Branch: None
User: iulian07
Date: 2013-04-19 23:11:04
Summary: add a driver to interpret the data files from Mark;
netcdf reader is used direclty, in a step-by-step approach
Affected #: 2 files
diff --git a/tools/mbcslam/Makefile.am b/tools/mbcslam/Makefile.am
index 0e5542d..2b64673 100644
--- a/tools/mbcslam/Makefile.am
+++ b/tools/mbcslam/Makefile.am
@@ -39,10 +39,13 @@ cfgdir = $(libdir)
TESTS = intx_on_sphere_test intx_in_plane_test spec_visu_test spherical_area_test \
case1_test
+noinst_PROGRAMS = process_arm
+
check_PROGRAMS = $(TESTS)
intx_on_sphere_test_SOURCES = intx_on_sphere_test.cpp
intx_in_plane_test_SOURCES = intx_in_plane_test.cpp
spec_visu_test_SOURCES = spec_visu_test.cpp
spherical_area_test_SOURCES = spherical_area_test.cpp
case1_test_SOURCES = case1_test.cpp
+process_arm_SOURCES = process_arm.cpp
diff --git a/tools/mbcslam/process_arm.cpp b/tools/mbcslam/process_arm.cpp
new file mode 100644
index 0000000..2b2ad2d
--- /dev/null
+++ b/tools/mbcslam/process_arm.cpp
@@ -0,0 +1,269 @@
+/*
+ * process_arm.cpp
+ *
+ * Created on: April 18, 2013
+ */
+
+// process the files from Mark; also, link against netcdf directly, because we will use
+// netcdf calls to read data, the same as in ReadNC and ReadNCDF
+//
+//
+#include <iostream>
+#include <sstream>
+#include <time.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "moab/Core.hpp"
+#include "moab/Interface.hpp"
+#include "ReadUtilIface.hpp"
+
+#include "CslamUtils.hpp"
+
+#include "netcdf.h"
+
+#include <algorithm>
+#include <string>
+#include <assert.h>
+
+#include <cmath>
+
+
+using namespace moab;
+
+#define INS_ID(stringvar, prefix, id) \
+ sprintf(stringvar, prefix, id)
+
+#define GET_DIM(ncdim, name, val)\
+ { \
+ int gdfail = nc_inq_dimid(ncFile, name, &ncdim); \
+ if (NC_NOERR == gdfail) { \
+ size_t tmp_val; \
+ gdfail = nc_inq_dimlen(ncFile, ncdim, &tmp_val); \
+ if (NC_NOERR != gdfail) { \
+ std::cout<<"couldn't get dimension length for" << name<< " \n"; \
+ return 1; \
+ } \
+ else val = tmp_val; \
+ } else val = 0;}
+
+#define GET_DIMB(ncdim, name, varname, id, val) \
+ INS_ID(name, varname, id); \
+ GET_DIM(ncdim, name, val);
+
+#define GET_VAR(name, id, dims) \
+ { \
+ id = -1;\
+ int gvfail = nc_inq_varid(ncFile, name, &id); \
+ if (NC_NOERR == gvfail) { \
+ int ndims;\
+ gvfail = nc_inq_varndims(ncFile, id, &ndims);\
+ if (NC_NOERR == gvfail) {\
+ dims.resize(ndims); \
+ gvfail = nc_inq_vardimid(ncFile, id, &dims[0]);}}}
+
+#define GET_1D_INT_VAR(name, id, vals) \
+ {GET_VAR(name, id, vals); \
+ if (-1 != id) {\
+ size_t ntmp;\
+ int ivfail = nc_inq_dimlen(ncFile, vals[0], &ntmp);\
+ vals.resize(ntmp);\
+ size_t ntmp1 = 0; \
+ ivfail = nc_get_vara_int(ncFile, id, &ntmp1, &ntmp, &vals[0]);\
+ if (NC_NOERR != ivfail) {\
+ std::cout<<"ReadNCDF:: Problem getting variable " <<name <<"\n";\
+ return 1;}}}
+
+
+#define GET_1D_DBL_VAR(name, id, vals) \
+ {std::vector<int> dum_dims; \
+ GET_VAR(name, id, dum_dims);\
+ if (-1 != id) {\
+ size_t ntmp;\
+ int dvfail = nc_inq_dimlen(ncFile, dum_dims[0], &ntmp);\
+ vals.resize(ntmp);\
+ size_t ntmp1 = 0; \
+ dvfail = nc_get_vara_double(ncFile, id, &ntmp1, &ntmp, &vals[0]);\
+ if (NC_NOERR != dvfail) {\
+ std::cout<<"ReadNCDF:: Problem getting variable "<< name<<"\n";\
+ return 1;}}}
+
+int main(int argc, char ** argv)
+{
+
+
+
+ int num_el = 50000;
+ if (argc>1)
+ {
+ num_el = atoi(argv[1]);
+ }
+ std::cout << "num_el=" << num_el << "\n";
+
+ Core moab;
+ Interface & mb = moab;
+ //EntityHandle euler_set;
+ ErrorCode rval;
+ /*
+ // this can be directly imported to moab
+ const char *sphere_mesh = "ARM_30_x8.g";
+ rval = mb.create_meshset(MESHSET_SET, euler_set);
+ if (MB_SUCCESS != rval)
+ return 1;
+
+ rval = mb.load_file(sphere_mesh, &euler_set);
+
+ if (MB_SUCCESS != rval)
+ return 1;
+
+ mb.list_entities(&euler_set, 1);*/
+
+ // now, open the connectivity file and read the element corners variable
+ int ncFile, temp_dim; // netcdf/exodus file
+
+ // now, load the other file
+
+ // now, open the data file and read the lat, lon and U850 and V850
+
+ const char *data_file = "fc5_arm12.cam2.h2.0004-12-12-00000.nc";
+
+ int fail = nc_open(data_file, 0, &ncFile);
+ if (NC_NOWRITE != fail) {
+ std::cout<<"ReadNCDF:: problem opening Netcdf/Exodus II "<<data_file <<"\n";
+ return 1;
+ }
+ int ncol;
+ GET_DIM(temp_dim, "ncol", ncol);
+ std::cout << "ncol:" << ncol << "\n";
+
+ std::vector<double> lat;
+ std::vector<double> lon;
+ GET_1D_DBL_VAR("lat", temp_dim, lat);
+
+ GET_1D_DBL_VAR("lon", temp_dim, lon);
+
+ std::cout<< " lat, lon 0" << lat[0] << " " << lon[0] << "\n";
+ std::cout<< " lat, lon 1" << lat[1] << " " << lon[1] << "\n";
+ std::cout << " size: " << lat.size() << "\n";
+
+
+ // see if the mesh from metadata makes sense
+ // create quads with the connectivity from conn array
+
+ ReadUtilIface* readMeshIface;
+ mb.query_interface( readMeshIface );
+ if (NULL==readMeshIface)
+ return 1;
+ EntityHandle node_handle = 0;
+ std::vector<double*> arrays;
+ rval = readMeshIface->get_node_coords(3, ncol,
+ 1, node_handle, arrays);
+ if (MB_SUCCESS!= rval)
+ return 1;
+
+ SphereCoords sp;
+ sp.R = 1.;
+ Tag gid;
+ rval = mb.tag_get_handle("GLOBAL_ID", 1, MB_TYPE_INTEGER,
+ gid, MB_TAG_SPARSE|MB_TAG_CREAT);
+ if (MB_SUCCESS!= rval)
+ return 1;
+ std::vector<int> gids(ncol);
+
+ double conversion_factor = M_PI/180.;
+ for (int k=0; k<ncol; k++)
+ {
+ sp.lat=lat[k]*conversion_factor;
+ sp.lon=lon[k]*conversion_factor;
+ CartVect pos=spherical_to_cart (sp);
+ arrays[0][k]=pos[0];
+ arrays[1][k]=pos[1];
+ arrays[2][k]=pos[2];
+ gids[k]=k+1;
+ }
+
+ Range nodes(node_handle, node_handle+ncol-1);
+ rval = mb.tag_set_data(gid, nodes, &gids[0]);
+ if (MB_SUCCESS!= rval)
+ return 1;
+
+ EntityHandle newSet;
+ rval = mb.create_meshset(MESHSET_SET, newSet);
+ if (MB_SUCCESS != rval)
+ return 1;
+
+ const char *conn_file = "ARM_30_x8-metadata.g";
+
+ fail = nc_open(conn_file, 0, &ncFile);
+ if (NC_NOWRITE != fail)
+ {
+ std::cout << "ReadNCDF:: problem opening Netcdf/Exodus II " << conn_file
+ << "\n";
+ return 1;
+ }
+
+ // read in initial variables
+ int ncenters, ncorners;
+ GET_DIM(temp_dim, "ncenters", ncenters);
+ GET_DIM(temp_dim, "ncorners", ncorners);
+ std::cout << " ncenters, ncorners:" << ncenters << " " << ncorners << "\n";
+
+ int nc_var;
+ //int block_seq_id = 1;
+ std::vector<int> dims;
+
+ GET_VAR("element_corners", nc_var, dims);
+ std::cout << " element corners dims:" << dims.size() << "\n";
+ for (size_t i = 0; i < dims.size(); i++)
+ std::cout << " dim " << i << " " << dims[i] << "\n";
+
+ // tmp_ptr is of type int* and points at the same place as conn
+ EntityHandle * conn = 0;
+ //conn = new int[ncenters * ncorners];
+
+ EntityHandle elh;
+
+ readMeshIface->get_element_connect(
+ num_el,
+ 4,
+ MBQUAD,
+ 1,
+ elh,
+ conn);
+
+ // read the connetivity into that memory, this will take only part of the array
+ // 1/2 if sizeof(EntityHandle) == 64 bits.
+ size_t start[2] = { 0, 0 };
+ size_t count[2] = { ncorners, ncenters };
+
+ int* tmp_ptr =new int [ncorners*ncenters];
+ fail = nc_get_vara_int(ncFile, nc_var, start, count, tmp_ptr);
+ if (NC_NOERR != fail)
+ return 1;
+ // now move connectivity here, using start handle for new vertices
+ // also, permute connectivity; it is
+ for (int k=0; k<num_el; k++)
+ {
+ int start_el = k*4;
+ for (int j=0; j<4; j++)
+ conn[start_el+j] = node_handle + tmp_ptr[j*ncenters+k]-1;
+ }
+ std::cout << " conn:" << conn[0] << " " << conn[1] << " " << conn[3]<< "\n";
+
+ Range erange(elh, elh+num_el-1);
+
+ mb.add_entities(newSet, erange);
+ std::vector<int> gidels(num_el);
+ Tag gid2;
+ rval = mb.tag_get_handle("GLOBAL_ID_EL", 1, MB_TYPE_INTEGER,
+ gid2, MB_TAG_SPARSE|MB_TAG_CREAT);
+
+ if (MB_SUCCESS != rval)
+ return 1;
+ for (int k=0; k<num_el; k++)
+ gidels[k]=k+1;
+ mb.tag_set_data(gid2, erange, &gidels[0]);
+ mb.write_file("tt2.h5m", 0, 0, &newSet, 1);
+
+ return 0;
+}
https://bitbucket.org/fathomteam/moab/commits/a7e911da9c18/
Changeset: a7e911da9c18
Branch: None
User: iulian07
Date: 2013-04-19 23:12:23
Summary: debug adjacency-edge for polygons
add some polygon-adjacency calls just to test the "create_if_missing" true
Affected #: 1 file
diff --git a/tools/mbcslam/intx_in_plane_test.cpp b/tools/mbcslam/intx_in_plane_test.cpp
index 08e97a4..774e583 100644
--- a/tools/mbcslam/intx_in_plane_test.cpp
+++ b/tools/mbcslam/intx_in_plane_test.cpp
@@ -73,6 +73,19 @@ int main(int argc, char* argv[])
rval = mb->write_mesh(newFile, &outputSet, 1);
if (MB_SUCCESS != rval)
return 1;
+
+ // retrieve polygons and get adjacent edges
+ Range polygons;
+ rval = mb->get_entities_by_type(outputSet, MBPOLYGON, polygons);
+ if (MB_SUCCESS != rval)
+ return 1;
+
+ Range edges;
+ rval = mb->get_adjacencies(polygons, 1, true, edges , Interface::UNION);
+ if (MB_SUCCESS != rval)
+ return 1;
+
+ std::cout << "number of edges:" << edges.size() << "\n";
return 0;
https://bitbucket.org/fathomteam/moab/commits/41ee265b01de/
Changeset: 41ee265b01de
Branch: None
User: iulian07
Date: 2013-04-21 06:27:09
Summary: lexicographic order bug for spectral quad.
the order of spectral points was wrong, which lead to negative orientation of
the linearized quads. GL points should vary first in u direction, which means
that the eta is constant, while csi is varying with j.
Affected #: 1 file
diff --git a/tools/mbcoupler/ElemUtil.cpp b/tools/mbcoupler/ElemUtil.cpp
index c75c0bb..c0010d0 100644
--- a/tools/mbcoupler/ElemUtil.cpp
+++ b/tools/mbcoupler/ElemUtil.cpp
@@ -1234,10 +1234,10 @@ namespace Element {
int n2= _n*_n;
for (int i=0; i<_n; i++)
{
- double csi=_z[0][i];
+ double eta=_z[0][i];
for (int j=0; j<_n; j++)
{
- double eta = _z[1][j]; // we could really use the same _z[0] array of lobatto nodes
+ double csi = _z[1][j]; // we could really use the same _z[0] array of lobatto nodes
CartVect pos(0.0);
for (int k = 0; k < 4; k++) {
const double N_k = (1 + csi*corner_xi[k][0])
https://bitbucket.org/fathomteam/moab/commits/653ef8b37c53/
Changeset: 653ef8b37c53
Branch: None
User: iulian07
Date: 2013-04-21 06:36:10
Summary: spectral mesh linear changes
tolerance and radius are now input for the test
global id is set for the created elements
Warning: GL points are determined on linear quads, and then projected on the sphere
it seems that Homme determines the position on the great circle arcs.
we may have to change that logic
also, we maybe should avoid the merging
Affected #: 4 files
diff --git a/tools/mbcslam/CslamUtils.cpp b/tools/mbcslam/CslamUtils.cpp
index c5d6adb..61d1bf0 100644
--- a/tools/mbcslam/CslamUtils.cpp
+++ b/tools/mbcslam/CslamUtils.cpp
@@ -477,7 +477,7 @@ CartVect spherical_to_cart (SphereCoords & sc)
return res;
}
-ErrorCode SpectralVisuMesh(Interface * mb, Range & input, int NP, EntityHandle & outputSet)
+ErrorCode SpectralVisuMesh(Interface * mb, Range & input, int NP, EntityHandle & outputSet, double tolerance)
{
ErrorCode rval = MB_SUCCESS;
@@ -485,7 +485,9 @@ ErrorCode SpectralVisuMesh(Interface * mb, Range & input, int NP, EntityHandle &
moab::Element::SpectralQuad specQuad(NP);
Range fineElem;
+ std::vector<int> gids(input.size()*(NP-1)*(NP-1));// total number of "linear" elements
// get all edges? or not? Form all gl points + quads, then merge, then output
+ int startGid=0;
for (Range::iterator it=input.begin(); it!=input.end(); it++)
{
const moab::EntityHandle * conn4 = NULL;
@@ -493,7 +495,7 @@ ErrorCode SpectralVisuMesh(Interface * mb, Range & input, int NP, EntityHandle &
rval = mb->get_connectivity(*it, conn4, num_nodes);
if (moab::MB_SUCCESS != rval)
{
- std::cout << "can't get conectivity for quad \n";
+ std::cout << "can't get connectivity for quad \n";
return rval;
}
assert(num_nodes==4);
@@ -533,6 +535,8 @@ ErrorCode SpectralVisuMesh(Interface * mb, Range & input, int NP, EntityHandle &
if (rval!=moab::MB_SUCCESS)
return rval;
fineElem.insert(element_handle);
+ gids[startGid]=startGid+1;
+ startGid++;
}
}
@@ -541,7 +545,15 @@ ErrorCode SpectralVisuMesh(Interface * mb, Range & input, int NP, EntityHandle &
mb->add_entities(outputSet, fineElem);
// merge all nodes
MergeMesh mgtool(mb);
- rval = mgtool.merge_entities(fineElem, 0.0001);
+ rval = mgtool.merge_entities(fineElem, tolerance);
+ if (MB_SUCCESS!=rval)
+ return rval;
+ Tag gidTag;
+ rval = mb->tag_get_handle("GLOBAL_ID", 1, MB_TYPE_INTEGER,
+ gidTag, MB_TAG_DENSE|MB_TAG_CREAT);
+ if (MB_SUCCESS!=rval)
+ return rval;
+ rval = mb->tag_set_data(gidTag, fineElem, &gids[0]);
return rval;
}
diff --git a/tools/mbcslam/CslamUtils.hpp b/tools/mbcslam/CslamUtils.hpp
index 136d166..e244138 100644
--- a/tools/mbcslam/CslamUtils.hpp
+++ b/tools/mbcslam/CslamUtils.hpp
@@ -83,7 +83,7 @@ CartVect spherical_to_cart (SphereCoords &) ;
* output: a set with refined elements; with proper input, it should be pretty
* similar to a Homme mesh read with ReadNC
*/
-ErrorCode SpectralVisuMesh(Interface * mb, Range & input, int NP, EntityHandle & outputSet);
+ErrorCode SpectralVisuMesh(Interface * mb, Range & input, int NP, EntityHandle & outputSet, double tolerance);
/*
* given an entity set, get all nodes and project them on a sphere with given radius
diff --git a/tools/mbcslam/process_arm.cpp b/tools/mbcslam/process_arm.cpp
index 2b2ad2d..5890225 100644
--- a/tools/mbcslam/process_arm.cpp
+++ b/tools/mbcslam/process_arm.cpp
@@ -88,6 +88,25 @@ using namespace moab;
std::cout<<"ReadNCDF:: Problem getting variable "<< name<<"\n";\
return 1;}}}
+/* get the variable along an index */
+#define GET_2D_FLT_VAR(name, id, index, vals) \
+ {std::vector<int> dum_dims; \
+ GET_VAR(name, id, dum_dims);\
+ if (-1 != id) {\
+ size_t ntmp;\
+ int dvfail = nc_inq_dimlen(ncFile, dum_dims[1], &ntmp);\
+ vals.resize(ntmp);\
+ size_t ntmp1[2] = {index, 0}; \
+ if (index>=dum_dims[0]) { \
+ std::cout<<"ReadNCDF:: Problem getting variable "<< name<<"\n"; \
+ return 1; \
+ } \
+ size_t count[2] ={1, ntmp}; \
+ dvfail = nc_get_vara_float(ncFile, id, ntmp1, count, &vals[0]);\
+ if (NC_NOERR != dvfail) {\
+ std::cout<<"ReadNCDF:: Problem getting variable "<< name<<"\n";\
+ return 1;}}}
+
int main(int argc, char ** argv)
{
@@ -187,11 +206,49 @@ int main(int argc, char ** argv)
if (MB_SUCCESS!= rval)
return 1;
+ // read the U850 and V850 variables
+ std::vector<float> u850;
+ GET_2D_FLT_VAR("U850", temp_dim, 0, u850);
+ std::vector<float> v850;
+ GET_2D_FLT_VAR("V850", temp_dim, 0, v850);
+
+ std::cout << " U850:" << u850[0] << " " << u850[1] << " " << u850[5] << " "<< u850.size()<<"\n";
+ std::cout << " V850:" << v850[0] << " " << v850[1] << " " << v850[5] << " "<< u850.size()<<"\n";
+ // ok, use radius as 6371km; not needed
+ /*
+ * CartVect res;
+ res[0] = sc.R * cos(sc.lat)*cos(sc.lon) ; // x coordinate
+ res[1] = sc.R * cos(sc.lat)*sin(sc.lon); // y
+ res[2] = sc.R * sin(sc.lat); // z
+ return res;
+ */
+ std::vector<CartVect> velo850(ncol);
+ Tag velotag;
+ rval = mb.tag_get_handle("VELO", 3, MB_TYPE_DOUBLE,
+ velotag, MB_TAG_DENSE|MB_TAG_CREAT);
+ if (MB_SUCCESS!= rval)
+ return 1;
+ for (int k=0; k<ncol; k++)
+ {
+ double latRad=lat[k]*conversion_factor;
+ double lonRad=lon[k]*conversion_factor;
+ CartVect U(-sin(lonRad), cos(lonRad), 0.);
+ CartVect V(-sin(latRad)*cos(lonRad), -sin(latRad)*cos(lonRad), cos(latRad));
+ velo850[k]=U*u850[k] +V*v850[k];
+ }
+ rval = mb.tag_set_data(velotag, nodes, &(velo850[0][0]));
+ if (MB_SUCCESS!= rval)
+ return 1;
EntityHandle newSet;
rval = mb.create_meshset(MESHSET_SET, newSet);
if (MB_SUCCESS != rval)
return 1;
+ // so the nodes will be part
+ mb.add_entities(newSet, nodes);
+
+
+
const char *conn_file = "ARM_30_x8-metadata.g";
fail = nc_open(conn_file, 0, &ncFile);
@@ -263,6 +320,7 @@ int main(int argc, char ** argv)
for (int k=0; k<num_el; k++)
gidels[k]=k+1;
mb.tag_set_data(gid2, erange, &gidels[0]);
+
mb.write_file("tt2.h5m", 0, 0, &newSet, 1);
return 0;
diff --git a/tools/mbcslam/spec_visu_test.cpp b/tools/mbcslam/spec_visu_test.cpp
index 686fde7..54c7e8f 100644
--- a/tools/mbcslam/spec_visu_test.cpp
+++ b/tools/mbcslam/spec_visu_test.cpp
@@ -22,21 +22,25 @@ int main(int argc, char* argv[])
const char *filename_mesh = STRINGIFY(SRCDIR) "/eulerHomme.vtk";
const char *newFile = "spectral.vtk";
int NP = 4; // number of nodes in each direction
- if (argc == 4)
+ double tolerance = 0.0001;
+ double R = 6.; // should be input
+ if (argc == 6)
{
filename_mesh = argv[1];
NP = atoi(argv[2]);
newFile = argv[3];
+ R = atof(argv[4]);
+ tolerance = atof(argv[5]);
}
else
{
- printf("Usage: %s <mesh_filename><NP><newFile>\n", argv[0]);
+ printf("Usage: %s <mesh_filename><NP><newFile><tolerance>\n", argv[0]);
if (argc != 1)
return 1;
- printf("No files specified. Defaulting to: %s %d %s\n",
- filename_mesh, NP, newFile);
}
+ printf("run: %s %d %s %f %f\n",
+ filename_mesh, NP, newFile, R, tolerance);
// read input mesh in a set
ErrorCode rval = MB_SUCCESS;
Core moab;
@@ -61,11 +65,11 @@ int main(int argc, char* argv[])
if (MB_SUCCESS != rval)
return 1;
- rval = SpectralVisuMesh( mb, inputRange, NP, outputSet);
+ rval = SpectralVisuMesh( mb, inputRange, NP, outputSet, tolerance);
if (MB_SUCCESS != rval)
return 1;
- double R = 6.; // should be input
+
rval = ProjectOnSphere(mb, outputSet, R);
if (MB_SUCCESS != rval)
return 1;
https://bitbucket.org/fathomteam/moab/commits/d560d37adf9e/
Changeset: d560d37adf9e
Branch: None
User: iulian07
Date: 2013-04-22 06:07:39
Summary: finish postprocessing files from mark
correct the connectivity; use connectivity created using spectral visu
from the initial ARM file; then match the points to the points
created from data file; plot and animate velocity
Affected #: 1 file
Diff not available.
https://bitbucket.org/fathomteam/moab/commits/93975bb515c4/
Changeset: 93975bb515c4
Branch: None
User: iulian07
Date: 2013-04-23 02:08:33
Summary: add cslam par example to compute the dep mesh from velocity
(computed by process arm from initial data)
Affected #: 3 files
Diff not available.
https://bitbucket.org/fathomteam/moab/commits/70c1e7849bca/
Changeset: 70c1e7849bca
Branch: None
User: iulian07
Date: 2013-04-23 23:33:54
Summary: make the latest driver a program, not a test, for mbcslam
Affected #: 1 file
Diff not available.
https://bitbucket.org/fathomteam/moab/commits/3e75a788e402/
Changeset: 3e75a788e402
Branch: None
User: iulian07
Date: 2013-04-24 00:59:41
Summary: forgot moab/ for include
Affected #: 1 file
Diff not available.
https://bitbucket.org/fathomteam/moab/commits/b93de7fe92fd/
Changeset: b93de7fe92fd
Branch: None
User: iulian07
Date: 2013-04-25 18:50:18
Summary: Merged fathomteam/moab into master
Affected #: 5 files
Diff not available.
https://bitbucket.org/fathomteam/moab/commits/e0be88ae9d30/
Changeset: e0be88ae9d30
Branch: None
User: iulian07
Date: 2013-05-07 06:28:52
Summary: Merge branch 'master' of bitbucket.org:fathomteam/moab
Affected #: 8 files
Diff not available.
https://bitbucket.org/fathomteam/moab/commits/8def8adc276c/
Changeset: 8def8adc276c
Branch: master
User: iulian07
Date: 2013-05-07 06:35:52
Summary: fixes ticket 274
during communicating the shared sets information, from the remote
processors to the owning procesor, the set data is packed on the
remote proc, then sent to the ownig proc,
then unpacked on the owning processor, which will be in charge of
writing it to the file.
Unpacking means merging blocked ranges of file entities.
Instead of pointer logic, use Range, which is well tested for
merging subranges.
Also, if vectors need to be converted to compressed ranges, use
also the Range route, which is more stable
Affected #: 1 file
Diff not available.
Repository URL: https://bitbucket.org/fathomteam/moab/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
More information about the moab-dev
mailing list