예제 #1
0
파일: flayer.py 프로젝트: kevmat20/refl1d
    def __init__(self,
                 thickness=0,
                 interface=0,
                 profile=None,
                 tol=1e-3,
                 magnetism=None,
                 name=None,
                 **kw):
        if not name:
            name = profile.__name__
        if interface != 0:
            raise NotImplementedError("interface not yet supported")
        if profile is None:
            raise TypeError("Need profile")
        self.name = name
        self.thickness = Parameter.default(thickness, name=name + " thickness")
        self.interface = Parameter.default(interface, name=name + " interface")
        self.profile = profile
        self.tol = tol
        self.magnetism = magnetism

        # TODO: maybe make these lazy (and for magnetism below as well)
        rho_start = _LayerLimit(self, isend=False, isrho=True)
        irho_start = _LayerLimit(self, isend=False, isrho=False)
        rho_end = _LayerLimit(self, isend=True, isrho=True)
        irho_end = _LayerLimit(self, isend=True, isrho=False)
        self.start = SLD(name + " start", rho=rho_start, irho=irho_start)
        self.end = SLD(name + " end", rho=rho_end, irho=irho_end)

        self._parameters = _set_vars(self, name, profile, kw, self.RESERVED)
예제 #2
0
파일: T5fit.py 프로젝트: CHJW/superlattice
'''

# Import data package

import os
import refl1d
from refl1d.names import *
from refl1d.material import Material, Vacuum, SLD
from refl1d.model import Repeat, Slab, Stack, Layer
from refl1d.anstodata import ANSTOData, load, Platypus
from refl1d.probe import PolarizedNeutronProbe, PolarizedQProbe, PolarizedNeutronQProbe
from refl1d.reflectivity import reflectivity, magnetic_reflectivity

# Defining Materia

LNO = SLD(name='LaNiO3', rho=6.359)
LSMO = SLD(name='LaSrMnO3', rho=3.7)
STO = SLD(name='SrTiO3', rho=3.54)

# Defining Structure

# Repeat structure

threelayer = LSMO(34.1, 2) | LNO(11.5, 2)
onelayer = LSMO(34.1, 2) | LNO(3.85, 2)
#Rtriple5Model = STO(0,5) | threelayer*5 | onelayer*5 | threelayer*5 | air

Ftriple5Model = STO(0, 1.5) | LSMO(34.1, 2) | LNO(11.5, 2) | LSMO(
    34.1, 2) | LNO(11.5, 2) | LSMO(34.1, 2) | LNO(11.5, 2) | LSMO(
        34.1, 2) | LNO(11.5, 2) | LSMO(34.1, 2) | LNO(11.5, 2) | LSMO(
            34.1, 2) | LNO(3.85, 2) | LSMO(34.1, 2) | LNO(3.85, 2) | LSMO(
예제 #3
0
 def OnInsert(self, event):
     slab = Slab(SLD(rho=1.0, name="layer"), thickness=100, interface=5)
     self.stack.insert(self.layer_num, slab)
     self.set_layer(self.layer_num)