Skip to content

Commit 8fd38d3

Browse files
SimonCaldmpoudot
authored andcommitted
- update export cgns for 2D + 3D + genericity
1 parent 08e484d commit 8fd38d3

File tree

7 files changed

+352
-41
lines changed

7 files changed

+352
-41
lines changed

src/Core/Mesh/CommandExportBlocksForCGNS.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ namespace Mgx3D {
77
namespace Mesh {
88
/*----------------------------------------------------------------------------*/
99
CommandExportBlocksForCGNS::
10-
CommandExportBlocksForCGNS(Internal::Context& context, const std::string& fileName)
10+
CommandExportBlocksForCGNS(Internal::Context& context, int dim, const std::string& fileName)
1111
: Internal::CommandInternal(context, "Export CGNS total")
12-
, m_impl(context,fileName)
12+
, m_impl(context,fileName, dim)
1313
{
1414
}
1515

src/Core/Mesh/ExportBlocksCGNSImplementation.cpp

Lines changed: 297 additions & 28 deletions
Large diffs are not rendered by default.

src/Core/Mesh/MeshManager.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -610,14 +610,14 @@ CommandMeshExplorer* MeshManager::endExplorer(CommandMeshExplorer* oldExplo, boo
610610
return command;
611611
}
612612
/*----------------------------------------------------------------------------*/
613-
Internal::M3DCommandResult* MeshManager::exportBlocksForCGNS(const std::string& n)
613+
Internal::M3DCommandResult* MeshManager::exportBlocksForCGNS(int dim, const std::string& n)
614614
{
615615
#ifdef _DEBUG2
616616
std::cout<<"exportBlocks"<<std::endl;
617617
#endif
618618

619619
//creation de la commande d'exportation
620-
CommandExportBlocksForCGNS *command = new CommandExportBlocksForCGNS(getContext(), n);
620+
CommandExportBlocksForCGNS *command = new CommandExportBlocksForCGNS(getContext(), dim, n);
621621

622622
// trace dans le script
623623
TkUtil::UTF8String cmd (TkUtil::Charset::UTF_8);

src/Core/protected/Mesh/CommandExportBlocksForCGNS.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class CommandExportBlocksForCGNS: public Internal::CommandInternal{
3737
* \param context le contexte
3838
* \param fileName le nom du fichier de sortie
3939
*/
40-
CommandExportBlocksForCGNS(Internal::Context& context, const std::string &fileName);
40+
CommandExportBlocksForCGNS(Internal::Context& context, int dim, const std::string &fileName);
4141

4242
/*------------------------------------------------------------------------*/
4343
/** \brief Destructeur

src/Core/protected/Mesh/ExportBlocksCGNSImplementation.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ namespace Mgx3D {
2727
* \param c le contexte
2828
* \param n le nom du fichier dans lequel se fait l'exportation
2929
*/
30-
ExportBlocksCGNSImplementation(Internal::Context& c, const std::string& filename);
30+
ExportBlocksCGNSImplementation(Internal::Context& c, const std::string& filename, int dim);
3131

3232
/*------------------------------------------------------------------------*/
3333
/** \brief Destructeur
@@ -40,7 +40,13 @@ namespace Mgx3D {
4040
*/
4141
void perform(Internal::InfoCommand* icmd);
4242

43+
44+
private:
45+
void perform2D();
46+
void perform3D();
47+
4348
private:
49+
int m_dim;
4450

4551
/// contexte d'exécution
4652
Internal::Context& m_context;

src/Core/protected/Mesh/MeshManager.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ class MeshManager final : public Internal::CommandCreator {
105105
*
106106
* \param n le nom du ficher dans lequel on exporte
107107
*/
108-
Mgx3D::Internal::M3DCommandResult* exportBlocksForCGNS(const std::string& n);
108+
Mgx3D::Internal::M3DCommandResult* exportBlocksForCGNS(int dim,const std::string& n);
109109
SET_SWIG_COMPLETABLE_METHOD(exportBlocksForCGNS)
110110

111111
/*------------------------------------------------------------------------*/

test_link/test_export_cgns.py

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import os
22
import pyMagix3D as Mgx3D
33

4-
def test_export_box(capfd):
4+
def test_export_demicyl_3d(capfd):
55
ctx = Mgx3D.getStdContext()
66
ctx.clearSession() # Clean the session after the previous test
77

@@ -14,10 +14,10 @@ def test_export_box(capfd):
1414
ctx.getTopoManager().splitAllBlocks ("Ar0176",.5)
1515
ctx.getTopoManager().splitAllBlocks ("Ar0175",.5)
1616
ctx.getTopoManager ( ).destroy (["Bl0075","Bl0076","Bl0077","Bl0078","Bl0079","Bl0080","Bl0081","Bl0082","Bl0091","Bl0092","Bl0093","Bl0094","Bl0095","Bl0096","Bl0097","Bl0098","Bl0099","Bl0100","Bl0101","Bl0102","Bl0115","Bl0116","Bl0117","Bl0118","Bl0119","Bl0120","Bl0121","Bl0122","Bl0131","Bl0132","Bl0133","Bl0134","Bl0135","Bl0136","Bl0137","Bl0138","Bl0139","Bl0140","Bl0141","Bl0142","Bl0083","Bl0084","Bl0085","Bl0086","Bl0123","Bl0124","Bl0125","Bl0126"], True)
17-
ctx.getTopoManager().addToGroup (["Fa0393", "Fa0392", "Fa0285", "Fa0284", "Fa0395", "Fa0394", "Fa0287", "Fa0286", "Fa0279", "Fa0280", "Fa0387", "Fa0388", "Fa0278", "Fa0277", "Fa0386", "Fa0385"], 2, "Paroi")
18-
ctx.getTopoManager().addToGroup (["Fa0295", "Fa0294", "Fa0403", "Fa0402", "Fa0353", "Fa0352", "Fa0461", "Fa0460", "Fa0345", "Fa0344", "Fa0453", "Fa0452", "Fa0329", "Fa0330", "Fa0437", "Fa0438"], 2, "Farfield")
19-
ctx.getTopoManager().addToGroup (["Fa0096", "Fa0097", "Fa0136", "Fa0137", "Fa0129", "Fa0130", "Fa0125", "Fa0124", "Fa0094", "Fa0095", "Fa0134", "Fa0135", "Fa0128", "Fa0127", "Fa0122", "Fa0123"], 2, "Sortie")
20-
ctx.getTopoManager().addToGroup (["Fa0360", "Fa0369", "Fa0359", "Fa0368", "Fa0252", "Fa0261", "Fa0251", "Fa0260", "Fa0327", "Fa0322", "Fa0326", "Fa0321", "Fa0435", "Fa0430", "Fa0434", "Fa0429"], 2, "Symetrie")
17+
ctx.getTopoManager().addToGroup (["Fa0393", "Fa0392", "Fa0285", "Fa0284", "Fa0395", "Fa0394", "Fa0287", "Fa0286", "Fa0279", "Fa0280", "Fa0387", "Fa0388", "Fa0278", "Fa0277", "Fa0386", "Fa0385"], 2, "Paroi_cgns")
18+
ctx.getTopoManager().addToGroup (["Fa0295", "Fa0294", "Fa0403", "Fa0402", "Fa0353", "Fa0352", "Fa0461", "Fa0460", "Fa0345", "Fa0344", "Fa0453", "Fa0452", "Fa0329", "Fa0330", "Fa0437", "Fa0438"], 2, "Farfield_cgns")
19+
ctx.getTopoManager().addToGroup (["Fa0096", "Fa0097", "Fa0136", "Fa0137", "Fa0129", "Fa0130", "Fa0125", "Fa0124", "Fa0094", "Fa0095", "Fa0134", "Fa0135", "Fa0128", "Fa0127", "Fa0122", "Fa0123"], 2, "Sortie_cgns")
20+
ctx.getTopoManager().addToGroup (["Fa0360", "Fa0369", "Fa0359", "Fa0368", "Fa0252", "Fa0261", "Fa0251", "Fa0260", "Fa0327", "Fa0322", "Fa0326", "Fa0321", "Fa0435", "Fa0430", "Fa0434", "Fa0429"], 2, "Symetrie_cgns")
2121
emp = Mgx3D.EdgeMeshingPropertyUniform(10)
2222
ctx.getTopoManager().setParallelMeshingProperty (emp,"Ar0363")
2323
emp = Mgx3D.EdgeMeshingPropertyUniform(10)
@@ -27,7 +27,43 @@ def test_export_box(capfd):
2727
emp = Mgx3D.EdgeMeshingPropertyUniform(10)
2828
ctx.getTopoManager().setParallelMeshingProperty (emp,"Ar0270")
2929
ctx.getMeshManager().newAllBlocksMesh()
30-
ctx.getMeshManager().exportBlocksForCGNS(cgnsfilename)
30+
ctx.getMeshManager().exportBlocksForCGNS(3, cgnsfilename)
31+
32+
assert os.path.exists(cgnsfilename)
33+
assert os.path.getsize(cgnsfilename) > 0
34+
out, err = capfd.readouterr()
35+
assert len(err) == 0
36+
37+
38+
39+
def test_export_quad_2d(capfd):
40+
ctx = Mgx3D.getStdContext()
41+
ctx.clearSession() # Clean the session after the previous test
42+
43+
cgnsfilename = "quadOGrid.cgns"
44+
ctx.getGeomManager().newVertex (Mgx3D.Point(0, 0, 0))
45+
ctx.getGeomManager().newVertex (Mgx3D.Point(1, 0, 0))
46+
ctx.getGeomManager().newVertex (Mgx3D.Point(1, 1, 0))
47+
ctx.getGeomManager().newVertex (Mgx3D.Point(0, 1, 0))
48+
ctx.getGeomManager().newSegment("Pt0000", "Pt0001")
49+
ctx.getGeomManager().newSegment("Pt0001", "Pt0002")
50+
ctx.getGeomManager().newSegment("Pt0002", "Pt0003")
51+
ctx.getGeomManager().newSegment("Pt0003", "Pt0000")
52+
ctx.getGeomManager ( ).newPlanarSurface (["Crb0000","Crb0001","Crb0002","Crb0003"], "")
53+
ctx.getGeomManager().addToGroup (["Surf0000"], 2, "face_cgns")
54+
ctx.getGeomManager().addToGroup (["Crb0002"], 1, "haut_cgns")
55+
ctx.getGeomManager().addToGroup (["Crb0000"], 1, "bad_cgns")
56+
ctx.getGeomManager().addToGroup (["Crb0003"], 1, "gauche_cgns")
57+
ctx.getGeomManager().addToGroup (["Crb0001"], 1, "droite_cgns")
58+
ctx.getTopoManager().newStructuredTopoOnGeometry ("Surf0000")
59+
emp = Mgx3D.EdgeMeshingPropertyUniform(5)
60+
ctx.getTopoManager().setMeshingProperty (emp, ["Ar0001","Ar0003"])
61+
ctx.getTopoManager ( ).splitFacesWithOgrid (["Fa0000"], ["Ar0002","Ar0003"], .1, 10)
62+
ctx.getTopoManager ( ).setGeomAssociation (["Ar0009"], "Crb0002", True)
63+
ctx.getTopoManager ( ).setGeomAssociation (["Ar0010"], "Crb0003", True)
64+
ctx.getTopoManager().addToGroup (["Ar0005", "Ar0008"], 1, "milieu_cgns")
65+
ctx.getMeshManager().newAllFacesMesh()
66+
ctx.getMeshManager().exportBlocksForCGNS(2,cgnsfilename)
3167

3268
assert os.path.exists(cgnsfilename)
3369
assert os.path.getsize(cgnsfilename) > 0

0 commit comments

Comments
 (0)