ubermag / help

Repository for raising issues and requesting help on Ubermag
BSD 2-Clause "Simplified" License
11 stars 3 forks source link

Error: Oxs_MinDriver: --- Temporary directory '/io' is not writable #241

Closed mcastrob91 closed 1 year ago

mcastrob91 commented 1 year ago

Hello everyone,

I'm trying to run an example of Ubermag. However, I get an error that I think is related to permissions but I don't quite know how to fix it. would appreciate some help.

minimize the energy

md = oc.MinDriver() md.drive(system)

...

untimeError Traceback (most recent call last) Cell In[7], line 3 1 # minimize the energy 2 md = oc.MinDriver() ----> 3 md.drive(system)

File ~/.local/lib/python3.9/site-packages/micromagneticmodel/driver.py:128, in ExternalDriver.drive(self, system, dirname, append, runner, ovf_format, verbose, kwargs) 122 with uu.changedir(workingdir): 123 self._write_input_files( 124 system=system, 125 ovf_format=ovf_format, 126 kwargs, 127) --> 128 self._call(system=system, runner=runner, verbose=verbose, **kwargs) 129 self._read_data(system) 131 system.drive_number += 1

File ~/.local/lib/python3.9/site-packages/oommfc/drivers/driver.py:215, in Driver._call(self, system, runner, n_threads, verbose, dry_run, *kwargs) 213 return runner.call(argstr=self._miffilename(system), dry_run=True) 214 else: --> 215 runner.call( 216 argstr=self._miffilename(system), 217 n_threads=n_threads, 218 verbose=verbose, 219 total=kwargs.get("n"), 220 glob_name=f"{system.name}.omf", 221)

File ~/.local/lib/python3.9/site-packages/micromagneticmodel/runner.py:107, in ExternalRunner.call(self, argstr, need_stderr, verbose, total, glob_name, dry_run, **kwargs) 105 msg += f"stdout: {res.stderr.decode('utf-8', 'replace')}\n" 106 msg += f"stderr: {res.stdout.decode('utf-8', 'replace')}\n" --> 107 raise RuntimeError(msg) 109 return res

RuntimeError: Error in OOMMF run. command: docker run -v /home/mario/Sim_OOMMF/Example/drive-4:/io oommf/oommf:20a3 /bin/bash -c tclsh /usr/local/oommf/oommf/oommf.tcl boxsi +fg Example. mif-exitone 1 stdout: Logging to file "/usr/local/oommf/oommf/boxsi.errors"

[Boxsi<10-e259cffaa141-oommfuser> 22:39:20.583 2023-04-25] 2.0a3 infolog: Start: "/io/Example.mif" Options: -exitondone 1 -threads 4

[Boxsi<10-e259cffaa141-oommfuser> 22:39:20.635 2023-04-25] 2.0a3 info: Message from Vf_OvfFileInput::NewMesh (File /usr/local/oommf/oommf/pkg/vf/vecfile.cc, line 1522) Class revision/date: 1.0.1/25-Jul-1997 Class maintainer: Michael J. Donahue (michael.donahue@nist.gov) --- Premature EOF in file m0.omf (no segment end marker)

[Boxsi<10-e259cffaa141-oommfuser> 22:39:20.645 2023-04-25] 2.0a3 LoadProblem error: Error loading /io/Example.mif: Error thrown from inside "Oxs_ExtCreateAndRegister" --- Incomplete or incorrect initialization --- Error detected; refer to program source file /usr/local/oommf/oommf/pkg/nb/functions.cc, line 884, in function Nb_TempName. ERROR DETAILS: Oxs_Ext initialization error in construction of Oxs_MinDriver: --- Temporary directory '/io' is not writable

[Boxsi<10-e259cffaa141-oommfuser> 22:39:20.660 2023-04-25] 2.0a3 LoadProblem error: Error loading /io/Example.mif: Error thrown from inside "Oxs_ExtCreateAndRegister" --- Incomplete or incorrect initialization --- Error detected; refer to program source file /usr/local/oommf/oommf/pkg/nb/functions.cc, line 884, in function Nb_TempName. ERROR DETAILS: Oxs_Ext initialization error in construction of Oxs_MinDriver: --- Temporary directory '/io' is not writable

stderr: Boxsi run end.

thanks

fangohr commented 1 year ago

Please provide some information on what operating system you have installed Ubermag, and how you have called it.

From what I see in your error message, I would guess that you are using some kind of Linux distribution, and you have installed (or had installed already) Docker to execute OOMMF itself inside the Docker container. Then there is a problem writing to the /io path within the Docker container.

If the above is correct, then this could be a problem related to different users IDs inside the container and on the operating system. We don't see these problems on Windows and OSX where the docker deamon deals with this, but on Linux it could be an issue, and perhaps you are the first person to experience and report it. This would be a bug.

As a quick fix: could you try to install oommf via conda? You can follow the instructions at https://ubermag.github.io/installation.html#standard-installation-recommended

If you install ubermag through conda, you will automatically install oommf (and then you do not need to use Docker to run OOMMF and we circumvent the problem you report). Hopefully.

mcastrob91 commented 1 year ago

Thank you. In the end, I installed oommf via conda and the problem was solved.