GridDataOutput.hpp File Reference Allows model geometry data to be passed to external code - via a copy direct to input pointers. More... #include <opm/common/ErrorMacros.hpp> #include <dune/grid/common/partitionset.hh> #include <iosfwd> #include <string>
Include dependency graph for GridDataOutput.hpp:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Detailed DescriptionAllows model geometry data to be passed to external code - via a copy direct to input pointers. This data extractor provides the full set of vertices (corresponding to Dune::Partition::all) and then allows a user to specify Dune sub-partitions to get the references into the vertex array and element (aka cell) types for the sub-partition. This allows the full set of vertices to be reused for visualisation of the various sub-partitions, at the expense of copying all the vertices. Typically a user is interested in the interiorBorder elements which make use of the bulk (~80%) of the vertices. This saves having to renumber the indexes to the vertices for the sub-partitions. The vertex data can be retrieved as seperate x, y and z arrays, or as a single array of array of structures, or as single structure of arrays based array. Example: From the opm-simulators repository #include <opm/simulators/utils/GridDataOutput.hpp> N.B. does not seem to be able to be allocated with new operator. Opm::GridDataOutput::SimMeshDataAccessor geomData(gridView, Dune::Partition::interior ); geomData.printGridDetails(); int nvert = geomData.getNVertices(); example using seperate x, y and z arrays int nvert = geomData.getNVertices(); double * x_vert = new double[nvert]; double * y_vert = new double[nvert]; double * z_vert = new double[nvert]; geomData.writeGridPoints(x_vert,y_vert,z_vert, nvert); ... do something with vertex data x_vert, y_vert and z_vert .... delete [] x_vert; delete [] y_vert; delete [] z_vert; example using AOS double * xyz_vert_aos = new double[nvert*3]; geomData.writeGridPoints_AOS(xyz_vert_aos, nvert); ... do something with vertex data xyz_vert_aos.... delete [] xyz_vert_aos; example using SOA with std::vector<double> std::vector<double> xyz_vert_soa(nvert*3); geomData.writeGridPoints_SOA(xyz_vert_soa); ... do something with vertex data xyz_vert_soa.... |
||||||||||||||||||||||