diff --git a/meshmode/mesh/io.py b/meshmode/mesh/io.py index 515a43172b77b067a8c46c9432185fd3b8c40d62..d67cfa39ff24b3372ed78c8dd16ea40056d5b2cb 100644 --- a/meshmode/mesh/io.py +++ b/meshmode/mesh/io.py @@ -291,7 +291,7 @@ def read_gmsh(filename, force_ambient_dim=None, mesh_construction_kwargs=None): def generate_gmsh(source, dimensions=None, order=None, other_options=[], extension="geo", gmsh_executable="gmsh", force_ambient_dim=None, - output_file_name="output.msh", keep_tmp_dir=False, + output_file_name="output.msh", keep_tmp_dir=False, overwrite_tmp_files=True, mesh_construction_kwargs=None): """Run :command:`gmsh` on the input given by *source*, and return a :class:`meshmode.mesh.Mesh` based on the result. @@ -307,13 +307,17 @@ def generate_gmsh(source, dimensions=None, order=None, other_options=[], """ recv = GmshMeshReceiver(mesh_construction_kwargs=mesh_construction_kwargs) + if keep_tmp_dir: + tmp_files_dir = "./gmsh_tmp" + from gmsh_interop.runner import GmshRunner from gmsh_interop.reader import parse_gmsh with GmshRunner(source, dimensions, order=order, other_options=other_options, extension=extension, gmsh_executable=gmsh_executable, output_file_name=output_file_name, - keep_tmp_dir=keep_tmp_dir) as runner: + save_tmp_files_in=tmp_files_dir, + overwrite_tmp_files=overwrite_tmp_files) as runner: parse_gmsh(recv, runner.output_file, force_dimension=force_ambient_dim)