예제 #1
0
    oommf_mesh = mesh.Mesh((20, 20, 20),
                           size=(conftest.x1, conftest.y1, conftest.z1))
    # FIXME: why our result is three times of oommf's??
    oommf_anis = oommf_cubic_anisotropy(m0=oommf_m0(conftest.m_gen,
                                                    oommf_mesh),
                                        Ms=conftest.Ms,
                                        K1=conftest.K1,
                                        K2=conftest.K2,
                                        u1=conftest.u1,
                                        u2=conftest.u2).flat
    finmag_anis = finmag_to_oommf(finmag["H"], oommf_mesh, dims=3)

    assert oommf_anis.shape == finmag_anis.shape
    diff = np.abs(oommf_anis - finmag_anis)
    print 'diff', diff
    rel_diff = diff / \
        np.sqrt(
            (np.max(oommf_anis[0] ** 2 + oommf_anis[1] ** 2 + oommf_anis[2] ** 2)))

    print "comparison with oommf, H, relative_difference:"
    print stats(rel_diff)

    finmag["table"] += conftest.table_entry("oommf", REL_TOLERANCE, rel_diff)
    assert np.max(rel_diff) < REL_TOLERANCE


if __name__ == "__main__":
    finmag = conftest.setup_cubic()
    test_against_oommf(finmag)
    conftest.teardown(finmag)
예제 #2
0
import conftest as test

if __name__ == "__main__":
    from test_anis_magpar import test_against_magpar
    from test_anis_nmag import test_against_nmag
    from test_anis_oommf import test_against_oommf

    finmag = test.setup(K2=0)

    test_against_magpar(finmag)
    test_against_oommf(finmag)

    finmag = test.setup()
    test_against_nmag(finmag)
    test.teardown(finmag)