From 634987bc0fefe51c8bfbf411cefca8955804c9e7 Mon Sep 17 00:00:00 2001 From: Bernd Hahnebach Date: Tue, 6 Jun 2017 16:56:00 +0100 Subject: [PATCH] FEM: abaqus writer, use better names for elementsets --- src/Mod/Fem/App/FemMesh.cpp | 21 +++++++++++++------ src/Mod/Fem/test_files/ccx/cube_frequency.inp | 5 ++++- src/Mod/Fem/test_files/ccx/cube_static.inp | 5 ++++- .../Fem/test_files/ccx/spine_thermomech.inp | 5 ++++- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/Mod/Fem/App/FemMesh.cpp b/src/Mod/Fem/App/FemMesh.cpp index 259e934938..2dd3814282 100644 --- a/src/Mod/Fem/App/FemMesh.cpp +++ b/src/Mod/Fem/App/FemMesh.cpp @@ -1244,7 +1244,7 @@ void FemMesh::writeABAQUS(const std::string &Filename) const for (ElementsMap::iterator it = elementsMap.begin(); it != elementsMap.end(); ++it) { anABAQUS_Output << "** Volume elements" << std::endl; - anABAQUS_Output << "*Element, TYPE=" << it->first << ", ELSET=Eall" << std::endl; + anABAQUS_Output << "*Element, TYPE=" << it->first << ", ELSET=Evolumes" << std::endl; for (NodesMap::iterator jt = it->second.begin(); jt != it->second.end(); ++jt) { anABAQUS_Output << jt->first; // Calculix allows max 16 enntries in one line, an hexa20 has more ! @@ -1264,10 +1264,13 @@ void FemMesh::writeABAQUS(const std::string &Filename) const } anABAQUS_Output << std::endl; } - } anABAQUS_Output << std::endl; + } if (!elementsMap.empty()) { + anABAQUS_Output << "** Define element set Eall" << std::endl; + anABAQUS_Output << "*ELSET, ELSET=Eall" << std::endl; + anABAQUS_Output << "Evolumes" << std::endl; anABAQUS_Output.close(); return; // done } @@ -1293,7 +1296,7 @@ void FemMesh::writeABAQUS(const std::string &Filename) const for (ElementsMap::iterator it = elementsMap.begin(); it != elementsMap.end(); ++it) { anABAQUS_Output << "** Face elements" << std::endl; - anABAQUS_Output << "*Element, TYPE=" << it->first << ", ELSET=Eall" << std::endl; + anABAQUS_Output << "*Element, TYPE=" << it->first << ", ELSET=Efaces" << std::endl; for (NodesMap::iterator jt = it->second.begin(); jt != it->second.end(); ++jt) { anABAQUS_Output << jt->first; for (std::vector::iterator kt = jt->second.begin(); kt != jt->second.end(); ++kt) { @@ -1301,10 +1304,13 @@ void FemMesh::writeABAQUS(const std::string &Filename) const } anABAQUS_Output << std::endl; } - } anABAQUS_Output << std::endl; + } if (!elementsMap.empty()) { + anABAQUS_Output << "** Define element set Eall" << std::endl; + anABAQUS_Output << "*ELSET, ELSET=Eall" << std::endl; + anABAQUS_Output << "Efaces" << std::endl; anABAQUS_Output.close(); return; // done } @@ -1330,7 +1336,7 @@ void FemMesh::writeABAQUS(const std::string &Filename) const for (ElementsMap::iterator it = elementsMap.begin(); it != elementsMap.end(); ++it) { anABAQUS_Output << "** Edge elements" << std::endl; - anABAQUS_Output << "*Element, TYPE=" << it->first << ", ELSET=Eall" << std::endl; + anABAQUS_Output << "*Element, TYPE=" << it->first << ", ELSET=Eedges" << std::endl; for (NodesMap::iterator jt = it->second.begin(); jt != it->second.end(); ++jt) { anABAQUS_Output << jt->first; for (std::vector::iterator kt = jt->second.begin(); kt != jt->second.end(); ++kt) { @@ -1338,10 +1344,13 @@ void FemMesh::writeABAQUS(const std::string &Filename) const } anABAQUS_Output << std::endl; } - } anABAQUS_Output << std::endl; + } elementsMap.clear(); + anABAQUS_Output << "** Define element set Eall" << std::endl; + anABAQUS_Output << "*ELSET, ELSET=Eall" << std::endl; + anABAQUS_Output << "Eedges" << std::endl; anABAQUS_Output.close(); } diff --git a/src/Mod/Fem/test_files/ccx/cube_frequency.inp b/src/Mod/Fem/test_files/ccx/cube_frequency.inp index 047a6fd621..3b26ba7bbc 100644 --- a/src/Mod/Fem/test_files/ccx/cube_frequency.inp +++ b/src/Mod/Fem/test_files/ccx/cube_frequency.inp @@ -285,7 +285,7 @@ ** Volume elements -*Element, TYPE=C3D10, ELSET=Eall +*Element, TYPE=C3D10, ELSET=Evolumes 1, 95, 98, 47, 196, 103, 197, 198, 200, 199, 201 2, 147, 121, 145, 196, 203, 202, 161, 205, 204, 206 3, 73, 70, 27, 121, 84, 80, 83, 208, 207, 136 @@ -416,6 +416,9 @@ 128, 122, 15, 45, 195, 138, 67, 280, 257, 253, 237 129, 45, 15, 122, 49, 67, 138, 280, 61, 69, 260 +** Define element set Eall +*ELSET, ELSET=Eall +Evolumes diff --git a/src/Mod/Fem/test_files/ccx/cube_static.inp b/src/Mod/Fem/test_files/ccx/cube_static.inp index 29b756a4a6..fbbbdd28a9 100644 --- a/src/Mod/Fem/test_files/ccx/cube_static.inp +++ b/src/Mod/Fem/test_files/ccx/cube_static.inp @@ -285,7 +285,7 @@ ** Volume elements -*Element, TYPE=C3D10, ELSET=Eall +*Element, TYPE=C3D10, ELSET=Evolumes 1, 95, 98, 47, 196, 103, 197, 198, 200, 199, 201 2, 147, 121, 145, 196, 203, 202, 161, 205, 204, 206 3, 73, 70, 27, 121, 84, 80, 83, 208, 207, 136 @@ -416,6 +416,9 @@ 128, 122, 15, 45, 195, 138, 67, 280, 257, 253, 237 129, 45, 15, 122, 49, 67, 138, 280, 61, 69, 260 +** Define element set Eall +*ELSET, ELSET=Eall +Evolumes diff --git a/src/Mod/Fem/test_files/ccx/spine_thermomech.inp b/src/Mod/Fem/test_files/ccx/spine_thermomech.inp index 5b803b81dc..4a0b616b63 100644 --- a/src/Mod/Fem/test_files/ccx/spine_thermomech.inp +++ b/src/Mod/Fem/test_files/ccx/spine_thermomech.inp @@ -50,7 +50,7 @@ ** Volume elements -*Element, TYPE=C3D10, ELSET=Eall +*Element, TYPE=C3D10, ELSET=Evolumes 1, 5, 6, 12, 11, 26, 43, 33, 20, 37, 34 2, 9, 12, 11, 2, 44, 34, 39, 15, 45, 38 3, 3, 4, 1, 12, 27, 36, 22, 24, 41, 35 @@ -64,6 +64,9 @@ 11, 8, 7, 6, 12, 28, 29, 13, 40, 23, 43 12, 12, 10, 6, 8, 42, 30, 43, 40, 17, 13 +** Define element set Eall +*ELSET, ELSET=Eall +Evolumes