#!/usr/bin/env python
""" Provide functionality for a C extension model

	WARNING: THIS FILE WAS GENERATED BY WRAPPERGENERATOR.PY
 	         DO NOT MODIFY THIS FILE, MODIFY ../prototypes/src/sphere_fast.h
 	         AND RE-RUN THE GENERATOR SCRIPT

    @author: Mathieu Doucet / UTK
    @contact: mathieu.doucet@nist.gov
"""

from sans.models.BaseComponent import BaseComponent
from sans_extension.prototypes.c_models import CSimSphereF
import copy    
    
class SimSphereF(CSimSphereF, BaseComponent):
    """ Class that evaluates a SimSphereF model. 
    	This file was auto-generated from ../prototypes/src/sphere_fast.h.
    	Refer to that file and the structure it contains
    	for details of the model.
    	List of default parameters:
         scale           = 1.0 
         radius          = 20.0 

    """
        
    def __init__(self):
        """ Initialization """
        
        # Initialize BaseComponent first, then sphere
        BaseComponent.__init__(self)
        CSimSphereF.__init__(self)
        
        ## Name of the model
        self.name = "SimSphereF"
   
    def clone(self):
        """ Return a identical copy of self """
        obj = SimSphereF()
        obj.params = copy.deepcopy(self.params)
        return obj   
   
    def run(self, x = 0.0):
        """ Evaluate the model
            @param x: input q, or [q,phi]
            @return: scattering function P(q)
        """
        
        return CSimSphereF.run(self, x)
   
# End of file
