from abaqusConstants import *


class Ornl:
    """The Ornl object specifies the constitutive model developed by Oak Ridge National
    Laboratory.

    Notes
    -----
    This object can be accessed by:

    .. code-block:: python

        import material
        mdb.models[name].materials[name].creep.ornl
        mdb.models[name].materials[name].Plastic.ornl
        import odbMaterial
        session.odbs[name].materials[name].creep.ornl
        session.odbs[name].materials[name].Plastic.ornl

    The corresponding analysis keywords are:

    - ORNL
    """

    def __init__(self, a: float = 0, h: float = None, reset: Boolean = OFF):
        """This method creates an Ornl object.

        Notes
        -----
        This function can be accessed by:

        .. code-block:: python

            mdb.models[name].materials[name].creep.Ornl
            mdb.models[name].materials[name].Plastic.Ornl
            session.odbs[name].materials[name].creep.Ornl
            session.odbs[name].materials[name].Plastic.Ornl

        Parameters
        ----------
        a
            A Float specifying the saturation rates for kinematic shift caused by creep strain, as
            defined by Equation (15) of Section 4.3.3-3 of the Nuclear Standard. The default value
            corresponds to that section of the Standard. Set **a** = 0.0 to use the 1986 revision of the
            Standard. The default value is 0.3.
        h
            None or a Float specifying the rate of kinematic shift with respect to creep strain
            [Equation (7) of Section 4.3.2-1 of the Nuclear Standard]. If **h** = None, the value of **h**
            is determined according to Section 4.3.3-3 of the 1981 revision of the Standard. Set
            **h** = 0.0 to use the 1986 revision of the Standard. The default value is None.
        reset
            A Boolean specifying whether to invoke the optional αα reset procedure described in
            Section 4.3.5 of the Nuclear Standard. The default value is OFF.

        Returns
        -------
        Ornl
            An :py:class:`~abaqus.Material.Plastic.Metal.ORNL.Ornl.Ornl` object.

        Raises
        ------
        RangeError
        """
        pass

    def setValues(self, *args, **kwargs):
        """This method modifies the Ornl object.

        Raises
        ------
        RangeError
        """
        pass
