Skip to content
Snippets Groups Projects
create_random_slabs.py 1.9 KiB
Newer Older
# -*- coding: utf-8 -*-
"""Create random magnetic distributions."""
import pdb, traceback, sys
import numpy as np
from numpy import pi

import pyramid.magcreator as mc
from pyramid.magdata import MagData
import pyramid.phasemapper as pm
import pyramid.projector as pj
import pyramid.holoimage as hi
from pyramid.phasemap import PhaseMap
    '''Calculate, display and save a random magnetic distribution to file.
    Arguments:
        None
    Returns:
        None
    '''
    # Input parameters:
    # Create lists for magnetic objects:
    mag_shape_list = np.zeros((count,) + dim)
    beta_list      = np.zeros(count) 
    magnitude_list = np.zeros(count)
    for i in range(count):
        width  = (1, rnd.randint(1, w_max), rnd.randint(1, w_max))
        center = (rnd.randrange(int(width[0]/2), dim[0]-int(width[0]/2)),
                  rnd.randrange(int(width[1]/2), dim[1]-int(width[1]/2)),
                  rnd.randrange(int(width[2]/2), dim[2]-int(width[2]/2)))
        mag_shape_list[i,...] = mc.Shapes.slab(dim, center, width)
        beta_list[i] = 2*pi*rnd.random()
        magnitude_list[i] = 1#rnd.random()
    # Create magnetic distribution
    magnitude = mc.create_mag_dist_comb(mag_shape_list, beta_list, magnitude_list) 
    mag_data = MagData(res, magnitude)
    mag_data.save_to_llg('../output/mag_dist_random_slabs.txt')
    projection = pj.simple_axis_projection(mag_data)
    phase_map  = PhaseMap(res, pm.phase_mag_real(res, projection, 'slab'))    
    hi.display(hi.holo_image(phase_map, 10))
    
    
if __name__ == "__main__":
    try:
    except:
        type, value, tb = sys.exc_info()
        traceback.print_exc()
        pdb.post_mortem(tb)