<reponame>SINTEF/simapy
# This an autogenerated file
# 
# Generated with Jonswap6P
from typing import Dict,Sequence,List
from dmt.entity import Entity
from dmt.blueprint import Blueprint
from .blueprints.jonswap6p import Jonswap6PBlueprint
from typing import Dict
from sima.environment.wave import Wave
from sima.environment.wavespreadingtype import WaveSpreadingType
from sima.sima.scriptablevalue import ScriptableValue

class Jonswap6P(Wave):
    """
    Keyword arguments
    -----------------
    name : str
         (default "")
    description : str
         (default "")
    _id : str
         (default "")
    scriptableValues : List[ScriptableValue]
    direction : float
         Average wave propagation direction(default 0.0)
    spreadingExponent : float
         Exponent  η in cos spreading function(default 2.0)
    numDirections : int
         Number of directions in spreading function, must be odd(default 11)
    spreadingType : WaveSpreadingType
         Wave spreading code
    omega : float
         Peak frequency, ωp(default 0.0)
    alpha : float
         Spectrum parameter α(default 0.008)
    beta : float
         Form parameter, β(default 1.25)
    gamma : float
         Peakedness parameter, γ(default 3.3)
    sigmaa : float
         Spectrum parameter σa(default 0.07)
    sigmab : float
         Spectrum parameter σb(default 0.09)
    """

    def __init__(self , name="", description="", _id="", direction=0.0, spreadingExponent=2.0, numDirections=11, spreadingType=WaveSpreadingType.UNIDIRECTIONAL, omega=0.0, alpha=0.008, beta=1.25, gamma=3.3, sigmaa=0.07, sigmab=0.09, **kwargs):
        super().__init__(**kwargs)
        self.name = name
        self.description = description
        self._id = _id
        self.scriptableValues = list()
        self.direction = direction
        self.spreadingExponent = spreadingExponent
        self.numDirections = numDirections
        self.spreadingType = spreadingType
        self.omega = omega
        self.alpha = alpha
        self.beta = beta
        self.gamma = gamma
        self.sigmaa = sigmaa
        self.sigmab = sigmab
        for key, value in kwargs.items():
            if not isinstance(value, Dict):
                setattr(self, key, value)


    @property
    def blueprint(self) -> Blueprint:
        """Return blueprint that this entity represents"""
        return Jonswap6PBlueprint()


    @property
    def name(self) -> str:
        """"""
        return self.__name

    @name.setter
    def name(self, value: str):
        """Set name"""
        self.__name = str(value)

    @property
    def description(self) -> str:
        """"""
        return self.__description

    @description.setter
    def description(self, value: str):
        """Set description"""
        self.__description = str(value)

    @property
    def _id(self) -> str:
        """"""
        return self.___id

    @_id.setter
    def _id(self, value: str):
        """Set _id"""
        self.___id = str(value)

    @property
    def scriptableValues(self) -> List[ScriptableValue]:
        """"""
        return self.__scriptableValues

    @scriptableValues.setter
    def scriptableValues(self, value: List[ScriptableValue]):
        """Set scriptableValues"""
        if not isinstance(value, Sequence):
            raise Exception("Expected sequense, but was " , type(value))
        self.__scriptableValues = value

    @property
    def direction(self) -> float:
        """Average wave propagation direction"""
        return self.__direction

    @direction.setter
    def direction(self, value: float):
        """Set direction"""
        self.__direction = float(value)

    @property
    def spreadingExponent(self) -> float:
        """Exponent  η in cos spreading function"""
        return self.__spreadingExponent

    @spreadingExponent.setter
    def spreadingExponent(self, value: float):
        """Set spreadingExponent"""
        self.__spreadingExponent = float(value)

    @property
    def numDirections(self) -> int:
        """Number of directions in spreading function, must be odd"""
        return self.__numDirections

    @numDirections.setter
    def numDirections(self, value: int):
        """Set numDirections"""
        self.__numDirections = int(value)

    @property
    def spreadingType(self) -> WaveSpreadingType:
        """Wave spreading code"""
        return self.__spreadingType

    @spreadingType.setter
    def spreadingType(self, value: WaveSpreadingType):
        """Set spreadingType"""
        self.__spreadingType = value

    @property
    def omega(self) -> float:
        """Peak frequency, ωp"""
        return self.__omega

    @omega.setter
    def omega(self, value: float):
        """Set omega"""
        self.__omega = float(value)

    @property
    def alpha(self) -> float:
        """Spectrum parameter α"""
        return self.__alpha

    @alpha.setter
    def alpha(self, value: float):
        """Set alpha"""
        self.__alpha = float(value)

    @property
    def beta(self) -> float:
        """Form parameter, β"""
        return self.__beta

    @beta.setter
    def beta(self, value: float):
        """Set beta"""
        self.__beta = float(value)

    @property
    def gamma(self) -> float:
        """Peakedness parameter, γ"""
        return self.__gamma

    @gamma.setter
    def gamma(self, value: float):
        """Set gamma"""
        self.__gamma = float(value)

    @property
    def sigmaa(self) -> float:
        """Spectrum parameter σa"""
        return self.__sigmaa

    @sigmaa.setter
    def sigmaa(self, value: float):
        """Set sigmaa"""
        self.__sigmaa = float(value)

    @property
    def sigmab(self) -> float:
        """Spectrum parameter σb"""
        return self.__sigmab

    @sigmab.setter
    def sigmab(self, value: float):
        """Set sigmab"""
        self.__sigmab = float(value)

# This an autogenerated file
# 
# Generated with Jonswap6P
from typing import Dict,Sequence,List
from dmt.entity import Entity
from dmt.blueprint import Blueprint
from .blueprints.jonswap6p import Jonswap6PBlueprint
from typing import Dict
from sima.environment.wave import Wave
from sima.environment.wavespreadingtype import WaveSpreadingType
from sima.sima.scriptablevalue import ScriptableValue

class Jonswap6P(Wave):
    """
    Keyword arguments
    -----------------
    name : str
         (default "")
    description : str
         (default "")
    _id : str
         (default "")
    scriptableValues : List[ScriptableValue]
    direction : float
         Average wave propagation direction(default 0.0)
    spreadingExponent : float
         Exponent  η in cos spreading function(default 2.0)
    numDirections : int
         Number of directions in spreading function, must be odd(default 11)
    spreadingType : WaveSpreadingType
         Wave spreading code
    omega : float
         Peak frequency, ωp(default 0.0)
    alpha : float
         Spectrum parameter α(default 0.008)
    beta : float
         Form parameter, β(default 1.25)
    gamma : float
         Peakedness parameter, γ(default 3.3)
    sigmaa : float
         Spectrum parameter σa(default 0.07)
    sigmab : float
         Spectrum parameter σb(default 0.09)
    """

    def __init__(self , name="", description="", _id="", direction=0.0, spreadingExponent=2.0, numDirections=11, spreadingType=WaveSpreadingType.UNIDIRECTIONAL, omega=0.0, alpha=0.008, beta=1.25, gamma=3.3, sigmaa=0.07, sigmab=0.09, **kwargs):
        super().__init__(**kwargs)
        self.name = name
        self.description = description
        self._id = _id
        self.scriptableValues = list()
        self.direction = direction
        self.spreadingExponent = spreadingExponent
        self.numDirections = numDirections
        self.spreadingType = spreadingType
        self.omega = omega
        self.alpha = alpha
        self.beta = beta
        self.gamma = gamma
        self.sigmaa = sigmaa
        self.sigmab = sigmab
        for key, value in kwargs.items():
            if not isinstance(value, Dict):
                setattr(self, key, value)


    @property
    def blueprint(self) -> Blueprint:
        """Return blueprint that this entity represents"""
        return Jonswap6PBlueprint()


    @property
    def name(self) -> str:
        """"""
        return self.__name

    @name.setter
    def name(self, value: str):
        """Set name"""
        self.__name = str(value)

    @property
    def description(self) -> str:
        """"""
        return self.__description

    @description.setter
    def description(self, value: str):
        """Set description"""
        self.__description = str(value)

    @property
    def _id(self) -> str:
        """"""
        return self.___id

    @_id.setter
    def _id(self, value: str):
        """Set _id"""
        self.___id = str(value)

    @property
    def scriptableValues(self) -> List[ScriptableValue]:
        """"""
        return self.__scriptableValues

    @scriptableValues.setter
    def scriptableValues(self, value: List[ScriptableValue]):
        """Set scriptableValues"""
        if not isinstance(value, Sequence):
            raise Exception("Expected sequense, but was " , type(value))
        self.__scriptableValues = value

    @property
    def direction(self) -> float:
        """Average wave propagation direction"""
        return self.__direction

    @direction.setter
    def direction(self, value: float):
        """Set direction"""
        self.__direction = float(value)

    @property
    def spreadingExponent(self) -> float:
        """Exponent  η in cos spreading function"""
        return self.__spreadingExponent

    @spreadingExponent.setter
    def spreadingExponent(self, value: float):
        """Set spreadingExponent"""
        self.__spreadingExponent = float(value)

    @property
    def numDirections(self) -> int:
        """Number of directions in spreading function, must be odd"""
        return self.__numDirections

    @numDirections.setter
    def numDirections(self, value: int):
        """Set numDirections"""
        self.__numDirections = int(value)

    @property
    def spreadingType(self) -> WaveSpreadingType:
        """Wave spreading code"""
        return self.__spreadingType

    @spreadingType.setter
    def spreadingType(self, value: WaveSpreadingType):
        """Set spreadingType"""
        self.__spreadingType = value

    @property
    def omega(self) -> float:
        """Peak frequency, ωp"""
        return self.__omega

    @omega.setter
    def omega(self, value: float):
        """Set omega"""
        self.__omega = float(value)

    @property
    def alpha(self) -> float:
        """Spectrum parameter α"""
        return self.__alpha

    @alpha.setter
    def alpha(self, value: float):
        """Set alpha"""
        self.__alpha = float(value)

    @property
    def beta(self) -> float:
        """Form parameter, β"""
        return self.__beta

    @beta.setter
    def beta(self, value: float):
        """Set beta"""
        self.__beta = float(value)

    @property
    def gamma(self) -> float:
        """Peakedness parameter, γ"""
        return self.__gamma

    @gamma.setter
    def gamma(self, value: float):
        """Set gamma"""
        self.__gamma = float(value)

    @property
    def sigmaa(self) -> float:
        """Spectrum parameter σa"""
        return self.__sigmaa

    @sigmaa.setter
    def sigmaa(self, value: float):
        """Set sigmaa"""
        self.__sigmaa = float(value)

    @property
    def sigmab(self) -> float:
        """Spectrum parameter σb"""
        return self.__sigmab

    @sigmab.setter
    def sigmab(self, value: float):
        """Set sigmab"""
        self.__sigmab = float(value)
# This an autogenerated file # # Generated with Jonswap6P Keyword arguments     -----------------     name : str          (default "")     description : str          (default "")     _id : str          (default "")     scriptableValues : List[ScriptableValue]     direction : float          Average wave propagation direction(default 0.0)     spreadingExponent : float          Exponent  η in cos spreading function(default 2.0)     numDirections : int          Number of directions in spreading function, must be odd(default 11)     spreadingType : WaveSpreadingType          Wave spreading code     omega : float          Peak frequency, ωp(default 0.0)     alpha : float          Spectrum parameter α(default 0.008)     beta : float          Form parameter, β(default 1.25)     gamma : float          Peakedness parameter, γ(default 3.3)     sigmaa : float          Spectrum parameter σa(default 0.07)     sigmab : float          Spectrum parameter σb(default 0.09) Return blueprint that this entity represents Set name Set description Set _id Set scriptableValues Average wave propagation direction Set direction Exponent  η in cos spreading function Set spreadingExponent Number of directions in spreading function, must be odd Set numDirections Wave spreading code Set spreadingType Peak frequency, ωp Set omega Spectrum parameter α Set alpha Form parameter, β Set beta Peakedness parameter, γ Set gamma Spectrum parameter σa Set sigmaa Spectrum parameter σb Set sigmab