# This file was automatically generated by SWIG (http://www.swig.org).
# Version 3.0.12
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

"""

PyTrilinos.LOCA.TurningPoint.MinimallyAugmented is the python
interface to namespace TurningPoint::MinimallyAugmented of the
Trilinos continuation algorithm package LOCA:

    http://trilinos.sandia.gov/packages/nox

The purpose of LOCA.TurningPoint.MinimallyAugmented is to provide
groups and vectors for locating turning point bifurcations using the
minimally augmented turning point formulation.  The python version of
LOCA.TurningPoint.MinimallyAugmented supports the following classes:

    * AbstractGroup          - Interface to underlying groups for turning point
                               calculations using the minimally augmented
                               formulation
    * FiniteDifferenceGroup  - Concrete class that provides concrete
                               implementations of the derivative computation
                               methods of the LOCA.TurningPoint.Minimally-
                               Augmented.AbstractGroup using first-order finite
                               differencing

"""


from sys import version_info as _swig_python_version_info
if _swig_python_version_info >= (2, 7, 0):
    def swig_import_helper():
        import importlib
        pkg = __name__.rpartition('.')[0]
        mname = '.'.join((pkg, '_MinimallyAugmented')).lstrip('.')
        try:
            return importlib.import_module(mname)
        except ImportError:
            return importlib.import_module('_MinimallyAugmented')
    _MinimallyAugmented = swig_import_helper()
    del swig_import_helper
elif _swig_python_version_info >= (2, 6, 0):
    def swig_import_helper():
        from os.path import dirname
        import imp
        fp = None
        try:
            fp, pathname, description = imp.find_module('_MinimallyAugmented', [dirname(__file__)])
        except ImportError:
            import _MinimallyAugmented
            return _MinimallyAugmented
        try:
            _mod = imp.load_module('_MinimallyAugmented', fp, pathname, description)
        finally:
            if fp is not None:
                fp.close()
        return _mod
    _MinimallyAugmented = swig_import_helper()
    del swig_import_helper
else:
    import _MinimallyAugmented
del _swig_python_version_info

try:
    _swig_property = property
except NameError:
    pass  # Python < 2.2 doesn't have 'property'.

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_setattr_nondynamic(self, class_type, name, value, static=1):
    if (name == "thisown"):
        return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name, None)
    if method:
        return method(self, value)
    if (not static):
        if _newclass:
            object.__setattr__(self, name, value)
        else:
            self.__dict__[name] = value
    else:
        raise AttributeError("You cannot add attributes to %s" % self)


def _swig_setattr(self, class_type, name, value):
    return _swig_setattr_nondynamic(self, class_type, name, value, 0)


def _swig_getattr(self, class_type, name):
    if (name == "thisown"):
        return self.this.own()
    method = class_type.__swig_getmethods__.get(name, None)
    if method:
        return method(self)
    raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name))


def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)

try:
    _object = object
    _newclass = 1
except __builtin__.Exception:
    class _object:
        pass
    _newclass = 0

try:
    import weakref
    weakref_proxy = weakref.proxy
except __builtin__.Exception:
    weakref_proxy = lambda x: x


import PyTrilinos.Teuchos
import PyTrilinos.NOX.Abstract
import MultiContinuation
import MooreSpence
class AbstractGroup(MooreSpence.AbstractGroup):
    """Proxy of C++ LOCA::TurningPoint::MinimallyAugmented::AbstractGroup class."""

    __swig_setmethods__ = {}
    for _s in [MooreSpence.AbstractGroup]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, AbstractGroup, name, value)
    __swig_getmethods__ = {}
    for _s in [MooreSpence.AbstractGroup]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, AbstractGroup, name)

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _MinimallyAugmented.delete_AbstractGroup

    def computeDwtJnDp(self, *args):
        """computeDwtJnDp(AbstractGroup self, std::vector< int,std::allocator< int > > const & paramIDs, Vector w, Vector nullVector, NOX::Abstract::MultiVector::DenseMatrix & result, bool isValid) -> NOX::Abstract::Group::ReturnType"""
        return _MinimallyAugmented.AbstractGroup_computeDwtJnDp(self, *args)


    def computeDwtJDp(self, *args):
        """computeDwtJDp(AbstractGroup self, std::vector< int,std::allocator< int > > const & paramIDs, Vector w, MultiVector result, bool isValid) -> NOX::Abstract::Group::ReturnType"""
        return _MinimallyAugmented.AbstractGroup_computeDwtJDp(self, *args)


    def computeDwtJnDx(self, *args):
        """computeDwtJnDx(AbstractGroup self, Vector w, Vector nullVector, Vector result) -> NOX::Abstract::Group::ReturnType"""
        return _MinimallyAugmented.AbstractGroup_computeDwtJnDx(self, *args)

AbstractGroup_swigregister = _MinimallyAugmented.AbstractGroup_swigregister
AbstractGroup_swigregister(AbstractGroup)

class FiniteDifferenceGroup(AbstractGroup, MooreSpence.FiniteDifferenceGroup):
    """Proxy of C++ LOCA::TurningPoint::MinimallyAugmented::FiniteDifferenceGroup class."""

    __swig_setmethods__ = {}
    for _s in [AbstractGroup, MooreSpence.FiniteDifferenceGroup]:
        __swig_setmethods__.update(getattr(_s, '__swig_setmethods__', {}))
    __setattr__ = lambda self, name, value: _swig_setattr(self, FiniteDifferenceGroup, name, value)
    __swig_getmethods__ = {}
    for _s in [AbstractGroup, MooreSpence.FiniteDifferenceGroup]:
        __swig_getmethods__.update(getattr(_s, '__swig_getmethods__', {}))
    __getattr__ = lambda self, name: _swig_getattr(self, FiniteDifferenceGroup, name)

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _MinimallyAugmented.delete_FiniteDifferenceGroup

    def computeDwtJnDp(self, *args):
        """computeDwtJnDp(FiniteDifferenceGroup self, std::vector< int,std::allocator< int > > const & paramIDs, Vector w, Vector nullVector, NOX::Abstract::MultiVector::DenseMatrix & result, bool isValid) -> NOX::Abstract::Group::ReturnType"""
        return _MinimallyAugmented.FiniteDifferenceGroup_computeDwtJnDp(self, *args)


    def computeDwtJDp(self, *args):
        """computeDwtJDp(FiniteDifferenceGroup self, std::vector< int,std::allocator< int > > const & paramIDs, Vector w, MultiVector result, bool isValid) -> NOX::Abstract::Group::ReturnType"""
        return _MinimallyAugmented.FiniteDifferenceGroup_computeDwtJDp(self, *args)


    def computeDwtJnDx(self, *args):
        """computeDwtJnDx(FiniteDifferenceGroup self, Vector w, Vector nullVector, Vector result) -> NOX::Abstract::Group::ReturnType"""
        return _MinimallyAugmented.FiniteDifferenceGroup_computeDwtJnDx(self, *args)

FiniteDifferenceGroup_swigregister = _MinimallyAugmented.FiniteDifferenceGroup_swigregister
FiniteDifferenceGroup_swigregister(FiniteDifferenceGroup)

# This file is compatible with both classic and new-style classes.


