Skip to content

Commit 44ae602

Browse files
authored
Merge pull request #472 from LIHPC-Computational-Geometry/cgns_writer_correction
- some errors corrected in CGNSWriter
2 parents eecf374 + f597566 commit 44ae602

2 files changed

Lines changed: 21 additions & 17 deletions

File tree

modules/aero/inc/gmds/aero/CGNSWriterND.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
//
2-
// Created by calderans on 29/06/23.
3-
//
4-
51
#ifndef GMDS_CGNSWRITERND_H
62
#define GMDS_CGNSWRITERND_H
73
/*----------------------------------------------------------------------------*/
@@ -11,7 +7,6 @@
117
/*----------------------------------------------------------------------------*/
128
#include "Blocking3D.h"
139
#include "GMDSAero_export.h"
14-
// #include "gmds/ig/Blocking2D.h"
1510
/*----------------------------------------------------------------------------*/
1611
namespace gmds {
1712

@@ -22,11 +17,16 @@ class GMDSAero_API CGNSWriterND
2217
public:
2318
/** @brief Constructor
2419
*
25-
* @param AMeshService an implementation of an io service to write data
26-
* into a mesh
20+
* @param ABlocking a block structure to export
21+
* @param ADim the dimension to export to, 2D or 3D supported
2722
*/
2823
CGNSWriterND(Blocking3D *ABlocking, int ADim);
2924

25+
/** @brief Constructor
26+
*
27+
* @param AMesh a mesh to export
28+
* @param ADim the dimension to export to, 2D or 3D supported
29+
*/
3030
CGNSWriterND(Mesh *AMesh, int ADim);
3131

3232
CGNSWriterND();
@@ -46,10 +46,10 @@ class GMDSAero_API CGNSWriterND
4646

4747
void finalize(const std::string &AWorkingDir) const;
4848

49-
void _getIndicesIdAndVal(const int *ipnts1, const int *ipnts2, bool *filtre, int &ind, int &val);
49+
static void _getIndicesIdAndVal(const int *ipnts1, const int *ipnts2, bool *filtre, int &ind, int &val);
5050

51-
void writeConnections3D(const Region& Ablock, int iFace, int& index_tf, const std::vector<Variable<int>*>& zone_vars);
52-
void writeConnections2D(const Face& Ablock, int iEdge, int& index_tf, const std::vector<Variable<int>*>& zone_vars);
51+
void writeConnections3D(const Region& Ablock, int iFace, int& index_tf, const std::vector<Variable<int>*>& zone_vars) const;
52+
void writeConnections2D(const Face& Ablock, int iEdge, int& index_tf, const std::vector<Variable<int>*>& zone_vars) const;
5353

5454
void writeBoundaryCondition3D(int &num_bc, const Region& Ablock, int iFace, const std::vector<Variable<int>*>& bc_vars) const;
5555
void writeBoundaryCondition2D(int &num_bc, const Face& Ablock, int iEdge, const std::vector<Variable<int>*>& bc_vars) const;

modules/aero/src/CGNSWriterND.cpp

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
//
55
/*----------------------------------------------------------------------------*/
66
#include "gmds/aero/CGNSWriterND.h"
7-
#include "gmds/ig/MeshDoctor.h"
8-
#include "gmds/io/IGMeshIOService.h"
7+
//#include "gmds/ig/MeshDoctor.h"
8+
//#include "gmds/io/IGMeshIOService.h"
99
//#include "gmds/io/VTKReader.h"
1010
#include <fstream>
1111
#include <iomanip>
@@ -64,9 +64,9 @@ CGNSWriterND::initialize(const std::string &AOutFileName, const std::string &dir
6464
std::cout<<"Section error : "<<cg_get_error()<<std::endl;
6565
}
6666

67-
char basename[AOutFileName.length()];
68-
strcpy(basename, AOutFileName.c_str());
67+
char basename[AOutFileName.length()+1];
6968

69+
strcpy(basename, AOutFileName.c_str());
7070

7171
cg_base_write(m_indexFile,basename,m_cellDim,m_physdim,&m_indexBase);
7272

@@ -167,6 +167,9 @@ CGNSWriterND::writeZones()
167167
zone_size[7] = 0;
168168
zone_size[8] = 0;
169169
}
170+
else {
171+
throw GMDSException("Dimension "+std::to_string(m_cellDim)+"D not supported in CGNS writer.");
172+
}
170173

171174
if(cg_zone_write(m_indexFile, m_indexBase, zonename, zone_size, CG_Structured, &m_indexZone) != CG_OK) {
172175
std::cout << cg_get_error() << std::endl;
@@ -234,7 +237,7 @@ CGNSWriterND::writeZones()
234237
}
235238
}
236239
void
237-
CGNSWriterND::writeConnections3D(const Region& Ablock, int iFace, int& index_tf, const std::vector<Variable<int>*>& zone_vars){
240+
CGNSWriterND::writeConnections3D(const Region& Ablock, int iFace, int& index_tf, const std::vector<Variable<int>*>& zone_vars) const{
238241
Face face = Ablock.get<Face>()[iFace];
239242

240243
if(face.get<Region>().size() == 2) {
@@ -578,7 +581,8 @@ CGNSWriterND::writeConnections3D(const Region& Ablock, int iFace, int& index_tf,
578581
}
579582
/*----------------------------------------------------------------------------*/
580583
void
581-
CGNSWriterND::writeConnections2D(const Face& Ablock, int iEdge, int& index_tf, const std::vector<Variable<int>*>& zone_vars){
584+
CGNSWriterND::writeConnections2D(const Face& Ablock, int iEdge, int& index_tf, const std::vector<Variable<int>*>& zone_vars) const
585+
{
582586

583587
Edge edge = Ablock.get<Edge>()[iEdge];
584588

@@ -844,7 +848,7 @@ CGNSWriterND::writeBoundaryCondition2D(int &num_bc, const Face& Ablock, int iEdg
844848
type_bc = ivar;
845849
}
846850

847-
if(type_bc == -1) {
851+
if(type_bc != -1) {
848852

849853
switch (iEdge) {
850854
case 0:

0 commit comments

Comments
 (0)