1 // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 // + This file is part of enGrid. +
5 // + Copyright 2008-2014 enGits GmbH +
7 // + enGrid is free software: you can redistribute it and/or modify +
8 // + it under the terms of the GNU General Public License as published by +
9 // + the Free Software Foundation, either version 3 of the License, or +
10 // + (at your option) any later version. +
12 // + enGrid is distributed in the hope that it will be useful, +
13 // + but WITHOUT ANY WARRANTY; without even the implied warranty of +
14 // + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +
15 // + GNU General Public License for more details. +
17 // + You should have received a copy of the GNU General Public License +
18 // + along with enGrid. If not, see <http://www.gnu.org/licenses/>. +
20 // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
25 #include "iooperation.h"
26 #include "edgelengthsourcemanager.h"
29 #include <QTextStream>
32 * @brief A very experimental export function for DrNUM grids.
34 class DrNumWriter
: public IOOperation
37 protected: // data types
42 int Ni
, Nj
, Nk
, sl_i1
, sl_i2
, sl_j1
, sl_j2
, sl_k1
, sl_k2
;
44 QString fx
, fy
, fz
, bx
, bX
, by
, bY
, bz
, bZ
, s
;
49 protected: // attributes
51 QString m_PatchFile
; ///< the name of the DrNUM patches file
52 QString m_ComplexPath
; ///< the path to the DrNUM directory for complex patches
54 QVector
<cart_patch_t
> m_CartPatches
;
55 QVector
<int> m_CellToCartPatch
;
58 double m_MaxEdgeLength
;
59 double m_MinEdgeLength
;
60 double m_GrowthFactor
;
61 EdgeLengthSourceManager m_ELSManager
;
67 void computeMeshDensity();
68 void createAllCartPatches();
69 void writeCartPatches(QTextStream
&s
);
70 QString
boundaryCode(vtkIdType id_cell
, int i
);
72 virtual void operate();
81 #endif // DRNUMWRITER_H