| /* |
| * GenMesh.hh |
| * |
| * Created on: Jun 4, 2013 |
| * Author: cferenba |
| * |
| * Copyright (c) 2012, Los Alamos National Security, LLC. |
| * All rights reserved. |
| * Use of this source code is governed by a BSD-style open-source |
| * license; see top-level LICENSE file for full license text. |
| */ |
| |
| #ifndef GENMESH_HH_ |
| #define GENMESH_HH_ |
| |
| #include <string> |
| #include <vector> |
| #include "Vec2.hh" |
| |
| // forward declarations |
| class InputFile; |
| |
| |
| class GenMesh { |
| public: |
| |
| std::string meshtype; // generated mesh type |
| int gnzx, gnzy; // global number of zones, in x and y |
| // directions |
| double lenx, leny; // length of mesh sides, in x and y |
| // directions |
| int numpex, numpey; // number of PEs to use, in x and y |
| // directions |
| int mypex, mypey; // my PE index, in x and y directions |
| int nzx, nzy; // (local) number of zones, in x and y |
| // directions |
| int zxoffset, zyoffset; // offsets of local zone array into |
| // global, in x and y directions |
| |
| GenMesh(const InputFile* inp); |
| ~GenMesh(); |
| |
| void generate( |
| std::vector<double2>& pointpos, |
| std::vector<int>& zonestart, |
| std::vector<int>& zonesize, |
| std::vector<int>& zonepoints, |
| std::vector<int>& masterpes, |
| std::vector<int>& mastercounts, |
| std::vector<int>& slavepoints, |
| std::vector<int>& slavepes, |
| std::vector<int>& slavecounts, |
| std::vector<int>& masterpoints); |
| |
| void generateRect( |
| std::vector<double2>& pointpos, |
| std::vector<int>& zonestart, |
| std::vector<int>& zonesize, |
| std::vector<int>& zonepoints, |
| std::vector<int>& masterpes, |
| std::vector<int>& mastercounts, |
| std::vector<int>& slavepoints, |
| std::vector<int>& slavepes, |
| std::vector<int>& slavecounts, |
| std::vector<int>& masterpoints); |
| |
| void generatePie( |
| std::vector<double2>& pointpos, |
| std::vector<int>& zonestart, |
| std::vector<int>& zonesize, |
| std::vector<int>& zonepoints, |
| std::vector<int>& masterpes, |
| std::vector<int>& mastercounts, |
| std::vector<int>& slavepoints, |
| std::vector<int>& slavepes, |
| std::vector<int>& slavecounts, |
| std::vector<int>& masterpoints); |
| |
| void generateHex( |
| std::vector<double2>& pointpos, |
| std::vector<int>& zonestart, |
| std::vector<int>& zonesize, |
| std::vector<int>& zonepoints, |
| std::vector<int>& masterpes, |
| std::vector<int>& mastercounts, |
| std::vector<int>& slavepoints, |
| std::vector<int>& slavepes, |
| std::vector<int>& slavecounts, |
| std::vector<int>& masterpoints); |
| |
| void calcNumPE(); |
| |
| }; // class GenMesh |
| |
| |
| #endif /* GENMESH_HH_ */ |