Beispiel #1
0
    def test__data_reader_raises_error_if_expected_data_files_are_not_present(self, data_format):
        """
        DataReader raises error during initialisation if expected data files are not present.
        """
        tmpdir = tempfile.mkdtemp()  # create empty temporary directory

        with pytest.raises(RuntimeError):
            DataReader(tmpdir, data_format=data_format)

        shutil.rmtree(tmpdir)
Beispiel #2
0
def reproduce_figures(data_dir, output_dir, output_format, component='y'):
    """
    This function reproduces Figures 2-5. It reads the raw simulation
    data from `data_dir` and stores the resulting plots in `output_dir`.

    """
    output_format = output_format.split(',')
    check_input_data_exists(data_dir)

    # Create output directory if it does not exists
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    print("\nUsing the following data and output directories \n"
          "(run 'python reproduce_figures.py --help' to see \n"
          "how you can change these).\n")

    print("Input data directory:\n   {}\n".format(os.path.abspath(data_dir)))
    print("Output directory:\n   {}\n".format(os.path.abspath(output_dir)))

    # Create DataReader which provides a convenient way of
    # reading raw simulation data and computing derived data.
    data_reader = DataReader(data_dir, data_format='OOMMF')

    print("Generating plots..."),
    sys.stdout.flush()

    # Generate plots
    fig2 = make_figure_2(data_reader, component=component)
    fig3 = make_figure_3(data_reader, component=component)
    fig4 = make_figure_4(data_reader)
    fig5 = make_figure_5(data_reader)

    # Save plots to output directory
    for fmt in output_format:
        fig2.savefig(os.path.join(output_dir, 'figure_2.' + fmt))
        fig3.savefig(os.path.join(output_dir, 'figure_3.' + fmt))
        fig4.savefig(os.path.join(output_dir, 'figure_4.' + fmt))
        fig5.savefig(os.path.join(output_dir, 'figure_5.' + fmt))

    print("Done.")
    print("Plots have been successfully generated in output directory.")
Beispiel #3
0
def test__make_figure_3_Nmag():
    data_reader = DataReader(REF_DATA_DIR_NMAG, data_format='Nmag')
    figure_plotter = FigurePlotter(data_reader)

    fig = figure_plotter.make_figure_3()
Beispiel #4
0
def test__make_figure_3_OOMMF():
    data_reader = DataReader(REF_DATA_DIR_OOMMF, data_format='OOMMF')
    figure_plotter = FigurePlotter(data_reader)

    fig = figure_plotter.make_figure_3()
from postprocessing import DataReader

TOL = 0

# Get absolute path to the current directory (to avoid problems if
# this script is invoked from somewhere else).
this_directory = os.path.abspath(os.path.dirname(__file__))

REFERENCE_DATA_DIR_OOMMF = os.path.join(
    this_directory,
    '../../micromagnetic_simulation_data/reference_data/oommf/')
GENERATED_DATA_DIR_OOMMF = os.path.join(
    this_directory,
    '../../micromagnetic_simulation_data/recomputed_data/oommf/')

ref_data_reader = DataReader(REFERENCE_DATA_DIR_OOMMF, data_format='OOMMF')
gen_data_reader = DataReader(GENERATED_DATA_DIR_OOMMF, data_format='OOMMF')


def test__compare_average_magnetisation():
    """
    Check that maximum difference in average magnetisation between
    reference data and recomputed data is below threshold.

    """

    print(
        "\nComparing average magnetisation between reference data and recomputed data."
    )

    TOL = 1e-14
Beispiel #6
0
 def setup_class(cls):
     """
     Create an instance of `OOMMFDataReader` which can be re-used for each individual test.
     """
     cls.data_reader = DataReader(os.path.join(REF_DATA_DIR, 'oommf/'), data_format='OOMMF')
Beispiel #7
0
 def test__data_reader_raises_error_if_data_format_is_not_supported(self):
     """
     DataReader raises error during initialisation if data format is not supported.
     """
     with pytest.raises(ValueError):
         DataReader(os.path.join(REF_DATA_DIR, 'oommf/'), data_format='Foobar')
Beispiel #8
0
 def setUpClass(cls):
     """
     Create an instance of `NmagDataReader` which can be re-used for each individual test.
     """
     cls.data_reader = DataReader(REF_DATA_DIR.joinpath('nmag/'),
                                  data_format='Nmag')
Beispiel #9
0
if __name__ == '__main__':

    data_dir = here.joinpath(
        '../micromagnetic_simulation_data/reference_data/oommf/')
    output_dir = here.joinpath('../figures/generated_plots/')

    if not output_dir.exists():
        output_dir.mkdir(parents=True)

    print("Input data directory: {}".format(data_dir.resolve()))
    print("Creating figures in output directory: {}".format(
        output_dir.resolve()))

    # Create SimulationReader which provides a convenient way of
    # reading raw simulation data and computing derived data.
    data_reader = DataReader(data_dir, data_format='OOMMF')
    figure_plotter = FigurePlotter(data_reader)

    # Generate plots
    fig2 = figure_plotter.make_figure_2()
    fig3 = figure_plotter.make_figure_3()
    #fig4 = figure_plotter.make_figure_4()
    #fig5 = figure_plotter.make_figure_5()

    # Save plots to output directory
    fig2.savefig(str(output_dir.joinpath('figure_2.png')))
    fig3.savefig(str(output_dir.joinpath('figure_3.png')))
    #fig4.savefig(str(output_dir.joinpath('figure_4.png')))
    #fig5.savefig(str(output_dir.joinpath('figure_5.png')))