Problem definition#
Solving linear PDE problem with XLiFE++ is based on a variational formulation which handles a bilinear form, say \(a\) and a linear form, say \(l\), both defined on an approximation space \(V\) and having good properties (continuity, coercivity, …) to ensure the existence and uniqueness of solution:
In the context of XLiFE++, the space \(V\) may be either a Space or a product of Space \(V_i\), the unknown \(u\) a vector of unknowns \(u_i\)
and the associated test function \(v\) a vector of test functions \(v_i\). In first case, we speak of a single unknown formulation whereas it is a multiple unknowns formulation in the second case.
Please refer to Finite elements spaces and Unknowns and test functions to see how to define approximation spaces, unknowns and test functions.
Both bilinear form \(a\) and linear form \(l\) may be linear combinations of single or double integrals involving operators on unknowns and, in the bilinear case, test functions. Their data type is respectively BilinearForm and LinearForm and you will define them from the use of intg functions. These functions take:
one or two domains (
Domain) where live the variables of integration for single integrals (one domain) or double integrals (2 domains).the differential operator to be integrated (
OperatorOnUnknowns) basically composed of a differential operator on an unknown, a differential operator on a test function and an algebraic operator between them.As integrals are generally computed numerically, an integration method or a quadrature rule can be attached to them, using key-values.
BilinearForm a1 = intg(Omega, u*v);
Kernel Ker(...);
BilinearForm a2 = intg(Omegav, Omegau, u*Ker*v);
Main classes for (bi)linear forms are
BilinearFormandLinearForm. See (Bi)linear forms for more details.Main class for differential operators is
OperatorOnUnknownsand childs. See Operators on unknowns/kernels for more details.Main classes for integration methods are
IntegrationMethodandIntegrationMethods. See Integration methods for more details.