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

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _bilininteg
else:
    import _bilininteg

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

_swig_new_instance_method = _bilininteg.SWIG_PyInstanceMethod_New
_swig_new_static_method = _bilininteg.SWIG_PyStaticMethod_New

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,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


import weakref

import mfem._ser.globals
import mfem._ser.array
import mfem._ser.mem_manager
import mfem._ser.coefficient
import mfem._ser.matrix
import mfem._ser.vector
import mfem._ser.operators
import mfem._ser.intrules
import mfem._ser.sparsemat
import mfem._ser.densemat
import mfem._ser.eltrans
import mfem._ser.fe
import mfem._ser.geom
import mfem._ser.gridfunc
import mfem._ser.mesh
import mfem._ser.sort_pairs
import mfem._ser.ncmesh
import mfem._ser.element
import mfem._ser.table
import mfem._ser.hash
import mfem._ser.vertex
import mfem._ser.vtk
import mfem._ser.fespace
import mfem._ser.fe_coll
import mfem._ser.lininteg
import mfem._ser.handle
import mfem._ser.restriction
import mfem._ser.linearform
import mfem._ser.nonlininteg
class BilinearFormIntegrator(mfem._ser.nonlininteg.NonlinearFormIntegrator):
    r"""Proxy of C++ mfem::BilinearFormIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, ir=None):
        r"""__init__(BilinearFormIntegrator self, IntegrationRule ir=None) -> BilinearFormIntegrator"""
        if self.__class__ == BilinearFormIntegrator:
            _self = None
        else:
            _self = self
        _bilininteg.BilinearFormIntegrator_swiginit(self, _bilininteg.new_BilinearFormIntegrator(_self, ir))

    def AssemblePA(self, *args):
        r"""
        AssemblePA(BilinearFormIntegrator self, FiniteElementSpace fes)
        AssemblePA(BilinearFormIntegrator self, FiniteElementSpace trial_fes, FiniteElementSpace test_fes)
        AssemblePA(BilinearFormIntegrator self, FiniteElementSpace fes)
        AssemblePA(BilinearFormIntegrator self, FiniteElementSpace trial_fes, FiniteElementSpace test_fes)
        """
        return _bilininteg.BilinearFormIntegrator_AssemblePA(self, *args)
    AssemblePA = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AssemblePA)

    def AssemblePAInteriorFaces(self, fes):
        r"""AssemblePAInteriorFaces(BilinearFormIntegrator self, FiniteElementSpace fes)"""
        return _bilininteg.BilinearFormIntegrator_AssemblePAInteriorFaces(self, fes)
    AssemblePAInteriorFaces = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AssemblePAInteriorFaces)

    def AssemblePABoundaryFaces(self, fes):
        r"""AssemblePABoundaryFaces(BilinearFormIntegrator self, FiniteElementSpace fes)"""
        return _bilininteg.BilinearFormIntegrator_AssemblePABoundaryFaces(self, fes)
    AssemblePABoundaryFaces = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AssemblePABoundaryFaces)

    def AssembleDiagonalPA(self, diag):
        r"""AssembleDiagonalPA(BilinearFormIntegrator self, Vector diag)"""
        return _bilininteg.BilinearFormIntegrator_AssembleDiagonalPA(self, diag)
    AssembleDiagonalPA = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AssembleDiagonalPA)

    def AssembleDiagonalPA_ADAt(self, D, diag):
        r"""AssembleDiagonalPA_ADAt(BilinearFormIntegrator self, Vector D, Vector diag)"""
        return _bilininteg.BilinearFormIntegrator_AssembleDiagonalPA_ADAt(self, D, diag)
    AssembleDiagonalPA_ADAt = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AssembleDiagonalPA_ADAt)

    def AddMultPA(self, x, y):
        r"""AddMultPA(BilinearFormIntegrator self, Vector x, Vector y)"""
        return _bilininteg.BilinearFormIntegrator_AddMultPA(self, x, y)
    AddMultPA = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AddMultPA)

    def AddMultTransposePA(self, x, y):
        r"""AddMultTransposePA(BilinearFormIntegrator self, Vector x, Vector y)"""
        return _bilininteg.BilinearFormIntegrator_AddMultTransposePA(self, x, y)
    AddMultTransposePA = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AddMultTransposePA)

    def AssembleEA(self, fes, emat, add=True):
        r"""AssembleEA(BilinearFormIntegrator self, FiniteElementSpace fes, Vector emat, bool const add=True)"""
        return _bilininteg.BilinearFormIntegrator_AssembleEA(self, fes, emat, add)
    AssembleEA = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AssembleEA)

    def AssembleMF(self, fes):
        r"""AssembleMF(BilinearFormIntegrator self, FiniteElementSpace fes)"""
        return _bilininteg.BilinearFormIntegrator_AssembleMF(self, fes)
    AssembleMF = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AssembleMF)

    def AddMultMF(self, x, y):
        r"""AddMultMF(BilinearFormIntegrator self, Vector x, Vector y)"""
        return _bilininteg.BilinearFormIntegrator_AddMultMF(self, x, y)
    AddMultMF = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AddMultMF)

    def AddMultTransposeMF(self, x, y):
        r"""AddMultTransposeMF(BilinearFormIntegrator self, Vector x, Vector y)"""
        return _bilininteg.BilinearFormIntegrator_AddMultTransposeMF(self, x, y)
    AddMultTransposeMF = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AddMultTransposeMF)

    def AssembleDiagonalMF(self, diag):
        r"""AssembleDiagonalMF(BilinearFormIntegrator self, Vector diag)"""
        return _bilininteg.BilinearFormIntegrator_AssembleDiagonalMF(self, diag)
    AssembleDiagonalMF = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AssembleDiagonalMF)

    def AssembleEAInteriorFaces(self, fes, ea_data_int, ea_data_ext, add=True):
        r"""AssembleEAInteriorFaces(BilinearFormIntegrator self, FiniteElementSpace fes, Vector ea_data_int, Vector ea_data_ext, bool const add=True)"""
        return _bilininteg.BilinearFormIntegrator_AssembleEAInteriorFaces(self, fes, ea_data_int, ea_data_ext, add)
    AssembleEAInteriorFaces = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AssembleEAInteriorFaces)

    def AssembleEABoundaryFaces(self, fes, ea_data_bdr, add=True):
        r"""AssembleEABoundaryFaces(BilinearFormIntegrator self, FiniteElementSpace fes, Vector ea_data_bdr, bool const add=True)"""
        return _bilininteg.BilinearFormIntegrator_AssembleEABoundaryFaces(self, fes, ea_data_bdr, add)
    AssembleEABoundaryFaces = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AssembleEABoundaryFaces)

    def AssembleElementMatrix(self, el, Trans, elmat):
        r"""AssembleElementMatrix(BilinearFormIntegrator self, FiniteElement el, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.BilinearFormIntegrator_AssembleElementMatrix(self, el, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AssembleElementMatrix)

    def AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat):
        r"""AssembleElementMatrix2(BilinearFormIntegrator self, FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.BilinearFormIntegrator_AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AssembleElementMatrix2)

    def AssembleFaceMatrix(self, *args):
        r"""
        AssembleFaceMatrix(BilinearFormIntegrator self, FiniteElement el1, FiniteElement el2, FaceElementTransformations Trans, DenseMatrix elmat)
        AssembleFaceMatrix(BilinearFormIntegrator self, FiniteElement trial_face_fe, FiniteElement test_fe1, FiniteElement test_fe2, FaceElementTransformations Trans, DenseMatrix elmat)
        """
        return _bilininteg.BilinearFormIntegrator_AssembleFaceMatrix(self, *args)
    AssembleFaceMatrix = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AssembleFaceMatrix)

    def AssembleElementVector(self, el, Tr, elfun, elvect):
        r"""AssembleElementVector(BilinearFormIntegrator self, FiniteElement el, ElementTransformation Tr, Vector elfun, Vector elvect)"""
        return _bilininteg.BilinearFormIntegrator_AssembleElementVector(self, el, Tr, elfun, elvect)
    AssembleElementVector = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AssembleElementVector)

    def AssembleFaceVector(self, el1, el2, Tr, elfun, elvect):
        r"""AssembleFaceVector(BilinearFormIntegrator self, FiniteElement el1, FiniteElement el2, FaceElementTransformations Tr, Vector elfun, Vector elvect)"""
        return _bilininteg.BilinearFormIntegrator_AssembleFaceVector(self, el1, el2, Tr, elfun, elvect)
    AssembleFaceVector = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AssembleFaceVector)

    def AssembleElementGrad(self, el, Tr, elfun, elmat):
        r"""AssembleElementGrad(BilinearFormIntegrator self, FiniteElement el, ElementTransformation Tr, Vector elfun, DenseMatrix elmat)"""
        return _bilininteg.BilinearFormIntegrator_AssembleElementGrad(self, el, Tr, elfun, elmat)
    AssembleElementGrad = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AssembleElementGrad)

    def AssembleFaceGrad(self, el1, el2, Tr, elfun, elmat):
        r"""AssembleFaceGrad(BilinearFormIntegrator self, FiniteElement el1, FiniteElement el2, FaceElementTransformations Tr, Vector elfun, DenseMatrix elmat)"""
        return _bilininteg.BilinearFormIntegrator_AssembleFaceGrad(self, el1, el2, Tr, elfun, elmat)
    AssembleFaceGrad = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_AssembleFaceGrad)

    def ComputeElementFlux(self, el, Trans, u, fluxelem, flux, with_coef=True):
        r"""ComputeElementFlux(BilinearFormIntegrator self, FiniteElement el, ElementTransformation Trans, Vector u, FiniteElement fluxelem, Vector flux, bool with_coef=True)"""
        return _bilininteg.BilinearFormIntegrator_ComputeElementFlux(self, el, Trans, u, fluxelem, flux, with_coef)
    ComputeElementFlux = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_ComputeElementFlux)

    def ComputeFluxEnergy(self, fluxelem, Trans, flux, d_energy=None):
        r"""ComputeFluxEnergy(BilinearFormIntegrator self, FiniteElement fluxelem, ElementTransformation Trans, Vector flux, Vector d_energy=None) -> double"""
        return _bilininteg.BilinearFormIntegrator_ComputeFluxEnergy(self, fluxelem, Trans, flux, d_energy)
    ComputeFluxEnergy = _swig_new_instance_method(_bilininteg.BilinearFormIntegrator_ComputeFluxEnergy)
    __swig_destroy__ = _bilininteg.delete_BilinearFormIntegrator
    def __disown__(self):
        self.this.disown()
        _bilininteg.disown_BilinearFormIntegrator(self)
        return weakref.proxy(self)

# Register BilinearFormIntegrator in _bilininteg:
_bilininteg.BilinearFormIntegrator_swigregister(BilinearFormIntegrator)
cvar = _bilininteg.cvar
HCURL_MAX_D1D = cvar.HCURL_MAX_D1D
HCURL_MAX_Q1D = cvar.HCURL_MAX_Q1D
HDIV_MAX_D1D = cvar.HDIV_MAX_D1D
HDIV_MAX_Q1D = cvar.HDIV_MAX_Q1D

class TransposeIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::TransposeIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, _bfi, _own_bfi=1):
        r"""__init__(TransposeIntegrator self, BilinearFormIntegrator _bfi, int _own_bfi=1) -> TransposeIntegrator"""

        if _own_bfi == 1:  _bfi.thisown = 0


        _bilininteg.TransposeIntegrator_swiginit(self, _bilininteg.new_TransposeIntegrator(_bfi, _own_bfi))

    def AssembleElementMatrix(self, el, Trans, elmat):
        r"""AssembleElementMatrix(TransposeIntegrator self, FiniteElement el, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.TransposeIntegrator_AssembleElementMatrix(self, el, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.TransposeIntegrator_AssembleElementMatrix)

    def AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat):
        r"""AssembleElementMatrix2(TransposeIntegrator self, FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.TransposeIntegrator_AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.TransposeIntegrator_AssembleElementMatrix2)

    def AssembleFaceMatrix(self, *args):
        r"""
        AssembleFaceMatrix(TransposeIntegrator self, FiniteElement el1, FiniteElement el2, FaceElementTransformations Trans, DenseMatrix elmat)
        AssembleFaceMatrix(TransposeIntegrator self, FiniteElement trial_face_fe, FiniteElement test_fe1, FiniteElement test_fe2, FaceElementTransformations Trans, DenseMatrix elmat)
        AssembleFaceMatrix(TransposeIntegrator self, FiniteElement el1, FiniteElement el2, FaceElementTransformations Trans, DenseMatrix elmat)
        """
        return _bilininteg.TransposeIntegrator_AssembleFaceMatrix(self, *args)
    AssembleFaceMatrix = _swig_new_instance_method(_bilininteg.TransposeIntegrator_AssembleFaceMatrix)

    def AssemblePA(self, *args):
        r"""
        AssemblePA(TransposeIntegrator self, FiniteElementSpace fes)
        AssemblePA(TransposeIntegrator self, FiniteElementSpace trial_fes, FiniteElementSpace test_fes)
        AssemblePA(TransposeIntegrator self, FiniteElementSpace fes)
        """
        return _bilininteg.TransposeIntegrator_AssemblePA(self, *args)
    AssemblePA = _swig_new_instance_method(_bilininteg.TransposeIntegrator_AssemblePA)

    def AssemblePAInteriorFaces(self, fes):
        r"""AssemblePAInteriorFaces(TransposeIntegrator self, FiniteElementSpace fes)"""
        return _bilininteg.TransposeIntegrator_AssemblePAInteriorFaces(self, fes)
    AssemblePAInteriorFaces = _swig_new_instance_method(_bilininteg.TransposeIntegrator_AssemblePAInteriorFaces)

    def AssemblePABoundaryFaces(self, fes):
        r"""AssemblePABoundaryFaces(TransposeIntegrator self, FiniteElementSpace fes)"""
        return _bilininteg.TransposeIntegrator_AssemblePABoundaryFaces(self, fes)
    AssemblePABoundaryFaces = _swig_new_instance_method(_bilininteg.TransposeIntegrator_AssemblePABoundaryFaces)

    def AddMultTransposePA(self, x, y):
        r"""AddMultTransposePA(TransposeIntegrator self, Vector x, Vector y)"""
        return _bilininteg.TransposeIntegrator_AddMultTransposePA(self, x, y)
    AddMultTransposePA = _swig_new_instance_method(_bilininteg.TransposeIntegrator_AddMultTransposePA)

    def AddMultPA(self, x, y):
        r"""AddMultPA(TransposeIntegrator self, Vector x, Vector y)"""
        return _bilininteg.TransposeIntegrator_AddMultPA(self, x, y)
    AddMultPA = _swig_new_instance_method(_bilininteg.TransposeIntegrator_AddMultPA)

    def AssembleEA(self, fes, emat, add):
        r"""AssembleEA(TransposeIntegrator self, FiniteElementSpace fes, Vector emat, bool const add)"""
        return _bilininteg.TransposeIntegrator_AssembleEA(self, fes, emat, add)
    AssembleEA = _swig_new_instance_method(_bilininteg.TransposeIntegrator_AssembleEA)

    def AssembleEAInteriorFaces(self, fes, ea_data_int, ea_data_ext, add):
        r"""AssembleEAInteriorFaces(TransposeIntegrator self, FiniteElementSpace fes, Vector ea_data_int, Vector ea_data_ext, bool const add)"""
        return _bilininteg.TransposeIntegrator_AssembleEAInteriorFaces(self, fes, ea_data_int, ea_data_ext, add)
    AssembleEAInteriorFaces = _swig_new_instance_method(_bilininteg.TransposeIntegrator_AssembleEAInteriorFaces)

    def AssembleEABoundaryFaces(self, fes, ea_data_bdr, add):
        r"""AssembleEABoundaryFaces(TransposeIntegrator self, FiniteElementSpace fes, Vector ea_data_bdr, bool const add)"""
        return _bilininteg.TransposeIntegrator_AssembleEABoundaryFaces(self, fes, ea_data_bdr, add)
    AssembleEABoundaryFaces = _swig_new_instance_method(_bilininteg.TransposeIntegrator_AssembleEABoundaryFaces)
    __swig_destroy__ = _bilininteg.delete_TransposeIntegrator

# Register TransposeIntegrator in _bilininteg:
_bilininteg.TransposeIntegrator_swigregister(TransposeIntegrator)

class LumpedIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::LumpedIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, _bfi, _own_bfi=1):
        r"""__init__(LumpedIntegrator self, BilinearFormIntegrator _bfi, int _own_bfi=1) -> LumpedIntegrator"""
        _bilininteg.LumpedIntegrator_swiginit(self, _bilininteg.new_LumpedIntegrator(_bfi, _own_bfi))

    def AssembleElementMatrix(self, el, Trans, elmat):
        r"""AssembleElementMatrix(LumpedIntegrator self, FiniteElement el, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.LumpedIntegrator_AssembleElementMatrix(self, el, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.LumpedIntegrator_AssembleElementMatrix)
    __swig_destroy__ = _bilininteg.delete_LumpedIntegrator

# Register LumpedIntegrator in _bilininteg:
_bilininteg.LumpedIntegrator_swigregister(LumpedIntegrator)

class InverseIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::InverseIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, integ, own_integ=1):
        r"""__init__(InverseIntegrator self, BilinearFormIntegrator integ, int own_integ=1) -> InverseIntegrator"""

        if own_integ == 1:  integ.thisown = 0


        _bilininteg.InverseIntegrator_swiginit(self, _bilininteg.new_InverseIntegrator(integ, own_integ))

    def AssembleElementMatrix(self, el, Trans, elmat):
        r"""AssembleElementMatrix(InverseIntegrator self, FiniteElement el, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.InverseIntegrator_AssembleElementMatrix(self, el, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.InverseIntegrator_AssembleElementMatrix)
    __swig_destroy__ = _bilininteg.delete_InverseIntegrator

# Register InverseIntegrator in _bilininteg:
_bilininteg.InverseIntegrator_swigregister(InverseIntegrator)

class SumIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::SumIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, own_integs=1):
        r"""__init__(SumIntegrator self, int own_integs=1) -> SumIntegrator"""
        _bilininteg.SumIntegrator_swiginit(self, _bilininteg.new_SumIntegrator(own_integs))

    def AddIntegrator(self, integ):
        r"""AddIntegrator(SumIntegrator self, BilinearFormIntegrator integ)"""

        integ.thisown = 0


        return _bilininteg.SumIntegrator_AddIntegrator(self, integ)


    def AssembleElementMatrix(self, el, Trans, elmat):
        r"""AssembleElementMatrix(SumIntegrator self, FiniteElement el, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.SumIntegrator_AssembleElementMatrix(self, el, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.SumIntegrator_AssembleElementMatrix)
    __swig_destroy__ = _bilininteg.delete_SumIntegrator

# Register SumIntegrator in _bilininteg:
_bilininteg.SumIntegrator_swigregister(SumIntegrator)

class MixedScalarIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::MixedScalarIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat):
        r"""AssembleElementMatrix2(MixedScalarIntegrator self, FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.MixedScalarIntegrator_AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.MixedScalarIntegrator_AssembleElementMatrix2)

    def AssembleElementMatrix(self, fe, Trans, elmat):
        r"""AssembleElementMatrix(MixedScalarIntegrator self, FiniteElement fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.MixedScalarIntegrator_AssembleElementMatrix(self, fe, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.MixedScalarIntegrator_AssembleElementMatrix)
    __swig_destroy__ = _bilininteg.delete_MixedScalarIntegrator

# Register MixedScalarIntegrator in _bilininteg:
_bilininteg.MixedScalarIntegrator_swigregister(MixedScalarIntegrator)

class MixedVectorIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::MixedVectorIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat):
        r"""AssembleElementMatrix2(MixedVectorIntegrator self, FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.MixedVectorIntegrator_AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.MixedVectorIntegrator_AssembleElementMatrix2)

    def AssembleElementMatrix(self, fe, Trans, elmat):
        r"""AssembleElementMatrix(MixedVectorIntegrator self, FiniteElement fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.MixedVectorIntegrator_AssembleElementMatrix(self, fe, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.MixedVectorIntegrator_AssembleElementMatrix)
    __swig_destroy__ = _bilininteg.delete_MixedVectorIntegrator

# Register MixedVectorIntegrator in _bilininteg:
_bilininteg.MixedVectorIntegrator_swigregister(MixedVectorIntegrator)

class MixedScalarVectorIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::MixedScalarVectorIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat):
        r"""AssembleElementMatrix2(MixedScalarVectorIntegrator self, FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.MixedScalarVectorIntegrator_AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.MixedScalarVectorIntegrator_AssembleElementMatrix2)

    def AssembleElementMatrix(self, fe, Trans, elmat):
        r"""AssembleElementMatrix(MixedScalarVectorIntegrator self, FiniteElement fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.MixedScalarVectorIntegrator_AssembleElementMatrix(self, fe, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.MixedScalarVectorIntegrator_AssembleElementMatrix)
    __swig_destroy__ = _bilininteg.delete_MixedScalarVectorIntegrator

# Register MixedScalarVectorIntegrator in _bilininteg:
_bilininteg.MixedScalarVectorIntegrator_swigregister(MixedScalarVectorIntegrator)

class MixedScalarMassIntegrator(MixedScalarIntegrator):
    r"""Proxy of C++ mfem::MixedScalarMassIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(MixedScalarMassIntegrator self) -> MixedScalarMassIntegrator
        __init__(MixedScalarMassIntegrator self, Coefficient q) -> MixedScalarMassIntegrator
        """
        _bilininteg.MixedScalarMassIntegrator_swiginit(self, _bilininteg.new_MixedScalarMassIntegrator(*args))
    __swig_destroy__ = _bilininteg.delete_MixedScalarMassIntegrator

# Register MixedScalarMassIntegrator in _bilininteg:
_bilininteg.MixedScalarMassIntegrator_swigregister(MixedScalarMassIntegrator)

class MixedVectorProductIntegrator(MixedScalarVectorIntegrator):
    r"""Proxy of C++ mfem::MixedVectorProductIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedVectorProductIntegrator self, VectorCoefficient vq) -> MixedVectorProductIntegrator"""
        _bilininteg.MixedVectorProductIntegrator_swiginit(self, _bilininteg.new_MixedVectorProductIntegrator(vq))
    __swig_destroy__ = _bilininteg.delete_MixedVectorProductIntegrator

# Register MixedVectorProductIntegrator in _bilininteg:
_bilininteg.MixedVectorProductIntegrator_swigregister(MixedVectorProductIntegrator)

class MixedScalarDerivativeIntegrator(MixedScalarIntegrator):
    r"""Proxy of C++ mfem::MixedScalarDerivativeIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(MixedScalarDerivativeIntegrator self) -> MixedScalarDerivativeIntegrator
        __init__(MixedScalarDerivativeIntegrator self, Coefficient q) -> MixedScalarDerivativeIntegrator
        """
        _bilininteg.MixedScalarDerivativeIntegrator_swiginit(self, _bilininteg.new_MixedScalarDerivativeIntegrator(*args))
    __swig_destroy__ = _bilininteg.delete_MixedScalarDerivativeIntegrator

# Register MixedScalarDerivativeIntegrator in _bilininteg:
_bilininteg.MixedScalarDerivativeIntegrator_swigregister(MixedScalarDerivativeIntegrator)

class MixedScalarWeakDerivativeIntegrator(MixedScalarIntegrator):
    r"""Proxy of C++ mfem::MixedScalarWeakDerivativeIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(MixedScalarWeakDerivativeIntegrator self) -> MixedScalarWeakDerivativeIntegrator
        __init__(MixedScalarWeakDerivativeIntegrator self, Coefficient q) -> MixedScalarWeakDerivativeIntegrator
        """
        _bilininteg.MixedScalarWeakDerivativeIntegrator_swiginit(self, _bilininteg.new_MixedScalarWeakDerivativeIntegrator(*args))
    __swig_destroy__ = _bilininteg.delete_MixedScalarWeakDerivativeIntegrator

# Register MixedScalarWeakDerivativeIntegrator in _bilininteg:
_bilininteg.MixedScalarWeakDerivativeIntegrator_swigregister(MixedScalarWeakDerivativeIntegrator)

class MixedScalarDivergenceIntegrator(MixedScalarIntegrator):
    r"""Proxy of C++ mfem::MixedScalarDivergenceIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(MixedScalarDivergenceIntegrator self) -> MixedScalarDivergenceIntegrator
        __init__(MixedScalarDivergenceIntegrator self, Coefficient q) -> MixedScalarDivergenceIntegrator
        """
        _bilininteg.MixedScalarDivergenceIntegrator_swiginit(self, _bilininteg.new_MixedScalarDivergenceIntegrator(*args))
    __swig_destroy__ = _bilininteg.delete_MixedScalarDivergenceIntegrator

# Register MixedScalarDivergenceIntegrator in _bilininteg:
_bilininteg.MixedScalarDivergenceIntegrator_swigregister(MixedScalarDivergenceIntegrator)

class MixedVectorDivergenceIntegrator(MixedScalarVectorIntegrator):
    r"""Proxy of C++ mfem::MixedVectorDivergenceIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedVectorDivergenceIntegrator self, VectorCoefficient vq) -> MixedVectorDivergenceIntegrator"""
        _bilininteg.MixedVectorDivergenceIntegrator_swiginit(self, _bilininteg.new_MixedVectorDivergenceIntegrator(vq))
    __swig_destroy__ = _bilininteg.delete_MixedVectorDivergenceIntegrator

# Register MixedVectorDivergenceIntegrator in _bilininteg:
_bilininteg.MixedVectorDivergenceIntegrator_swigregister(MixedVectorDivergenceIntegrator)

class MixedScalarWeakGradientIntegrator(MixedScalarIntegrator):
    r"""Proxy of C++ mfem::MixedScalarWeakGradientIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(MixedScalarWeakGradientIntegrator self) -> MixedScalarWeakGradientIntegrator
        __init__(MixedScalarWeakGradientIntegrator self, Coefficient q) -> MixedScalarWeakGradientIntegrator
        """
        _bilininteg.MixedScalarWeakGradientIntegrator_swiginit(self, _bilininteg.new_MixedScalarWeakGradientIntegrator(*args))
    __swig_destroy__ = _bilininteg.delete_MixedScalarWeakGradientIntegrator

# Register MixedScalarWeakGradientIntegrator in _bilininteg:
_bilininteg.MixedScalarWeakGradientIntegrator_swigregister(MixedScalarWeakGradientIntegrator)

class MixedScalarCurlIntegrator(MixedScalarIntegrator):
    r"""Proxy of C++ mfem::MixedScalarCurlIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(MixedScalarCurlIntegrator self) -> MixedScalarCurlIntegrator
        __init__(MixedScalarCurlIntegrator self, Coefficient q) -> MixedScalarCurlIntegrator
        """
        _bilininteg.MixedScalarCurlIntegrator_swiginit(self, _bilininteg.new_MixedScalarCurlIntegrator(*args))
    __swig_destroy__ = _bilininteg.delete_MixedScalarCurlIntegrator

# Register MixedScalarCurlIntegrator in _bilininteg:
_bilininteg.MixedScalarCurlIntegrator_swigregister(MixedScalarCurlIntegrator)

class MixedScalarWeakCurlIntegrator(MixedScalarIntegrator):
    r"""Proxy of C++ mfem::MixedScalarWeakCurlIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(MixedScalarWeakCurlIntegrator self) -> MixedScalarWeakCurlIntegrator
        __init__(MixedScalarWeakCurlIntegrator self, Coefficient q) -> MixedScalarWeakCurlIntegrator
        """
        _bilininteg.MixedScalarWeakCurlIntegrator_swiginit(self, _bilininteg.new_MixedScalarWeakCurlIntegrator(*args))
    __swig_destroy__ = _bilininteg.delete_MixedScalarWeakCurlIntegrator

# Register MixedScalarWeakCurlIntegrator in _bilininteg:
_bilininteg.MixedScalarWeakCurlIntegrator_swigregister(MixedScalarWeakCurlIntegrator)

class MixedVectorMassIntegrator(MixedVectorIntegrator):
    r"""Proxy of C++ mfem::MixedVectorMassIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(MixedVectorMassIntegrator self) -> MixedVectorMassIntegrator
        __init__(MixedVectorMassIntegrator self, Coefficient q) -> MixedVectorMassIntegrator
        __init__(MixedVectorMassIntegrator self, VectorCoefficient dq) -> MixedVectorMassIntegrator
        __init__(MixedVectorMassIntegrator self, MatrixCoefficient mq) -> MixedVectorMassIntegrator
        """
        _bilininteg.MixedVectorMassIntegrator_swiginit(self, _bilininteg.new_MixedVectorMassIntegrator(*args))
    __swig_destroy__ = _bilininteg.delete_MixedVectorMassIntegrator

# Register MixedVectorMassIntegrator in _bilininteg:
_bilininteg.MixedVectorMassIntegrator_swigregister(MixedVectorMassIntegrator)

class MixedCrossProductIntegrator(MixedVectorIntegrator):
    r"""Proxy of C++ mfem::MixedCrossProductIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedCrossProductIntegrator self, VectorCoefficient vq) -> MixedCrossProductIntegrator"""
        _bilininteg.MixedCrossProductIntegrator_swiginit(self, _bilininteg.new_MixedCrossProductIntegrator(vq))
    __swig_destroy__ = _bilininteg.delete_MixedCrossProductIntegrator

# Register MixedCrossProductIntegrator in _bilininteg:
_bilininteg.MixedCrossProductIntegrator_swigregister(MixedCrossProductIntegrator)

class MixedDotProductIntegrator(MixedScalarVectorIntegrator):
    r"""Proxy of C++ mfem::MixedDotProductIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedDotProductIntegrator self, VectorCoefficient vq) -> MixedDotProductIntegrator"""
        _bilininteg.MixedDotProductIntegrator_swiginit(self, _bilininteg.new_MixedDotProductIntegrator(vq))

        self._coeff = vq




    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedDotProductIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedDotProductIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedDotProductIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedDotProductIntegrator self) -> char const *"""
        return _bilininteg.MixedDotProductIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedDotProductIntegrator_FiniteElementTypeFailureMessage)
    __swig_destroy__ = _bilininteg.delete_MixedDotProductIntegrator

# Register MixedDotProductIntegrator in _bilininteg:
_bilininteg.MixedDotProductIntegrator_swigregister(MixedDotProductIntegrator)

class MixedWeakGradDotIntegrator(MixedScalarVectorIntegrator):
    r"""Proxy of C++ mfem::MixedWeakGradDotIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedWeakGradDotIntegrator self, VectorCoefficient vq) -> MixedWeakGradDotIntegrator"""
        _bilininteg.MixedWeakGradDotIntegrator_swiginit(self, _bilininteg.new_MixedWeakGradDotIntegrator(vq))

        self._coeff = vq




    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedWeakGradDotIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedWeakGradDotIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedWeakGradDotIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedWeakGradDotIntegrator self) -> char const *"""
        return _bilininteg.MixedWeakGradDotIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedWeakGradDotIntegrator_FiniteElementTypeFailureMessage)

    def GetIntegrationOrder(self, trial_fe, test_fe, Trans):
        r"""GetIntegrationOrder(MixedWeakGradDotIntegrator self, FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans) -> int"""
        return _bilininteg.MixedWeakGradDotIntegrator_GetIntegrationOrder(self, trial_fe, test_fe, Trans)
    GetIntegrationOrder = _swig_new_instance_method(_bilininteg.MixedWeakGradDotIntegrator_GetIntegrationOrder)

    def CalcShape(self, scalar_fe, Trans, shape):
        r"""CalcShape(MixedWeakGradDotIntegrator self, FiniteElement scalar_fe, ElementTransformation Trans, Vector shape)"""
        return _bilininteg.MixedWeakGradDotIntegrator_CalcShape(self, scalar_fe, Trans, shape)
    CalcShape = _swig_new_instance_method(_bilininteg.MixedWeakGradDotIntegrator_CalcShape)
    __swig_destroy__ = _bilininteg.delete_MixedWeakGradDotIntegrator

# Register MixedWeakGradDotIntegrator in _bilininteg:
_bilininteg.MixedWeakGradDotIntegrator_swigregister(MixedWeakGradDotIntegrator)

class MixedWeakDivCrossIntegrator(MixedVectorIntegrator):
    r"""Proxy of C++ mfem::MixedWeakDivCrossIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedWeakDivCrossIntegrator self, VectorCoefficient vq) -> MixedWeakDivCrossIntegrator"""
        _bilininteg.MixedWeakDivCrossIntegrator_swiginit(self, _bilininteg.new_MixedWeakDivCrossIntegrator(vq))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedWeakDivCrossIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedWeakDivCrossIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedWeakDivCrossIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedWeakDivCrossIntegrator self) -> char const *"""
        return _bilininteg.MixedWeakDivCrossIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedWeakDivCrossIntegrator_FiniteElementTypeFailureMessage)

    def CalcTestShape(self, test_fe, Trans, shape):
        r"""CalcTestShape(MixedWeakDivCrossIntegrator self, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedWeakDivCrossIntegrator_CalcTestShape(self, test_fe, Trans, shape)
    CalcTestShape = _swig_new_instance_method(_bilininteg.MixedWeakDivCrossIntegrator_CalcTestShape)
    __swig_destroy__ = _bilininteg.delete_MixedWeakDivCrossIntegrator

# Register MixedWeakDivCrossIntegrator in _bilininteg:
_bilininteg.MixedWeakDivCrossIntegrator_swigregister(MixedWeakDivCrossIntegrator)

class MixedGradGradIntegrator(MixedVectorIntegrator):
    r"""Proxy of C++ mfem::MixedGradGradIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(MixedGradGradIntegrator self) -> MixedGradGradIntegrator
        __init__(MixedGradGradIntegrator self, Coefficient q) -> MixedGradGradIntegrator
        __init__(MixedGradGradIntegrator self, VectorCoefficient dq) -> MixedGradGradIntegrator
        __init__(MixedGradGradIntegrator self, MatrixCoefficient mq) -> MixedGradGradIntegrator
        """
        _bilininteg.MixedGradGradIntegrator_swiginit(self, _bilininteg.new_MixedGradGradIntegrator(*args))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedGradGradIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedGradGradIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedGradGradIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedGradGradIntegrator self) -> char const *"""
        return _bilininteg.MixedGradGradIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedGradGradIntegrator_FiniteElementTypeFailureMessage)

    def GetIntegrationOrder(self, trial_fe, test_fe, Trans):
        r"""GetIntegrationOrder(MixedGradGradIntegrator self, FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans) -> int"""
        return _bilininteg.MixedGradGradIntegrator_GetIntegrationOrder(self, trial_fe, test_fe, Trans)
    GetIntegrationOrder = _swig_new_instance_method(_bilininteg.MixedGradGradIntegrator_GetIntegrationOrder)

    def CalcTrialShape(self, trial_fe, Trans, shape):
        r"""CalcTrialShape(MixedGradGradIntegrator self, FiniteElement trial_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedGradGradIntegrator_CalcTrialShape(self, trial_fe, Trans, shape)
    CalcTrialShape = _swig_new_instance_method(_bilininteg.MixedGradGradIntegrator_CalcTrialShape)

    def CalcTestShape(self, test_fe, Trans, shape):
        r"""CalcTestShape(MixedGradGradIntegrator self, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedGradGradIntegrator_CalcTestShape(self, test_fe, Trans, shape)
    CalcTestShape = _swig_new_instance_method(_bilininteg.MixedGradGradIntegrator_CalcTestShape)
    __swig_destroy__ = _bilininteg.delete_MixedGradGradIntegrator

# Register MixedGradGradIntegrator in _bilininteg:
_bilininteg.MixedGradGradIntegrator_swigregister(MixedGradGradIntegrator)

class MixedCrossGradGradIntegrator(MixedVectorIntegrator):
    r"""Proxy of C++ mfem::MixedCrossGradGradIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedCrossGradGradIntegrator self, VectorCoefficient vq) -> MixedCrossGradGradIntegrator"""
        _bilininteg.MixedCrossGradGradIntegrator_swiginit(self, _bilininteg.new_MixedCrossGradGradIntegrator(vq))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedCrossGradGradIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedCrossGradGradIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedCrossGradGradIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedCrossGradGradIntegrator self) -> char const *"""
        return _bilininteg.MixedCrossGradGradIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedCrossGradGradIntegrator_FiniteElementTypeFailureMessage)

    def CalcTrialShape(self, trial_fe, Trans, shape):
        r"""CalcTrialShape(MixedCrossGradGradIntegrator self, FiniteElement trial_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedCrossGradGradIntegrator_CalcTrialShape(self, trial_fe, Trans, shape)
    CalcTrialShape = _swig_new_instance_method(_bilininteg.MixedCrossGradGradIntegrator_CalcTrialShape)

    def CalcTestShape(self, test_fe, Trans, shape):
        r"""CalcTestShape(MixedCrossGradGradIntegrator self, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedCrossGradGradIntegrator_CalcTestShape(self, test_fe, Trans, shape)
    CalcTestShape = _swig_new_instance_method(_bilininteg.MixedCrossGradGradIntegrator_CalcTestShape)
    __swig_destroy__ = _bilininteg.delete_MixedCrossGradGradIntegrator

# Register MixedCrossGradGradIntegrator in _bilininteg:
_bilininteg.MixedCrossGradGradIntegrator_swigregister(MixedCrossGradGradIntegrator)

class MixedCurlCurlIntegrator(MixedVectorIntegrator):
    r"""Proxy of C++ mfem::MixedCurlCurlIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(MixedCurlCurlIntegrator self) -> MixedCurlCurlIntegrator
        __init__(MixedCurlCurlIntegrator self, Coefficient q) -> MixedCurlCurlIntegrator
        __init__(MixedCurlCurlIntegrator self, VectorCoefficient dq) -> MixedCurlCurlIntegrator
        __init__(MixedCurlCurlIntegrator self, MatrixCoefficient mq) -> MixedCurlCurlIntegrator
        """
        _bilininteg.MixedCurlCurlIntegrator_swiginit(self, _bilininteg.new_MixedCurlCurlIntegrator(*args))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedCurlCurlIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedCurlCurlIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedCurlCurlIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedCurlCurlIntegrator self) -> char const *"""
        return _bilininteg.MixedCurlCurlIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedCurlCurlIntegrator_FiniteElementTypeFailureMessage)

    def CalcTrialShape(self, trial_fe, Trans, shape):
        r"""CalcTrialShape(MixedCurlCurlIntegrator self, FiniteElement trial_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedCurlCurlIntegrator_CalcTrialShape(self, trial_fe, Trans, shape)
    CalcTrialShape = _swig_new_instance_method(_bilininteg.MixedCurlCurlIntegrator_CalcTrialShape)

    def CalcTestShape(self, test_fe, Trans, shape):
        r"""CalcTestShape(MixedCurlCurlIntegrator self, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedCurlCurlIntegrator_CalcTestShape(self, test_fe, Trans, shape)
    CalcTestShape = _swig_new_instance_method(_bilininteg.MixedCurlCurlIntegrator_CalcTestShape)
    __swig_destroy__ = _bilininteg.delete_MixedCurlCurlIntegrator

# Register MixedCurlCurlIntegrator in _bilininteg:
_bilininteg.MixedCurlCurlIntegrator_swigregister(MixedCurlCurlIntegrator)

class MixedCrossCurlCurlIntegrator(MixedVectorIntegrator):
    r"""Proxy of C++ mfem::MixedCrossCurlCurlIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedCrossCurlCurlIntegrator self, VectorCoefficient vq) -> MixedCrossCurlCurlIntegrator"""
        _bilininteg.MixedCrossCurlCurlIntegrator_swiginit(self, _bilininteg.new_MixedCrossCurlCurlIntegrator(vq))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedCrossCurlCurlIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedCrossCurlCurlIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedCrossCurlCurlIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedCrossCurlCurlIntegrator self) -> char const *"""
        return _bilininteg.MixedCrossCurlCurlIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedCrossCurlCurlIntegrator_FiniteElementTypeFailureMessage)

    def CalcTrialShape(self, trial_fe, Trans, shape):
        r"""CalcTrialShape(MixedCrossCurlCurlIntegrator self, FiniteElement trial_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedCrossCurlCurlIntegrator_CalcTrialShape(self, trial_fe, Trans, shape)
    CalcTrialShape = _swig_new_instance_method(_bilininteg.MixedCrossCurlCurlIntegrator_CalcTrialShape)

    def CalcTestShape(self, test_fe, Trans, shape):
        r"""CalcTestShape(MixedCrossCurlCurlIntegrator self, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedCrossCurlCurlIntegrator_CalcTestShape(self, test_fe, Trans, shape)
    CalcTestShape = _swig_new_instance_method(_bilininteg.MixedCrossCurlCurlIntegrator_CalcTestShape)
    __swig_destroy__ = _bilininteg.delete_MixedCrossCurlCurlIntegrator

# Register MixedCrossCurlCurlIntegrator in _bilininteg:
_bilininteg.MixedCrossCurlCurlIntegrator_swigregister(MixedCrossCurlCurlIntegrator)

class MixedCrossCurlGradIntegrator(MixedVectorIntegrator):
    r"""Proxy of C++ mfem::MixedCrossCurlGradIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedCrossCurlGradIntegrator self, VectorCoefficient vq) -> MixedCrossCurlGradIntegrator"""
        _bilininteg.MixedCrossCurlGradIntegrator_swiginit(self, _bilininteg.new_MixedCrossCurlGradIntegrator(vq))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedCrossCurlGradIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedCrossCurlGradIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedCrossCurlGradIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedCrossCurlGradIntegrator self) -> char const *"""
        return _bilininteg.MixedCrossCurlGradIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedCrossCurlGradIntegrator_FiniteElementTypeFailureMessage)

    def CalcTrialShape(self, trial_fe, Trans, shape):
        r"""CalcTrialShape(MixedCrossCurlGradIntegrator self, FiniteElement trial_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedCrossCurlGradIntegrator_CalcTrialShape(self, trial_fe, Trans, shape)
    CalcTrialShape = _swig_new_instance_method(_bilininteg.MixedCrossCurlGradIntegrator_CalcTrialShape)

    def CalcTestShape(self, test_fe, Trans, shape):
        r"""CalcTestShape(MixedCrossCurlGradIntegrator self, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedCrossCurlGradIntegrator_CalcTestShape(self, test_fe, Trans, shape)
    CalcTestShape = _swig_new_instance_method(_bilininteg.MixedCrossCurlGradIntegrator_CalcTestShape)
    __swig_destroy__ = _bilininteg.delete_MixedCrossCurlGradIntegrator

# Register MixedCrossCurlGradIntegrator in _bilininteg:
_bilininteg.MixedCrossCurlGradIntegrator_swigregister(MixedCrossCurlGradIntegrator)

class MixedCrossGradCurlIntegrator(MixedVectorIntegrator):
    r"""Proxy of C++ mfem::MixedCrossGradCurlIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedCrossGradCurlIntegrator self, VectorCoefficient vq) -> MixedCrossGradCurlIntegrator"""
        _bilininteg.MixedCrossGradCurlIntegrator_swiginit(self, _bilininteg.new_MixedCrossGradCurlIntegrator(vq))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedCrossGradCurlIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedCrossGradCurlIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedCrossGradCurlIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedCrossGradCurlIntegrator self) -> char const *"""
        return _bilininteg.MixedCrossGradCurlIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedCrossGradCurlIntegrator_FiniteElementTypeFailureMessage)

    def CalcTrialShape(self, trial_fe, Trans, shape):
        r"""CalcTrialShape(MixedCrossGradCurlIntegrator self, FiniteElement trial_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedCrossGradCurlIntegrator_CalcTrialShape(self, trial_fe, Trans, shape)
    CalcTrialShape = _swig_new_instance_method(_bilininteg.MixedCrossGradCurlIntegrator_CalcTrialShape)

    def CalcTestShape(self, test_fe, Trans, shape):
        r"""CalcTestShape(MixedCrossGradCurlIntegrator self, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedCrossGradCurlIntegrator_CalcTestShape(self, test_fe, Trans, shape)
    CalcTestShape = _swig_new_instance_method(_bilininteg.MixedCrossGradCurlIntegrator_CalcTestShape)
    __swig_destroy__ = _bilininteg.delete_MixedCrossGradCurlIntegrator

# Register MixedCrossGradCurlIntegrator in _bilininteg:
_bilininteg.MixedCrossGradCurlIntegrator_swigregister(MixedCrossGradCurlIntegrator)

class MixedWeakCurlCrossIntegrator(MixedVectorIntegrator):
    r"""Proxy of C++ mfem::MixedWeakCurlCrossIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedWeakCurlCrossIntegrator self, VectorCoefficient vq) -> MixedWeakCurlCrossIntegrator"""
        _bilininteg.MixedWeakCurlCrossIntegrator_swiginit(self, _bilininteg.new_MixedWeakCurlCrossIntegrator(vq))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedWeakCurlCrossIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedWeakCurlCrossIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedWeakCurlCrossIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedWeakCurlCrossIntegrator self) -> char const *"""
        return _bilininteg.MixedWeakCurlCrossIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedWeakCurlCrossIntegrator_FiniteElementTypeFailureMessage)

    def CalcTestShape(self, test_fe, Trans, shape):
        r"""CalcTestShape(MixedWeakCurlCrossIntegrator self, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedWeakCurlCrossIntegrator_CalcTestShape(self, test_fe, Trans, shape)
    CalcTestShape = _swig_new_instance_method(_bilininteg.MixedWeakCurlCrossIntegrator_CalcTestShape)
    __swig_destroy__ = _bilininteg.delete_MixedWeakCurlCrossIntegrator

# Register MixedWeakCurlCrossIntegrator in _bilininteg:
_bilininteg.MixedWeakCurlCrossIntegrator_swigregister(MixedWeakCurlCrossIntegrator)

class MixedScalarWeakCurlCrossIntegrator(MixedScalarVectorIntegrator):
    r"""Proxy of C++ mfem::MixedScalarWeakCurlCrossIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedScalarWeakCurlCrossIntegrator self, VectorCoefficient vq) -> MixedScalarWeakCurlCrossIntegrator"""
        _bilininteg.MixedScalarWeakCurlCrossIntegrator_swiginit(self, _bilininteg.new_MixedScalarWeakCurlCrossIntegrator(vq))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedScalarWeakCurlCrossIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedScalarWeakCurlCrossIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedScalarWeakCurlCrossIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedScalarWeakCurlCrossIntegrator self) -> char const *"""
        return _bilininteg.MixedScalarWeakCurlCrossIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedScalarWeakCurlCrossIntegrator_FiniteElementTypeFailureMessage)

    def CalcShape(self, scalar_fe, Trans, shape):
        r"""CalcShape(MixedScalarWeakCurlCrossIntegrator self, FiniteElement scalar_fe, ElementTransformation Trans, Vector shape)"""
        return _bilininteg.MixedScalarWeakCurlCrossIntegrator_CalcShape(self, scalar_fe, Trans, shape)
    CalcShape = _swig_new_instance_method(_bilininteg.MixedScalarWeakCurlCrossIntegrator_CalcShape)
    __swig_destroy__ = _bilininteg.delete_MixedScalarWeakCurlCrossIntegrator

# Register MixedScalarWeakCurlCrossIntegrator in _bilininteg:
_bilininteg.MixedScalarWeakCurlCrossIntegrator_swigregister(MixedScalarWeakCurlCrossIntegrator)

class MixedCrossGradIntegrator(MixedVectorIntegrator):
    r"""Proxy of C++ mfem::MixedCrossGradIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedCrossGradIntegrator self, VectorCoefficient vq) -> MixedCrossGradIntegrator"""
        _bilininteg.MixedCrossGradIntegrator_swiginit(self, _bilininteg.new_MixedCrossGradIntegrator(vq))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedCrossGradIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedCrossGradIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedCrossGradIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedCrossGradIntegrator self) -> char const *"""
        return _bilininteg.MixedCrossGradIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedCrossGradIntegrator_FiniteElementTypeFailureMessage)

    def CalcTrialShape(self, trial_fe, Trans, shape):
        r"""CalcTrialShape(MixedCrossGradIntegrator self, FiniteElement trial_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedCrossGradIntegrator_CalcTrialShape(self, trial_fe, Trans, shape)
    CalcTrialShape = _swig_new_instance_method(_bilininteg.MixedCrossGradIntegrator_CalcTrialShape)

    def CalcTestShape(self, test_fe, Trans, shape):
        r"""CalcTestShape(MixedCrossGradIntegrator self, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedCrossGradIntegrator_CalcTestShape(self, test_fe, Trans, shape)
    CalcTestShape = _swig_new_instance_method(_bilininteg.MixedCrossGradIntegrator_CalcTestShape)
    __swig_destroy__ = _bilininteg.delete_MixedCrossGradIntegrator

# Register MixedCrossGradIntegrator in _bilininteg:
_bilininteg.MixedCrossGradIntegrator_swigregister(MixedCrossGradIntegrator)

class MixedCrossCurlIntegrator(MixedVectorIntegrator):
    r"""Proxy of C++ mfem::MixedCrossCurlIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedCrossCurlIntegrator self, VectorCoefficient vq) -> MixedCrossCurlIntegrator"""
        _bilininteg.MixedCrossCurlIntegrator_swiginit(self, _bilininteg.new_MixedCrossCurlIntegrator(vq))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedCrossCurlIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedCrossCurlIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedCrossCurlIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedCrossCurlIntegrator self) -> char const *"""
        return _bilininteg.MixedCrossCurlIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedCrossCurlIntegrator_FiniteElementTypeFailureMessage)

    def CalcTrialShape(self, trial_fe, Trans, shape):
        r"""CalcTrialShape(MixedCrossCurlIntegrator self, FiniteElement trial_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedCrossCurlIntegrator_CalcTrialShape(self, trial_fe, Trans, shape)
    CalcTrialShape = _swig_new_instance_method(_bilininteg.MixedCrossCurlIntegrator_CalcTrialShape)
    __swig_destroy__ = _bilininteg.delete_MixedCrossCurlIntegrator

# Register MixedCrossCurlIntegrator in _bilininteg:
_bilininteg.MixedCrossCurlIntegrator_swigregister(MixedCrossCurlIntegrator)

class MixedScalarCrossCurlIntegrator(MixedScalarVectorIntegrator):
    r"""Proxy of C++ mfem::MixedScalarCrossCurlIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedScalarCrossCurlIntegrator self, VectorCoefficient vq) -> MixedScalarCrossCurlIntegrator"""
        _bilininteg.MixedScalarCrossCurlIntegrator_swiginit(self, _bilininteg.new_MixedScalarCrossCurlIntegrator(vq))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedScalarCrossCurlIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedScalarCrossCurlIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedScalarCrossCurlIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedScalarCrossCurlIntegrator self) -> char const *"""
        return _bilininteg.MixedScalarCrossCurlIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedScalarCrossCurlIntegrator_FiniteElementTypeFailureMessage)

    def CalcShape(self, scalar_fe, Trans, shape):
        r"""CalcShape(MixedScalarCrossCurlIntegrator self, FiniteElement scalar_fe, ElementTransformation Trans, Vector shape)"""
        return _bilininteg.MixedScalarCrossCurlIntegrator_CalcShape(self, scalar_fe, Trans, shape)
    CalcShape = _swig_new_instance_method(_bilininteg.MixedScalarCrossCurlIntegrator_CalcShape)
    __swig_destroy__ = _bilininteg.delete_MixedScalarCrossCurlIntegrator

# Register MixedScalarCrossCurlIntegrator in _bilininteg:
_bilininteg.MixedScalarCrossCurlIntegrator_swigregister(MixedScalarCrossCurlIntegrator)

class MixedScalarCrossGradIntegrator(MixedScalarVectorIntegrator):
    r"""Proxy of C++ mfem::MixedScalarCrossGradIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedScalarCrossGradIntegrator self, VectorCoefficient vq) -> MixedScalarCrossGradIntegrator"""
        _bilininteg.MixedScalarCrossGradIntegrator_swiginit(self, _bilininteg.new_MixedScalarCrossGradIntegrator(vq))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedScalarCrossGradIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedScalarCrossGradIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedScalarCrossGradIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedScalarCrossGradIntegrator self) -> char const *"""
        return _bilininteg.MixedScalarCrossGradIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedScalarCrossGradIntegrator_FiniteElementTypeFailureMessage)

    def CalcVShape(self, vector_fe, Trans, shape):
        r"""CalcVShape(MixedScalarCrossGradIntegrator self, FiniteElement vector_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedScalarCrossGradIntegrator_CalcVShape(self, vector_fe, Trans, shape)
    CalcVShape = _swig_new_instance_method(_bilininteg.MixedScalarCrossGradIntegrator_CalcVShape)
    __swig_destroy__ = _bilininteg.delete_MixedScalarCrossGradIntegrator

# Register MixedScalarCrossGradIntegrator in _bilininteg:
_bilininteg.MixedScalarCrossGradIntegrator_swigregister(MixedScalarCrossGradIntegrator)

class MixedScalarCrossProductIntegrator(MixedScalarVectorIntegrator):
    r"""Proxy of C++ mfem::MixedScalarCrossProductIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedScalarCrossProductIntegrator self, VectorCoefficient vq) -> MixedScalarCrossProductIntegrator"""
        _bilininteg.MixedScalarCrossProductIntegrator_swiginit(self, _bilininteg.new_MixedScalarCrossProductIntegrator(vq))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedScalarCrossProductIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedScalarCrossProductIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedScalarCrossProductIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedScalarCrossProductIntegrator self) -> char const *"""
        return _bilininteg.MixedScalarCrossProductIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedScalarCrossProductIntegrator_FiniteElementTypeFailureMessage)
    __swig_destroy__ = _bilininteg.delete_MixedScalarCrossProductIntegrator

# Register MixedScalarCrossProductIntegrator in _bilininteg:
_bilininteg.MixedScalarCrossProductIntegrator_swigregister(MixedScalarCrossProductIntegrator)

class MixedScalarWeakCrossProductIntegrator(MixedScalarVectorIntegrator):
    r"""Proxy of C++ mfem::MixedScalarWeakCrossProductIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedScalarWeakCrossProductIntegrator self, VectorCoefficient vq) -> MixedScalarWeakCrossProductIntegrator"""
        _bilininteg.MixedScalarWeakCrossProductIntegrator_swiginit(self, _bilininteg.new_MixedScalarWeakCrossProductIntegrator(vq))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedScalarWeakCrossProductIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedScalarWeakCrossProductIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedScalarWeakCrossProductIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedScalarWeakCrossProductIntegrator self) -> char const *"""
        return _bilininteg.MixedScalarWeakCrossProductIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedScalarWeakCrossProductIntegrator_FiniteElementTypeFailureMessage)

    def CalcShape(self, scalar_fe, Trans, shape):
        r"""CalcShape(MixedScalarWeakCrossProductIntegrator self, FiniteElement scalar_fe, ElementTransformation Trans, Vector shape)"""
        return _bilininteg.MixedScalarWeakCrossProductIntegrator_CalcShape(self, scalar_fe, Trans, shape)
    CalcShape = _swig_new_instance_method(_bilininteg.MixedScalarWeakCrossProductIntegrator_CalcShape)
    __swig_destroy__ = _bilininteg.delete_MixedScalarWeakCrossProductIntegrator

# Register MixedScalarWeakCrossProductIntegrator in _bilininteg:
_bilininteg.MixedScalarWeakCrossProductIntegrator_swigregister(MixedScalarWeakCrossProductIntegrator)

class MixedDirectionalDerivativeIntegrator(MixedScalarVectorIntegrator):
    r"""Proxy of C++ mfem::MixedDirectionalDerivativeIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedDirectionalDerivativeIntegrator self, VectorCoefficient vq) -> MixedDirectionalDerivativeIntegrator"""
        _bilininteg.MixedDirectionalDerivativeIntegrator_swiginit(self, _bilininteg.new_MixedDirectionalDerivativeIntegrator(vq))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedDirectionalDerivativeIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedDirectionalDerivativeIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedDirectionalDerivativeIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedDirectionalDerivativeIntegrator self) -> char const *"""
        return _bilininteg.MixedDirectionalDerivativeIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedDirectionalDerivativeIntegrator_FiniteElementTypeFailureMessage)

    def CalcVShape(self, vector_fe, Trans, shape):
        r"""CalcVShape(MixedDirectionalDerivativeIntegrator self, FiniteElement vector_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedDirectionalDerivativeIntegrator_CalcVShape(self, vector_fe, Trans, shape)
    CalcVShape = _swig_new_instance_method(_bilininteg.MixedDirectionalDerivativeIntegrator_CalcVShape)
    __swig_destroy__ = _bilininteg.delete_MixedDirectionalDerivativeIntegrator

# Register MixedDirectionalDerivativeIntegrator in _bilininteg:
_bilininteg.MixedDirectionalDerivativeIntegrator_swigregister(MixedDirectionalDerivativeIntegrator)

class MixedGradDivIntegrator(MixedScalarVectorIntegrator):
    r"""Proxy of C++ mfem::MixedGradDivIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedGradDivIntegrator self, VectorCoefficient vq) -> MixedGradDivIntegrator"""
        _bilininteg.MixedGradDivIntegrator_swiginit(self, _bilininteg.new_MixedGradDivIntegrator(vq))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedGradDivIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedGradDivIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedGradDivIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedGradDivIntegrator self) -> char const *"""
        return _bilininteg.MixedGradDivIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedGradDivIntegrator_FiniteElementTypeFailureMessage)

    def CalcVShape(self, vector_fe, Trans, shape):
        r"""CalcVShape(MixedGradDivIntegrator self, FiniteElement vector_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedGradDivIntegrator_CalcVShape(self, vector_fe, Trans, shape)
    CalcVShape = _swig_new_instance_method(_bilininteg.MixedGradDivIntegrator_CalcVShape)

    def CalcShape(self, scalar_fe, Trans, shape):
        r"""CalcShape(MixedGradDivIntegrator self, FiniteElement scalar_fe, ElementTransformation Trans, Vector shape)"""
        return _bilininteg.MixedGradDivIntegrator_CalcShape(self, scalar_fe, Trans, shape)
    CalcShape = _swig_new_instance_method(_bilininteg.MixedGradDivIntegrator_CalcShape)
    __swig_destroy__ = _bilininteg.delete_MixedGradDivIntegrator

# Register MixedGradDivIntegrator in _bilininteg:
_bilininteg.MixedGradDivIntegrator_swigregister(MixedGradDivIntegrator)

class MixedDivGradIntegrator(MixedScalarVectorIntegrator):
    r"""Proxy of C++ mfem::MixedDivGradIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedDivGradIntegrator self, VectorCoefficient vq) -> MixedDivGradIntegrator"""
        _bilininteg.MixedDivGradIntegrator_swiginit(self, _bilininteg.new_MixedDivGradIntegrator(vq))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedDivGradIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedDivGradIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedDivGradIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedDivGradIntegrator self) -> char const *"""
        return _bilininteg.MixedDivGradIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedDivGradIntegrator_FiniteElementTypeFailureMessage)

    def CalcVShape(self, vector_fe, Trans, shape):
        r"""CalcVShape(MixedDivGradIntegrator self, FiniteElement vector_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedDivGradIntegrator_CalcVShape(self, vector_fe, Trans, shape)
    CalcVShape = _swig_new_instance_method(_bilininteg.MixedDivGradIntegrator_CalcVShape)

    def CalcShape(self, scalar_fe, Trans, shape):
        r"""CalcShape(MixedDivGradIntegrator self, FiniteElement scalar_fe, ElementTransformation Trans, Vector shape)"""
        return _bilininteg.MixedDivGradIntegrator_CalcShape(self, scalar_fe, Trans, shape)
    CalcShape = _swig_new_instance_method(_bilininteg.MixedDivGradIntegrator_CalcShape)
    __swig_destroy__ = _bilininteg.delete_MixedDivGradIntegrator

# Register MixedDivGradIntegrator in _bilininteg:
_bilininteg.MixedDivGradIntegrator_swigregister(MixedDivGradIntegrator)

class MixedScalarWeakDivergenceIntegrator(MixedScalarVectorIntegrator):
    r"""Proxy of C++ mfem::MixedScalarWeakDivergenceIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vq):
        r"""__init__(MixedScalarWeakDivergenceIntegrator self, VectorCoefficient vq) -> MixedScalarWeakDivergenceIntegrator"""
        _bilininteg.MixedScalarWeakDivergenceIntegrator_swiginit(self, _bilininteg.new_MixedScalarWeakDivergenceIntegrator(vq))

    def VerifyFiniteElementTypes(self, trial_fe, test_fe):
        r"""VerifyFiniteElementTypes(MixedScalarWeakDivergenceIntegrator self, FiniteElement trial_fe, FiniteElement test_fe) -> bool"""
        return _bilininteg.MixedScalarWeakDivergenceIntegrator_VerifyFiniteElementTypes(self, trial_fe, test_fe)
    VerifyFiniteElementTypes = _swig_new_instance_method(_bilininteg.MixedScalarWeakDivergenceIntegrator_VerifyFiniteElementTypes)

    def FiniteElementTypeFailureMessage(self):
        r"""FiniteElementTypeFailureMessage(MixedScalarWeakDivergenceIntegrator self) -> char const *"""
        return _bilininteg.MixedScalarWeakDivergenceIntegrator_FiniteElementTypeFailureMessage(self)
    FiniteElementTypeFailureMessage = _swig_new_instance_method(_bilininteg.MixedScalarWeakDivergenceIntegrator_FiniteElementTypeFailureMessage)

    def CalcVShape(self, vector_fe, Trans, shape):
        r"""CalcVShape(MixedScalarWeakDivergenceIntegrator self, FiniteElement vector_fe, ElementTransformation Trans, DenseMatrix shape)"""
        return _bilininteg.MixedScalarWeakDivergenceIntegrator_CalcVShape(self, vector_fe, Trans, shape)
    CalcVShape = _swig_new_instance_method(_bilininteg.MixedScalarWeakDivergenceIntegrator_CalcVShape)
    __swig_destroy__ = _bilininteg.delete_MixedScalarWeakDivergenceIntegrator

# Register MixedScalarWeakDivergenceIntegrator in _bilininteg:
_bilininteg.MixedScalarWeakDivergenceIntegrator_swigregister(MixedScalarWeakDivergenceIntegrator)

class MixedVectorGradientIntegrator(MixedVectorIntegrator):
    r"""Proxy of C++ mfem::MixedVectorGradientIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(MixedVectorGradientIntegrator self) -> MixedVectorGradientIntegrator
        __init__(MixedVectorGradientIntegrator self, Coefficient q) -> MixedVectorGradientIntegrator
        __init__(MixedVectorGradientIntegrator self, VectorCoefficient dq) -> MixedVectorGradientIntegrator
        __init__(MixedVectorGradientIntegrator self, MatrixCoefficient mq) -> MixedVectorGradientIntegrator
        """
        _bilininteg.MixedVectorGradientIntegrator_swiginit(self, _bilininteg.new_MixedVectorGradientIntegrator(*args))

        if len(args) > 0: self._coeff = args[0]



    __swig_destroy__ = _bilininteg.delete_MixedVectorGradientIntegrator

# Register MixedVectorGradientIntegrator in _bilininteg:
_bilininteg.MixedVectorGradientIntegrator_swigregister(MixedVectorGradientIntegrator)

class MixedVectorCurlIntegrator(MixedVectorIntegrator):
    r"""Proxy of C++ mfem::MixedVectorCurlIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(MixedVectorCurlIntegrator self) -> MixedVectorCurlIntegrator
        __init__(MixedVectorCurlIntegrator self, Coefficient q) -> MixedVectorCurlIntegrator
        __init__(MixedVectorCurlIntegrator self, VectorCoefficient dq) -> MixedVectorCurlIntegrator
        __init__(MixedVectorCurlIntegrator self, MatrixCoefficient mq) -> MixedVectorCurlIntegrator
        """
        _bilininteg.MixedVectorCurlIntegrator_swiginit(self, _bilininteg.new_MixedVectorCurlIntegrator(*args))
    __swig_destroy__ = _bilininteg.delete_MixedVectorCurlIntegrator

# Register MixedVectorCurlIntegrator in _bilininteg:
_bilininteg.MixedVectorCurlIntegrator_swigregister(MixedVectorCurlIntegrator)

class MixedVectorWeakCurlIntegrator(MixedVectorIntegrator):
    r"""Proxy of C++ mfem::MixedVectorWeakCurlIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(MixedVectorWeakCurlIntegrator self) -> MixedVectorWeakCurlIntegrator
        __init__(MixedVectorWeakCurlIntegrator self, Coefficient q) -> MixedVectorWeakCurlIntegrator
        __init__(MixedVectorWeakCurlIntegrator self, VectorCoefficient dq) -> MixedVectorWeakCurlIntegrator
        __init__(MixedVectorWeakCurlIntegrator self, MatrixCoefficient mq) -> MixedVectorWeakCurlIntegrator
        """
        _bilininteg.MixedVectorWeakCurlIntegrator_swiginit(self, _bilininteg.new_MixedVectorWeakCurlIntegrator(*args))
    __swig_destroy__ = _bilininteg.delete_MixedVectorWeakCurlIntegrator

# Register MixedVectorWeakCurlIntegrator in _bilininteg:
_bilininteg.MixedVectorWeakCurlIntegrator_swigregister(MixedVectorWeakCurlIntegrator)

class MixedVectorWeakDivergenceIntegrator(MixedVectorIntegrator):
    r"""Proxy of C++ mfem::MixedVectorWeakDivergenceIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(MixedVectorWeakDivergenceIntegrator self) -> MixedVectorWeakDivergenceIntegrator
        __init__(MixedVectorWeakDivergenceIntegrator self, Coefficient q) -> MixedVectorWeakDivergenceIntegrator
        __init__(MixedVectorWeakDivergenceIntegrator self, VectorCoefficient dq) -> MixedVectorWeakDivergenceIntegrator
        __init__(MixedVectorWeakDivergenceIntegrator self, MatrixCoefficient mq) -> MixedVectorWeakDivergenceIntegrator
        """
        _bilininteg.MixedVectorWeakDivergenceIntegrator_swiginit(self, _bilininteg.new_MixedVectorWeakDivergenceIntegrator(*args))

        if len(args) > 0: self._coeff = args[0]



    __swig_destroy__ = _bilininteg.delete_MixedVectorWeakDivergenceIntegrator

# Register MixedVectorWeakDivergenceIntegrator in _bilininteg:
_bilininteg.MixedVectorWeakDivergenceIntegrator_swigregister(MixedVectorWeakDivergenceIntegrator)

class GradientIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::GradientIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(GradientIntegrator self) -> GradientIntegrator
        __init__(GradientIntegrator self, Coefficient _q) -> GradientIntegrator
        __init__(GradientIntegrator self, Coefficient q) -> GradientIntegrator
        """
        _bilininteg.GradientIntegrator_swiginit(self, _bilininteg.new_GradientIntegrator(*args))

    def AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat):
        r"""AssembleElementMatrix2(GradientIntegrator self, FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.GradientIntegrator_AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.GradientIntegrator_AssembleElementMatrix2)

    def AssemblePA(self, *args):
        r"""
        AssemblePA(GradientIntegrator self, FiniteElementSpace fes)
        AssemblePA(GradientIntegrator self, FiniteElementSpace trial_fes, FiniteElementSpace test_fes)
        AssemblePA(GradientIntegrator self, FiniteElementSpace trial_fes, FiniteElementSpace test_fes)
        """
        return _bilininteg.GradientIntegrator_AssemblePA(self, *args)
    AssemblePA = _swig_new_instance_method(_bilininteg.GradientIntegrator_AssemblePA)

    def AddMultPA(self, x, y):
        r"""AddMultPA(GradientIntegrator self, Vector x, Vector y)"""
        return _bilininteg.GradientIntegrator_AddMultPA(self, x, y)
    AddMultPA = _swig_new_instance_method(_bilininteg.GradientIntegrator_AddMultPA)

    def AddMultTransposePA(self, x, y):
        r"""AddMultTransposePA(GradientIntegrator self, Vector x, Vector y)"""
        return _bilininteg.GradientIntegrator_AddMultTransposePA(self, x, y)
    AddMultTransposePA = _swig_new_instance_method(_bilininteg.GradientIntegrator_AddMultTransposePA)

    @staticmethod
    def GetRule(trial_fe, test_fe, Trans):
        r"""GetRule(FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans) -> IntegrationRule"""
        return _bilininteg.GradientIntegrator_GetRule(trial_fe, test_fe, Trans)
    GetRule = _swig_new_static_method(_bilininteg.GradientIntegrator_GetRule)
    __swig_destroy__ = _bilininteg.delete_GradientIntegrator

# Register GradientIntegrator in _bilininteg:
_bilininteg.GradientIntegrator_swigregister(GradientIntegrator)

def GradientIntegrator_GetRule(trial_fe, test_fe, Trans):
    r"""GradientIntegrator_GetRule(FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans) -> IntegrationRule"""
    return _bilininteg.GradientIntegrator_GetRule(trial_fe, test_fe, Trans)
GradientIntegrator_GetRule = _bilininteg.GradientIntegrator_GetRule

class DiffusionIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::DiffusionIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(DiffusionIntegrator self) -> DiffusionIntegrator
        __init__(DiffusionIntegrator self, Coefficient q) -> DiffusionIntegrator
        __init__(DiffusionIntegrator self, VectorCoefficient q) -> DiffusionIntegrator
        __init__(DiffusionIntegrator self, MatrixCoefficient q) -> DiffusionIntegrator
        """
        _bilininteg.DiffusionIntegrator_swiginit(self, _bilininteg.new_DiffusionIntegrator(*args))

        if len(args) > 0: self._coeff = args[0]



    __swig_destroy__ = _bilininteg.delete_DiffusionIntegrator

    def AssembleElementMatrix(self, el, Trans, elmat):
        r"""AssembleElementMatrix(DiffusionIntegrator self, FiniteElement el, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.DiffusionIntegrator_AssembleElementMatrix(self, el, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.DiffusionIntegrator_AssembleElementMatrix)

    def AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat):
        r"""AssembleElementMatrix2(DiffusionIntegrator self, FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.DiffusionIntegrator_AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.DiffusionIntegrator_AssembleElementMatrix2)

    def AssembleElementVector(self, el, Tr, elfun, elvect):
        r"""AssembleElementVector(DiffusionIntegrator self, FiniteElement el, ElementTransformation Tr, Vector elfun, Vector elvect)"""
        return _bilininteg.DiffusionIntegrator_AssembleElementVector(self, el, Tr, elfun, elvect)
    AssembleElementVector = _swig_new_instance_method(_bilininteg.DiffusionIntegrator_AssembleElementVector)

    def ComputeElementFlux(self, el, Trans, u, fluxelem, flux, with_coef=True):
        r"""ComputeElementFlux(DiffusionIntegrator self, FiniteElement el, ElementTransformation Trans, Vector u, FiniteElement fluxelem, Vector flux, bool with_coef=True)"""
        return _bilininteg.DiffusionIntegrator_ComputeElementFlux(self, el, Trans, u, fluxelem, flux, with_coef)
    ComputeElementFlux = _swig_new_instance_method(_bilininteg.DiffusionIntegrator_ComputeElementFlux)

    def ComputeFluxEnergy(self, fluxelem, Trans, flux, d_energy=None):
        r"""ComputeFluxEnergy(DiffusionIntegrator self, FiniteElement fluxelem, ElementTransformation Trans, Vector flux, Vector d_energy=None) -> double"""
        return _bilininteg.DiffusionIntegrator_ComputeFluxEnergy(self, fluxelem, Trans, flux, d_energy)
    ComputeFluxEnergy = _swig_new_instance_method(_bilininteg.DiffusionIntegrator_ComputeFluxEnergy)

    def AssembleMF(self, fes):
        r"""AssembleMF(DiffusionIntegrator self, FiniteElementSpace fes)"""
        return _bilininteg.DiffusionIntegrator_AssembleMF(self, fes)
    AssembleMF = _swig_new_instance_method(_bilininteg.DiffusionIntegrator_AssembleMF)

    def AssemblePA(self, *args):
        r"""
        AssemblePA(DiffusionIntegrator self, FiniteElementSpace fes)
        AssemblePA(DiffusionIntegrator self, FiniteElementSpace trial_fes, FiniteElementSpace test_fes)
        AssemblePA(DiffusionIntegrator self, FiniteElementSpace fes)
        """
        return _bilininteg.DiffusionIntegrator_AssemblePA(self, *args)
    AssemblePA = _swig_new_instance_method(_bilininteg.DiffusionIntegrator_AssemblePA)

    def AssembleEA(self, fes, emat, add):
        r"""AssembleEA(DiffusionIntegrator self, FiniteElementSpace fes, Vector emat, bool const add)"""
        return _bilininteg.DiffusionIntegrator_AssembleEA(self, fes, emat, add)
    AssembleEA = _swig_new_instance_method(_bilininteg.DiffusionIntegrator_AssembleEA)

    def AssembleDiagonalPA(self, diag):
        r"""AssembleDiagonalPA(DiffusionIntegrator self, Vector diag)"""
        return _bilininteg.DiffusionIntegrator_AssembleDiagonalPA(self, diag)
    AssembleDiagonalPA = _swig_new_instance_method(_bilininteg.DiffusionIntegrator_AssembleDiagonalPA)

    def AssembleDiagonalMF(self, diag):
        r"""AssembleDiagonalMF(DiffusionIntegrator self, Vector diag)"""
        return _bilininteg.DiffusionIntegrator_AssembleDiagonalMF(self, diag)
    AssembleDiagonalMF = _swig_new_instance_method(_bilininteg.DiffusionIntegrator_AssembleDiagonalMF)

    def AddMultMF(self, arg2, arg3):
        r"""AddMultMF(DiffusionIntegrator self, Vector arg2, Vector arg3)"""
        return _bilininteg.DiffusionIntegrator_AddMultMF(self, arg2, arg3)
    AddMultMF = _swig_new_instance_method(_bilininteg.DiffusionIntegrator_AddMultMF)

    def AddMultPA(self, arg2, arg3):
        r"""AddMultPA(DiffusionIntegrator self, Vector arg2, Vector arg3)"""
        return _bilininteg.DiffusionIntegrator_AddMultPA(self, arg2, arg3)
    AddMultPA = _swig_new_instance_method(_bilininteg.DiffusionIntegrator_AddMultPA)

    @staticmethod
    def GetRule(trial_fe, test_fe):
        r"""GetRule(FiniteElement trial_fe, FiniteElement test_fe) -> IntegrationRule"""
        return _bilininteg.DiffusionIntegrator_GetRule(trial_fe, test_fe)
    GetRule = _swig_new_static_method(_bilininteg.DiffusionIntegrator_GetRule)

# Register DiffusionIntegrator in _bilininteg:
_bilininteg.DiffusionIntegrator_swigregister(DiffusionIntegrator)

def DiffusionIntegrator_GetRule(trial_fe, test_fe):
    r"""DiffusionIntegrator_GetRule(FiniteElement trial_fe, FiniteElement test_fe) -> IntegrationRule"""
    return _bilininteg.DiffusionIntegrator_GetRule(trial_fe, test_fe)
DiffusionIntegrator_GetRule = _bilininteg.DiffusionIntegrator_GetRule

class MassIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::MassIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(MassIntegrator self, IntegrationRule ir=None) -> MassIntegrator
        __init__(MassIntegrator self, Coefficient q, IntegrationRule ir=None) -> MassIntegrator
        """
        _bilininteg.MassIntegrator_swiginit(self, _bilininteg.new_MassIntegrator(*args))

        if len(args) > 0: self._coeff = args[0]



    __swig_destroy__ = _bilininteg.delete_MassIntegrator

    def AssembleElementMatrix(self, el, Trans, elmat):
        r"""AssembleElementMatrix(MassIntegrator self, FiniteElement el, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.MassIntegrator_AssembleElementMatrix(self, el, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.MassIntegrator_AssembleElementMatrix)

    def AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat):
        r"""AssembleElementMatrix2(MassIntegrator self, FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.MassIntegrator_AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.MassIntegrator_AssembleElementMatrix2)

    def AssembleMF(self, fes):
        r"""AssembleMF(MassIntegrator self, FiniteElementSpace fes)"""
        return _bilininteg.MassIntegrator_AssembleMF(self, fes)
    AssembleMF = _swig_new_instance_method(_bilininteg.MassIntegrator_AssembleMF)

    def AssemblePA(self, *args):
        r"""
        AssemblePA(MassIntegrator self, FiniteElementSpace fes)
        AssemblePA(MassIntegrator self, FiniteElementSpace trial_fes, FiniteElementSpace test_fes)
        AssemblePA(MassIntegrator self, FiniteElementSpace fes)
        """
        return _bilininteg.MassIntegrator_AssemblePA(self, *args)
    AssemblePA = _swig_new_instance_method(_bilininteg.MassIntegrator_AssemblePA)

    def AssembleEA(self, fes, emat, add):
        r"""AssembleEA(MassIntegrator self, FiniteElementSpace fes, Vector emat, bool const add)"""
        return _bilininteg.MassIntegrator_AssembleEA(self, fes, emat, add)
    AssembleEA = _swig_new_instance_method(_bilininteg.MassIntegrator_AssembleEA)

    def AssembleDiagonalPA(self, diag):
        r"""AssembleDiagonalPA(MassIntegrator self, Vector diag)"""
        return _bilininteg.MassIntegrator_AssembleDiagonalPA(self, diag)
    AssembleDiagonalPA = _swig_new_instance_method(_bilininteg.MassIntegrator_AssembleDiagonalPA)

    def AssembleDiagonalMF(self, diag):
        r"""AssembleDiagonalMF(MassIntegrator self, Vector diag)"""
        return _bilininteg.MassIntegrator_AssembleDiagonalMF(self, diag)
    AssembleDiagonalMF = _swig_new_instance_method(_bilininteg.MassIntegrator_AssembleDiagonalMF)

    def AddMultMF(self, arg2, arg3):
        r"""AddMultMF(MassIntegrator self, Vector arg2, Vector arg3)"""
        return _bilininteg.MassIntegrator_AddMultMF(self, arg2, arg3)
    AddMultMF = _swig_new_instance_method(_bilininteg.MassIntegrator_AddMultMF)

    def AddMultPA(self, arg2, arg3):
        r"""AddMultPA(MassIntegrator self, Vector arg2, Vector arg3)"""
        return _bilininteg.MassIntegrator_AddMultPA(self, arg2, arg3)
    AddMultPA = _swig_new_instance_method(_bilininteg.MassIntegrator_AddMultPA)

    @staticmethod
    def GetRule(trial_fe, test_fe, Trans):
        r"""GetRule(FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans) -> IntegrationRule"""
        return _bilininteg.MassIntegrator_GetRule(trial_fe, test_fe, Trans)
    GetRule = _swig_new_static_method(_bilininteg.MassIntegrator_GetRule)

# Register MassIntegrator in _bilininteg:
_bilininteg.MassIntegrator_swigregister(MassIntegrator)

def MassIntegrator_GetRule(trial_fe, test_fe, Trans):
    r"""MassIntegrator_GetRule(FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans) -> IntegrationRule"""
    return _bilininteg.MassIntegrator_GetRule(trial_fe, test_fe, Trans)
MassIntegrator_GetRule = _bilininteg.MassIntegrator_GetRule

class BoundaryMassIntegrator(MassIntegrator):
    r"""Proxy of C++ mfem::BoundaryMassIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, q):
        r"""__init__(BoundaryMassIntegrator self, Coefficient q) -> BoundaryMassIntegrator"""
        _bilininteg.BoundaryMassIntegrator_swiginit(self, _bilininteg.new_BoundaryMassIntegrator(q))

    def AssembleFaceMatrix(self, *args):
        r"""
        AssembleFaceMatrix(BoundaryMassIntegrator self, FiniteElement el1, FiniteElement el2, FaceElementTransformations Trans, DenseMatrix elmat)
        AssembleFaceMatrix(BoundaryMassIntegrator self, FiniteElement trial_face_fe, FiniteElement test_fe1, FiniteElement test_fe2, FaceElementTransformations Trans, DenseMatrix elmat)
        AssembleFaceMatrix(BoundaryMassIntegrator self, FiniteElement el1, FiniteElement el2, FaceElementTransformations Trans, DenseMatrix elmat)
        """
        return _bilininteg.BoundaryMassIntegrator_AssembleFaceMatrix(self, *args)
    AssembleFaceMatrix = _swig_new_instance_method(_bilininteg.BoundaryMassIntegrator_AssembleFaceMatrix)
    __swig_destroy__ = _bilininteg.delete_BoundaryMassIntegrator

# Register BoundaryMassIntegrator in _bilininteg:
_bilininteg.BoundaryMassIntegrator_swigregister(BoundaryMassIntegrator)

class ConvectionIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::ConvectionIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, q, a=1.0):
        r"""__init__(ConvectionIntegrator self, VectorCoefficient q, double a=1.0) -> ConvectionIntegrator"""
        _bilininteg.ConvectionIntegrator_swiginit(self, _bilininteg.new_ConvectionIntegrator(q, a))

    def AssembleElementMatrix(self, arg2, arg3, arg4):
        r"""AssembleElementMatrix(ConvectionIntegrator self, FiniteElement arg2, ElementTransformation arg3, DenseMatrix arg4)"""
        return _bilininteg.ConvectionIntegrator_AssembleElementMatrix(self, arg2, arg3, arg4)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.ConvectionIntegrator_AssembleElementMatrix)

    def AssemblePA(self, *args):
        r"""
        AssemblePA(ConvectionIntegrator self, FiniteElementSpace fes)
        AssemblePA(ConvectionIntegrator self, FiniteElementSpace trial_fes, FiniteElementSpace test_fes)
        AssemblePA(ConvectionIntegrator self, FiniteElementSpace arg2)
        """
        return _bilininteg.ConvectionIntegrator_AssemblePA(self, *args)
    AssemblePA = _swig_new_instance_method(_bilininteg.ConvectionIntegrator_AssemblePA)

    def AssembleEA(self, fes, emat, add):
        r"""AssembleEA(ConvectionIntegrator self, FiniteElementSpace fes, Vector emat, bool const add)"""
        return _bilininteg.ConvectionIntegrator_AssembleEA(self, fes, emat, add)
    AssembleEA = _swig_new_instance_method(_bilininteg.ConvectionIntegrator_AssembleEA)

    def AddMultPA(self, arg2, arg3):
        r"""AddMultPA(ConvectionIntegrator self, Vector arg2, Vector arg3)"""
        return _bilininteg.ConvectionIntegrator_AddMultPA(self, arg2, arg3)
    AddMultPA = _swig_new_instance_method(_bilininteg.ConvectionIntegrator_AddMultPA)

    @staticmethod
    def GetRule(*args):
        r"""
        GetRule(FiniteElement el, ElementTransformation Trans) -> IntegrationRule
        GetRule(FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans) -> IntegrationRule
        """
        return _bilininteg.ConvectionIntegrator_GetRule(*args)
    GetRule = _swig_new_static_method(_bilininteg.ConvectionIntegrator_GetRule)
    __swig_destroy__ = _bilininteg.delete_ConvectionIntegrator

# Register ConvectionIntegrator in _bilininteg:
_bilininteg.ConvectionIntegrator_swigregister(ConvectionIntegrator)

def ConvectionIntegrator_GetRule(*args):
    r"""
    ConvectionIntegrator_GetRule(FiniteElement el, ElementTransformation Trans) -> IntegrationRule
    ConvectionIntegrator_GetRule(FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans) -> IntegrationRule
    """
    return _bilininteg.ConvectionIntegrator_GetRule(*args)
ConvectionIntegrator_GetRule = _bilininteg.ConvectionIntegrator_GetRule

class GroupConvectionIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::GroupConvectionIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, q, a=1.0):
        r"""__init__(GroupConvectionIntegrator self, VectorCoefficient q, double a=1.0) -> GroupConvectionIntegrator"""
        _bilininteg.GroupConvectionIntegrator_swiginit(self, _bilininteg.new_GroupConvectionIntegrator(q, a))

    def AssembleElementMatrix(self, arg2, arg3, arg4):
        r"""AssembleElementMatrix(GroupConvectionIntegrator self, FiniteElement arg2, ElementTransformation arg3, DenseMatrix arg4)"""
        return _bilininteg.GroupConvectionIntegrator_AssembleElementMatrix(self, arg2, arg3, arg4)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.GroupConvectionIntegrator_AssembleElementMatrix)
    __swig_destroy__ = _bilininteg.delete_GroupConvectionIntegrator

# Register GroupConvectionIntegrator in _bilininteg:
_bilininteg.GroupConvectionIntegrator_swigregister(GroupConvectionIntegrator)

class VectorMassIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::VectorMassIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(VectorMassIntegrator self) -> VectorMassIntegrator
        __init__(VectorMassIntegrator self, Coefficient q, int qo=0) -> VectorMassIntegrator
        __init__(VectorMassIntegrator self, Coefficient q, IntegrationRule ir) -> VectorMassIntegrator
        __init__(VectorMassIntegrator self, VectorCoefficient q, int qo=0) -> VectorMassIntegrator
        __init__(VectorMassIntegrator self, MatrixCoefficient q, int qo=0) -> VectorMassIntegrator
        """
        _bilininteg.VectorMassIntegrator_swiginit(self, _bilininteg.new_VectorMassIntegrator(*args))
    __swig_destroy__ = _bilininteg.delete_VectorMassIntegrator

    def GetVDim(self):
        r"""GetVDim(VectorMassIntegrator self) -> int"""
        return _bilininteg.VectorMassIntegrator_GetVDim(self)
    GetVDim = _swig_new_instance_method(_bilininteg.VectorMassIntegrator_GetVDim)

    def SetVDim(self, vdim):
        r"""SetVDim(VectorMassIntegrator self, int vdim)"""
        return _bilininteg.VectorMassIntegrator_SetVDim(self, vdim)
    SetVDim = _swig_new_instance_method(_bilininteg.VectorMassIntegrator_SetVDim)

    def AssembleElementMatrix(self, el, Trans, elmat):
        r"""AssembleElementMatrix(VectorMassIntegrator self, FiniteElement el, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.VectorMassIntegrator_AssembleElementMatrix(self, el, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.VectorMassIntegrator_AssembleElementMatrix)

    def AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat):
        r"""AssembleElementMatrix2(VectorMassIntegrator self, FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.VectorMassIntegrator_AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.VectorMassIntegrator_AssembleElementMatrix2)

    def AssemblePA(self, *args):
        r"""
        AssemblePA(VectorMassIntegrator self, FiniteElementSpace fes)
        AssemblePA(VectorMassIntegrator self, FiniteElementSpace trial_fes, FiniteElementSpace test_fes)
        AssemblePA(VectorMassIntegrator self, FiniteElementSpace fes)
        """
        return _bilininteg.VectorMassIntegrator_AssemblePA(self, *args)
    AssemblePA = _swig_new_instance_method(_bilininteg.VectorMassIntegrator_AssemblePA)

    def AssembleMF(self, fes):
        r"""AssembleMF(VectorMassIntegrator self, FiniteElementSpace fes)"""
        return _bilininteg.VectorMassIntegrator_AssembleMF(self, fes)
    AssembleMF = _swig_new_instance_method(_bilininteg.VectorMassIntegrator_AssembleMF)

    def AssembleDiagonalPA(self, diag):
        r"""AssembleDiagonalPA(VectorMassIntegrator self, Vector diag)"""
        return _bilininteg.VectorMassIntegrator_AssembleDiagonalPA(self, diag)
    AssembleDiagonalPA = _swig_new_instance_method(_bilininteg.VectorMassIntegrator_AssembleDiagonalPA)

    def AssembleDiagonalMF(self, diag):
        r"""AssembleDiagonalMF(VectorMassIntegrator self, Vector diag)"""
        return _bilininteg.VectorMassIntegrator_AssembleDiagonalMF(self, diag)
    AssembleDiagonalMF = _swig_new_instance_method(_bilininteg.VectorMassIntegrator_AssembleDiagonalMF)

    def AddMultPA(self, x, y):
        r"""AddMultPA(VectorMassIntegrator self, Vector x, Vector y)"""
        return _bilininteg.VectorMassIntegrator_AddMultPA(self, x, y)
    AddMultPA = _swig_new_instance_method(_bilininteg.VectorMassIntegrator_AddMultPA)

    def AddMultMF(self, x, y):
        r"""AddMultMF(VectorMassIntegrator self, Vector x, Vector y)"""
        return _bilininteg.VectorMassIntegrator_AddMultMF(self, x, y)
    AddMultMF = _swig_new_instance_method(_bilininteg.VectorMassIntegrator_AddMultMF)

# Register VectorMassIntegrator in _bilininteg:
_bilininteg.VectorMassIntegrator_swigregister(VectorMassIntegrator)

class VectorFEDivergenceIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::VectorFEDivergenceIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(VectorFEDivergenceIntegrator self) -> VectorFEDivergenceIntegrator
        __init__(VectorFEDivergenceIntegrator self, Coefficient q) -> VectorFEDivergenceIntegrator
        """
        _bilininteg.VectorFEDivergenceIntegrator_swiginit(self, _bilininteg.new_VectorFEDivergenceIntegrator(*args))

    def AssembleElementMatrix(self, el, Trans, elmat):
        r"""AssembleElementMatrix(VectorFEDivergenceIntegrator self, FiniteElement el, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.VectorFEDivergenceIntegrator_AssembleElementMatrix(self, el, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.VectorFEDivergenceIntegrator_AssembleElementMatrix)

    def AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat):
        r"""AssembleElementMatrix2(VectorFEDivergenceIntegrator self, FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.VectorFEDivergenceIntegrator_AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.VectorFEDivergenceIntegrator_AssembleElementMatrix2)

    def AssembleDiagonalPA_ADAt(self, D, diag):
        r"""AssembleDiagonalPA_ADAt(VectorFEDivergenceIntegrator self, Vector D, Vector diag)"""
        return _bilininteg.VectorFEDivergenceIntegrator_AssembleDiagonalPA_ADAt(self, D, diag)
    AssembleDiagonalPA_ADAt = _swig_new_instance_method(_bilininteg.VectorFEDivergenceIntegrator_AssembleDiagonalPA_ADAt)
    __swig_destroy__ = _bilininteg.delete_VectorFEDivergenceIntegrator

# Register VectorFEDivergenceIntegrator in _bilininteg:
_bilininteg.VectorFEDivergenceIntegrator_swigregister(VectorFEDivergenceIntegrator)

class VectorFEWeakDivergenceIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::VectorFEWeakDivergenceIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(VectorFEWeakDivergenceIntegrator self) -> VectorFEWeakDivergenceIntegrator
        __init__(VectorFEWeakDivergenceIntegrator self, Coefficient q) -> VectorFEWeakDivergenceIntegrator
        """
        _bilininteg.VectorFEWeakDivergenceIntegrator_swiginit(self, _bilininteg.new_VectorFEWeakDivergenceIntegrator(*args))

    def AssembleElementMatrix(self, el, Trans, elmat):
        r"""AssembleElementMatrix(VectorFEWeakDivergenceIntegrator self, FiniteElement el, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.VectorFEWeakDivergenceIntegrator_AssembleElementMatrix(self, el, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.VectorFEWeakDivergenceIntegrator_AssembleElementMatrix)

    def AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat):
        r"""AssembleElementMatrix2(VectorFEWeakDivergenceIntegrator self, FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.VectorFEWeakDivergenceIntegrator_AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.VectorFEWeakDivergenceIntegrator_AssembleElementMatrix2)
    __swig_destroy__ = _bilininteg.delete_VectorFEWeakDivergenceIntegrator

# Register VectorFEWeakDivergenceIntegrator in _bilininteg:
_bilininteg.VectorFEWeakDivergenceIntegrator_swigregister(VectorFEWeakDivergenceIntegrator)

class VectorFECurlIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::VectorFECurlIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(VectorFECurlIntegrator self) -> VectorFECurlIntegrator
        __init__(VectorFECurlIntegrator self, Coefficient q) -> VectorFECurlIntegrator
        """
        _bilininteg.VectorFECurlIntegrator_swiginit(self, _bilininteg.new_VectorFECurlIntegrator(*args))

    def AssembleElementMatrix(self, el, Trans, elmat):
        r"""AssembleElementMatrix(VectorFECurlIntegrator self, FiniteElement el, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.VectorFECurlIntegrator_AssembleElementMatrix(self, el, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.VectorFECurlIntegrator_AssembleElementMatrix)

    def AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat):
        r"""AssembleElementMatrix2(VectorFECurlIntegrator self, FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.VectorFECurlIntegrator_AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.VectorFECurlIntegrator_AssembleElementMatrix2)
    __swig_destroy__ = _bilininteg.delete_VectorFECurlIntegrator

# Register VectorFECurlIntegrator in _bilininteg:
_bilininteg.VectorFECurlIntegrator_swigregister(VectorFECurlIntegrator)

class DerivativeIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::DerivativeIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, q, i):
        r"""__init__(DerivativeIntegrator self, Coefficient q, int i) -> DerivativeIntegrator"""
        _bilininteg.DerivativeIntegrator_swiginit(self, _bilininteg.new_DerivativeIntegrator(q, i))

    def AssembleElementMatrix(self, el, Trans, elmat):
        r"""AssembleElementMatrix(DerivativeIntegrator self, FiniteElement el, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.DerivativeIntegrator_AssembleElementMatrix(self, el, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.DerivativeIntegrator_AssembleElementMatrix)

    def AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat):
        r"""AssembleElementMatrix2(DerivativeIntegrator self, FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.DerivativeIntegrator_AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.DerivativeIntegrator_AssembleElementMatrix2)
    __swig_destroy__ = _bilininteg.delete_DerivativeIntegrator

# Register DerivativeIntegrator in _bilininteg:
_bilininteg.DerivativeIntegrator_swigregister(DerivativeIntegrator)

class CurlCurlIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::CurlCurlIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(CurlCurlIntegrator self) -> CurlCurlIntegrator
        __init__(CurlCurlIntegrator self, Coefficient q, IntegrationRule ir=None) -> CurlCurlIntegrator
        __init__(CurlCurlIntegrator self, VectorCoefficient dq, IntegrationRule ir=None) -> CurlCurlIntegrator
        __init__(CurlCurlIntegrator self, MatrixCoefficient mq, IntegrationRule ir=None) -> CurlCurlIntegrator
        """
        _bilininteg.CurlCurlIntegrator_swiginit(self, _bilininteg.new_CurlCurlIntegrator(*args))

        if len(args) > 0: self._coeff = args[0]




    def AssembleElementMatrix(self, el, Trans, elmat):
        r"""AssembleElementMatrix(CurlCurlIntegrator self, FiniteElement el, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.CurlCurlIntegrator_AssembleElementMatrix(self, el, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.CurlCurlIntegrator_AssembleElementMatrix)

    def ComputeElementFlux(self, el, Trans, u, fluxelem, flux, with_coef):
        r"""ComputeElementFlux(CurlCurlIntegrator self, FiniteElement el, ElementTransformation Trans, Vector u, FiniteElement fluxelem, Vector flux, bool with_coef)"""
        return _bilininteg.CurlCurlIntegrator_ComputeElementFlux(self, el, Trans, u, fluxelem, flux, with_coef)
    ComputeElementFlux = _swig_new_instance_method(_bilininteg.CurlCurlIntegrator_ComputeElementFlux)

    def ComputeFluxEnergy(self, fluxelem, Trans, flux, d_energy=None):
        r"""ComputeFluxEnergy(CurlCurlIntegrator self, FiniteElement fluxelem, ElementTransformation Trans, Vector flux, Vector d_energy=None) -> double"""
        return _bilininteg.CurlCurlIntegrator_ComputeFluxEnergy(self, fluxelem, Trans, flux, d_energy)
    ComputeFluxEnergy = _swig_new_instance_method(_bilininteg.CurlCurlIntegrator_ComputeFluxEnergy)

    def AssemblePA(self, *args):
        r"""
        AssemblePA(CurlCurlIntegrator self, FiniteElementSpace fes)
        AssemblePA(CurlCurlIntegrator self, FiniteElementSpace trial_fes, FiniteElementSpace test_fes)
        AssemblePA(CurlCurlIntegrator self, FiniteElementSpace fes)
        """
        return _bilininteg.CurlCurlIntegrator_AssemblePA(self, *args)
    AssemblePA = _swig_new_instance_method(_bilininteg.CurlCurlIntegrator_AssemblePA)

    def AddMultPA(self, x, y):
        r"""AddMultPA(CurlCurlIntegrator self, Vector x, Vector y)"""
        return _bilininteg.CurlCurlIntegrator_AddMultPA(self, x, y)
    AddMultPA = _swig_new_instance_method(_bilininteg.CurlCurlIntegrator_AddMultPA)

    def AssembleDiagonalPA(self, diag):
        r"""AssembleDiagonalPA(CurlCurlIntegrator self, Vector diag)"""
        return _bilininteg.CurlCurlIntegrator_AssembleDiagonalPA(self, diag)
    AssembleDiagonalPA = _swig_new_instance_method(_bilininteg.CurlCurlIntegrator_AssembleDiagonalPA)
    __swig_destroy__ = _bilininteg.delete_CurlCurlIntegrator

# Register CurlCurlIntegrator in _bilininteg:
_bilininteg.CurlCurlIntegrator_swigregister(CurlCurlIntegrator)

class VectorCurlCurlIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::VectorCurlCurlIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(VectorCurlCurlIntegrator self) -> VectorCurlCurlIntegrator
        __init__(VectorCurlCurlIntegrator self, Coefficient q) -> VectorCurlCurlIntegrator
        """
        _bilininteg.VectorCurlCurlIntegrator_swiginit(self, _bilininteg.new_VectorCurlCurlIntegrator(*args))

    def AssembleElementMatrix(self, el, Trans, elmat):
        r"""AssembleElementMatrix(VectorCurlCurlIntegrator self, FiniteElement el, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.VectorCurlCurlIntegrator_AssembleElementMatrix(self, el, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.VectorCurlCurlIntegrator_AssembleElementMatrix)

    def GetElementEnergy(self, el, Tr, elfun):
        r"""GetElementEnergy(VectorCurlCurlIntegrator self, FiniteElement el, ElementTransformation Tr, Vector elfun) -> double"""
        return _bilininteg.VectorCurlCurlIntegrator_GetElementEnergy(self, el, Tr, elfun)
    GetElementEnergy = _swig_new_instance_method(_bilininteg.VectorCurlCurlIntegrator_GetElementEnergy)
    __swig_destroy__ = _bilininteg.delete_VectorCurlCurlIntegrator

# Register VectorCurlCurlIntegrator in _bilininteg:
_bilininteg.VectorCurlCurlIntegrator_swigregister(VectorCurlCurlIntegrator)

class VectorFEMassIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::VectorFEMassIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(VectorFEMassIntegrator self) -> VectorFEMassIntegrator
        __init__(VectorFEMassIntegrator self, Coefficient _q) -> VectorFEMassIntegrator
        __init__(VectorFEMassIntegrator self, Coefficient q) -> VectorFEMassIntegrator
        __init__(VectorFEMassIntegrator self, VectorCoefficient _vq) -> VectorFEMassIntegrator
        __init__(VectorFEMassIntegrator self, VectorCoefficient vq) -> VectorFEMassIntegrator
        __init__(VectorFEMassIntegrator self, MatrixCoefficient _mq) -> VectorFEMassIntegrator
        __init__(VectorFEMassIntegrator self, MatrixCoefficient mq) -> VectorFEMassIntegrator
        """
        _bilininteg.VectorFEMassIntegrator_swiginit(self, _bilininteg.new_VectorFEMassIntegrator(*args))

        if len(args) > 0: self._coeff = args[0]




    def AssembleElementMatrix(self, el, Trans, elmat):
        r"""AssembleElementMatrix(VectorFEMassIntegrator self, FiniteElement el, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.VectorFEMassIntegrator_AssembleElementMatrix(self, el, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.VectorFEMassIntegrator_AssembleElementMatrix)

    def AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat):
        r"""AssembleElementMatrix2(VectorFEMassIntegrator self, FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.VectorFEMassIntegrator_AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.VectorFEMassIntegrator_AssembleElementMatrix2)

    def AssemblePA(self, *args):
        r"""
        AssemblePA(VectorFEMassIntegrator self, FiniteElementSpace fes)
        AssemblePA(VectorFEMassIntegrator self, FiniteElementSpace trial_fes, FiniteElementSpace test_fes)
        AssemblePA(VectorFEMassIntegrator self, FiniteElementSpace fes)
        AssemblePA(VectorFEMassIntegrator self, FiniteElementSpace trial_fes, FiniteElementSpace test_fes)
        """
        return _bilininteg.VectorFEMassIntegrator_AssemblePA(self, *args)
    AssemblePA = _swig_new_instance_method(_bilininteg.VectorFEMassIntegrator_AssemblePA)

    def AddMultPA(self, x, y):
        r"""AddMultPA(VectorFEMassIntegrator self, Vector x, Vector y)"""
        return _bilininteg.VectorFEMassIntegrator_AddMultPA(self, x, y)
    AddMultPA = _swig_new_instance_method(_bilininteg.VectorFEMassIntegrator_AddMultPA)

    def AssembleDiagonalPA(self, diag):
        r"""AssembleDiagonalPA(VectorFEMassIntegrator self, Vector diag)"""
        return _bilininteg.VectorFEMassIntegrator_AssembleDiagonalPA(self, diag)
    AssembleDiagonalPA = _swig_new_instance_method(_bilininteg.VectorFEMassIntegrator_AssembleDiagonalPA)
    __swig_destroy__ = _bilininteg.delete_VectorFEMassIntegrator

# Register VectorFEMassIntegrator in _bilininteg:
_bilininteg.VectorFEMassIntegrator_swigregister(VectorFEMassIntegrator)

class VectorDivergenceIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::VectorDivergenceIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(VectorDivergenceIntegrator self) -> VectorDivergenceIntegrator
        __init__(VectorDivergenceIntegrator self, Coefficient _q) -> VectorDivergenceIntegrator
        __init__(VectorDivergenceIntegrator self, Coefficient q) -> VectorDivergenceIntegrator
        """
        _bilininteg.VectorDivergenceIntegrator_swiginit(self, _bilininteg.new_VectorDivergenceIntegrator(*args))

    def AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat):
        r"""AssembleElementMatrix2(VectorDivergenceIntegrator self, FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.VectorDivergenceIntegrator_AssembleElementMatrix2(self, trial_fe, test_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.VectorDivergenceIntegrator_AssembleElementMatrix2)

    def AssemblePA(self, *args):
        r"""
        AssemblePA(VectorDivergenceIntegrator self, FiniteElementSpace fes)
        AssemblePA(VectorDivergenceIntegrator self, FiniteElementSpace trial_fes, FiniteElementSpace test_fes)
        AssemblePA(VectorDivergenceIntegrator self, FiniteElementSpace trial_fes, FiniteElementSpace test_fes)
        """
        return _bilininteg.VectorDivergenceIntegrator_AssemblePA(self, *args)
    AssemblePA = _swig_new_instance_method(_bilininteg.VectorDivergenceIntegrator_AssemblePA)

    def AddMultPA(self, x, y):
        r"""AddMultPA(VectorDivergenceIntegrator self, Vector x, Vector y)"""
        return _bilininteg.VectorDivergenceIntegrator_AddMultPA(self, x, y)
    AddMultPA = _swig_new_instance_method(_bilininteg.VectorDivergenceIntegrator_AddMultPA)

    def AddMultTransposePA(self, x, y):
        r"""AddMultTransposePA(VectorDivergenceIntegrator self, Vector x, Vector y)"""
        return _bilininteg.VectorDivergenceIntegrator_AddMultTransposePA(self, x, y)
    AddMultTransposePA = _swig_new_instance_method(_bilininteg.VectorDivergenceIntegrator_AddMultTransposePA)

    @staticmethod
    def GetRule(trial_fe, test_fe, Trans):
        r"""GetRule(FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans) -> IntegrationRule"""
        return _bilininteg.VectorDivergenceIntegrator_GetRule(trial_fe, test_fe, Trans)
    GetRule = _swig_new_static_method(_bilininteg.VectorDivergenceIntegrator_GetRule)
    __swig_destroy__ = _bilininteg.delete_VectorDivergenceIntegrator

# Register VectorDivergenceIntegrator in _bilininteg:
_bilininteg.VectorDivergenceIntegrator_swigregister(VectorDivergenceIntegrator)

def VectorDivergenceIntegrator_GetRule(trial_fe, test_fe, Trans):
    r"""VectorDivergenceIntegrator_GetRule(FiniteElement trial_fe, FiniteElement test_fe, ElementTransformation Trans) -> IntegrationRule"""
    return _bilininteg.VectorDivergenceIntegrator_GetRule(trial_fe, test_fe, Trans)
VectorDivergenceIntegrator_GetRule = _bilininteg.VectorDivergenceIntegrator_GetRule

class DivDivIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::DivDivIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(DivDivIntegrator self) -> DivDivIntegrator
        __init__(DivDivIntegrator self, Coefficient q) -> DivDivIntegrator
        """
        _bilininteg.DivDivIntegrator_swiginit(self, _bilininteg.new_DivDivIntegrator(*args))

    def AssembleElementMatrix(self, el, Trans, elmat):
        r"""AssembleElementMatrix(DivDivIntegrator self, FiniteElement el, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.DivDivIntegrator_AssembleElementMatrix(self, el, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.DivDivIntegrator_AssembleElementMatrix)
    __swig_destroy__ = _bilininteg.delete_DivDivIntegrator

# Register DivDivIntegrator in _bilininteg:
_bilininteg.DivDivIntegrator_swigregister(DivDivIntegrator)

class VectorDiffusionIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::VectorDiffusionIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(VectorDiffusionIntegrator self) -> VectorDiffusionIntegrator
        __init__(VectorDiffusionIntegrator self, Coefficient q) -> VectorDiffusionIntegrator
        """
        _bilininteg.VectorDiffusionIntegrator_swiginit(self, _bilininteg.new_VectorDiffusionIntegrator(*args))
    __swig_destroy__ = _bilininteg.delete_VectorDiffusionIntegrator

    def AssembleElementMatrix(self, el, Trans, elmat):
        r"""AssembleElementMatrix(VectorDiffusionIntegrator self, FiniteElement el, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.VectorDiffusionIntegrator_AssembleElementMatrix(self, el, Trans, elmat)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.VectorDiffusionIntegrator_AssembleElementMatrix)

    def AssembleElementVector(self, el, Tr, elfun, elvect):
        r"""AssembleElementVector(VectorDiffusionIntegrator self, FiniteElement el, ElementTransformation Tr, Vector elfun, Vector elvect)"""
        return _bilininteg.VectorDiffusionIntegrator_AssembleElementVector(self, el, Tr, elfun, elvect)
    AssembleElementVector = _swig_new_instance_method(_bilininteg.VectorDiffusionIntegrator_AssembleElementVector)

    def AssemblePA(self, *args):
        r"""
        AssemblePA(VectorDiffusionIntegrator self, FiniteElementSpace fes)
        AssemblePA(VectorDiffusionIntegrator self, FiniteElementSpace trial_fes, FiniteElementSpace test_fes)
        AssemblePA(VectorDiffusionIntegrator self, FiniteElementSpace fes)
        """
        return _bilininteg.VectorDiffusionIntegrator_AssemblePA(self, *args)
    AssemblePA = _swig_new_instance_method(_bilininteg.VectorDiffusionIntegrator_AssemblePA)

    def AssembleMF(self, fes):
        r"""AssembleMF(VectorDiffusionIntegrator self, FiniteElementSpace fes)"""
        return _bilininteg.VectorDiffusionIntegrator_AssembleMF(self, fes)
    AssembleMF = _swig_new_instance_method(_bilininteg.VectorDiffusionIntegrator_AssembleMF)

    def AssembleDiagonalPA(self, diag):
        r"""AssembleDiagonalPA(VectorDiffusionIntegrator self, Vector diag)"""
        return _bilininteg.VectorDiffusionIntegrator_AssembleDiagonalPA(self, diag)
    AssembleDiagonalPA = _swig_new_instance_method(_bilininteg.VectorDiffusionIntegrator_AssembleDiagonalPA)

    def AssembleDiagonalMF(self, diag):
        r"""AssembleDiagonalMF(VectorDiffusionIntegrator self, Vector diag)"""
        return _bilininteg.VectorDiffusionIntegrator_AssembleDiagonalMF(self, diag)
    AssembleDiagonalMF = _swig_new_instance_method(_bilininteg.VectorDiffusionIntegrator_AssembleDiagonalMF)

    def AddMultPA(self, x, y):
        r"""AddMultPA(VectorDiffusionIntegrator self, Vector x, Vector y)"""
        return _bilininteg.VectorDiffusionIntegrator_AddMultPA(self, x, y)
    AddMultPA = _swig_new_instance_method(_bilininteg.VectorDiffusionIntegrator_AddMultPA)

    def AddMultMF(self, x, y):
        r"""AddMultMF(VectorDiffusionIntegrator self, Vector x, Vector y)"""
        return _bilininteg.VectorDiffusionIntegrator_AddMultMF(self, x, y)
    AddMultMF = _swig_new_instance_method(_bilininteg.VectorDiffusionIntegrator_AddMultMF)

# Register VectorDiffusionIntegrator in _bilininteg:
_bilininteg.VectorDiffusionIntegrator_swigregister(VectorDiffusionIntegrator)

class ElasticityIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::ElasticityIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(ElasticityIntegrator self, Coefficient l, Coefficient m) -> ElasticityIntegrator
        __init__(ElasticityIntegrator self, Coefficient m, double q_l, double q_m) -> ElasticityIntegrator
        """
        _bilininteg.ElasticityIntegrator_swiginit(self, _bilininteg.new_ElasticityIntegrator(*args))

    def AssembleElementMatrix(self, arg2, arg3, arg4):
        r"""AssembleElementMatrix(ElasticityIntegrator self, FiniteElement arg2, ElementTransformation arg3, DenseMatrix arg4)"""
        return _bilininteg.ElasticityIntegrator_AssembleElementMatrix(self, arg2, arg3, arg4)
    AssembleElementMatrix = _swig_new_instance_method(_bilininteg.ElasticityIntegrator_AssembleElementMatrix)

    def ComputeElementFlux(self, el, Trans, u, fluxelem, flux, with_coef=True):
        r"""ComputeElementFlux(ElasticityIntegrator self, FiniteElement el, ElementTransformation Trans, Vector u, FiniteElement fluxelem, Vector flux, bool with_coef=True)"""
        return _bilininteg.ElasticityIntegrator_ComputeElementFlux(self, el, Trans, u, fluxelem, flux, with_coef)
    ComputeElementFlux = _swig_new_instance_method(_bilininteg.ElasticityIntegrator_ComputeElementFlux)

    def ComputeFluxEnergy(self, fluxelem, Trans, flux, d_energy=None):
        r"""ComputeFluxEnergy(ElasticityIntegrator self, FiniteElement fluxelem, ElementTransformation Trans, Vector flux, Vector d_energy=None) -> double"""
        return _bilininteg.ElasticityIntegrator_ComputeFluxEnergy(self, fluxelem, Trans, flux, d_energy)
    ComputeFluxEnergy = _swig_new_instance_method(_bilininteg.ElasticityIntegrator_ComputeFluxEnergy)
    __swig_destroy__ = _bilininteg.delete_ElasticityIntegrator

# Register ElasticityIntegrator in _bilininteg:
_bilininteg.ElasticityIntegrator_swigregister(ElasticityIntegrator)

class DGTraceIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::DGTraceIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(DGTraceIntegrator self, VectorCoefficient _u, double a, double b) -> DGTraceIntegrator
        __init__(DGTraceIntegrator self, Coefficient _rho, VectorCoefficient _u, double a, double b) -> DGTraceIntegrator
        """
        _bilininteg.DGTraceIntegrator_swiginit(self, _bilininteg.new_DGTraceIntegrator(*args))

    def AssembleFaceMatrix(self, *args):
        r"""
        AssembleFaceMatrix(DGTraceIntegrator self, FiniteElement el1, FiniteElement el2, FaceElementTransformations Trans, DenseMatrix elmat)
        AssembleFaceMatrix(DGTraceIntegrator self, FiniteElement trial_face_fe, FiniteElement test_fe1, FiniteElement test_fe2, FaceElementTransformations Trans, DenseMatrix elmat)
        AssembleFaceMatrix(DGTraceIntegrator self, FiniteElement el1, FiniteElement el2, FaceElementTransformations Trans, DenseMatrix elmat)
        """
        return _bilininteg.DGTraceIntegrator_AssembleFaceMatrix(self, *args)
    AssembleFaceMatrix = _swig_new_instance_method(_bilininteg.DGTraceIntegrator_AssembleFaceMatrix)

    def AssemblePA(self, *args):
        r"""
        AssemblePA(DGTraceIntegrator self, FiniteElementSpace fes)
        AssemblePA(DGTraceIntegrator self, FiniteElementSpace trial_fes, FiniteElementSpace test_fes)
        """
        return _bilininteg.DGTraceIntegrator_AssemblePA(self, *args)
    AssemblePA = _swig_new_instance_method(_bilininteg.DGTraceIntegrator_AssemblePA)

    def AssemblePAInteriorFaces(self, fes):
        r"""AssemblePAInteriorFaces(DGTraceIntegrator self, FiniteElementSpace fes)"""
        return _bilininteg.DGTraceIntegrator_AssemblePAInteriorFaces(self, fes)
    AssemblePAInteriorFaces = _swig_new_instance_method(_bilininteg.DGTraceIntegrator_AssemblePAInteriorFaces)

    def AssemblePABoundaryFaces(self, fes):
        r"""AssemblePABoundaryFaces(DGTraceIntegrator self, FiniteElementSpace fes)"""
        return _bilininteg.DGTraceIntegrator_AssemblePABoundaryFaces(self, fes)
    AssemblePABoundaryFaces = _swig_new_instance_method(_bilininteg.DGTraceIntegrator_AssemblePABoundaryFaces)

    def AddMultTransposePA(self, x, y):
        r"""AddMultTransposePA(DGTraceIntegrator self, Vector x, Vector y)"""
        return _bilininteg.DGTraceIntegrator_AddMultTransposePA(self, x, y)
    AddMultTransposePA = _swig_new_instance_method(_bilininteg.DGTraceIntegrator_AddMultTransposePA)

    def AddMultPA(self, arg2, arg3):
        r"""AddMultPA(DGTraceIntegrator self, Vector arg2, Vector arg3)"""
        return _bilininteg.DGTraceIntegrator_AddMultPA(self, arg2, arg3)
    AddMultPA = _swig_new_instance_method(_bilininteg.DGTraceIntegrator_AddMultPA)

    def AssembleEAInteriorFaces(self, fes, ea_data_int, ea_data_ext, add):
        r"""AssembleEAInteriorFaces(DGTraceIntegrator self, FiniteElementSpace fes, Vector ea_data_int, Vector ea_data_ext, bool const add)"""
        return _bilininteg.DGTraceIntegrator_AssembleEAInteriorFaces(self, fes, ea_data_int, ea_data_ext, add)
    AssembleEAInteriorFaces = _swig_new_instance_method(_bilininteg.DGTraceIntegrator_AssembleEAInteriorFaces)

    def AssembleEABoundaryFaces(self, fes, ea_data_bdr, add):
        r"""AssembleEABoundaryFaces(DGTraceIntegrator self, FiniteElementSpace fes, Vector ea_data_bdr, bool const add)"""
        return _bilininteg.DGTraceIntegrator_AssembleEABoundaryFaces(self, fes, ea_data_bdr, add)
    AssembleEABoundaryFaces = _swig_new_instance_method(_bilininteg.DGTraceIntegrator_AssembleEABoundaryFaces)

    @staticmethod
    def GetRule(geom, order, T):
        r"""GetRule(mfem::Geometry::Type geom, int order, FaceElementTransformations T) -> IntegrationRule"""
        return _bilininteg.DGTraceIntegrator_GetRule(geom, order, T)
    GetRule = _swig_new_static_method(_bilininteg.DGTraceIntegrator_GetRule)
    __swig_destroy__ = _bilininteg.delete_DGTraceIntegrator

# Register DGTraceIntegrator in _bilininteg:
_bilininteg.DGTraceIntegrator_swigregister(DGTraceIntegrator)

def DGTraceIntegrator_GetRule(geom, order, T):
    r"""DGTraceIntegrator_GetRule(mfem::Geometry::Type geom, int order, FaceElementTransformations T) -> IntegrationRule"""
    return _bilininteg.DGTraceIntegrator_GetRule(geom, order, T)
DGTraceIntegrator_GetRule = _bilininteg.DGTraceIntegrator_GetRule

class DGDiffusionIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::DGDiffusionIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(DGDiffusionIntegrator self, double const s, double const k) -> DGDiffusionIntegrator
        __init__(DGDiffusionIntegrator self, Coefficient q, double const s, double const k) -> DGDiffusionIntegrator
        __init__(DGDiffusionIntegrator self, MatrixCoefficient q, double const s, double const k) -> DGDiffusionIntegrator
        """
        _bilininteg.DGDiffusionIntegrator_swiginit(self, _bilininteg.new_DGDiffusionIntegrator(*args))

    def AssembleFaceMatrix(self, *args):
        r"""
        AssembleFaceMatrix(DGDiffusionIntegrator self, FiniteElement el1, FiniteElement el2, FaceElementTransformations Trans, DenseMatrix elmat)
        AssembleFaceMatrix(DGDiffusionIntegrator self, FiniteElement trial_face_fe, FiniteElement test_fe1, FiniteElement test_fe2, FaceElementTransformations Trans, DenseMatrix elmat)
        AssembleFaceMatrix(DGDiffusionIntegrator self, FiniteElement el1, FiniteElement el2, FaceElementTransformations Trans, DenseMatrix elmat)
        """
        return _bilininteg.DGDiffusionIntegrator_AssembleFaceMatrix(self, *args)
    AssembleFaceMatrix = _swig_new_instance_method(_bilininteg.DGDiffusionIntegrator_AssembleFaceMatrix)
    __swig_destroy__ = _bilininteg.delete_DGDiffusionIntegrator

# Register DGDiffusionIntegrator in _bilininteg:
_bilininteg.DGDiffusionIntegrator_swigregister(DGDiffusionIntegrator)

class DGElasticityIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::DGElasticityIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        __init__(DGElasticityIntegrator self, double alpha_, double kappa_) -> DGElasticityIntegrator
        __init__(DGElasticityIntegrator self, Coefficient lambda_, Coefficient mu_, double alpha_, double kappa_) -> DGElasticityIntegrator
        """
        _bilininteg.DGElasticityIntegrator_swiginit(self, _bilininteg.new_DGElasticityIntegrator(*args))

    def AssembleFaceMatrix(self, *args):
        r"""
        AssembleFaceMatrix(DGElasticityIntegrator self, FiniteElement el1, FiniteElement el2, FaceElementTransformations Trans, DenseMatrix elmat)
        AssembleFaceMatrix(DGElasticityIntegrator self, FiniteElement trial_face_fe, FiniteElement test_fe1, FiniteElement test_fe2, FaceElementTransformations Trans, DenseMatrix elmat)
        AssembleFaceMatrix(DGElasticityIntegrator self, FiniteElement el1, FiniteElement el2, FaceElementTransformations Trans, DenseMatrix elmat)
        """
        return _bilininteg.DGElasticityIntegrator_AssembleFaceMatrix(self, *args)
    AssembleFaceMatrix = _swig_new_instance_method(_bilininteg.DGElasticityIntegrator_AssembleFaceMatrix)
    __swig_destroy__ = _bilininteg.delete_DGElasticityIntegrator

# Register DGElasticityIntegrator in _bilininteg:
_bilininteg.DGElasticityIntegrator_swigregister(DGElasticityIntegrator)

class TraceJumpIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::TraceJumpIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        r"""__init__(TraceJumpIntegrator self) -> TraceJumpIntegrator"""
        _bilininteg.TraceJumpIntegrator_swiginit(self, _bilininteg.new_TraceJumpIntegrator())

    def AssembleFaceMatrix(self, *args):
        r"""
        AssembleFaceMatrix(TraceJumpIntegrator self, FiniteElement el1, FiniteElement el2, FaceElementTransformations Trans, DenseMatrix elmat)
        AssembleFaceMatrix(TraceJumpIntegrator self, FiniteElement trial_face_fe, FiniteElement test_fe1, FiniteElement test_fe2, FaceElementTransformations Trans, DenseMatrix elmat)
        AssembleFaceMatrix(TraceJumpIntegrator self, FiniteElement trial_face_fe, FiniteElement test_fe1, FiniteElement test_fe2, FaceElementTransformations Trans, DenseMatrix elmat)
        """
        return _bilininteg.TraceJumpIntegrator_AssembleFaceMatrix(self, *args)
    AssembleFaceMatrix = _swig_new_instance_method(_bilininteg.TraceJumpIntegrator_AssembleFaceMatrix)
    __swig_destroy__ = _bilininteg.delete_TraceJumpIntegrator

# Register TraceJumpIntegrator in _bilininteg:
_bilininteg.TraceJumpIntegrator_swigregister(TraceJumpIntegrator)

class NormalTraceJumpIntegrator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::NormalTraceJumpIntegrator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        r"""__init__(NormalTraceJumpIntegrator self) -> NormalTraceJumpIntegrator"""
        _bilininteg.NormalTraceJumpIntegrator_swiginit(self, _bilininteg.new_NormalTraceJumpIntegrator())

    def AssembleFaceMatrix(self, *args):
        r"""
        AssembleFaceMatrix(NormalTraceJumpIntegrator self, FiniteElement el1, FiniteElement el2, FaceElementTransformations Trans, DenseMatrix elmat)
        AssembleFaceMatrix(NormalTraceJumpIntegrator self, FiniteElement trial_face_fe, FiniteElement test_fe1, FiniteElement test_fe2, FaceElementTransformations Trans, DenseMatrix elmat)
        AssembleFaceMatrix(NormalTraceJumpIntegrator self, FiniteElement trial_face_fe, FiniteElement test_fe1, FiniteElement test_fe2, FaceElementTransformations Trans, DenseMatrix elmat)
        """
        return _bilininteg.NormalTraceJumpIntegrator_AssembleFaceMatrix(self, *args)
    AssembleFaceMatrix = _swig_new_instance_method(_bilininteg.NormalTraceJumpIntegrator_AssembleFaceMatrix)
    __swig_destroy__ = _bilininteg.delete_NormalTraceJumpIntegrator

# Register NormalTraceJumpIntegrator in _bilininteg:
_bilininteg.NormalTraceJumpIntegrator_swigregister(NormalTraceJumpIntegrator)

class DiscreteInterpolator(BilinearFormIntegrator):
    r"""Proxy of C++ mfem::DiscreteInterpolator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        r"""__init__(DiscreteInterpolator self) -> DiscreteInterpolator"""
        _bilininteg.DiscreteInterpolator_swiginit(self, _bilininteg.new_DiscreteInterpolator())
    __swig_destroy__ = _bilininteg.delete_DiscreteInterpolator

# Register DiscreteInterpolator in _bilininteg:
_bilininteg.DiscreteInterpolator_swigregister(DiscreteInterpolator)

class GradientInterpolator(DiscreteInterpolator):
    r"""Proxy of C++ mfem::GradientInterpolator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def AssembleElementMatrix2(self, h1_fe, nd_fe, Trans, elmat):
        r"""AssembleElementMatrix2(GradientInterpolator self, FiniteElement h1_fe, FiniteElement nd_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.GradientInterpolator_AssembleElementMatrix2(self, h1_fe, nd_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.GradientInterpolator_AssembleElementMatrix2)

    def __init__(self):
        r"""__init__(GradientInterpolator self) -> GradientInterpolator"""
        _bilininteg.GradientInterpolator_swiginit(self, _bilininteg.new_GradientInterpolator())
    __swig_destroy__ = _bilininteg.delete_GradientInterpolator

# Register GradientInterpolator in _bilininteg:
_bilininteg.GradientInterpolator_swigregister(GradientInterpolator)

class IdentityInterpolator(DiscreteInterpolator):
    r"""Proxy of C++ mfem::IdentityInterpolator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def AssembleElementMatrix2(self, dom_fe, ran_fe, Trans, elmat):
        r"""AssembleElementMatrix2(IdentityInterpolator self, FiniteElement dom_fe, FiniteElement ran_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.IdentityInterpolator_AssembleElementMatrix2(self, dom_fe, ran_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.IdentityInterpolator_AssembleElementMatrix2)

    def __init__(self):
        r"""__init__(IdentityInterpolator self) -> IdentityInterpolator"""
        _bilininteg.IdentityInterpolator_swiginit(self, _bilininteg.new_IdentityInterpolator())
    __swig_destroy__ = _bilininteg.delete_IdentityInterpolator

# Register IdentityInterpolator in _bilininteg:
_bilininteg.IdentityInterpolator_swigregister(IdentityInterpolator)

class CurlInterpolator(DiscreteInterpolator):
    r"""Proxy of C++ mfem::CurlInterpolator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def AssembleElementMatrix2(self, dom_fe, ran_fe, Trans, elmat):
        r"""AssembleElementMatrix2(CurlInterpolator self, FiniteElement dom_fe, FiniteElement ran_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.CurlInterpolator_AssembleElementMatrix2(self, dom_fe, ran_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.CurlInterpolator_AssembleElementMatrix2)

    def __init__(self):
        r"""__init__(CurlInterpolator self) -> CurlInterpolator"""
        _bilininteg.CurlInterpolator_swiginit(self, _bilininteg.new_CurlInterpolator())
    __swig_destroy__ = _bilininteg.delete_CurlInterpolator

# Register CurlInterpolator in _bilininteg:
_bilininteg.CurlInterpolator_swigregister(CurlInterpolator)

class DivergenceInterpolator(DiscreteInterpolator):
    r"""Proxy of C++ mfem::DivergenceInterpolator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def AssembleElementMatrix2(self, dom_fe, ran_fe, Trans, elmat):
        r"""AssembleElementMatrix2(DivergenceInterpolator self, FiniteElement dom_fe, FiniteElement ran_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.DivergenceInterpolator_AssembleElementMatrix2(self, dom_fe, ran_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.DivergenceInterpolator_AssembleElementMatrix2)

    def __init__(self):
        r"""__init__(DivergenceInterpolator self) -> DivergenceInterpolator"""
        _bilininteg.DivergenceInterpolator_swiginit(self, _bilininteg.new_DivergenceInterpolator())
    __swig_destroy__ = _bilininteg.delete_DivergenceInterpolator

# Register DivergenceInterpolator in _bilininteg:
_bilininteg.DivergenceInterpolator_swigregister(DivergenceInterpolator)

class NormalInterpolator(DiscreteInterpolator):
    r"""Proxy of C++ mfem::NormalInterpolator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def AssembleElementMatrix2(self, dom_fe, ran_fe, Trans, elmat):
        r"""AssembleElementMatrix2(NormalInterpolator self, FiniteElement dom_fe, FiniteElement ran_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.NormalInterpolator_AssembleElementMatrix2(self, dom_fe, ran_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.NormalInterpolator_AssembleElementMatrix2)

    def __init__(self):
        r"""__init__(NormalInterpolator self) -> NormalInterpolator"""
        _bilininteg.NormalInterpolator_swiginit(self, _bilininteg.new_NormalInterpolator())
    __swig_destroy__ = _bilininteg.delete_NormalInterpolator

# Register NormalInterpolator in _bilininteg:
_bilininteg.NormalInterpolator_swigregister(NormalInterpolator)

class ScalarProductInterpolator(DiscreteInterpolator):
    r"""Proxy of C++ mfem::ScalarProductInterpolator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, sc):
        r"""__init__(ScalarProductInterpolator self, Coefficient sc) -> ScalarProductInterpolator"""
        _bilininteg.ScalarProductInterpolator_swiginit(self, _bilininteg.new_ScalarProductInterpolator(sc))

    def AssembleElementMatrix2(self, dom_fe, ran_fe, Trans, elmat):
        r"""AssembleElementMatrix2(ScalarProductInterpolator self, FiniteElement dom_fe, FiniteElement ran_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.ScalarProductInterpolator_AssembleElementMatrix2(self, dom_fe, ran_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.ScalarProductInterpolator_AssembleElementMatrix2)
    __swig_destroy__ = _bilininteg.delete_ScalarProductInterpolator

# Register ScalarProductInterpolator in _bilininteg:
_bilininteg.ScalarProductInterpolator_swigregister(ScalarProductInterpolator)

class ScalarVectorProductInterpolator(DiscreteInterpolator):
    r"""Proxy of C++ mfem::ScalarVectorProductInterpolator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, sc):
        r"""__init__(ScalarVectorProductInterpolator self, Coefficient sc) -> ScalarVectorProductInterpolator"""
        _bilininteg.ScalarVectorProductInterpolator_swiginit(self, _bilininteg.new_ScalarVectorProductInterpolator(sc))

    def AssembleElementMatrix2(self, dom_fe, ran_fe, Trans, elmat):
        r"""AssembleElementMatrix2(ScalarVectorProductInterpolator self, FiniteElement dom_fe, FiniteElement ran_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.ScalarVectorProductInterpolator_AssembleElementMatrix2(self, dom_fe, ran_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.ScalarVectorProductInterpolator_AssembleElementMatrix2)
    __swig_destroy__ = _bilininteg.delete_ScalarVectorProductInterpolator

# Register ScalarVectorProductInterpolator in _bilininteg:
_bilininteg.ScalarVectorProductInterpolator_swigregister(ScalarVectorProductInterpolator)

class VectorScalarProductInterpolator(DiscreteInterpolator):
    r"""Proxy of C++ mfem::VectorScalarProductInterpolator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vc):
        r"""__init__(VectorScalarProductInterpolator self, VectorCoefficient vc) -> VectorScalarProductInterpolator"""
        _bilininteg.VectorScalarProductInterpolator_swiginit(self, _bilininteg.new_VectorScalarProductInterpolator(vc))

    def AssembleElementMatrix2(self, dom_fe, ran_fe, Trans, elmat):
        r"""AssembleElementMatrix2(VectorScalarProductInterpolator self, FiniteElement dom_fe, FiniteElement ran_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.VectorScalarProductInterpolator_AssembleElementMatrix2(self, dom_fe, ran_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.VectorScalarProductInterpolator_AssembleElementMatrix2)
    __swig_destroy__ = _bilininteg.delete_VectorScalarProductInterpolator

# Register VectorScalarProductInterpolator in _bilininteg:
_bilininteg.VectorScalarProductInterpolator_swigregister(VectorScalarProductInterpolator)

class VectorCrossProductInterpolator(DiscreteInterpolator):
    r"""Proxy of C++ mfem::VectorCrossProductInterpolator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vc):
        r"""__init__(VectorCrossProductInterpolator self, VectorCoefficient vc) -> VectorCrossProductInterpolator"""
        _bilininteg.VectorCrossProductInterpolator_swiginit(self, _bilininteg.new_VectorCrossProductInterpolator(vc))

    def AssembleElementMatrix2(self, nd_fe, rt_fe, Trans, elmat):
        r"""AssembleElementMatrix2(VectorCrossProductInterpolator self, FiniteElement nd_fe, FiniteElement rt_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.VectorCrossProductInterpolator_AssembleElementMatrix2(self, nd_fe, rt_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.VectorCrossProductInterpolator_AssembleElementMatrix2)
    __swig_destroy__ = _bilininteg.delete_VectorCrossProductInterpolator

# Register VectorCrossProductInterpolator in _bilininteg:
_bilininteg.VectorCrossProductInterpolator_swigregister(VectorCrossProductInterpolator)

class VectorInnerProductInterpolator(DiscreteInterpolator):
    r"""Proxy of C++ mfem::VectorInnerProductInterpolator class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, vc):
        r"""__init__(VectorInnerProductInterpolator self, VectorCoefficient vc) -> VectorInnerProductInterpolator"""
        _bilininteg.VectorInnerProductInterpolator_swiginit(self, _bilininteg.new_VectorInnerProductInterpolator(vc))

    def AssembleElementMatrix2(self, rt_fe, l2_fe, Trans, elmat):
        r"""AssembleElementMatrix2(VectorInnerProductInterpolator self, FiniteElement rt_fe, FiniteElement l2_fe, ElementTransformation Trans, DenseMatrix elmat)"""
        return _bilininteg.VectorInnerProductInterpolator_AssembleElementMatrix2(self, rt_fe, l2_fe, Trans, elmat)
    AssembleElementMatrix2 = _swig_new_instance_method(_bilininteg.VectorInnerProductInterpolator_AssembleElementMatrix2)
    __swig_destroy__ = _bilininteg.delete_VectorInnerProductInterpolator

# Register VectorInnerProductInterpolator in _bilininteg:
_bilininteg.VectorInnerProductInterpolator_swigregister(VectorInnerProductInterpolator)



