Rodin::Variational::Integrator class

Abstract base class for integrators in variational formulations.

The Integrator class provides a common interface for all types of integrators used in finite element assembly. Integrators compute local (element-level) contributions that are then assembled into global matrices and vectors.

Integrator Types

There are two main types of integrators:

  • Linear Integrators: Compute contributions to the load vector (RHS)
    • Example: $ b_i = \int_K f \psi_i \, dx $
  • Bilinear Integrators: Compute contributions to the system matrix
    • Example: $ A_{ij} = \int_K \nabla \phi_j \cdot \nabla \psi_i \, dx $

Role in Assembly

During the assembly process:

  1. Integrators are iterated over mesh elements
  2. Local contributions are computed using numerical quadrature
  3. Local contributions are mapped to global indices
  4. Global matrix/vector is updated with local contributions

Base classes

class Base
Base class for all objects in Rodin's FormLanguage system.

Derived classes

template<class Number, class Derived>
class BilinearFormIntegratorBase
Abstract base class for bilinear form integrators.
template<class Number, class Derived>
class BilinearFormIntegratorBase
Abstract base class for bilinear form integrators.
template<class Number, class Derived>
class BilinearFormIntegratorBase
Abstract base class for bilinear form integrators.
template<class Number, class Derived>
class BilinearFormIntegratorBase
Abstract base class for bilinear form integrators.
template<class Number, class Derived>
class BilinearFormIntegratorBase
Abstract base class for bilinear form integrators.
template<class Number, class Derived>
class BilinearFormIntegratorBase
Abstract base class for bilinear form integrators.
template<class Number, class Derived>
class BilinearFormIntegratorBase
Abstract base class for bilinear form integrators.
template<class Number, class Derived>
class BilinearFormIntegratorBase
Abstract base class for bilinear form integrators.
template<class Number, class Derived>
class BilinearFormIntegratorBase
Abstract base class for bilinear form integrators.
template<class Number, class Derived>
class BilinearFormIntegratorBase
Abstract base class for bilinear form integrators.
template<class Number, class Derived>
class BilinearFormIntegratorBase
Abstract base class for bilinear form integrators.
template<class Number, class Derived>
class BilinearFormIntegratorBase
Abstract base class for bilinear form integrators.
template<class Number, class Derived>
class BilinearFormIntegratorBase
Abstract base class for bilinear form integrators.
template<class Number>
class LinearFormIntegratorBase
Base class for linear form integrators.
template<class Number>
class LinearFormIntegratorBase
Base class for linear form integrators.
template<class Number>
class LinearFormIntegratorBase
Base class for linear form integrators.
template<class Number>
class LinearFormIntegratorBase
Base class for linear form integrators.
template<class Number, class Derived>
class BilinearFormIntegratorBase
Abstract base class for bilinear form integrators.
template<class Number>
class LinearFormIntegratorBase
Base class for linear form integrators.
template<class FES, class Data>
class QuadratureRule<GridFunction<FES, Data>>
Integration of a GridFunction object.

Public types

enum class Type { Linear, Bilinear }
Enumeration of integrator types.
using Parent = FormLanguage::Base
Parent class type.

Constructors, destructors, conversion operators

Integrator() defaulted
Default constructor.
Integrator(const Integrator& other)
Copy constructor.
Integrator(Integrator&& other)
Move constructor.
~Integrator() defaulted virtual
Virtual destructor.

Public functions

auto getType() const -> Type pure virtual
Gets the type of this integrator.
auto copy() const -> Integrator* override noexcept
Creates a copy of this integrator.

Enum documentation

enum class Rodin::Variational::Integrator::Type

Enumeration of integrator types.

Enumerators
Linear

Linear form integrator (load vector)

Bilinear

Bilinear form integrator (system matrix)

Function documentation

Rodin::Variational::Integrator::Integrator(const Integrator& other)

Copy constructor.

Parameters
other in Integrator to copy

Rodin::Variational::Integrator::Integrator(Integrator&& other)

Move constructor.

Parameters
other in Integrator to move

Type Rodin::Variational::Integrator::getType() const pure virtual

Gets the type of this integrator.

Returns Type indicating whether this is a linear or bilinear integrator

Integrator* Rodin::Variational::Integrator::copy() const override noexcept

Creates a copy of this integrator.

Returns Pointer to newly allocated copy