Main user’s classes of XLiFE++#

For sake of simplicity, the developers choose to limit the number of user’s classes and to restrict the use of template paradigm. Up to now the only template objects are Vector and Matrix to deal with real or complex vectors/matrices, but there are useful aliases. The name of every XLiFE++ class begins with a capital letter.

XLiFE++ provides some utility classes (see user documentation for details):

String, Strings : to deal with character string or a vector of strings.

Number, Numbers: to deal with unsigned (positive) integers or vector of numbers.

Real, Reals: to deal with floats, whatever the precision, or vector of reals.

Complex, Complexes: to deal with complexes or vector of complexes.

Vector<T>: to deal with numerical vectors (T is a real/complex scalar/Vector).

Matrix<T>: to deal with numerical matrices (T is a real/complex scalar/Matrix).

RealVectors, RealMatrix, RealMatrices are aliases of previous real vectors and matrices.

ComplexVectors, ComplexMatrix, ComplexMatrices are aliases of previous complex vectors and matrices.

Point: to deal with Point in 1D, 2D, 3D.

Parameter: structure to deal with named parameter of type Real, Complex, Integer, String and pointer (void type).

Parameters: list of parameters.

Function: generalized function handling a c++ function and a list of parameters.

Kernel: generalized kernel managing a Function (the kernel) and some additional data.

TensorKernel: special form of kernel (tensor product)

XLiFE++ also provides the main user’s modelling classes:

Geometry: to describe geometric objects (segment, rectangle, ellipse, ball, cylinder, …). Each geometry has its own modelling class (Segment, Rectangle, Ellipse, Ball, Cylinder, …).

Mesh: mesh structure containing nodes, geometric elements, …

Domain: alias of geometric domains describing part of the mesh, in particular boundaries, Domains to deal with vectors of Domain’s.

Space: class handles discrete spaces (FE space or spectral space) and Spaces a vector of Space’s.

Unknown, TestFunction: abstract elements of space and Unknowns, TestFunctions to handle vector of Unknown’s and TestFunction’s.

LinearForm: symbolic representation of a linear form.

BiLinearForm: symbolic representation of a bilinear form.

EssentialCondition: symbolic representation of an essential condition on a geometric domain.

EssentialConditions: set of essential conditions.

TermVector: algebraic representation of a linear form or an element of space as vector.

TermVectors: list of TermVector’s.

TermMatrix: algebraic representation of a bilinear form.

EigenElements: list of eigen pairs (eigen value, eigen vector).