From 4e2e81b68a8079700eb4ea47a31e1edefa6fe24c Mon Sep 17 00:00:00 2001 From: lyphrowny Date: Thu, 20 Jun 2024 00:21:45 +0300 Subject: [PATCH] FEM: remove trailing spaces and newlines when writing input files for solvers --- src/Mod/Fem/App/FemMesh.cpp | 6 ++++-- src/Mod/Fem/femsolver/calculix/write_step_equation.py | 2 +- src/Mod/Fem/femsolver/elmer/sifio.py | 9 ++++++--- src/Mod/Fem/femsolver/elmer/writer.py | 2 +- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/Mod/Fem/App/FemMesh.cpp b/src/Mod/Fem/App/FemMesh.cpp index e669cb7038..2b8788a687 100644 --- a/src/Mod/Fem/App/FemMesh.cpp +++ b/src/Mod/Fem/App/FemMesh.cpp @@ -2360,10 +2360,12 @@ void FemMesh::writeABAQUS(const std::string& Filename, } else { if (first_line) { - anABAQUS_Output << "," << std::endl; + anABAQUS_Output << "," << std::endl << *kt; first_line = false; } - anABAQUS_Output << *kt << ", "; + else { + anABAQUS_Output << ", " << *kt; + } } } anABAQUS_Output << std::endl; diff --git a/src/Mod/Fem/femsolver/calculix/write_step_equation.py b/src/Mod/Fem/femsolver/calculix/write_step_equation.py index 00b6dbfdcc..0908aee716 100644 --- a/src/Mod/Fem/femsolver/calculix/write_step_equation.py +++ b/src/Mod/Fem/femsolver/calculix/write_step_equation.py @@ -163,4 +163,4 @@ def write_step_equation(f, ccxwriter): def write_step_end(f, ccxwriter): f.write("\n{}\n".format(59 * "*")) - f.write("*END STEP \n") + f.write("*END STEP\n") diff --git a/src/Mod/Fem/femsolver/elmer/sifio.py b/src/Mod/Fem/femsolver/elmer/sifio.py index 41b2f6e578..0d6fb4b1d8 100644 --- a/src/Mod/Fem/femsolver/elmer/sifio.py +++ b/src/Mod/Fem/femsolver/elmer/sifio.py @@ -282,10 +282,13 @@ class _Writer: self._stream = stream def write(self): - sortedSections = sorted(self._sections, key=lambda s: s.priority, reverse=True) + firstSection, *sortedSections = sorted( + self._sections, key=lambda s: s.priority, reverse=True + ) + self._writeSection(firstSection) for s in sortedSections: - self._writeSection(s) self._stream.write(_NEWLINE) + self._writeSection(s) def _writeSection(self, s): self._writeSectionHeader(s) @@ -295,8 +298,8 @@ class _Writer: def _writeSectionHeader(self, s): self._stream.write(s.name) - self._stream.write(_WHITESPACE) if isNumbered(s): + self._stream.write(_WHITESPACE) self._stream.write(str(self._idMgr.getId(s))) def _writeSectionFooter(self, s): diff --git a/src/Mod/Fem/femsolver/elmer/writer.py b/src/Mod/Fem/femsolver/elmer/writer.py index fcf7b75c8f..65b66f4922 100644 --- a/src/Mod/Fem/femsolver/elmer/writer.py +++ b/src/Mod/Fem/femsolver/elmer/writer.py @@ -255,7 +255,7 @@ class Writer: def _writeStartinfo(self): path = os.path.join(self.directory, _STARTINFO_NAME) with open(path, "w") as f: - f.write(_SIF_NAME) + f.write(f"{_SIF_NAME}\n") def _exportToUnv(self, groups, mesh, meshPath): unvGmshFd, unvGmshPath = tempfile.mkstemp(suffix=".unv")